1、FPGA4位全加器的设计4位全加器设计报告一、设计原理全加器是指能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位。4位加法器可以采用4个以为全加器级连成串行进位加法器,如下图所示,其中CSA为一位全加器。显然,对于这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟非常可观,高速运算无法胜任。 A和B为加法器的输入位串,对于4位加法器其位宽为4位,S为加法器输出位串,与输入位串相同,C为进位输入(CI)或输出(CO)。实现代码为: 全加器真值表如下: 输 入 输 出Xi Yi Ci-1SiCi0000000110010100110110010101011100
2、111111module adder4(cout,sum,ina,inb,cin);output3:0sum;output cout;input3:0ina,inb;input cin;assign count,sum=ina+inb+cin;endmodule二、设计目的熟悉ISE9.1开发环境,掌握工程的生成方法。熟悉SEED-XDTK XUPV2Pro实验环境。了解Verilog HDL语言在FPGA中的使用。了解4位全加器的Verilog HDL语言实现。三、设计内容用Verilog HDL语言设计4位全加器,进行功能仿真演示。四、设计步骤1、创建工程及设计输入。在E:progect目
3、录下,新建名为count8的新工程。器件族类型(Device Family)选择“Virtex2P”器件型号(Device)选“XC2VP30 ff896-7”综合工具(Synthesis Tool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISE Simulator”下面一直next和确定。设计输入:在源代码窗口中单击右键,在弹出的菜单中选择“New Source”,在弹出的对话框中选择“Verilog Moudle”,在右端的“File name”中输入源文件名adder4,下面各步单击“Next”按钮。在弹出的源代码编辑框内输入源代码并保存。2、功能仿真在s
4、ource窗口“sources for”中选择“Behavioral Simulation”。由“Test Bench WaveForm”添加激励源。点击Finish。出现波形激励编辑窗口。给ina和inb赋初始值。在processes窗口中单击“simulater behavioral model”即开始仿真,仿真结果如下。从仿真的结果可以看出,sum=ina+inb+cin。仿真结果正确。3、用ChipScope进行在线调试。生成ChipScope核。代码比较简单,这里只需要ICON和VIO两个核即可。打开“ChipScope pro core generator”首先是生成ICON核的过
5、程。 在output netlist位置指向adder4所在的路径,在device family里选virtex2p器件。由于只用了VIO核,所以ICON的控制端口数设置为1。之后就是就是一直确定就行,直到出现生成新的核的界面。其次就是生成VIO核的过程。 在输入输出端口设置过程中选定异步输入端口和异步输出端口。异步输入端口宽度根据sum(4位)、cout(1位)的总位数设定,异步输出端口根据ina(4位)、inb(4位)、cin(1位)的总位数设定。之后也是一直确定,这样VIO核也就生成了。添加ICON核与VIO核到工程。点击“FileOpen”,在adder4所在位置找到icon_xst_
6、example.v和vio_xst_example.v文件并打开,将ICON和VIO核的模块例化语句加到adder4.v相应的位置,并进行修改,最后得到的代码如下:module adder4(cout,sum);output3:0 sum;output cout;wire 3:0 ina,inb;wire cin;wire 35:0 control0; wire 13:0 async_in;wire 8:0 async_out;icon i_icon(.control0(control0);vio i_vio(.control(control0), .async_in(async_in), .
7、async_out(async_out);assign async_in3:0=ina3:0;assign async_in7:4=inb3:0;assign async_in8=cin;assign async_in12:9=sum3:0;assign async_in13=cout;assign ina3:0=async_out3:0;assign inb3:0=async_out7:4;assign cin=async_out8;assign cout,sum=ina+inb+cin;endmodulemodule icon ( control0 ); output 35:0 contr
8、ol0;endmodulemodule vio ( control, async_in, async_out ); input 35:0 control; input 13:0 async_in; output 8:0 async_out;endmodule进行保存,然后在ISE里进行综合,具体操作步骤:单击“adder4.v”,在processes窗口中双击“SynthesizeXST”;如果综合没有出错,再实现,双击“Implement Design”,最后生成bit文件,双击“Generate Programming File”。过程图为: 在ChipScope里观测调试 单击“adde
9、r4.v”,在Processes窗口中选择双击“Analyze Design Using Chipscope”进入ChipScope Pro Analyzer窗口,点击图标检查连接情况,然后下载bit文件。由于我们没有板子只能做到这一步了。五、总结与体会通过这学期对FPGA应用技术的学习,我对FPGA这项技术也有了一定的了解。最后通过这个大作业也是我对整个的设计过程有了更进一步的认识。我觉得我在这次的课程设计大作业中我在以下几点收获很大。 加深了对全加器的认识; 了解了4位并行相加串行进位全加器的组成原理和组成框图; 掌握了工程的生成方法,以及如何创建HDL资源文件; 对Verilog HDL语言的用法有了一定的了解; 了解了如何进行功能仿真,如何添加激励源;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1