数字设计-组合逻辑电路-BCD加法器课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

电子科技大学数字电路课程设计报告姓名:张华博学号:2011091010004选课号: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[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码表示。由表易知:当(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码表示CoutS3S2S1S0CoutY3Y2Y1Y000000000000000100001000100001000011000110010000100001010010100110001100011100111010000100001001010010101010000010111000101100100100110110011011101010001111101011000010110100011011110010110001001111001逻辑图据分析易得BCD加法器个位部分逻辑图如下图(1)所示;图(1)16位加法器整体逻辑图如下图(2):图(2)仿真(VerilogHDL)首先,对74x283芯片进行仿真,定义adder模块如下:moduleadder(A,B,Cin,S,Cout);input[3:0]A,B,Cin;output[3: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;MULTIPLEXERA1B1SELB2A3B3A2B4GNA4Y2Y1Y4Y374157inst4BITADDERCINA1A2B2A3A4B4B1B3SUM4COUTSUM1SUM2SUM374283inst5OR2inst11AND2inst14OR2inst15NOTinst16AND2inst17AND2inst18OR2inst19NOTinst20NOTinst21AND4inst22NOTinst23NOTinst24NOTinst25GNDMULTIPLEXERA1B1SELB2A3B3A2B4GNA4Y2Y1Y4Y374157inst274BITADDERCINA1A2B2A3A4B4B1B3SUM4COUTSUM1SUM2SUM374283inst6OR2inst12AND2inst28OR2inst29NOTinst30AND2inst31AND2inst32OR2inst33NOTinst34NOTinst35AND4inst36NOTinst37NOTinst38NOTinst39GNDVCCpin_nameINPUTVCCpin_name56INPUTMULTIPLEXERA1B1SELB2A3B3A2B4GNA4Y2Y1Y4Y374157inst414BITADDERCINA1A2B2A3A4B4B1B3SUM4COUTSUM1SUM2SUM374283inst7OR2inst13AND2inst42OR2inst43NOTinst44AND2inst45AND2inst46OR2inst47NOTinst48NOTinst49AND4inst50NOTinst51NOTinst52NOTinst53GNDMULTIPLEXERA1B1SELB2A3B3A2B4GNA4Y2Y1Y4Y374157inst554BITADDERCINA1A2B2A3A4B4B1B3SUM4COUTSUM1SUM2SUM374283inst8OR2inst56AND2inst57OR2inst58NOTinst59AND2inst60AND2inst61OR2inst62NOTinst63NOTinst64AND4inst65NOTinst66NOTinst67NOTinst68GNDGNDpin_name58OUTPUTadder(.A(C[3:0]),.B(D[3:0]),.Cin(Cin1),.S(S1[3:0]),.Cout(Cout1[0]));assignSS[0]=(S1[1]|S1[2])&S1[3]|Cout1[0];assignSu[0]=S1[0];assignSu[1]=SS[0]&(~S1[1])|~SS[0]&S1[1];assignSu[2]=SS[0]&(S1[1]^~S1[2])|~SS[0]&S1[2];assignSu[3]=SS[0]&(~S1[3]&~S1[2]&S1[1]&~S1[0])|~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]=(S1[5]|S1[6])&S1[7]|Cout1[1];assignSu[4]=S1[4];assignSu[5]=SS[4]&(~S1[5])|~SS[4]&S1[5];assignSu[6]=SS[4]&(S1[5]^~S1[6])|~SS[4]&S1[6];assignSu[7]=SS[4]&(~S1[7]&~S1[6]&S1[5]&~S1[4])|~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[8]=(S1[9]|S1[10])&S1[11]|Cout1[2];assignSu[8]=S1[8];assignSu[9]=SS[8]&(~S1[9])|~SS[8]&S1[9];assignSu[10]=SS[8]&(S1[9]^~S1[10])|~SS[8]&S1[10];assignSu[11]=SS[8]&(~S1[11]&~S1[10]&S1[9]&~S1[8])|~SS[8]&S1[11];adder(.A(C[15:12]),.B(D[15:12]),.Cin(SS[11:8]),.S(S1[15:12]),.Cout(Cout1[3]));assignSS[12]=(S1[13]|S1[14])&S1[15]|Cout1[3];assignSu[12]=S1[12];assignSu[13]=SS[12]&(~S1[13])|~SS[12]&S1[13];assignSu[14]=SS[12]&(S1[13]^~S1[14])|~SS[12]&S1[14];assignSu[15]=SS[12]&(~S1[15]&~S1[14]&S1[13]&~S1[12])|~SS[12]&S1[15];assignCO=Cout1[3];endmodule仿真结果:可正确实现四位数字内的加法;总结:此次课程设计是本人第一次独立完成的一个比较完整的“项目”,它集筛选(提出)问题、需求分析、提出设计方案、可行性分析、确定设计方案、实现、仿真检验等于一体,是对人综和素质的检验和锻炼;学习关于电子设计的相关课程(电路分析、模拟电路、数字设计)已经有一年半的时间了,期间就只是做题和简单的仿真,觉得不过如此,挺简单的。但纸上得来终觉浅,虽然这只是一个很简单的设计,真正要动手的时候才发现不知该如何下手,几经辗转才了解电子设计的诸多流程。设计完成后,就要开始进行仿真了。要用到quartusII软件,就需要自学软件操作,上网搜教程掌握基本操作,翻课本找程序学习VerilogHDL;虽然有些困难,总是出现这样那样的问题,但,是问题总有解决的办法,通过学习,看着问题一个一个的被解决掉,这才发现自主学习是多么快乐的一件事,每解决一个问题,就会增加一份成就感!这比让老师逼着、管着去学效果要好的多,并且经过这次课程设计之后,我比以前更喜欢数字设计这门课了!总的来说,这次课程设计使我受益匪浅,使我分析问题的思路更清晰、目的更明确、解决方法更娴熟。虽然仿真程序还可简化改进,但是鉴于下午就要交报告,时间有点仓促,所以在此就不再赘言,课下我会略加改进。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功