实验二 4 位加法器原理图设计
一、
实验目的
1、 进一步掌握 Quartus Ⅱ原理图输入设计法。
2、 通过4位加法器的设计,掌握原理图输入法中的层次化设计。
二、 实验原理 a 0 0 1 1 b 0 1 0 1 so 0 1 1 0 co 0 0 0 1 So=a xor b; co=a and b;
aINPUTVCCAND2OUTPUTcoinstXORbINPUTVCCOUTPUTsoinst1
图 2-1 半加器原理图
OR2h_adderinst2OUTPUTcoutainbinINPUTVCCINPUTVCCabinstcosoh_adderabinst1cosoOUTPUTsumcinINPUTVCC 图 2-2 1位全加器原理图
a[3..0]INPUTVCCb[3]a[3]b[3..0]INPUTVCCf_addersum[4]b[2]a[2]b[1]a[1]f_adderainbincininst2inst3sum[2]f_addera[0]b[0]sum[0]ainbincininstinst1sum[1]coutsumainbincincoutsumOUTPUTsum[4..0]GNDsum[3]f_addercoutsumainbincincoutsum
图 2-3 4 位加法器原理图
4 位加法器(如图 2-3)是以 1 位全加器作为基本硬件,由 4 个 1 位全加器串行构成, 1位全加器又可以由两个1位的半加器和一个或门连接而成(如图 2-2),而1位半加器可以由若干门电路组成(如图 2-1)。
三、 实验内容
本次实验使用 Altera FPGA 的开发工具 Quartus Ⅱ,利用原理图输入设计方法设计一个 4位加法器,取 实验板上的 8 位按键的高 4 位与低 4 位分别作为 4 位加数与被加数,其中 8 个 LED 取 5 位作为结果输出,LED2~LED5 作为 4 位相加之和的输出结果,LED1作为两数高 4 位相加的进位 (LED 亮,表示低电平“0”, LED 灭,表示高电平“1”)
四、 实验步骤
1、 打开QUARTUS II软件,新建一个工程adder4bit。
2、 建完工程之后,再新建一个Block Diagram/Schematic File。在原理图编辑 窗口绘制如图 2-1 的半加器原理图。点击 File ->Save,将已设计好的图文件取名为:h_adder,并存在此目录内。
3、 将 h_adder 设置成顶层实体。在诸多文件打开的状态下,选中 h_adder.bdf 为当前文件。点击 Project → Set as Top-Level Entity。
4、 编译。如果发现有错,排除错误后再次编译。直到编译通过就可以进行波形 仿真了。
5、 时序仿真。建立波形文件,设置波形参量,再保存 (注意: QuartusⅡ在波 形仿真时,只支持一个与工程名同名的波形文件,所以在对多个文件进行波形仿真时,对波形文件都取工程名进行保存,后缀名为.vwf;若确实想保留多个波形文件,则可以分别命名,想对哪个波形文件进行仿真时,点击Processing->simulation Tool,在Simulation input中输入待仿真的波形文件即可,如图2-4所示) ,最后运行波形仿真。图 2-5 是仿
真运算完成后的时序波形。观察分析波形,图 2-5 显示的半加器的时序波形是正确的。此时我们就可以将半加器 h_adder 封入库生成半加器元件了,为后续生成 1 位全加器做准备。
图 2-4 仿真结果
图 2-5 仿真结果
6、 封装入库。封将仿真调试好的半加器封装入库。打开 h_adder.bdf文件, 在 File->Create/update 如图 2-6所示。
图 2-6 元件封装入库
7、 全加器原理图设计。以上实验步骤我们主要是生成了一个半加器,我们再 用同样的方法按照图 2-2中1位全加器原理图生成一个1位全加器元件(注意生成的半加器在元器件库的Project选项下,如图2-7)。
图2-7 Symbol对话框
8、 全加器仿真。
9、 4位加法器原理图设计。根据4位加法器的原理画出如图 2-3 的 4 位加法器原理
图。为方面观察输出波形,4位加法器输入输出才采用总线画法,总线命名为被加数a[3..0],加数命名为b[3..0],同时要为每根总线分支加上网络名,方法为选定某总线分支后,右键->Properties,在弹出的Node
Properties对话框(如图2-8)中输入总线分支网络名,如a[0],a[1],??。
图2-8 节点添加网络名
10、 4位全加器仿真,仿真波形如图2-9。注意仿真结果观察将数值以无符号数形
式输出最好,设置方法为选定某个端口后,右键->Properties,在图2-10对话框中选择Unsigned Decimal。
图2-9 4为加法器仿真波形
图2-10 节点数据进制选择
11、 引脚锁定。编译仿真无误后,依照按键、LED与FPGA的管脚连接表进行管脚
分配,表2-1是管脚分配表。分配完成后,再进行全编译一次,以使管脚分配生效。
端口名 a[3] a[2] a[1] a[0] b[3] b[2] b[1] b[0] Sum[4] Sum[3] Sum[2] Sum[1] Sum[0] 使用模块信号 按键S1 按键S2 按键S3 按键S4 按键S5 按键S6 按键S7 按键S8 LED灯LED1 LED灯LED2 LED灯LED3 LED灯LED4 LED灯LED5 对应FPGA管脚 PIN_107 PIN_108 PIN_110 PIN_112 PIN_113 PIN_114 PIN_115 PIN_116 PIN_142 PIN_141 PIN_139 PIN_138 PIN_137 4位加法器 的和输出 4位加法器 的加数输入 4位加法器 的被加数输入 说 明 表2-1 端口管脚分配表
12、 编程下载。用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。
观察实验结果是否与自己的设计思想一致。
五、 实验现象与结果
当设计文件加载到目标器件后,我们可以通过对 8 位按键的高 4 位和低 4 位作为加数与被加数进行输入,可以看到 LED2~LED5 作为 D3~D0 位输出结果的正确无误,LED1 作为加数与被加数的 D3 位相加向 D4 位的进位。其中 LED 灯亮表示低电平“0”,灯灭表示高电平“1”。
六、 扩展实验
1、利用原理图设计法设计8位全加器。 2、利用原理图设计法设计4位全减器。
七、 实验报告
1、 绘出仿真波形,并作说明。 2、 进一步熟悉QUARTUS II软件。
3、 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。