第7章_有限狀態(tài)機(jī)的設(shè)計_第1頁
第7章_有限狀態(tài)機(jī)的設(shè)計_第2頁
第7章_有限狀態(tài)機(jī)的設(shè)計_第3頁
第7章_有限狀態(tài)機(jī)的設(shè)計_第4頁
第7章_有限狀態(tài)機(jī)的設(shè)計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7章章有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計 第第7 7章章 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計7.1 概述概述7.2 一般有限狀態(tài)機(jī)的設(shè)計一般有限狀態(tài)機(jī)的設(shè)計7.3 Moore型狀態(tài)機(jī)的設(shè)計型狀態(tài)機(jī)的設(shè)計7.4 Mealy型狀態(tài)機(jī)的設(shè)計型狀態(tài)機(jī)的設(shè)計7.5 狀態(tài)編碼狀態(tài)編碼7.6 狀態(tài)機(jī)剩余狀態(tài)處理狀態(tài)機(jī)剩余狀態(tài)處理7.1 概述概述7.1.1 關(guān)于狀態(tài)機(jī)關(guān)于狀態(tài)機(jī)7.1.2 狀態(tài)機(jī)的特點狀態(tài)機(jī)的特點7.1.3 狀態(tài)機(jī)的基本結(jié)構(gòu)和功能狀態(tài)機(jī)的基本結(jié)構(gòu)和功能7.1.1 關(guān)于狀態(tài)機(jī)關(guān)于狀態(tài)機(jī) 有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(Finite State Machine FSM) )是由是由狀狀態(tài)寄存器和組合邏輯電路態(tài)寄存

2、器和組合邏輯電路構(gòu)成的,能夠根據(jù)控制信號構(gòu)成的,能夠根據(jù)控制信號按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,屬于一種按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,屬于一種同步時同步時序邏輯電路序邏輯電路。 狀態(tài)機(jī)就是一種存在于理論中的機(jī)器,它具有以狀態(tài)機(jī)就是一種存在于理論中的機(jī)器,它具有以下的特點:下的特點:1. 它有記憶的能力,能夠記住自己當(dāng)前的狀態(tài)。它有記憶的能力,能夠記住自己當(dāng)前的狀態(tài)。2. 它可以接收輸入,根據(jù)輸入的內(nèi)容和自己的狀態(tài),它可以接收輸入,根據(jù)輸入的內(nèi)容和自己的狀態(tài),修改自己的狀態(tài),并且可以得到輸出。修改自己的狀態(tài),并且可以得到輸出。3. 當(dāng)它進(jìn)入某個特殊的狀態(tài)(停機(jī)狀態(tài))的時候,它當(dāng)它進(jìn)入某個特殊的

3、狀態(tài)(停機(jī)狀態(tài))的時候,它不再接收輸入,停止工作。不再接收輸入,停止工作。Mealy( (米立米立) )型型outputs=f(current_states)Moore( (摩爾摩爾) )型型outputs=f(current_states,inputs)用用VHDL設(shè)計的狀態(tài)機(jī)的分類設(shè)計的狀態(tài)機(jī)的分類: :(1)(1)按按信號輸出方式信號輸出方式分分: :(4)(4)從從狀態(tài)編碼方式狀態(tài)編碼方式分分: :(3)(3)從從狀態(tài)表達(dá)方式狀態(tài)表達(dá)方式分分: : 符號化符號化狀態(tài)機(jī)和狀態(tài)機(jī)和確定狀態(tài)編碼確定狀態(tài)編碼的狀態(tài)機(jī)的狀態(tài)機(jī). .順序編碼順序編碼、一位熱碼編碼一位熱碼編碼和和其他編碼其他編碼方

