(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编

上传人:初**** 文档编号:145183751 上传时间:2020-09-17 格式:DOC 页数:62 大小:1.02MB
返回 下载 相关 举报
(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编_第1页
第1页 / 共62页
(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编_第2页
第2页 / 共62页
(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编_第3页
第3页 / 共62页
(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编_第4页
第4页 / 共62页
(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编》由会员分享,可在线阅读,更多相关《(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整精编(62页珍藏版)》请在金锄头文库上搜索。

1、(商务智能)数字逻辑电路课程设计模加法器VHDL实现(含完整电子科技大学UNIVERSITYOFELECTRONICSCIENCEANDTECHNOLOGYOFCHINA数字逻辑设计实验报告实验题目: 4bit模9加法器 学生姓名: 指导老师: 一、实验内容设计一个4bit模9加法器。输入为两个4bit的二进制数,输出为两数相加后模9的结果。其数学表达式为:y=(x1+x2)mod9。二、实验要求1、功能性要求:能够实现4bit无符号数的模9加法运算,即输入两个4比特数据时能够正确输出其相加并模9运算结果。2、算法要求:模加法器有多种算法,可采用任意算法进行设计。3、设计性要求:采用全加器、半

2、加器和基本门结构化描述。能够编写TestBench文件,并利用Modelsim进行仿真。在Modelsim仿真正确的基础上,能够生成bit文件并上板验证其正确性。4、基本上板要求:在上板实验时,输入的两个4bit数采用拨码开关输入,输出采用LED灯进行显示。三、设计思路1、整体思路:为了实现4bit无符号数的模9加法运算,可以先将两个4bit的加数a和b先分别模9,相加之后再模9得到最终结果。2、模9器:先找出读入的5bit数与模9后的4bit数之间的关系,画出卡诺图,再根据卡诺图得出其相应的逻辑表达式即可。设读入的5bit数为carry、a、b、c、d,模9后得到的4bit数为w、x、y、z

3、。则化简后得到的逻辑表达式分别为:w=carryabcd,x=carrybc+carryab+carrybd+carryabcd,y=carryac+carrycd+carryabcd+carryabcd,z=carryad+carryacd+carryabd+carryabcd。3、全加器:全加器可以实现两个1bit数a、b和进位输入cin的相加,其真值表如下所示:这里全加器由半加器和或门构成,其原理图如下:4、 半加器:半加器是全加器的基本组成单元,可以实现两个1bit数a和b的相加,并将进位输出,其真值表如下:半加器由一个异或门和一个与门构成,其原理图如下所示:5、数码管显示:单个数码管

4、一共有7个端(不含小数点),用来表示组成一个数字的7个部分,故只要找到这7个段和模9后的4bit数间的对应关系,将其画出卡诺图并化简成逻辑表达式即可。设得到的4bit数为a、b、c、d,则得到的7段disadisg的表达式为:disa=b+d+ca+ac;disb=c+d+ba+ab;disc=a+b+c+d;disd=ba+ca+cb+cba;dise=d+ba+ca;disf=d+ba+ca+cb;disg=d+ba+cb+ca+cb;四、程序设计1、顶层:entitymainisPort(a1:inSTD_LOGIC;a2:inSTD_LOGIC;a3:inSTD_LOGIC;a4:in

5、STD_LOGIC;b1:inSTD_LOGIC;b2:inSTD_LOGIC;b3:inSTD_LOGIC;b4:inSTD_LOGIC;ans1:outSTD_LOGIC;ans2:outSTD_LOGIC;ans3:outSTD_LOGIC;ans4:outSTD_LOGIC;disA:outSTD_LOGIC;disB:outSTD_LOGIC;disC:outSTD_LOGIC;disD:outSTD_LOGIC;disE:outSTD_LOGIC;disF:outSTD_LOGIC;disG:outSTD_LOGIC);endmain;architectureBehavioralo

6、fmainisCOMPONENTfulladderPORT(a:INstd_logic;b:INstd_logic;ci:INstd_logic;s:OUTstd_logic;co:OUTstd_logic);ENDCOMPONENT;COMPONENTmod9PORT(carry:INstd_logic;a:INstd_logic;b:INstd_logic;c:INstd_logic;d:INstd_logic;w:OUTstd_logic;x:OUTstd_logic;y:OUTstd_logic;z:OUTstd_logic);ENDCOMPONENT;COMPONENTdisPORT

7、(a:INstd_logic;b:INstd_logic;c:INstd_logic;d:INstd_logic;disa:OUTstd_logic;disb:OUTstd_logic;disc:OUTstd_logic;disd:OUTstd_logic;dise:OUTstd_logic;disf:OUTstd_logic;disg:OUTstd_logic);ENDCOMPONENT;signalc1,c2,c3,c4,s1,s2,s3,s4,ans11,ans22,ans33,ans44,a11,a22,a33,a44,b11,b22,b33,b44,temp:std_logic;be

8、gin-mod9_a-temptemp,-carry是最高位a=a4,b=a3,c=a2,d=a1,-d是最低位w=a44,-w是最高位x=a33,y=a22,z=a11-z是最低位);-mod9_b-Inst_mod9_b:mod9PORTMAP(carry=temp,-carry是最高位a=b4,b=b3,c=b2,d=b1,-d是最低位w=b44,-w是最高位x=b33,y=b22,z=b11-z是最低位);-add-Inst_fulladder_add1:fulladderPORTMAP(a=a11,b=b11,ci=temp,s=s1,co=c1);Inst_fulladder_ad

9、d2:fulladderPORTMAP(a=a22,b=b22,ci=c1,s=s2,co=c2);Inst_fulladder_add3:fulladderPORTMAP(a=a33,b=b33,ci=c2,s=s3,co=c3);Inst_fulladder_add4:fulladderPORTMAP(a=a44,b=b44,ci=c3,s=s4,co=c4);-mod9_ans-Inst_mod9_ans:mod9PORTMAP(carry=c4,-carry是最高位,对应最后一个进位c4a=s4,b=s3,c=s2,d=s1,-d是最低位,对应s1w=ans44,-w是最高位,对应an

10、s4x=ans33,y=ans22,z=ans11-z是最低位,对应ans1);-not-ans1=notans11;ans2=notans22;ans3=notans33;ans4ans11,-最低位(读入取反之前的ans)b=ans22,c=ans33,d=ans44,-最高位disa=disA,disb=disB,disc=disC,disd=disD,dise=disE,disf=disF,disg=disG);endBehavioral;2、模9器:entitymod9isPort(carry:inSTD_LOGIC;a:inSTD_LOGIC;b:inSTD_LOGIC;c:inS

11、TD_LOGIC;d:inSTD_LOGIC;w:outSTD_LOGIC;x:outSTD_LOGIC;y:outSTD_LOGIC;z:outSTD_LOGIC);endmod9;architectureBehavioralofmod9issignalnota,notb,notc,notd,notcarry:std_logic;Begin-not-nota=nota;notb=notb;notc=notc;notd=notd;notcarry=notcarry;-mod9-w=aandnotbandnotcandnotdandnotcarry;x=(bandc)or(bandnota)or

12、(bandd);y=(notaandc)or(candd)or(aandbandnotcandnotd);za,b=b,s=s1,c=c1);Inst_halfadder_sum2:halfadderPORTMAP(a=ci,b=s1,s=s,c=c2);Inst_or2i_co:or2iPORTMAP(i1=c1,i2=c2,o=co);endBehavioral;4、半加器:entityhalfadderisPort(a:inSTD_LOGIC;b:inSTD_LOGIC;s:outSTD_LOGIC;c:outSTD_LOGIC);endhalfadder;architectureBehavioralofhalfadderisCOMPONENTnotiPORT(i:INstd_logic;o:OUTstd_logic);ENDCOMPONENT;COMPONENTand2iPORT(i1:INstd_logic;i2:INstd_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 规章制度

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号