版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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位二進制計數(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矢量的位寬,可以很方便地改變二進制計數(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的上升沿到來時進程被啟動,若load為高電平則將輸入端的8位二進制數(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)機邏輯電路設(shè)計
狀態(tài)機設(shè)計是一類重要的時序電路,是許多邏輯電路的核心部件。是實現(xiàn)高效率、高可靠性邏輯控制的重要途徑。一般狀態(tài)機分類為以下兩種:
MOORE型狀態(tài)機,它的輸出僅僅取決于現(xiàn)態(tài),與輸入無關(guān)。
MEALY型狀態(tài)機,它的輸出不僅取決于現(xiàn)態(tài),還與輸入有關(guān)。
狀態(tài)機程序結(jié)構(gòu)主要由四部分組成:
1)說明部分:定義枚舉型數(shù)據(jù)類型:Typestateis(s1,s2,s3,….);定義現(xiàn)態(tài)和次態(tài)信號:current_state和next_state。
2)主控時序進程:在時鐘驅(qū)動下負責(zé)狀態(tài)轉(zhuǎn)換。只是機械地將代表次態(tài)的信號next_state中的內(nèi)容送入現(xiàn)態(tài)的信號current_state中。
3)主控組合進程:根據(jù)外部輸入的控制信號和當(dāng)前狀態(tài)確定下一狀態(tài)的取向,以及確定當(dāng)前對外的輸出。
4)輔助進程:為了完成某種算法或為了輸出設(shè)置的鎖存器。狀態(tài)機應(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)機的狀態(tài)聲明
signalq:std_logic_vector(0to2);signalstate:states;beginp1:process(clk,clr)--進程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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海交通大學(xué)《教師語言一》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海建橋?qū)W院《數(shù)字音頻處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海濟光職業(yè)技術(shù)學(xué)院《汽車電控系統(tǒng)原理與設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 運營中心項目可行性研究報告-企業(yè)數(shù)字化轉(zhuǎn)型加速運營服務(wù)需求急速攀升
- 上海海洋大學(xué)《中國礦業(yè)大學(xué)“雙碳”》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海海事大學(xué)《薄膜物理與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海海關(guān)學(xué)院《教師語言二》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年九年級道德與法治下冊 第三單元 走向未來的少年 第五課 少年的擔(dān)當(dāng) 第2框 少年當(dāng)自強教學(xué)實錄 新人教版
- 淺談肝移植手術(shù)
- 上海工商外國語職業(yè)學(xué)院《高分子化學(xué)及實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 供電所星級班組創(chuàng)建方案
- 剪叉式升降工作平臺作業(yè)專項施工方案24
- 海康雷達區(qū)間測速卡口專項方案
- 長安大學(xué)畢業(yè)設(shè)計方案開題報告
- 內(nèi)鏡逆行沖洗治療闌尾炎
- MOOC 科技英語翻譯-南京航空航天大學(xué) 中國大學(xué)慕課答案
- 科學(xué)技術(shù)史智慧樹知到期末考試答案2024年
- (2024年)知識產(chǎn)權(quán)全套課件(完整)
- 小學(xué)2024-2025學(xué)年勞動清單
- 醫(yī)保補辦委托書
- (2024年)大學(xué)生就業(yè)指導(dǎo)
評論
0/150
提交評論