版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章基本邏輯電路設(shè)計(jì)實(shí)例重點(diǎn)知識(shí)點(diǎn)
組合電路的VHDL描述時(shí)序電路的VHDL描述常用實(shí)用電路模塊設(shè)計(jì)
組合電路的VHDL描述組合邏輯電路即任意時(shí)刻的輸出僅僅取決于該時(shí)
刻的輸入,與電路原來(lái)的狀態(tài)無(wú)關(guān)。但是在設(shè)計(jì)中,我們一般以時(shí)鐘的存在與否來(lái)區(qū)
分該電路的性質(zhì)。組合邏輯電路不需要時(shí)鐘,在
使用VHDL語(yǔ)言時(shí),可以采用進(jìn)程process語(yǔ)句省略了庫(kù)聲明和程序包說(shuō)明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ù)選擇器省略了庫(kù)聲明和程序包說(shuō)明在結(jié)構(gòu)體中采用并行的WHEN_ELSE語(yǔ)句。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ù)選擇器在進(jìn)程中采用IF_THEN_ELSE語(yǔ)句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;
接下頁(yè)
例38位數(shù)據(jù)寬度的8選1數(shù)據(jù)選擇器
程序包
------------------------------------------------庫(kù)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;進(jìn)程接上頁(yè)XS0S1Y0Y2Y1Y31分4的數(shù)據(jù)分配器例41位數(shù)據(jù)寬度的1分4數(shù)據(jù)分配器數(shù)據(jù)分配器的功能與數(shù)據(jù)選擇器恰好相反,它根據(jù)控制信號(hào)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;程序包庫(kù)-------實(shí)體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;進(jìn)程1分4的數(shù)據(jù)分配器的RTL圖1分4的數(shù)據(jù)分配器的時(shí)序仿真思考和操作題:如果此條語(yǔ)句去掉,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ù)處理和運(yùn)算都是采用2進(jìn)制,所以輸出結(jié)果表達(dá)都是16進(jìn)制的,為了使輸出的16進(jìn)制數(shù)據(jù)顯示的更加直觀,使人更容易閱讀和理解,需要采用譯碼器將抽象的16進(jìn)制數(shù)據(jù)轉(zhuǎn)換為易于閱讀的十進(jìn)制數(shù)據(jù),然后通過(guò)數(shù)碼管顯示。因此,本例子介紹7段數(shù)碼顯示譯碼器設(shè)計(jì).7段數(shù)碼是純組合電路,它是將16進(jìn)制數(shù)表示的BCD碼轉(zhuǎn)換為10進(jìn)制數(shù),通過(guò)數(shù)碼管顯示為0,1,2,3,4,5,6,7,8,9例57段數(shù)碼顯示譯碼器設(shè)計(jì)例57段數(shù)碼顯示譯碼器設(shè)計(jì)共陰數(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è)計(jì)編碼器功能與譯碼器相反,是將較多位數(shù)的碼值編成較少位數(shù)的碼值。優(yōu)先編碼器的編碼原那么是按照由高位到低位的原那么,逐次判斷該位是否為有效數(shù)值0或1,假設(shè)為有效數(shù)值0或1,那么按照該位的位置進(jìn)行編碼,而忽略后續(xù)各位的數(shù)值。8-3優(yōu)先編碼器的編碼原那么是:8個(gè)輸入端中的一個(gè)輸入如果有效,如本例為0,那么有一個(gè)3位二進(jìn)編碼輸出;假設(shè)同時(shí)有多個(gè)輸入端輸入為0,那么輸出優(yōu)先級(jí)高的那個(gè)輸入端所對(duì)應(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;
時(shí)序邏輯電路的VHDL描述時(shí)序邏輯電路的輸出不但與輸入有關(guān),還和系統(tǒng)
上一個(gè)狀態(tài)有關(guān)。時(shí)序邏輯電路即電路需要時(shí)鐘,在使用VHDL語(yǔ)
言時(shí),必須采用進(jìn)程process語(yǔ)句。分頻器的設(shè)計(jì)分頻器的設(shè)計(jì):有時(shí)候根據(jù)需求,需要將周期密的時(shí)鐘變?yōu)橹芷谑璧臅r(shí)鐘實(shí)際上,前面介紹的計(jì)數(shù)器在功能上實(shí)際也是分頻器,四位計(jì)數(shù)器的計(jì)數(shù)輸出的最高位信號(hào)就是輸入時(shí)鐘信號(hào)的16分頻,最低位為輸入時(shí)鐘的2分頻。對(duì)于一些非2的整數(shù)次冪的分頻,如5分頻、6分頻,還需要在根本計(jì)數(shù)器電路中加上復(fù)位控制電路entityfenpinisport(clk:instd_logic;--時(shí)鐘輸入
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è)計(jì)語(yǔ)句1語(yǔ)句2----8分頻的仿真波形編一個(gè)16分頻的程序,并實(shí)驗(yàn)仿真流水燈實(shí)驗(yàn)所謂流水燈,就是讓LED燈的亮滅模擬流水,按照順序使LED燈依次點(diǎn)亮。8個(gè)燈依次點(diǎn)亮的流水燈實(shí)驗(yàn)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;語(yǔ)句1語(yǔ)句2語(yǔ)句3----流水燈仿真編寫一個(gè)16個(gè)燈依次點(diǎn)亮的流水燈實(shí)驗(yàn),并仿真數(shù)字鐘的設(shè)計(jì)設(shè)計(jì)一數(shù)字鐘,具有以下功能:1.具有小時(shí)、分鐘、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)
時(shí),SECOND模塊為60進(jìn)制,實(shí)現(xiàn)秒計(jì)時(shí);MINUTE模塊
為60進(jìn)制,實(shí)現(xiàn)分計(jì)時(shí)功能;HOUR模塊為24進(jìn)制,實(shí)
現(xiàn)小時(shí)計(jì)時(shí),整個(gè)計(jì)數(shù)器具有清零、調(diào)分、調(diào)時(shí)功能,而且在接近整點(diǎn)時(shí)提供報(bào)時(shí)信號(hào)。2.有驅(qū)動(dòng)8位七段共陰極數(shù)碼管的片選驅(qū)動(dòng)信號(hào)輸出和七
段碼輸出。在圖中SELTIME模塊產(chǎn)生8位數(shù)碼管的掃描
驅(qū)動(dòng)信號(hào)SEL[2..0]和時(shí)鐘顯示數(shù)據(jù)DAOUT[3..0],SEL[2..0]信號(hào)經(jīng)過(guò)譯碼器后作為數(shù)碼管的位選信號(hào),DELED模塊為7段數(shù)碼管3.分位計(jì)數(shù)到59分時(shí),即到整點(diǎn)時(shí),LD1將開(kāi)始閃爍,并
持續(xù)1分鐘。數(shù)字鐘的設(shè)計(jì)74393為雙四位二進(jìn)制計(jì)數(shù)器最后一個(gè)74393的Q2B端將輸出時(shí)間周期為1秒的脈沖實(shí)驗(yàn)室提供的脈沖信號(hào)頻率為4.07MHZ,即該信號(hào)的周期為0.0000002457秒16*clk16*16*clk秒脈沖產(chǎn)生模塊秒、分、時(shí)模塊Alert整點(diǎn)報(bào)時(shí)模塊Seltime為小時(shí)、分鐘、秒分配相應(yīng)的片選和數(shù)碼管模塊它后面需要接3-8譯碼器,作為8個(gè)數(shù)碼管的片選信號(hào)它后面需要接數(shù)碼顯示的7段譯碼電路小時(shí)分秒清0或復(fù)位DELED為驅(qū)動(dòng)數(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è)計(jì)
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í)序電路設(shè)計(jì)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í)序電路設(shè)計(jì)本卷須知一個(gè)進(jìn)程只允許描述對(duì)應(yīng)于一個(gè)時(shí)鐘信號(hào)的同步時(shí)序邏輯;異步邏輯最好用多個(gè)時(shí)鐘進(jìn)程語(yǔ)句來(lái)構(gòu)成。JK觸發(fā)器的設(shè)計(jì)JK觸發(fā)器是具有兩個(gè)輸入端J和K,且當(dāng)前輸出結(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和同步時(shí)鐘使能的4位計(jì)數(shù)器設(shè)計(jì)一含計(jì)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項(xiàng)旅游包車服務(wù)協(xié)議:2024年限定
- 2024版工廠生產(chǎn)承包合同書模板
- 兩人合伙開(kāi)店簡(jiǎn)單協(xié)議書 2篇
- 2024版智能安防系統(tǒng)設(shè)計(jì)與實(shí)施合同
- 專業(yè)酒店床墊采購(gòu)協(xié)議(2024版)版B版
- 2024年裝修工程承包合同樣本版
- 2024配電箱安裝勞務(wù)合同
- 2024旅行社與酒店就旅游團(tuán)隊(duì)接待合同
- 2024版上海市二手房買賣居間合同規(guī)范
- 二零二五年度賓館員工福利保障合同范本3篇
- 《道路車輛 48V供電電壓的電氣及電子部件 電性能要求和試驗(yàn)方法》文本以及編制說(shuō)明
- 十八項(xiàng)醫(yī)療核心制度考試題與答案
- 2024年鄂爾多斯市國(guó)資產(chǎn)投資控股集團(tuán)限公司招聘管理單位遴選500模擬題附帶答案詳解
- 篝火晚會(huì)流程
- 船形烏頭提取工藝優(yōu)化
- 財(cái)務(wù)總監(jiān)個(gè)人述職報(bào)告
- 居家養(yǎng)老護(hù)理人員培訓(xùn)方案
- 江蘇省無(wú)錫市2024年中考語(yǔ)文試卷【附答案】
- 管理者的九大財(cái)務(wù)思維
- 四年級(jí)上冊(cè)數(shù)學(xué)應(yīng)用題練習(xí)100題附答案
- 2024年度中國(guó)電建集團(tuán)北京勘測(cè)設(shè)計(jì)研究院限公司校園招聘高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論