版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章基本邏輯電路設(shè)計實例重點知識點
組合電路的VHDL描述時序電路的VHDL描述常用實用電路模塊設(shè)計
組合電路的VHDL描述組合邏輯電路即任意時刻的輸出僅僅取決于該時
刻的輸入,與電路原來的狀態(tài)無關(guān)。但是在設(shè)計中,我們一般以時鐘的存在與否來區(qū)
分該電路的性質(zhì)。組合邏輯電路不需要時鐘,在
使用VHDL語言時,可以采用進程process語句省略了庫聲明和程序包說明ENTITYmux41aISPORT(a,b,c,d:INBIT;s:INBIT_vector(1downto0);y:OUTBIT);ENDENTITYmux41a;ARCHITECTUREoneOFmux41aISBEGINy<=aWHENs=“00〞ELSEbWHENs=“01〞ELSEcWHENs=“10〞ELSEd;ENDARCHITECTUREone;例11位數(shù)據(jù)寬度的4選1數(shù)據(jù)選擇器省略了庫聲明和程序包說明在結(jié)構(gòu)體中采用并行的WHEN_ELSE語句。ENTITYmux41aISPORT(a,b,c,d:INBIT_vector(7downto0);s:INBIT_vector(1downto0);y:OUTBIT_vector(7downto0));ENDENTITYmux41a;ARCHITECTUREoneOFmux41aISBEGINy<=aWHENs=“00〞ELSEbWHENs=“01〞ELSEcWHENs=“10〞ELSEd;ENDARCHITECTUREone;例28位數(shù)據(jù)寬度的4選1數(shù)據(jù)選擇器在進程中采用IF_THEN_ELSE語句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmux81aISPORT(a,b,c,d,e,f,g,h:INBIT_vector(7downto0);s:INBIT_vector(2downto0);y:OUTBIT_vector(7downto0));ENDENTITYmux81a;
接下頁
例38位數(shù)據(jù)寬度的8選1數(shù)據(jù)選擇器
程序包
------------------------------------------------庫ARCHITECTUREoneOFmux81aISBEGINPROCESS(a,b,c,d,e,f,g,h,s)BEGINIFs=“000〞THENy<=a;ELSIFs=“001〞THENy<=b;ELSIFs=“010〞THENy<=c;ELSIFs=“011〞THENy<=d;ELSIFs=“100〞THENy<=e;ELSIFs=“101〞THENy<=f;ELSIFs=“110〞THENy<=g;ELSEy<=h;ENDIF;ENDPROCESS;ENDARCHITECTUREone;進程接上頁XS0S1Y0Y2Y1Y31分4的數(shù)據(jù)分配器例41位數(shù)據(jù)寬度的1分4數(shù)據(jù)分配器數(shù)據(jù)分配器的功能與數(shù)據(jù)選擇器恰好相反,它根據(jù)控制信號S0與S1的不同取值,X端的數(shù)據(jù)將分配到不同的輸出端口輸出。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdemux41aISPORT(X:INBIT;
s0,s1:INBIT;y0,y1,y2,y3:OUTBIT);ENDENTITYdemux41a;程序包庫-------實體ARCHITECTUREoneOFdemux41aIS
SIGNALS:BIT_vector(1downto0);BEGIN
S<=S1&S0;Process(s,x)BeginY0<='0';Y1<='0';Y2<='0';Y3<='0';CasesisWHEN"00"=>Y0<=x;WHEN"01"=>Y1<=x;WHEN"10"=>Y2<=x;WHENothers=>Y3<=x;Endcase;Endprocess;ENDARCHITECTUREone;進程1分4的數(shù)據(jù)分配器的RTL圖1分4的數(shù)據(jù)分配器的時序仿真思考和操作題:如果此條語句去掉,RTL圖和仿真如何?ARCHITECTUREoneOFdemux41aISSIGNALS:BIT_vector(1downto0);BEGINS<=S1&S0;Process(s,x)Begin---Y0<='0';Y1<='0';Y2<='0';Y3<='0';CasesisWHEN"00"=>Y0<=x;WHEN"01"=>Y1<=x;WHEN"10"=>Y2<=x;WHENothers=>Y3<=x;Endcase;Endprocess;ENDARCHITECTUREone;數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是采用2進制,所以輸出結(jié)果表達都是16進制的,為了使輸出的16進制數(shù)據(jù)顯示的更加直觀,使人更容易閱讀和理解,需要采用譯碼器將抽象的16進制數(shù)據(jù)轉(zhuǎn)換為易于閱讀的十進制數(shù)據(jù),然后通過數(shù)碼管顯示。因此,本例子介紹7段數(shù)碼顯示譯碼器設(shè)計.7段數(shù)碼是純組合電路,它是將16進制數(shù)表示的BCD碼轉(zhuǎn)換為10進制數(shù),通過數(shù)碼管顯示為0,1,2,3,4,5,6,7,8,9例57段數(shù)碼顯示譯碼器設(shè)計例57段數(shù)碼顯示譯碼器設(shè)計共陰數(shù)碼管及其電路
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDECL7SIS
PORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));END;ARCHITECTUREoneOFDECL7SISBEGINPROCESS(A)BEGINCASEAISWHEN"0000"=>LED7S<="0111111";----0WHEN"0001"=>LED7S<="0000110";----1WHEN"0010"=>LED7S<="1011011";----2WHEN"0011"=>LED7S<="1001111";----3WHEN"0100"=>LED7S<="1100110";----4WHEN"0101"=>LED7S<="1101101";----5WHEN"0110"=>LED7S<="1111101";----6WHEN"0111"=>LED7S<="0000111";----7WHEN"1000"=>LED7S<="1111111";----8WHEN"1001"=>LED7S<="1101111";----9WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;END;例68-3優(yōu)先編碼器設(shè)計編碼器功能與譯碼器相反,是將較多位數(shù)的碼值編成較少位數(shù)的碼值。優(yōu)先編碼器的編碼原那么是按照由高位到低位的原那么,逐次判斷該位是否為有效數(shù)值0或1,假設(shè)為有效數(shù)值0或1,那么按照該位的位置進行編碼,而忽略后續(xù)各位的數(shù)值。8-3優(yōu)先編碼器的編碼原那么是:8個輸入端中的一個輸入如果有效,如本例為0,那么有一個3位二進編碼輸出;假設(shè)同時有多個輸入端輸入為0,那么輸出優(yōu)先級高的那個輸入端所對應(yīng)的編碼。
輸入 輸出din0din1din2din3din4din5din6din7 output0output1output2
xxxxxxx0000 xxxxxx01100 xxxxx011010 xxxx0111110 xxx01111001 xx011111101 x0111111011 01111111111 注:表中的“x”為任意,類似VHDL中的“-”值。8線-3線優(yōu)先編碼器真值表LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcoderISPORT(din:INSTD_LOGIC_VECTOR(0TO7);output:OUTSTD_LOGIC_VECTOR(0TO2));ENDcoder;ARCHITECTUREbehavOFcoderISBEGINPROCESS(din)BEGIN
IF(din(7)='0')THENoutput<="000";ELSIF(din(6)='0')THENoutput<="100";ELSIF(din(5)='0')THENoutput<="010";ELSIF(din(4)='0')THENoutput<="110";ELSIF(din(3)='0')THENoutput<="001";ELSIF(din(2)='0')THENoutput<="101";ELSIF(din(1)='0')THENoutput<="011";ELSEoutput<="111";ENDIF;ENDPROCESS;ENDbehav;
時序邏輯電路的VHDL描述時序邏輯電路的輸出不但與輸入有關(guān),還和系統(tǒng)
上一個狀態(tài)有關(guān)。時序邏輯電路即電路需要時鐘,在使用VHDL語
言時,必須采用進程process語句。分頻器的設(shè)計分頻器的設(shè)計:有時候根據(jù)需求,需要將周期密的時鐘變?yōu)橹芷谑璧臅r鐘實際上,前面介紹的計數(shù)器在功能上實際也是分頻器,四位計數(shù)器的計數(shù)輸出的最高位信號就是輸入時鐘信號的16分頻,最低位為輸入時鐘的2分頻。對于一些非2的整數(shù)次冪的分頻,如5分頻、6分頻,還需要在根本計數(shù)器電路中加上復(fù)位控制電路entityfenpinisport(clk:instd_logic;--時鐘輸入
dout:outstd_logic);--分頻輸出endfenpin;architecturehavoffenpinissignalqout:std_logic_vector(3downto0);signalf:std_logic;beginprocess(clk)beginif(clk'eventandclk='1')thenif(qout="0011")thenqout<="0000";f<=notf;elseqout<=qout+1;endif;endif;endprocess;dout<=f;endhav;8分頻的程序設(shè)計語句1語句2----8分頻的仿真波形編一個16分頻的程序,并實驗仿真流水燈實驗所謂流水燈,就是讓LED燈的亮滅模擬流水,按照順序使LED燈依次點亮。8個燈依次點亮的流水燈實驗libraryieee;useieee.std_logic_1164.all;use;use;entitylledisport(clk:instd_logic;dout:outstd_logic_vector(7downto0));endlled;architecturehavoflledissignalq:std_logic_vector(7downto0);signald:std_logic_vector(2downto0);beginprocess(clk)beginifclk'eventandclk='1'thend<=d+1;endif;endprocess;withdselectq<="10000000"when"000","01000000"when"001","00100000"when"010","00010000"when"011","00001000"when"100","00000100"when"101","00000010"when"110","00000001"whenothers;dout<=q;endhav;語句1語句2語句3----流水燈仿真編寫一個16個燈依次點亮的流水燈實驗,并仿真數(shù)字鐘的設(shè)計設(shè)計一數(shù)字鐘,具有以下功能:1.具有小時、分鐘、秒計數(shù)顯示功能,以24小時循環(huán)計
時,SECOND模塊為60進制,實現(xiàn)秒計時;MINUTE模塊
為60進制,實現(xiàn)分計時功能;HOUR模塊為24進制,實
現(xiàn)小時計時,整個計數(shù)器具有清零、調(diào)分、調(diào)時功能,而且在接近整點時提供報時信號。2.有驅(qū)動8位七段共陰極數(shù)碼管的片選驅(qū)動信號輸出和七
段碼輸出。在圖中SELTIME模塊產(chǎn)生8位數(shù)碼管的掃描
驅(qū)動信號SEL[2..0]和時鐘顯示數(shù)據(jù)DAOUT[3..0],SEL[2..0]信號經(jīng)過譯碼器后作為數(shù)碼管的位選信號,DELED模塊為7段數(shù)碼管3.分位計數(shù)到59分時,即到整點時,LD1將開始閃爍,并
持續(xù)1分鐘。數(shù)字鐘的設(shè)計74393為雙四位二進制計數(shù)器最后一個74393的Q2B端將輸出時間周期為1秒的脈沖實驗室提供的脈沖信號頻率為4.07MHZ,即該信號的周期為0.0000002457秒16*clk16*16*clk秒脈沖產(chǎn)生模塊秒、分、時模塊Alert整點報時模塊Seltime為小時、分鐘、秒分配相應(yīng)的片選和數(shù)碼管模塊它后面需要接3-8譯碼器,作為8個數(shù)碼管的片選信號它后面需要接數(shù)碼顯示的7段譯碼電路小時分秒清0或復(fù)位DELED為驅(qū)動數(shù)碼管顯示的7段譯碼電路74138為3—8譯碼器ENTITYDFF1ISPORT(D :inBIT;clk:inBIT;Q:outBIT);ENDDFF1;ARCHITECTUREbhvOFDFF1ISSIGNALQ1:STD_LOGIC;BEGIN
PROCESS(CLK,Q1)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=D;ENDIF;ENDPROCESS;Q<=Q1;ENDbhv;D觸發(fā)器的設(shè)計
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK,D1:INSTD_LOGIC;Q1:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISSIGNALA:STD_LOGIC;BEGIN
PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENA<=D1;Q1<=A;ENDIF;ENDPROCESS;END;同步時序電路設(shè)計ARCHITECTUREbhvOFMULTI_DFFISSIGNALQ1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=NOT(Q2ORA);ENDIF;ENDPROCESS;PRO2:PROCESS(Q1)BEGINIFQ1'EVENTANDQ1='1'THENQ2<=D;ENDIF;Q3<=Q2;ENDPROCESS;ENDMULTI_DFF;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMULTI_DFFIS
PORT(CLK:INSTD_LOGIC;D1:INSTD_LOGIC;A:INSTD_LOGIC;Q3:OUTSTD_LOGIC);
END;異步時序電路設(shè)計本卷須知一個進程只允許描述對應(yīng)于一個時鐘信號的同步時序邏輯;異步邏輯最好用多個時鐘進程語句來構(gòu)成。JK觸發(fā)器的設(shè)計JK觸發(fā)器是具有兩個輸入端J和K,且當前輸出結(jié)果與前一刻的輸出結(jié)果有關(guān)。libraryieee;useieee.std_logic_1164.all;use;entityJKisport(J,K,clk:instd_logic;Q:outstd_logic);endJK;architectureoneofJKissignalQ1:std_logic;beginprocess(clk)beginifclk'eventandclk='1'thenQ1<=(Jand(notQ1))or((notK)andQ1);endif;endprocess;Q<=Q1;endone;JK觸發(fā)器的VHDL程序JK觸發(fā)器的功能仿真圖含異步清0和同步時鐘使能的4位計數(shù)器設(shè)計一含計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年自動多排鉆項目合作計劃書
- 2024年中高壓及特殊性能玻璃鋼管項目合作計劃書
- 玉溪師范學(xué)院《公司治理》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024噴繪制作安裝合同書
- 2024中融信托沈陽和泓集合資金信托合同
- 2024廣告牌拆除施工合同參考范文
- 鹽城師范學(xué)院《應(yīng)用隨機過程實驗》2022-2023學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《物聯(lián)網(wǎng)信息安全技術(shù)》2022-2023學(xué)年期末試卷
- 2024年印刷機械專用配件:膠輥項目發(fā)展計劃
- 2024商品房買賣合同書
- 學(xué)做小小理財師
- 流感診療指南
- itil五大流程圖(事件管理、問題管理、變更管理、配置管理、發(fā)布管理)4052
- 《民航危險品運輸》教學(xué)課件 第一章 民航危險品運輸概述
- 寶寶白細胞高怎么回事:新生兒含有白細胞
- 《義務(wù)教育集團化辦學(xué)考核評價辦法》
- 高中音樂《學(xué)會聆聽音樂》第三課時《聯(lián)想與想象》 課件
- 崗位技能矩陣圖
- 腳手架的拆除安全檢查表
- 中國古代茶具課件
- RH真空精煉爐真空系統(tǒng)故障及泄露判斷操作制度
評論
0/150
提交評論