4、式狀態(tài)機(jī)方式狀態(tài)機(jī)(2)(2)從從結(jié)構(gòu)結(jié)構(gòu)上分上分: :單進(jìn)程單進(jìn)程和和多進(jìn)程多進(jìn)程. .Moore型有限狀態(tài)機(jī)示意圖Mealy型有限狀態(tài)機(jī)示意圖7.1.2 狀態(tài)機(jī)的特點狀態(tài)機(jī)的特點(1)有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式順序方式控控制不靈活的缺點。制不靈活的缺點。(運(yùn)行方式上類似于控制靈活和運(yùn)行方式上類似于控制靈活和方便的方便的CPU,在運(yùn)行速度和工作可靠性方面都優(yōu)于在運(yùn)行速度和工作可靠性方面都優(yōu)于CPU)(2)狀態(tài)機(jī)的結(jié)構(gòu)模式相對簡單狀態(tài)機(jī)的結(jié)構(gòu)模式相對簡單,設(shè)計方案相對固設(shè)計方案相對固定定,特別是可以定義特別是可以定義符號化枚舉類型的狀態(tài)符號化枚舉類型的

5、狀態(tài)。(3)狀態(tài)機(jī)容易構(gòu)成性能良好的狀態(tài)機(jī)容易構(gòu)成性能良好的同步時序邏輯同步時序邏輯模塊。模塊。有利于消除大規(guī)模邏輯電路設(shè)計中的競爭冒險現(xiàn)象有利于消除大規(guī)模邏輯電路設(shè)計中的競爭冒險現(xiàn)象, , 提供了多種設(shè)計方案消除電路中的毛刺提供了多種設(shè)計方案消除電路中的毛刺. .(4)與與VHDL的其他描述方式相比的其他描述方式相比, ,狀態(tài)機(jī)的狀態(tài)機(jī)的VHDL表述豐富多樣表述豐富多樣, ,程序?qū)哟畏置鞒绦驅(qū)哟畏置? ,結(jié)構(gòu)清晰結(jié)構(gòu)清晰, ,易讀易懂易讀易懂, ,在排錯、修改和模塊移植方面也有其獨到的特點。在排錯、修改和模塊移植方面也有其獨到的特點。(5)在在高速運(yùn)算和控制方面高速運(yùn)算和控制方面,狀態(tài)機(jī)更有

6、其巨大的,狀態(tài)機(jī)更有其巨大的優(yōu)勢。優(yōu)勢。 一般由狀態(tài)機(jī)構(gòu)成的硬件系統(tǒng)比一般由狀態(tài)機(jī)構(gòu)成的硬件系統(tǒng)比CPU所能完成同所能完成同樣功能的軟件系統(tǒng)的工作速度要高樣功能的軟件系統(tǒng)的工作速度要高3-4個數(shù)量級個數(shù)量級. .(6)就就可靠性可靠性而言而言,狀態(tài)機(jī)的優(yōu)勢也是十分明顯的。狀態(tài)機(jī)的優(yōu)勢也是十分明顯的。1.1.由純硬件電路構(gòu)成由純硬件電路構(gòu)成, ,不存在不存在CPU運(yùn)行軟件過程中運(yùn)行軟件過程中許多固有的缺陷。許多固有的缺陷。2.2.狀態(tài)機(jī)的設(shè)計中能使用各種完整的狀態(tài)機(jī)的設(shè)計中能使用各種完整的容錯容錯技術(shù)。技術(shù)。3.3.當(dāng)狀態(tài)機(jī)進(jìn)入當(dāng)狀態(tài)機(jī)進(jìn)入非法狀態(tài)非法狀態(tài)并從中跳出,進(jìn)入正常狀并從中跳出,進(jìn)入正

