当前位置:文档之家› 用原理图输入方法设计8位全加器

用原理图输入方法设计8位全加器

实验一 用原理图输入方法设计8位全加器
1.实验目的和要求
本实验为综合性实验,综合了简单组合电路逻辑,MAX+plus 10.2的原理图输入方法, 层次化设计的方法等内容。

其目的是通过一个8位全加器的设计熟悉EDA 软件进行电子线路设计的详细流程。

学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。

2.实验原理
1位全加器可以用两个半加器及一个或门连接而成,半加器原理图的设计方法很多,我们用一个与门、一个非门和同或门(xnor 为同或符合,相同为1,不同为0)来实现。

先设计底层文件:半加器,再设计顶层文件全加器。

(1) 半加器的设计:
半加器表达式:进位:co=a and b 和:so=a xnor ( not b )
半加器原理图如下:
(2) 全加器的设计: 全加器原理图如下:
3.主要仪器设备(实验用的软硬件环境)
实验的硬件环境是:
微机
I113co
a so
b
1
0101
0110001
10
0co so b a not
xnor2
and2
I113ain cout
cout ain bin
sum
cin
bin sum
cin
f_adder
or2a
f e d
u3
u2
u1
b a
c
co so
B co so
B
h_adder A h_adder
A
EDA实验开发系统 ZY11EDA13BE
并口延长线,JTAG延长线
实验的软件环境是:
MAX+plus 10.2
4.操作方法与实验步骤
●按照4.1 节介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。

●建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真、硬件测试。

5.实验内容及实验数据记录
1.设计半加器:
用原理图输入的方法输入一个半加器的逻辑图,如图所示:
然后在assign里头的device里头根据试验箱的芯片设置Decices,接着就设置输入输出荧脚的输入端和输出端,设置如表1所示:
表1.半加器引脚端口设置
引脚名称设置端口
ain input Pin=45
bin input Pin=46
co output Pin=19
so output Pin=24 然后Save,名称为h_add.gdf,再save & Compile。

结果如图所示:
然后编译可查看仿真波形图验证原理图的正确性即建立仿真波形图,得到图像如图所示
然后,simulator,结果如图所示:
如图然后把半加器进行模块化,结果如图所示:
(2) 设计一位全加器
在半加器的同一个文件目录下,进行创建一位全加器的f_add.gdf,按照第一步的方式输入元件input(ain、bin、cin)、output(cout、sum)、h_add、or2,然后用连线把元件连接成一个全加器,ain、bin给第一个半加器的输入端,而分别把它输出端so和第三个输入端cin给第二个半加器的ain、bin,分别把第二个半加器的输出端co和第一个的输出端co给or2元器件作为输入端,然后送给count作为进位显示,而第二个半加器的输出so给sum作为加法的结果,
原理图如下所示:
然后在assign里头的device里头根据试验箱的芯片设置Decices,选择芯片的型号进行设置输入输出荧脚的输入端和输出端,设置如下:
表2.一位全加器引脚端口设置
引脚名称设置端口
ain input Pin=45
bin input Pin=46
cin input Pin=47
co output Pin=19
so output Pin=24 然后Save,再Compile。

结果如图所示:
将其进行编译,仿真后得到仿真波形图如下:
然后,simulator,结果如图所示:
将全加器封装成一个电路模块,如图所示:
(3)设计8位全加器
在一位全加器的同一个文件目录下,进行创建一位全加器的8bitf_add.gdf,按照第一步的方式输入元件input[ain(7..0)、bin(7..0)、cin]、output[cout、sum(7..0)]、f_add,然后用标号的方式把元件的输入输出端口接成一个八位全加器,分别把ain(7..0)给编号为1-8的一位全加器的输入端ain;分别把bin(7..0)给编号为1-8的一位全加器的输入端bin;并把每个一位全加器的输出端count给下一个的cin输入端,直到第八个一位全加器把count送给输出端count作为最后的进位位,把sum输出端分别给sum(7..0)作为每个全加器的结果输出,原理图如图所示:
将8位全加器封装成一个电路模块,如图所示:
经过编译,仿真之后,得到仿真波形图,如下图:
6.实验数据处理与分析
半加器的实验数据:
ain bin so co
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
可以看出,so是有ain,bin相加后得到的,但未有进位。

当ain,bin都为
0时,so为0;当ain,bin中有一个为1时,so为1,而这之前co都是为0,表明未进位。

当ain,bin都为1时,此时so为0,co为1,表明已进位。

一位全加器的实验数据:
ain bin cin sum count
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 0 0 1
ain bin cin sum count
0 0 1 0 0
0 1 1 1 0
1 0 1 0 1
1 1 1 1 1
当cin=0的情况下和半加器的结果是一样的,当cin=1时,若ain=0时,count=0;若ain=1时,count=1;由此可见半加器和全加器的设计是正确的。

7.质疑、建议、问题讨论
总结:经过此次实验,让我懂得了EDA设计的具体流程,首次接触maxplux2这个软件,对其有了一定的了解。

从半加器的设计到1位全加器的设计,再到8位全加器的设计,让我对该程序又了更深的理解。

而且在此次实验中还学会了如何进行程序的改错,为以后得学习打下基础。

相关主题