第一次使用如此高级板子,有点兴奋
Cyclone V 板子使用心得二 一直期待的cyclone V的FPGA开发板,终于有试用的机会了。刚拿到板子端详了好久,拿起来又放下去,放下去又拿回来。放下去的是板子,放不下的是对它的高性能以及丰富的资源的一种崇拜。一直以来就很喜欢altera公司的FPGA,从开始用max系列开始,经历了cycloneI、cyclone II、cycloneIII、cycloneVI。由于芯片的性能越来越高,其价格也是越来越昂贵,普通的用户依然停留在cycloneII的使用上。这次alterag公司居然用cycloneV的板子来免费让我们使用,作为使用者感到无比的荣幸。 在拿到板子的时候,我手头上正在做一个关于地面小车的编队控制项目,之前用的主控电路板是基于cycloneIV 的一款FPGA。虽然这块开发板在目前的市场上已经是相当不错的一款FPGA开发板了,然而当我的系统集成不断扩大的时候,此时的它就有点显得力不从心了。于是就想不整个系统集成到这款cycloneV 的板子上,然而就在我使用的时候才发现任何事物都不是完美的,总有它的不足之处,虽然他有拥有看似用之不尽的逻辑资源和DDR3存储器,但是如此简陋的外设又大大限制了它的用武之地,图一是我之前系统的整体框 图一 系统框图 于是我只能修改我的系统设计方案,用cycloneV板子上的用户I/O的一部分作为我的CCD摄像头数据的采集,另一部分I/O资源作为无线控制模块的接受和发送。然而由于板子上缺少VGA控制编解码芯片,而用户可用的I/O资源又有限,因此我没法接VGA显示其和LCD显示频,从而不能实时显示的效果。 最后编译的效果来看还是很不错的,自觉地我之前FPGA资源不足的问题,以及时钟不配备的问题。下面是我的部分代码,仅供参考: CPU的顶层例化程序: nios2CPU nios2CPU_inst ( .clk_0 (sys_clk), .reset_n (reset_n), .SRAM_ADDR_from_the_sram (SRAM_ADDR), .SRAM_CE_n_from_the_sram (SRAM_CE_N), .SRAM_DQ_to_and_from_the_sram (SRAM_DQ), .SRAM_LB_n_from_the_sram (SRAM_LB_N), .SRAM_OE_n_from_the_sram (SRAM_OE_N), .SRAM_UB_n_from_the_sram (SRAM_UB_N), .SRAM_WE_n_from_the_sram (SRAM_WE_N), .address_to_the_cfi_flash (FL_ADDR), .data_to_and_from_the_cfi_flash (FL_DQ), .read_n_to_the_cfi_flash (FL_OE_N), .select_n_to_the_cfi_flash (FL_CE_N), .write_n_to_the_cfi_flash (FL_WE_N), .out_port_from_the_ram_data (ram_data), .out_port_from_the_ram_wraddress(ram_wraddress), .out_port_from_the_ram_wrclock (ram_wrclock), .out_port_from_the_ram_wren (ram_wren) ); CCD顶层例化的程序: CCD_Capture CCD_Capture_inst ( .oDATA(mCCD_DATA), .oDVAL(mCCD_DVAL), .oX_Cont(X_Cont), .oY_Cont(Y_Cont), .oFrame_Cont(Frame_Cont), .iDATA(rCCD_DATA), .iFVAL(rCCD_FVAL), .iLVAL(rCCD_LVAL), .iSTART(!KEY[3]|auto_start), .iEND(!KEY[2]), .iCLK(~D5M_PIXLCLK), .iRST(DLY_RST_2) ); 余下代码需要者可以和我私下讨论,系统正在不断的进行,请期待心得三
|