中山大学移动信息工程学院本科生实验报告
(2014学年秋季学期)
课程名称:数字电路实验任课教师:王军助教:李正
一、实验题目
Lab9:用3种不同的方法实现4位加法器
1.行为级描述的加法器
2.行波进位加法器
3.超前进位加法器
二、实验目的
1.更加熟练的运用ISE软件进行实验设计和仿真。
2.加深对verilog语言的理解和运用
3.掌握加法器的原理,学会用不同层级实现方法来实现加法器
三、实验内容
1. 实验步骤
?编写文本文件并编译
?软件仿真
?进行硬件配置
2. 实验原理
四、实验结果
https://www.wendangku.net/doc/262643088.html,b9: ISE软件进行4位加法器的设计与实现(行为级描述的加法器)
1.1. 综合得出的RTL电路图
图一:加法器行为级描述RTL图
如图一所示,用行为级语言对加法器进行描述即可实现四位加法器。
1.2 仿真波形图
图二:图一:行为级加法器实现的仿真图
如图二所示,当输入a,b二进制的四位数时,输出y分别是将四位数相加。cf是最大进位,当a与b相加之后的数大于16,则cf输出为1,其余情况输出为0。例如,当输入为a=1000,b=0111,时,输出相应的y应为1111,cf为0。根据加法运算,上述仿真的结果是正确的。
1.3 开发板的实际效果图
下图的左边前四个开关分别对应a输入从高位到低位的四位二进制数,靠近右边的四个开关别对应输入b从高位到低位的四位二进制数。输出对应5个LED灯,从高位到低位分别为靠近左边从左到右的五个灯。
图一:a=1000,b=0101,y=1101,cf=0效果图
如上图所示,当输入为a=1000和b=0101,相应的输出为0,1101
分别对应相应的第2,3,5盏灯亮
图二:a=1000,b=0111,y=1111,cf=0效果图
如上图所示,当输入为a=1000和b=0111,相应的输出为0,1111
分别对应相应的第2,3,4,5盏灯亮
图三:a=1000,b=1000,y=0000,cf=1效果图
如上图所示,当输入为a=1000和b=1000,相应的输出为1,0000
分别对应相应的第1盏灯亮
图四:a=1110,b=1010,y=1000,cf=1效果图
如上图所示,当输入为a=1110和b=1010,相应的输出为1,1000
分别对应相应的第1,2盏灯亮
图五:a=1110,b=1101,y=1011,cf=1效果图
如上图所示,当输入为a=1110和b=1101输出为1,1011
分别对应相应的第1,2,4,5盏灯亮
2. ISE软件进行4位加法器的设计与实现(行波进位加法器)
2.1. 综合得出的RTL电路图
如上图所示,按照加法器的实验原理,对与相应的进位数c[i],c[i]=a[i]&b[i]+a[i]&c[i-1]+b[i]&c[i-1],即进位分别为对应位相应的a,b输入和上一位数的进位数,如果有两个以上不为0,则进位,否则,则不进位。对于相应的输出,y[i]=a[i]^b[i]^c[i],即相应的位数的输出取决于对应位数的a,b,输入和相应的进位数的不为零的数的奇偶性。如果为奇数,则y[i]=1,偶数,则y[i]=0;
2.2 仿真波形图
3. ISE软件进行4位加法器的设计与实现(超前进位加法器)
3.1 RTL图
如图所示,根据超前进位的原理,对于相应的位数I,当a[i]=b[i]=1时,由相应进位为=1,即产生进位。否则,若a[i]或b[i]中异或为1且上一位的进位为1,则产生进位。而y[i]则与a[i],b[i],和上一位的进位c[i-1]这三个变量为1的奇偶性有关。
3.2仿真图
五、实验感想
1.通过本次实验,让我对使用ISE系统进行实验设计的步骤,从创建工程,到仿真,到bit文件的生成和下载都熟练于心。此外,对verilog语言有了进一步的理解,相比于前几个实验,减少了语法错误和对变量操作的简单错误。
2.应该先将实验的原理理解透彻,再进行代码的编写。
3.对非输入输出的变量,声明和赋值应该分开,并且注意变量类型的选择。
4.always语句中不能有assign语句。
附录:实验代码
仿真代码