7、常狀態(tài)所耗的時間十分短暫態(tài)所耗的時間十分短暫( (約數(shù)十個微秒約數(shù)十個微秒) ),尚不足以,尚不足以對系統(tǒng)的運(yùn)行構(gòu)成損害。對系統(tǒng)的運(yùn)行構(gòu)成損害。7.1.3 狀態(tài)機(jī)的基本結(jié)構(gòu)和功能狀態(tài)機(jī)的基本結(jié)構(gòu)和功能狀態(tài)狀態(tài)譯碼譯碼器器狀態(tài)狀態(tài)寄存寄存器器輸輸出出譯譯碼碼器器輸出輸出輸入輸入反饋反饋組合邏輯組合邏輯狀態(tài)狀態(tài)圖圖7-1 狀態(tài)機(jī)的結(jié)構(gòu)示意圖狀態(tài)機(jī)的結(jié)構(gòu)示意圖狀態(tài)機(jī)的兩種基本操作:狀態(tài)機(jī)的兩種基本操作:(1)(1)狀態(tài)機(jī)內(nèi)部狀態(tài)轉(zhuǎn)換狀態(tài)機(jī)內(nèi)部狀態(tài)轉(zhuǎn)換. .狀態(tài)機(jī)經(jīng)歷一系列狀態(tài)機(jī)經(jīng)歷一系列狀態(tài)狀態(tài), ,下一狀態(tài)由狀態(tài)譯碼器根據(jù)當(dāng)前狀態(tài)下一狀態(tài)由狀態(tài)譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。和輸入條件決定。(2

8、)(2)產(chǎn)生輸出序列產(chǎn)生輸出序列. .輸出信號由輸出譯碼器根輸出信號由輸出譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。據(jù)當(dāng)前狀態(tài)和輸入條件決定。7.2 一般有限狀態(tài)機(jī)的設(shè)計一般有限狀態(tài)機(jī)的設(shè)計7.2.1 一般有限狀態(tài)機(jī)的組成一般有限狀態(tài)機(jī)的組成7.2.2 設(shè)計實例設(shè)計實例7.2.1 一般有限狀態(tài)機(jī)的組成一般有限狀態(tài)機(jī)的組成 一般的狀態(tài)機(jī)通常包含一般的狀態(tài)機(jī)通常包含說明部分、時序進(jìn)程、說明部分、時序進(jìn)程、組合進(jìn)程、輔助進(jìn)程組合進(jìn)程、輔助進(jìn)程等幾個部分。等幾個部分。1.1.說明部分說明部分 說明部分定義說明部分定義新的枚舉類型新的枚舉類型,其元素即為狀態(tài)其元素即為狀態(tài)機(jī)的所有狀態(tài)。狀態(tài)變量機(jī)的所有狀態(tài)。狀態(tài)

9、變量(現(xiàn)態(tài)和次態(tài)現(xiàn)態(tài)和次態(tài))定義為信號,定義為信號,并且狀態(tài)變量的數(shù)據(jù)類型為前述的枚舉類型。并且狀態(tài)變量的數(shù)據(jù)類型為前述的枚舉類型。如:如: type state_type is(start_state,run_state,error_state);Signal current_state,next_state :state_type;2. .時序進(jìn)程時序進(jìn)程 時序進(jìn)程負(fù)責(zé)時序進(jìn)程負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時鐘驅(qū)動下負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)換狀態(tài)轉(zhuǎn)換圖圖7-2 一般狀態(tài)機(jī)的工作示意圖一般狀態(tài)機(jī)的工作示意圖comb_outputsstate_inputsresetclkFSM:s_mach

10、ineCOMnext_statecurrent_statePROCESSREGPROCESS4. .輔助進(jìn)程輔助進(jìn)程用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時序進(jìn)程用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時序進(jìn)程.(如如為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存器等為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存器等)。組合進(jìn)程的任務(wù)是根據(jù)組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號外部輸入的控制信號(包(包括來自狀態(tài)機(jī)外部的信號和來自狀態(tài)機(jī)內(nèi)部其它的信括來自狀態(tài)機(jī)外部的信號和來自狀態(tài)機(jī)內(nèi)部其它的信號)和號)和當(dāng)前狀態(tài)的值確定下一狀態(tài)當(dāng)前狀態(tài)的值確定下一狀態(tài)( (next_state) )的取值的取值內(nèi)容內(nèi)容,以及,以及確定對外輸出或?qū)?nèi)部其它組合或時序進(jìn)

11、確定對外輸出或?qū)?nèi)部其它組合或時序進(jìn)程輸出控制信號的內(nèi)容。程輸出控制信號的內(nèi)容。3. .組合進(jìn)程組合進(jìn)程7.2.2 設(shè)計實例一設(shè)計實例一【例【例7-1】?!磕?計數(shù)器計數(shù)器v1) 確定狀態(tài)數(shù)以及狀態(tài)之間的轉(zhuǎn)換關(guān)系2)明確狀態(tài)分配關(guān)系vlibrary ieee;vuse ieee.std_logic_1164.all;ventity cnt5 isvport(clk:in std_logic;v y:out std_logic_vector(2 downto 0);v co:out std_logic);vend;varchitecture b1 of cnt5 isvtype state is

