版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序中的語(yǔ)法解釋:
IF語(yǔ)句是VHDL中最常用的和最重要的順序條件語(yǔ)句,它是根據(jù)語(yǔ)句中所設(shè)置的一種或者多種條件,有選擇地執(zhí)行指定的順序語(yǔ)句。--IF的語(yǔ)法結(jié)構(gòu)(1)IF條件句THEN
順序語(yǔ)句
ENDIF;
格式(1)如果條件為真,于是(THEN)順序執(zhí)行條件句中所列出來(lái)的“順序語(yǔ)句”,直到ENDIF;如果條件為假,則直接跳過(guò)順序語(yǔ)句,結(jié)束IF語(yǔ)句的執(zhí)行。這是一種不完整的條件語(yǔ)句,用于產(chǎn)生時(shí)序電路。
格式(2)和格式(1)相比,當(dāng)判斷條件為假時(shí),并不直接跳離IF語(yǔ)句,而是執(zhí)行ELSE下列出來(lái)的一系列的順序語(yǔ)句。所以格式(2)具有條件分支的功能,它可以通過(guò)條件來(lái)判斷應(yīng)該執(zhí)行哪段順序語(yǔ)句。這是一種完整性語(yǔ)句描述,因?yàn)樗o出了條件句所有可能的條件,因此通常用于產(chǎn)生組合電路。(2)IF條件句THEN
順序語(yǔ)句
ELSE
順序語(yǔ)句
ENDIF;
格式(3)是一種多重IF的嵌套式條件句,可以產(chǎn)生比較豐富的條件描述,既可以產(chǎn)生組合電路,也可以產(chǎn)生數(shù)字電路,或者是二者的混和。使用該語(yǔ)句時(shí)應(yīng)該注意,ENDIF的數(shù)量應(yīng)該與嵌套的條件句數(shù)量一致。(3)IF條件句THENIF條件句THEN......ENDIF;ENDIF;
(4)IF條件句THEN
順序語(yǔ)句
ELSEIF條件句THEN
順序語(yǔ)句
......ELSE
順序語(yǔ)句
ENDIF;ELSEIF來(lái)設(shè)定多個(gè)判斷條件,使判斷分支可以超過(guò)2個(gè)
顯然,程序的最后一項(xiàng)賦值語(yǔ)句“output<="111"”的執(zhí)行條件(相與條件)是:(din(7)='1')AND(din(6)='1')AND(din(5)='1')AND(din(4)='1')AND(din(3)='1')AND(din(2)='1')AND(din(1)='1')AND(din(0)=‘0')。
數(shù)碼轉(zhuǎn)換電路設(shè)計(jì)
4位二進(jìn)制到十進(jìn)制的真值表LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;--****************************************ENTITYycllIS PORT(A:INUNSIGNED(3DOWNTO0) ; BCD0,BCD1:OUTSTD_LOGIC_VECTOR(3DOWNTO0); SEVEN0,SEVEN1:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDycll;--****************************************--(1)STD_LOGIC_ARITH程序包:包括數(shù)據(jù)類型UNSIGNED的定義及相關(guān)的算術(shù)運(yùn)算符和轉(zhuǎn)換函數(shù);--(2)STD_LOGIC_UNSIGNED程序包:包括可用于INTEGER和STD_LOGIC型混合運(yùn)算的運(yùn)算符,并定義了STD_LOGIC型到INTEGER型的轉(zhuǎn)換函數(shù);--(3)UNSIGNED,具有數(shù)值和邏輯類型雙重身份,可以進(jìn)行數(shù)值和邏輯運(yùn)算。ARCHITECTUREbhvOFycllISSIGNALXC:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(A) BEGIN IFA<10THEN BCD1<="0000"; BCD0<=STD_LOGIC_VECTOR(A); SEVEN1<="0111111"; XC<=STD_LOGIC_VECTOR(A);--**************************************** ELSE BCD1<="0001"; BCD0<=STD_LOGIC_VECTOR(A)-10; SEVEN1<="0000110"; XC<=STD_LOGIC_VECTOR(A)-10;--**************************************** ENDIF;ENDPROCESS;
SEVEN_SEGMENT:BLOCK BEGIN SEVEN0<="0111111"WHENXC="0000"ELSE "0000110"WHENXC="0001"ELSE "1011011"WHENXC="0010"ELSE "1001111"WHENXC="0011"ELSE "1100110"WHENXC="0100"ELSE "1101101"WHENXC="0101"ELSE "1111101"WHENXC="0110"ELSE "0000111"WHENXC="0111"ELSE "1111111"WHENXC="1000"ELSE "1101111"WHENXC="1001"ELSE "0000000"; ENDBLOCKSEVEN_SEGMENT;ENDbhv;數(shù)碼轉(zhuǎn)換程序仿真結(jié)果--例18.有問(wèn)題的4位加法器libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;
ENTITYadderIS PORT(data1,data2:INUNSIGNED(3downto0); Sum:OUTSTD_LOGIC_VECTOR(3downto0); );ENDadder;architectureARCHofadderisBEGIN Sum<=data1+data2;ENDarch;--例4.23
4位加法器的VHDL程序libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;--check4-BITadderfunctionentityADDER1isport(A:inUNSIGNED(3downto0); B:inUNSIGNED(3downto0); Cin:inSTD_LOGIC;BCDout:outSTD_LOGIC_VECTOR(3downto0); Cout:outSTD_LOGIC);endADDER1;ARCHITECTUREARCHofADDER1IS
SIGNALY,C:STD_LOGIC_VECTOR(3downto0);begin Y(0)<=A(0)XORB(0)XORCin; Y(1)<=A(1)XORB(1)XORC(0); Y(2)<=A(2)XORB(2)XORC(1); Y(3)<=A(3)XORB(3)XORC(2); C(0)<=(CinANDA(0))OR(CinANDB(0))OR(A(0)ANDB(0)); C(1)<=(C(0)ANDA(1))OR(C(0)ANDB(1))OR(A(1)ANDB(1)); C(2)<=(C(1)ANDA(2))OR(C(1)ANDB(2))OR(A(2)ANDB(2)); C(3)<=(C(2)ANDA(3))OR(C(2)ANDB(3))OR(A(3)ANDB(3)); BCDout<=Y(3)&Y(2)&Y(1)&Y(0); Cout<=C(3);endARCH;--例4.24全加器的簡(jiǎn)化程序ARCHITECTUREARCHofADDER1isSIGNALY,C:STD_LOGIC_VECTOR(3downto0);Y(0)<=A(0)XORB(0)XORCin;C(0)<=(CinANDA(0))OR(CinANDB(0))OR(A(0)ANDB(0));GEN:FORIIN1TO3GENERATEY(I)<=A(I)XORB(I)XORC(I-1);C(I)<=(C(I-1)ANDA(I))OR(C(I-1)ANDB(I))OR(A(I)ANDB(I)); ENDGENERATE; BCDout<=Y(3)&Y(2)&Y(1)&Y(0); Cout<=C(3);endARCH;--例4.251位加法器的設(shè)計(jì)(全加器組件)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFullAdderISPort( A :IN Std_Logic; B :IN Std_Logic; C :IN Std_Logic; Carry :INOUTStd_Logic; Sum :OUTStd_Logic );EndFullAdder;ARCHITECTUREaOFFullAdderISBeginSum<=AXORBXORC;Carry<=(AandB)or(AandC)or(BandC);enda;--例4.264位加法器的設(shè)計(jì)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYtstisPORT( A:INSTD_LOGIC_VECTOR(3Downto0);
B:INSTD_LOGIC_VECTOR(3Downto0); S:OUTSTD_LOGIC_VECTOR(3Downto0); C:INOUTSTD_LOGIC_VECTOR(4Downto0) );ENDtst;ARCHITECTUREaOFtstIS ComponentFullAdder--組件定義
Port( A :IN Std_Logic; B :IN Std_Logic; C :IN Std_Logic; Carry:INOUTStd_Logic; Sum :OUTStd_Logic ); EndComponent; BEGINC(0)<='0';--組件映像GEN:FORIIN0TO3GENERATEBEGINFullAdderPORTMAP(A(I),B(I),C(I),C(I+1),S(I)); ENDGENERATE;
ENDa;--例4.27
4位加法計(jì)數(shù)器ENTITYCNT4ISPORT(CLK:INBIT;Q:BUFFERINTEGERRANGE15DOWNTO0);END;ARCHITECTUREbhvOFCNT4ISBEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ<=Q+1;ENDIF;ENDPROCESS;ENDbhv;--例4.28
4位計(jì)數(shù)器
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT4ISPORT(CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFCNT4ISSIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=Q1+1;ENDIF;Q<=Q1;ENDPROCESS;ENDbhv;4位計(jì)數(shù)器的RTL電路--例4.29異步復(fù)位和時(shí)鐘使能的10進(jìn)制計(jì)數(shù)器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGIN
PROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);-變量型BEGINIFRST='1'THENCQI:=(OTHERS=>'0');--計(jì)數(shù)器復(fù)位
ELSIFCLK'EVENTANDCLK='1'THEN--檢測(cè)時(shí)鐘上升沿
IFEN='1'THEN--檢測(cè)是否允許計(jì)數(shù)
IFCQI<"1001"THENCQI:=CQI+1;--允許計(jì)數(shù)
ELSECQI:=(OTHERS=>'0');--大于9,計(jì)數(shù)值清零
ENDIF;ENDIF;ENDIF;IFCQI="1001"THENCOUT<='1';ELSECOUT<='0';ENDIF;CQ<=CQI;--將計(jì)數(shù)值向端口輸出
ENDPROCESS;ENDbehav;--例4.32雙向移位寄存器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.AL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025教師學(xué)期工作計(jì)劃
- Unit2 My favourite season (B Read and write)(說(shuō)課稿)-2023-2024學(xué)年人教PEP版英語(yǔ)五年級(jí)下冊(cè)
- 2025年度個(gè)人工作計(jì)劃表
- 2025年酒店工作計(jì)劃
- 發(fā)動(dòng)機(jī)推進(jìn)控制系統(tǒng)相關(guān)項(xiàng)目投資計(jì)劃書
- Unit 1 What's Your Name?(說(shuō)課稿)-2024-2025學(xué)年教科版(EEC)英語(yǔ)三年級(jí)上冊(cè)
- Unit 2 Ways to go to school Part B(說(shuō)課稿)-2024-2025學(xué)年人教PEP版英語(yǔ)六年級(jí)上冊(cè)
- Unit3 Lesson 8 Project and Review說(shuō)課稿-2024-2025學(xué)年仁愛(ài)科普版英語(yǔ)七年級(jí)上冊(cè)
- 2025年經(jīng)理助理工作計(jì)劃
- 腸胃科護(hù)理工作總結(jié)
- 生物安全柜的使用及維護(hù)培訓(xùn)
- 《NOIP圖的基礎(chǔ)算法》課件
- 《建筑工程QC課題》課件
- 病歷質(zhì)控流程
- 政府采購(gòu)評(píng)審專家考試試題庫(kù)(完整版)
- 合作投資酒店意向合同范例
- 安全教育教案大班40篇
- 叉車工安全培訓(xùn)資料
- 九年級(jí)英語(yǔ)教學(xué)反思
- 外研新標(biāo)準(zhǔn)初中英語(yǔ)七年級(jí)上冊(cè)冊(cè)寒假提升補(bǔ)全對(duì)話短文練習(xí)三附答案解析
- 《旅游消費(fèi)者行為學(xué)》-課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論