FPGA 4位全加器的设计

FPGA 4位全加器的设计

ID:44171444

大小:405.08 KB

页数:11页

时间:2019-10-19

FPGA 4位全加器的设计_第1页
FPGA 4位全加器的设计_第2页
FPGA 4位全加器的设计_第3页
FPGA 4位全加器的设计_第4页
FPGA 4位全加器的设计_第5页
资源描述:

《FPGA 4位全加器的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录一、设计原理2二、设计目的3三、设计内容3四、设计步骤3五、总结与体会74位全加器设计报告一、设计原理全加器是指能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位。4位加法器可以采用4个以为全加器级连成串行进位加法器,如下图所示,其中CSA为一位全加器。显然,对于这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟非常可观,高速运算无法胜任。A和B为加法器的输入位串,对于4位加法器其位宽为4位,S为加法器输出位串,与输入位串相同,C为进位输入(CI)或输出(CO)。实现代码为:全加器真值表如下:输

2、入输出XiYiCi-1SiCi0000000110010100110110010101011100111111moduleadder4(cout,sum,ina,inb,cin);output[3:0]sum;outputcout;input[3:0]ina,inb;inputcin;assign{count,sum}=ina+inb+cin;endmodule二、设计目的⑴熟悉ISE9.1开发环境,掌握工程的生成方法。⑵熟悉SEED-XDTKXUPV2Pro实验环境。⑶了解VerilogHDL语言在FPGA中的使用。⑷了解4位全加

3、器的VerilogHDL语言实现。三、设计内容用VerilogHDL语言设计4位全加器,进行功能仿真演示。四、设计步骤1、创建工程及设计输入。⑴在E:progect目录下,新建名为count8的新工程。⑵器件族类型(DeviceFamily)选择“Virtex2P”器件型号(Device)选“XC2VP30ff896-7”综合工具(SynthesisTool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISESimulator”⑶下面一直next和确定。⑷设计输入:在源代码窗口中单击右键,在弹出的菜单

4、中选择“NewSource”,在弹出的对话框中选择“VerilogMoudle”,在右端的“Filename”中输入源文件名adder4,下面各步单击“Next”按钮。⑸在弹出的源代码编辑框内输入源代码并保存。2、功能仿真⑴在source窗口“sourcesfor”中选择“BehavioralSimulation”。由“TestBenchWaveForm”添加激励源。点击Finish。⑵出现波形激励编辑窗口。给ina和inb赋初始值。⑶在processes窗口中单击“simulaterbehavioralmodel”即开始仿真,仿真

5、结果如下。从仿真的结果可以看出,sum=ina+inb+cin。仿真结果正确。3、用ChipScope进行在线调试。⑴生成ChipScope核。代码比较简单,这里只需要ICON和VIO两个核即可。打开“ChipScopeprocoregenerator”首先是生成ICON核的过程。在outputnetlist位置指向adder4所在的路径,在devicefamily里选virtex2p器件。由于只用了VIO核,所以ICON的控制端口数设置为1。之后就是就是一直确定就行,直到出现生成新的核的界面。其次就是生成VIO核的过程。在输入输出

6、端口设置过程中选定异步输入端口和异步输出端口。异步输入端口宽度根据sum(4位)、cout(1位)的总位数设定,异步输出端口根据ina(4位)、inb(4位)、cin(1位)的总位数设定。之后也是一直确定,这样VIO核也就生成了。⑵添加ICON核与VIO核到工程。点击“File—Open”,在adder4所在位置找到icon_xst_example.v和vio_xst_example.v文件并打开,将ICON和VIO核的模块例化语句加到adder4.v相应的位置,并进行修改,最后得到的代码如下:moduleadder4(cout,s

7、um);output[3:0]sum;outputcout;wire[3:0]ina,inb;wirecin;wire[35:0]control0;wire[13:0]async_in;wire[8:0]async_out;iconi_icon(.control0(control0));vioi_vio(.control(control0),.async_in(async_in),.async_out(async_out));assignasync_in[3:0]=ina[3:0];assignasync_in[7:4]=inb[3

8、:0];assignasync_in[8]=cin;assignasync_in[12:9]=sum[3:0];assignasync_in[13]=cout;assignina[3:0]=async_out[3:0];assigni

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。