課件大三第8章vhdl狀態(tài)機(jī)_第1頁
課件大三第8章vhdl狀態(tài)機(jī)_第2頁
課件大三第8章vhdl狀態(tài)機(jī)_第3頁
課件大三第8章vhdl狀態(tài)機(jī)_第4頁
課件大三第8章vhdl狀態(tài)機(jī)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、EDA技術(shù)與VHDL 第8章VHDL狀態(tài)機(jī) 8.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 8.1.1 類型定義語句 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 ;或TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 ; TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; TYPE BOOLEAN IS

2、(FALSE,TRUE) ; 8.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 8.1.1 類型定義語句 TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; SUBTYPE 子類型名 IS 基本數(shù)據(jù)類型 RANGE 約束范圍; SUBTYPE digits IS INTEGER RANGE 0 to 9 ; 8.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 8.1.2 狀態(tài)機(jī)的優(yōu)勢 1狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn);2由于狀態(tài)機(jī)的結(jié)構(gòu)相對簡單,設(shè)計方案相對固定;3、狀態(tài)機(jī)容易構(gòu)成性能良好的同步時序邏輯模塊;4、與VHDL的其他描述方式相比

3、,狀態(tài)機(jī)的VHDL表述豐富多樣、程序?qū)哟畏置鳎Y(jié)構(gòu)清晰,易讀易懂;在排錯、修改和模塊移植方面也有其獨(dú)到的好處;5、在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢。 6、高可靠性。 8.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 8.1.3 狀態(tài)機(jī)結(jié)構(gòu) 1. 說明部分 ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 8.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 8.1.3 狀態(tài)機(jī)結(jié)構(gòu) 2. 主控時序進(jìn)程 圖5-1 一般狀態(tài)機(jī)結(jié)構(gòu)框圖 5.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 5.1.3 狀態(tài)機(jī)結(jié)構(gòu) 3. 主控組合進(jìn)程

4、 4. 輔助進(jìn)程 【例5-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT INTEGER RANGE 0 TO 15 );END s_machine;ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS (s0, s1, s2, s3); -數(shù)據(jù)類型定義,狀態(tài)符號化 SIGNAL c

5、urrent_state, next_state: FSM_ST;-將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型BEGIN REG: PROCESS (reset,clk) -主控時序進(jìn)程 BEGIN IF reset = 1 THEN current_state = s0;-檢測異步復(fù)位信號 ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THE

6、N next_state=s1; ELSE next_state comb_outputs= 12; IF state_inputs = 11 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv; 5.1 狀態(tài)機(jī)設(shè)計相關(guān)語句 5.1.3 狀態(tài)機(jī)結(jié)構(gòu) 圖5-2 例5-1狀態(tài)機(jī)的工作時序 0001001001001000Q3Q2Q

7、1Q01.需要設(shè)計一個4進(jìn)制計數(shù)器-主控時序進(jìn)程 用以產(chǎn)生系統(tǒng)的穩(wěn)態(tài)。2. 對計數(shù)器的輸出進(jìn)行譯碼,產(chǎn)生需要的輸出-主控組合進(jìn)程用以產(chǎn)生需要的輸出二、狀態(tài)機(jī)的結(jié)構(gòu) 因此, 狀態(tài)機(jī)的基本操作有兩種: (1) 狀態(tài)機(jī)內(nèi)部狀態(tài)轉(zhuǎn)換 狀態(tài)機(jī)的下一個狀態(tài),由當(dāng)前狀態(tài)和輸入條件決定。 (2) 產(chǎn)生輸出信號序列 輸出信號由輸出譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。 在產(chǎn)生輸出的過程中,由是否使用輸入信號可以確定狀態(tài)機(jī)的類型。兩種典型的狀態(tài)機(jī)是摩爾(MOORE)狀態(tài)機(jī)和米立(MEALY)狀態(tài)機(jī)。 另外,還要有說明部分定義枚舉型數(shù)據(jù),用于狀態(tài)的表示輔助進(jìn)程-用于計算、輸出鎖存等。次態(tài)邏輯 狀 態(tài) 寄 存 器輸出電路

8、輸出輸入反饋MOORE狀態(tài)機(jī)次態(tài)現(xiàn)態(tài)次態(tài)邏輯 狀 態(tài) 寄 存 器輸出電路輸出輸入反饋MEALY狀態(tài)機(jī)現(xiàn)態(tài)次態(tài)5.2 Moore 狀態(tài)機(jī)例、 多進(jìn)程狀態(tài)機(jī)的VHDL設(shè)計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 ISPORT(CLK, RESET:IN STD_LOGIC; X:IN STD_LOGIC;Z:OUT STD_LOGIC);END MOORE1;ARCHITECTURE ART OF MOORE1 IS TYPE state IS (s0,s1,s2,s3); SIGNAL current_sate, next_s

