数字逻辑电路课程设计4bit模9加法器VHDL实现含完整Word文档格式.docx
- 文档编号:18022848
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:47
- 大小:1.01MB
数字逻辑电路课程设计4bit模9加法器VHDL实现含完整Word文档格式.docx
《数字逻辑电路课程设计4bit模9加法器VHDL实现含完整Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字逻辑电路课程设计4bit模9加法器VHDL实现含完整Word文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
半加器由一个异或门和一个与门构成,其原理图如下所示:
5、数码管显示:
单个数码管一共有7个端(不含小数点),用来表示组成一个数字的7个部分,故只要找到这7个段和模9后的4bit数间的对应关系,将其画出卡诺图并化简成逻辑表达式即可。
设得到的4bit数为a、b、c、d,则得到的7段disa~disg的表达式为:
disa=b+d+c’a’+ac;
disb=c’+d+b’a’+ab;
disc=a+b’+c+d;
disd=ba’+c’a’+c’b+cb’a;
dise=d+ba’+c’a’;
disf=d+b’a’+ca’+cb’;
disg=d+ba’+c’b+ca’+cb’;
四、程序设计
1、顶层:
entitymainis
Port(a1:
inSTD_LOGIC;
a2:
a3:
a4:
b1:
b2:
b3:
b4:
ans1:
outSTD_LOGIC;
ans2:
ans3:
ans4:
disA:
disB:
disC:
disD:
disE:
disF:
disG:
outSTD_LOGIC
);
endmain;
architectureBehavioralofmainis
COMPONENTfulladder
PORT(
a:
INstd_logic;
b:
ci:
s:
OUTstd_logic;
co:
OUTstd_logic
);
ENDCOMPONENT;
COMPONENTmod9
carry:
c:
d:
w:
x:
y:
z:
COMPONENTdis
disa:
disb:
disc:
disd:
dise:
disf:
disg:
signalc1,c2,c3,c4,s1,s2,s3,s4,ans11,ans22,ans33,ans44,a11,a22,a33,a44,b11,b22,b33,b44,temp:
std_logic;
begin
--mod9_a--
temp<
='
0'
;
Inst_mod9_a:
mod9PORTMAP(
carry=>
temp,--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:
b4,
b3,
b2,
b1,--d是最低位
b44,--w是最高位
b33,
b22,
b11--z是最低位
--add--
Inst_fulladder_add1:
fulladderPORTMAP(
a11,
b11,
ci=>
temp,
s=>
s1,
co=>
c1
Inst_fulladder_add2:
c1,
s2,
c2
Inst_fulladder_add3:
c2,
s3,
c3
Inst_fulladder_add4:
a44,
b44,
c3,
s4,
c4
--mod9_ans--
Inst_mod9_ans:
c4,--carry是最高位,对应最后一个进位c4
s1,--d是最低位,对应s1
ans44,--w是最高位,对应ans4
ans33,
ans22,
ans11--z是最低位,对应ans1
--not--
ans1<
=notans11;
ans2<
=notans22;
ans3<
=notans33;
ans4<
=notans44;
--dis--
Inst_dis:
disPORTMAP(
ans11,--最低位(读入取反之前的ans)
ans44,--最高位
disa=>
disA,
disb=>
disB,
disc=>
disC,
disd=>
disD,
dise=>
disE,
disf=>
disF,
disg=>
disG
endBehavioral;
entitymod9is
Port(carry:
a:
b:
c:
d:
w:
x:
y:
z:
outSTD_LOGIC);
endmod9;
architectureBehavioralofmod9is
signalnota,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(bandd);
y<
=(notaandc)or(candd)or(aandbandnotcandnotd);
z<
=(notaandd)or(aandcandnotd)or(aandbandnotd);
entityfulladderis
Port(a:
ci:
s:
co:
endfulladder;
architectureBehavioraloffulladderis
COMPONENThalfadder
COMPONENTor2i
i1:
i2:
o:
signals1,c1,c2:
Inst_halfadder_sum1:
halfadderPORTMAP(
a,
b,
Inst_halfadder_sum2:
ci,
s,
Inst_or2i_co:
or2iPORTMAP(
i1=>
i2=>
o=>
co
entityhalfadderis
endhalfadder;
architectureBehavioralofhalfadderis
COMPONENTnoti
i:
COMPONENTand2i
signalnota,notb,s1,s2:
Inst_noti_nota:
notiPORTMAP(
i=>
nota
Inst_noti_notb:
notb
--s--
Inst_and2i_s1:
and2iPORTMAP(
nota,
s1
Inst_and2i_s2:
notb,
s2
Inst_or2i_s:
s
--c--
Inst_and2i_c:
c
entitydisis
disa:
disb:
disc:
disd:
dise:
disf:
disg:
enddis;
architectureBehavioralofdisis
signalnota,notb,notc,notd,disaa,disbb,discc,disdd,disee,disff,disgg:
=nota;
=notb;
=notc;
=notd;
disaa<
=bordor(notcandnota)or(canda);
disbb<
=notcordor(notbandnota)or(banda);
discc<
=aornotborcord;
disdd<
=(bandnota)or(notcandnota)or(notcandb)or(candnotbanda);
disee<
=dor(bandnota)or(notcandnota);
disff<
=dor(notbandnota)or(candnota)or(candnotb);
disgg<
=dor(bandnota)or(notcandb)or(candnota)or(candnotb);
disa<
=notdisaa;
disb<
=notdisbb;
disc<
=notdiscc;
disd<
=notdisdd;
dise<
=notdisee;
disf<
=notdisff;
disg<
=notdisgg;
5、仿真与硬件调试
1、仿真:
(1)顶层仿真
1.仿真文件:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYtest2IS
ENDtest2;
ARCHITECTUREbehaviorOFtest2IS
--ComponentDeclarationfortheUnitUnderTest(UUT)
COMPONENTmain
a1:
disA:
disB:
disC:
disD:
disE:
disF:
disG:
--Inputs
signala1:
std_logic:
signala2:
signala3:
signala4:
signalb1:
signalb2:
signalb3:
signalb4:
--Outputs
signalans1:
signalans2:
signalans3:
signalans4:
signaldisA:
signaldisB:
signaldisC:
signaldisD:
signaldisE:
signaldisF:
signaldisG:
--Noclocksdetectedinportlist.Replace<
clock>
belowwith
--appropriateportname
BEGIN
--InstantiatetheUnitUnderTest(UUT)
uut:
mainPORTMAP(
a1=>
a1,
a2=>
a3=>
a4=>
b1=>
b1,
b2=>
b3=>
b4=>
ans1=>
ans1,
ans2=>
ans2,
ans3=>
ans3,
ans4=>
ans4,
disA=>
disB=>
disC=>
disD=>
disE=>
disF=>
disG=>
--Stimulusprocess
stim_proc:
process
begin
a4<
a3<
a2<
a1<
b4<
b3<
b2<
b1<
waitfor100ns;
1'
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 逻辑电路 课程设计 bit 加法器 VHDL 实现 完整