实验报告
课程名称: 数字系统设计实验 II 指导老师:屈民军、唐奕 成绩:_________________ 实验名称: Lab7 快速加法器的设计与应用 实验类型: 设计型 _
一、 实验要求
实验任务为3.3:采用“进位选择加法”技术设计32位加法器
二、 实验设计思路
“进位选择加法”是通过增大元器件数量、增加硬件面积来提高运算性能。
以四位先行加法器为最基本的运算单元,并在每个单元内分别计算出初始进位为‘0’和‘1’时的结果,再通过数据选择器(根据从低一级的进位信号来判断初始进位的值)选择出正确的该四位加法结果,并且将该四位中最高位的进位输出给下一级,作为下一级的初始进位输入。
具体分析:将32位的计算分为八块,0-3位为一块,4-7位一块,依次类推。
除去第一块(0-3位的计算),后7块采用进位选择,即每块均计算出初始进位为‘0’或者‘1’时的情况,然后根据低一级的进位输出,来选择正确的结果。
因此,首先要设计4位的先行进位加法器。
根据书上的公式,即可实现。
这里可以看到,为了提高运算速度,每一个进位的计算都直接依赖于整个加法器的最初输入,而不需要等待相邻低位的进位传递。
所以,在verilog 代码中关于c[3],c[2],c[1],c[0]的公式要全部展开,而不是利用前面的进位来计算后面的进位值。
之后,就是模块调用,第一块调用一个4为先行进位加法器,后面七块全部调用两个4为先行进位加法器。
专业:信息与通信工程 姓名:陈博华 学号:3120101830 日期:2014-12-01 地点:教11-400
三、verilog代码部分
整个工程(包括测试文件)的代码有
分别为:1位全加器及其测试文件,4位先行进位加法器及其测试文件,32位快速加法器及其测试文件,和数据选择器。
其中代码
为了充分加快运算速度,,每一位的进位直接依赖于整个加法器的最初输入。
四、仿真结果及其分析
1、四位先行进位加法器的仿真
导出结果后全部正确。
2、32位快速加法器的仿真
仿真结果见modelsim 经过检验,数据正确。
五、心得体会
1一开始写代码时无从下手,在回顾了上学期编的音乐播放器后,才开始上手写代码。
总体来说这实验思路清晰,原理也比较简单。
值得注意的事,在四位先行进位加法器模块中,一开始偷懒计算进位的式子未展开,通过低位的进位来计算高位的进位。
后来仔细一想这样高位的进位计算需要等到低位的结果,违背了先行进位的原则,因此发现了这重大错误。
2数据选择器MUX的命名必须要大些,小写的话可能会出问题,虽然这次试验中我没有遇到,但是在以后的代码编写中要注意。