四位二进制全加全减器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字逻辑设计及应用课程设计报告
组合逻辑设计
题目:使用74LS83构成4位二进制全加\全减器。 具体要求:1)列出真值表;
2)画出逻辑图;
3)用Verilog HDL 进行仿真;
1.设计思路及原理分析
全加器是除本位数字相加外,还考虑进位输入和进位输出的加法器,全减器同理,考虑借位输入和借位输出。本次主要应用74LS83来实现设计要求,74LS83是四位二进制先行进位加法器,可以直接接入输入获得全加器,所以设计重点在于四位全减器的设计。
对于串行进位加法器,可略加改进获得相应的减法器,基本原理如下式:
2'2'2'2'[]s s s s X Y X Y -=+-
'2'2[]2n s s Y Y -=-
这里利用了补码的基本性质,具体实现时可以将减数逐位取反,然后最低位加1。又因为全加器时in C 为为进位输入,全减器时应变为借位输入,所以要减去in C ,且全加器的输出端out C 为进位输出,而全减法器应该输出借位输出,而进位输出与借位输出恰好是反向的关系,所以将0S 取反后即得到全减器的借位输出out B ,据此,可以在全加器的基础上设计全减器。
其中表中输出部分上行为全加输出,下行为全减输出。
2 逻辑电路图
3 电路实现和仿真
3.1 verilog HDL设计代码如下:
module add(s,out,a,b,in,EN);
output[0:3] s;
output out;
input[0:3] a,b;
input in;
input EN;
reg out;
reg[0:3] s,c;
always@(*)
if (EN==0)
begin
{out,s}=a+b+in;
end
else
begin
c=10000-b;
{out,s}=a+c-in;
out=~out;
end
endmodule
3.2 仿真波形图
4 结果分析
由波形图可知,仿真结果与真值表完全吻合,说明本次设计的可行性和正确性,至此,我们完成了基于74LS83构成4位二进制全加\全减器的分析、设计、仿真,而且达到了预期的设计要求。
5 总结
此次课程选取的题目较为简单,容易操作,但与平时课上所学习的基础知识联系紧密,是对课上所学理论知识很好的应用和检验。过程中最大的感受是体会到了如何用课本所学的理论设计所需的电路,而理论和实践起来是不同的,即使理论很扎实,而实际用verilog HDL语言来写时也会遇到很多困难。但是在设计时能对所学的东西有更好的理解,这也更激起了我对数字设计这门课程的兴趣,以后一定会继续好好学习这门课程,课下将书本上的verilog HDL程序用Quartus仿真出来,以加深对知识的理解。
6 参考文献
《数字设计—原理与实践》 John F.Wakerly
《基于Quartus II的数字系统Verilog HDL设计实例详解》周景润