资源描述:
《数字设计-组合逻辑电路-BCD加法器课程设计报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子科技大学数字电路课程设计报告姓名:张华博学号:04选课号:132指导老师:张刚组合逻辑电路课程设计——————16位BCD码加法运算器的实现使用芯片74x283、74x157及与、或、非门器件设计一个电路,实现16位BCD加法运算。画出电路逻辑图,并用VerilogHDL进行仿真。注:74x283是4位二进制先行进位加法器,输入端有:Cin、A[3:0]、B[3:0];输出端有:Cout、S[3:0];其功能大致可以表示为:{Cout,S}=A+B+Cin74x157为多路复用器,输入端有:S、A[3:0]、B[3:0];输出端有:Y[
2、3:0];其功能为:Y=S’·A+S·B分析16位BCD码加法器,即:4位10进制加法器。记两加数分别为A、B,进位为Cin,和为Sum对十进制有:{Cin个位,Sum个位}=A个位+B个位{Cin十位,Sum十位}=A十位+B十位+Cin个位{Cin百位,Sum百位}=A百位+B百位+Cin十位{Cin千位,Sum千位}=A千位+B千位+Cin百位易知:各数位运算规则基本相同,所以设计BCD加法器时可先独立设计4位(即:十进制一位)加法器。设计求和结果的不同表示形式如下表,使用74x283求和后的输出形式为普通二进制,最终输出结果为BCD
3、码表示。由表易知:当(S1+S2)·S3+Cout=0时,Y=S;当(S1+S2)·S3+Cout=1时,Y0=S0Y1=S1’Y2=S1·S2+S1’·S2’Y3=S3’·S2’·S1·S0’显然,Y与S之间可用74x157多路复用器进行转换74x157芯片的选择输入端为:s=(S1+S2)·S3+Cout普通2进制表示BCD码表示CoutS3S2S1S0CoutY3Y2Y1Y0000000000000001000010001000010000110001100100001000010100101001100011000111001110
4、10000100001001010010101010000010111000101100100100110110011011101010001111101011000010110100011011110010110001001111001逻辑图据分析易得BCD加法器个位部分逻辑图如下图(1)所示;图(1)16位加法器整体逻辑图如下图(2):图(2)仿真(VerilogHDL)首先,对74x283芯片进行仿真,定义adder模块如下:moduleadder(A,B,Cin,S,Cout);input[3:0]A,B,Cin;output[3:
5、0]S;outputCout;assign{Cout,S}=A+B+Cin;endmodule然后,调用adder模块,组合设计BCDaddermoduleBCDadder(C,D,Cin1,Su,CO);input[15:0]C,D;input[3:0]Cin1;output[15:0]Su;outputCO;wire[15:0]S1,SS;wire[3:0]Cout1;adder(.A(C[3:0]),.B(D[3:0]),.Cin(Cin1),.S(S1[3:0]),.Cout(Cout1[0]));assignSS[0]=(S1[1
6、]
7、S1[2])&S1[3]
8、Cout1[0];assignSu[0]=S1[0];assignSu[1]=SS[0]&(~S1[1])
9、~SS[0]&S1[1];assignSu[2]=SS[0]&(S1[1]^~S1[2])
10、~SS[0]&S1[2];assignSu[3]=SS[0]&(~S1[3]&~S1[2]&S1[1]&~S1[0])
11、~SS[0]&S1[3];adder(.A(C[7:4]),.B(D[7:4]),.Cin(SS[3:0]),.S(S1[7:4]),.Cout(Cout1[1]));assignSS[4]=(S
12、1[5]
13、S1[6])&S1[7]
14、Cout1[1];assignSu[4]=S1[4];assignSu[5]=SS[4]&(~S1[5])
15、~SS[4]&S1[5];assignSu[6]=SS[4]&(S1[5]^~S1[6])
16、~SS[4]&S1[6];assignSu[7]=SS[4]&(~S1[7]&~S1[6]&S1[5]&~S1[4])
17、~SS[4]&S1[7];adder(.A(C[11:8]),.B(D[11:8]),.Cin(SS[7:4]),.S(S1[11:8]),.Cout(Cout1[2]));assignSS
18、[8]=(S1[9]
19、S1[10])&S1[11]
20、Cout1[2];assignSu[8]=S1[8];assignSu[9]=SS[8]&(~S1[9])
21、~SS[8]&S1