12、 (s0,s1,s2,s3,s4);vsignal c_state,n_state:state;vbeginvreg:process(clk)vbeginvif clkevent and clk=1 thenvc_staten_state=s1;vy=001;vcon_state=s2;vy=010;vcon_state=s3;vy=011;vcon_state=s4;vy=100;vcon_state=s0;vy=000;vcon_state=s0;vy=XXX;vco=X;vend case;end process;end;例例7-17-1狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖7.2.2 設(shè)

13、計實例二設(shè)計實例二【例【例7-27-2】一般狀態(tài)機(jī)描述】一般狀態(tài)機(jī)描述( (摩爾型摩爾型) )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 STD_LOGIC_VECTOR(0 TO 1);END s_machine;REG:PROCESS (reset, clk) -時序邏輯進(jìn)程時序邏輯進(jìn)程 BEGIN IF reset=1 T

14、HEN -異步復(fù)位異步復(fù)位 current_state=st0; ELSIF(clk=1AND clkEVENT) THEN current_statecomb_outputs=00; -初始態(tài)譯碼輸出初始態(tài)譯碼輸出 IF state_inputs=00 THEN next_state=st0; -根據(jù)外部的狀態(tài)控制輸入根據(jù)外部的狀態(tài)控制輸入“00”,在下一時鐘后,進(jìn)程,在下一時鐘后,進(jìn)程REG的狀態(tài)維持為的狀態(tài)維持為st0 ELSE next_statecomb_outputs=01; -對應(yīng)對應(yīng)st1的譯碼輸出的譯碼輸出“0101” IF state_inputs=00 THEN next

15、_state=st1; -根據(jù)外部的狀態(tài)控制輸入根據(jù)外部的狀態(tài)控制輸入“00”在下一時鐘后,進(jìn)程在下一時鐘后,進(jìn)程REG的狀態(tài)將維持為的狀態(tài)將維持為st1 ELSE next_statecomb_outputs=10; IF state_inputs=11 THEN next_state=st2; ELSE next_statecomb_outputs=11; IF state_inputs=11 THEN next_state=st3; ELSE next_state=st0; END IF; END CASE;END PROCESS; -由信號由信號next_state將下一狀態(tài)值帶出此進(jìn)

16、程,進(jìn)入進(jìn)程將下一狀態(tài)值帶出此進(jìn)程,進(jìn)入進(jìn)程reg END behave;例例7-2狀態(tài)機(jī)的仿真波形(功能仿真)狀態(tài)機(jī)的仿真波形(功能仿真)st0st1st3st201/0011/1000/0010/0011/0000/0101/0110/0111/0100/1010/1001/1011/1100/1101/1110/11statestate_inputs/comb_outputs例例7-7-2 2狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖下圖為某一狀態(tài)機(jī)對應(yīng)的狀態(tài)圖,試用VHDL語言描述這一狀態(tài)機(jī)s0s1s3s21/1001其它其它/1100其它其它/0000其它其它/10010/11001/11

17、11其它其它/11110/0000描述一:描述一:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FSM1 ISPORT ( clk,reset,in1 : IN STD_LOGIC;out1 : OUT STD_LOGIC_VECTOR(3 downto 0);END ;ARCHITECTURE bhv OF FSM1 ISTYPE state_type IS (s0, s1, s2, s3);SIGNAL current_state,next_state: state_type;BEGINREG:PROCESS(clk,reset)BEGIN

18、IF reset =1 THEN current_state = s0; ELSIF clk=1 AND clkEVENT THEN current_state IF in1=1THEN next_state=s1;ELSE next_state IF in1=0THEN next_state=s2;ELSE next_state IF in1=1THEN next_state=s3;ELSE next_state IF in1=0THEN next_state=s0;ELSE next_state out1 out1 out1 out1=1111;vend case;vEND PROCESS;vend bhv;v描述二:LIBRARY IEEE;vUSE IEEE.STD_LOGIC_1164.ALL;vENTITY YH ISvPORT(CLK,RST,INPUTS:IN STD_LOGIC;v OUTPUTS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);vEND;vARCHITECTURE ONE OF YH ISvTYPE STATES IS (S0,S1,S2,S3);vSIGNAL PST:STATES;vBEGINvR

溫馨提示

  • 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

提交評論