版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第四章
用VHDL程序?qū)崿F(xiàn)常用邏輯電路4.1組合邏輯電路設(shè)計1基本邏輯門
基本邏輯門電路有與門、或門、非門、與非門、異或門和異或非門等,用VHDL語言來描述十分方便.其源程序如下:
libraryieee;useiee.std_logic_1164.all;entityjbmis
port(a,b:inbit;f1,f2,f3,f4,f5,f:outbit);endjbm;architectureaofjbmisbegin
f1<=aandb;--構(gòu)成與門
f2<=aorb;--構(gòu)成或門
f<=nota;--構(gòu)成非門
f3<=anandb;--構(gòu)成與非門
f4<=anorb;--構(gòu)成異或門
f5<=not(a
xorb);--構(gòu)成異或非門即同門
end;2三態(tài)門源程序如下:
libraryieee;useieee.std_logic_1164.all;entitytri_sis
port(enable:instd_logic;
datain:instd_logic_vector(7downto0);
dataout:outstd_logic_vector(7downto0));endtri_s;architecturebhvoftri_sisbegin
process(enable,datain)beginifenable='1'then
dataout<=datain;else
dataout<="ZZZZZZZZ";endif;endprocess;endbhv;8位三態(tài)控制門電路dataout[7..0]comb[7..0]datain[7..0]enableIO_BUF(TRI)3.三線-八線譯碼器三線-八線譯碼器的輸出有效電平為低電平,譯碼器的使能控制輸入端g1、g2a、g2b有效時,當(dāng)3線數(shù)據(jù)輸入端:
cba=000時,y[7…0]=11111110(即y[0]=0);
cba=001時,y[7…0]=11111101(即y[1]=0);
cba=111時,y[7…0]=01111111(即y[7]=0);
三八譯碼器端口圖:
源程序如下:--實體libraryieee;useieee.std_logic_1164.all;entitydecoder3_8isport(a,b,c,g1,g2a,g2b:instd_logic;y:outstd_logic_vector(7downto0));enddecoder3_8;
結(jié)構(gòu)體描述(下頁)architectureaofdecoder3_8issignaldz:std_logic_vector(2downto0);begin
dz<=c&b&a;process(dz,g1,g2a,g2b)beginif(g1='1'andg2a='0'andg2b='0')thencasedziswhen"000"=>y<="11111110";when"001"=>y<="11111101";when"010"=>y<="11111011";when"011"=>y<="11110111";when"100"=>y<="11101111";when"101"=>y<="11011111";when"110"=>y<="10111111";when"111"=>y<="01111111";whenothers=>y<="XXXXXXXX";endcase;elsey<="11111111";endif;endprocess;end;4.七段碼譯碼器七段碼的輸出去驅(qū)動七段碼顯示器,才能顯示正常的數(shù)字。下圖為共陰極數(shù)碼管顯示器。
共陰極數(shù)碼管顯示器電路示意圖分別顯示0~9和A、B、C、D、E、F等16個數(shù)碼,其源程序如下:
--實體描述libraryieee;useieee.std_logic_1164.allentitydecl7sisport(a:instd_logic_vector(3downto0);led7s:outstd_logic_vector(6downto0));enddecl7s;結(jié)構(gòu)體描述見下頁結(jié)構(gòu)體描述:architecturebehaveofdecl7sisbegin
process(a)begincaseaiswhen"0000"=>led7s<="0111111";when"0001"=>led7s<="0000110";when"0010"=>led7s<="1011011";when"0011"=>led7s<="1001111";when"0100"=>led7s<="1100110";when"0101"=>led7s<="1101101";when"0110"=>led7s<="1111101";when"0111"=>led7s<="0000111";when"1000"=>led7s<="1111111";when"1001"=>led7s<="1101111";when"1010"=>led7s<="1110111";when"1011"=>led7s<="1111100";when"1100"=>led7s<="0111001";when"1101"=>led7s<="1011110";when"1110"=>led7s<="1111001";when"1111"=>led7s<="1110001";whenothers=>null;endcase;endprocess;endbehave;5.多位加(減)法器
以4位全減器為例來說明。程序說明:該例利用行為描述模式描述全減器。兩個數(shù)夠減,高借位值為0;兩個數(shù)不夠減,需要向高位借1位,這時高借位值為1,由于有借位,所以差值是大于或等于0的數(shù)。
--實體描述
libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;entityjianfaqiis
port(a,b:instd_logic_vector(0to3);c0:instd_logic;c1:outstd_logic;d:outstd_logic_vector(0to3));end;--結(jié)構(gòu)體描述:architectureaofjianfaqiisbeginprocessbeginifa>b+c0thend<=a-(b+c0);c1<='0';elsec1<='1';d<=("10000")-(b+c0-a);endif;endprocess;end;4.2時序邏輯電路設(shè)計1觸發(fā)器
觸發(fā)器是構(gòu)成時序邏輯電路的基本元件,常用的觸發(fā)器包括RS觸發(fā)器、D觸發(fā)器、JK觸發(fā)器、T觸發(fā)器等類型。下面僅介紹同步復(fù)位D觸發(fā)器。源程序如下:
libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;entitysyndffis
port(d,clk,reset:in
std_logic;
q,qb:out
std_logic);endsyndff;--結(jié)構(gòu)體描述:architecturedff_artofsyndffisbegin
process(clk)beginif(clk'eventandclk='1')thenif(reset='0')thenq<='0';
qb<='1';elseq<=d;
qb<=notq;endif;endif;endprocess;enddff_art;
2計數(shù)器以n位二進(jìn)制計數(shù)器設(shè)計為例。源程序如下:--實體描述
libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt4IS port(clk:instd_logic; q:outstd_logic_vector(3downto0)); endcnt4;改變std_logic_vector矢量的位寬,可以很方便地改變二進(jìn)制計數(shù)器的模。--結(jié)構(gòu)體描述:architecturebehaveofcnt4issignalq1:std_logic_vector(3downto0);begin
process(clk)beginif(clk'eventandclk='1')then q1<=q1+1;
endif;endprocess;q<=q1;endbehave;3移位寄存器設(shè)計一個帶有并行預(yù)置功能的8位右移移位寄存器。端口:
clk是移位時鐘信號;
din是8位并行預(yù)置數(shù)據(jù)端口;
load是并行數(shù)據(jù)預(yù)置使能信號;
qb是串行輸出端口。當(dāng)clk的上升沿到來時進(jìn)程被啟動,若load為高電平則將輸入端的8位二進(jìn)制數(shù)并行置入移位寄存器中,作為串行右移輸出的初始值;若load為低電平,則執(zhí)行reg8(6downto0):=reg8(7downto1)。8個脈沖后完成了并-串轉(zhuǎn)化的功能,并將最低位首先輸出。源程序如下:libraryieee;usestd_logic_1164.all;entityshfrtis--8位右移寄存器
port(clk,load:instd_logic;din:instd_logic_vector(7downto0);
qb:outstd_logic);end;architectureoneofshfrtisbeginprocess(clk,load)variablereg8:std_logic_vector(7downto0);beginifclk'eventandclk='1'then--檢測時鐘上升沿
ifload='1'thenreg8::=din;--由(load='1')裝載新數(shù)據(jù)
elsereg8(6downto0):=reg8(7downto1);endif;endif;
qb<=reg8(0);--輸出最低位endprocess;endone;4.3狀態(tài)機(jī)邏輯電路設(shè)計
狀態(tài)機(jī)設(shè)計是一類重要的時序電路,是許多邏輯電路的核心部件。是實現(xiàn)高效率、高可靠性邏輯控制的重要途徑。一般狀態(tài)機(jī)分類為以下兩種:
MOORE型狀態(tài)機(jī),它的輸出僅僅取決于現(xiàn)態(tài),與輸入無關(guān)。
MEALY型狀態(tài)機(jī),它的輸出不僅取決于現(xiàn)態(tài),還與輸入有關(guān)。
狀態(tài)機(jī)程序結(jié)構(gòu)主要由四部分組成:
1)說明部分:定義枚舉型數(shù)據(jù)類型:Typestateis(s1,s2,s3,….);定義現(xiàn)態(tài)和次態(tài)信號:current_state和next_state。
2)主控時序進(jìn)程:在時鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)換。只是機(jī)械地將代表次態(tài)的信號next_state中的內(nèi)容送入現(xiàn)態(tài)的信號current_state中。
3)主控組合進(jìn)程:根據(jù)外部輸入的控制信號和當(dāng)前狀態(tài)確定下一狀態(tài)的取向,以及確定當(dāng)前對外的輸出。
4)輔助進(jìn)程:為了完成某種算法或為了輸出設(shè)置的鎖存器。狀態(tài)機(jī)應(yīng)用舉例:
設(shè)計一個循環(huán)彩燈控制器,該控制器控制紅、綠、黃三個發(fā)光管循環(huán)發(fā)亮(紅發(fā)光管亮2秒,綠發(fā)光管亮3秒,黃發(fā)光管亮1秒)。
其源程序如下:
--實體描述:
libraryieee;useieee.std_logic_1164.all;entityasm_ledis
port(clk,clr:instd_logic;led1,led2,led3:outstd_logic);end;
結(jié)構(gòu)體描述見下頁:architectureaofasm_ledistypestatesis(s0,s1,s2,s3,s4,s5); --對狀態(tài)機(jī)的狀態(tài)聲明
signalq:std_logic_vector(0to2);signalstate:states;beginp1:process(clk,clr)--進(jìn)程1begin
if(clr='0')thenstate<=s0;
elsif(clk'eventandclk='1')thencasestateiswhens0=>state<=s1;whens1=>state<=s2;whens2=>state<=s3;whens3=>state<=s4;whens4=>s
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 常用版建筑工程工程合同(標(biāo)準(zhǔn)版)
- DB1331-T 057-2023 生鮮農(nóng)產(chǎn)品倉儲保鮮關(guān)鍵指標(biāo)參數(shù)一體化采集規(guī)范
- 產(chǎn)品購銷合同樣本(標(biāo)準(zhǔn)版)
- 營業(yè)場地租用合同(標(biāo)準(zhǔn)版)
- A特種設(shè)備相關(guān)管理(A8場(廠)內(nèi)專用機(jī)動車輛)考試題庫及答案
- 糖尿病酮癥酸中毒診療指南中國2型糖尿病防治指南(2020年版)
- 2023年鐵路罐車項目調(diào)研分析報告
- 建筑售樓模型2024年
- 2024年氧氣乙炔采購合同
- 語文-2024年秋季七年級入學(xué)分班考試模擬卷(重慶專用)02(答案及評分標(biāo)準(zhǔn))
- 第十屆全國高中數(shù)學(xué)優(yōu)課-基本不等式
- 中國藥科大學(xué)2008年藥學(xué)綜合(一)(含答案)考研真題
- 包裝設(shè)計從入門到精通
- 實時場景下基于知識蒸餾的語義分割方法
- Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)采集第二套答案
- 廣東省信宜市第二中學(xué)高三上學(xué)期地理一輪復(fù)習(xí)課件17陸地水體及其相互關(guān)系課件
- 綠植租擺服務(wù)投標(biāo)方案(技術(shù)方案)
- 《戚風(fēng)蛋糕制作》教學(xué)設(shè)計
- 《別了“不列顛尼亞”》《縣委書記的榜樣-焦裕祿》 統(tǒng)編版高中語文選擇性必修上冊
- 3 物聯(lián)網(wǎng)設(shè)備識別 3.1 EPC碼
- 離婚協(xié)議書電子版下載
評論
0/150
提交評論