9、tate: sate;說明部分s0s2s1s30/01/00/10/00/01/01/01/1x/zBEGINP1:PROCESS (CLK,reset) IS BEGINIF reset=1 THEN current_sate=st0; Elsif (CLK=1AND CLKEVENT) THEN current_satez=“0”; if X=0 then next_state=s1; else next_statez=“0”; if X=0 then next_state=s2; else next_statez=“0”; if X=0 then next_state=s3; else

10、next_statez=“1”; if X=0 then next_state=s0; else next_state=s2; End if;End case;End process P2;END ARCHITECTURE ART; 輸出Z僅與狀態(tài)st1,st1有關(guān),與輸入信號X無關(guān)-MOORE型s0s2s1s30/01/00/10/00/01/01/01/1x/z例、 單進(jìn)程狀態(tài)機(jī)的VHDL設(shè)計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 ISPORT(CLK,reset:IN STD_LOGIC; X:IN STD_LOGI

11、C;Z:OUT STD_LOGIC);END MOORE1;ARCHITECTURE ART OF MOORE1 IS TYPE state IS (s0,s1,s2,s3); SIGNAL current_sate: sate;BEGINP1:PROCESS (CLK) IS BEGINIF reset=1 THEN current_sate if X=0 then current_state=s1; else current_state=s3; End if; Z if X=0 then current_state=s2; else current_state=s0; End if;Zz=

12、“0”; if X=0 then current_state=s3; else current_state=s1; End if; Zz=“0”; if X=0 then current_state=s0; else current_state=s2; End if; Zcurrent_state=s0; end case;End if;End process;End art; 5.3 Mealy狀態(tài)機(jī)1. 與MOORE狀態(tài)機(jī)相比,MEALY狀態(tài)機(jī)的輸出變化要領(lǐng)先一個周期,即一旦輸入信號或狀態(tài)發(fā)生變化,輸出信號即刻發(fā)生變化。2. MOORE機(jī)與MEALY機(jī)在設(shè)計上基本相同。不同的是,在組合進(jìn)程

13、中MEALY的輸出信號是 當(dāng)前狀態(tài)和當(dāng)前輸入的函數(shù)?!纠?米立狀態(tài)機(jī)的VHDL設(shè)計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT(CLK,reset:IN STD_LOGIC; A:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END MEALY1;ARCHITECTURE ART OF MEALY1 IS TYPE states IS (s0,s1,s2,s3); SIGNAL stx: sates;BEGINP1:PROCESS (CLK) IS BEGINI

14、F reset=1 THEN current_sate if A=0 then states if A=1 then states if A=0 then states if A=1 then statesstx if X=0 then Q=“1000”; else Q if X=0 then Q=“1011”; else Q if X=0 then Q=“1010”; else Q if X=0 then Q=“1101”; else QQ=“0000”;End case;End process P1;END ART; 輸出Q不僅與狀態(tài)st0有關(guān),還與輸入信號X有關(guān)-MEALY型【例】狀態(tài)機(jī)

15、的VHDL設(shè)計模型。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY S_MACHINE IS PORT(CLK,RESET:IN STD_LOGIC; A:IN STD_LOGIC_VECTOR(0 TO 1); Y:OUT STD_LOGIC_VECTOR(0 TO 1);END S_MACHINE;ARCHITECTURE ART OF S_MACHINE ISTYPE STATES IS (ST0,ST1,ST2,ST3); -定義STATES為枚舉型數(shù)據(jù)類型SIGNAL CURRENT_STATE,NEXT_STATE:STATES;BE

16、GINREG:PROCESS (RESET,CLK) IS -時序邏輯進(jìn)程BEGINIF RESET=1 THEN CURRENT_STATE=ST0; -異步復(fù)位ELSIF (CLK=1 AND CLKEVENT) THENCURRENT_STATEY=“00”;-初始態(tài)譯碼輸出“00” IF A=“00” THEN -根據(jù)外部的狀態(tài)控制輸入“00”NEXT_STATE=ST0; -在下一時鐘后,進(jìn)程REG的狀態(tài)將維持為 ST0ELSENEXT_STATEY=“01”;IF A =“00” THEN NEXT_STATE=ST1; ELSENEXT_STATEY=“10”;IF A=“11”THENNEXT_STATE=ST2;E

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論