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

下載本文檔

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

文檔簡(jiǎn)介

1、第7章有限狀態(tài)機(jī)的設(shè)計(jì)主要內(nèi)容主要內(nèi)容狀態(tài)機(jī)的概述狀態(tài)機(jī)的概述 概念、優(yōu)點(diǎn)、分類概念、優(yōu)點(diǎn)、分類MOOREMOORE(摩爾)型狀態(tài)機(jī)(摩爾)型狀態(tài)機(jī)MEALYMEALY(米利)型狀態(tài)機(jī)(米利)型狀態(tài)機(jī)狀態(tài)編碼狀態(tài)編碼非法狀態(tài)非法狀態(tài)一、什么是狀態(tài)機(jī)?一、什么是狀態(tài)機(jī)?u先看一個(gè)例子先看一個(gè)例子設(shè)計(jì)一個(gè)六進(jìn)制約翰遜計(jì)數(shù)器設(shè)計(jì)一個(gè)六進(jìn)制約翰遜計(jì)數(shù)器什么叫做約翰遜計(jì)數(shù)器?什么叫做約翰遜計(jì)數(shù)器? 一般的二進(jìn)制計(jì)數(shù)器或十進(jìn)制計(jì)數(shù)器,由于在每次計(jì)數(shù)時(shí)常有不止一位觸發(fā)器翻轉(zhuǎn),以至于發(fā)生競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象,造成誤譯動(dòng)作.為了消除這種干擾,采用每次僅有一位觸發(fā)器反每次僅有一位觸發(fā)器反轉(zhuǎn)轉(zhuǎn)的計(jì)數(shù)器,稱為約翰遜約翰遜計(jì)數(shù)

2、器計(jì)數(shù)器一、什么是狀態(tài)機(jī)?(續(xù)一、什么是狀態(tài)機(jī)?(續(xù)1 1)library ieee;use ieee.std_logic_1164.all;entity jh_cnt isport(clk,reset : in std_logic; q : out std_logic_vector(3 downto 0);end;architecture one of jh_cnt istype state is (s0,s1,s2,s3,s4,s5);signal current_state, next_state :state;beginreg:process(clk,reset)beginif res

3、et=1 then current_state=s0;elsif clkevent and clk=1 then current_stateq=0000;next_stateq=0001;next_stateq=0011;next_stateq=0111;next_stateq=0110;next_stateq=0100;next_state=s0;end case;end process;end;主主控控組組合合進(jìn)進(jìn)程程純組合電路,決定純組合電路,決定每一狀態(tài)下的輸出每一狀態(tài)下的輸出和下一狀態(tài)的具體和下一狀態(tài)的具體取值取值一、什么是狀態(tài)機(jī)?(續(xù)一、什么是狀態(tài)機(jī)?(續(xù)3 3)u就理論而言,任何

4、一個(gè)時(shí)序模型的電路系統(tǒng)都可以歸結(jié)為就理論而言,任何一個(gè)時(shí)序模型的電路系統(tǒng)都可以歸結(jié)為一個(gè)狀態(tài)機(jī)。一個(gè)狀態(tài)機(jī)。u把該電路系統(tǒng)分為有限個(gè)狀態(tài)。在任意時(shí)刻,只能處于有把該電路系統(tǒng)分為有限個(gè)狀態(tài)。在任意時(shí)刻,只能處于有限狀態(tài)中的一個(gè),在接受到一個(gè)輸入事件時(shí),狀態(tài)機(jī)產(chǎn)生限狀態(tài)中的一個(gè),在接受到一個(gè)輸入事件時(shí),狀態(tài)機(jī)產(chǎn)生一個(gè)輸出,同時(shí)伴隨著狀態(tài)的轉(zhuǎn)移。一個(gè)輸出,同時(shí)伴隨著狀態(tài)的轉(zhuǎn)移。u有限狀態(tài)機(jī)有限狀態(tài)機(jī)(FSM,F(xiàn)inite State Machine)是是一種基本的、簡(jiǎn)單的、重要的形式化技術(shù)。是數(shù)字邏輯的一種基本的、簡(jiǎn)單的、重要的形式化技術(shù)。是數(shù)字邏輯的另一種表示方法與一種設(shè)計(jì)思想。另一種表示方法與一

5、種設(shè)計(jì)思想。VHDL程序設(shè)計(jì)的程序設(shè)計(jì)的FSM有如下優(yōu)點(diǎn)有如下優(yōu)點(diǎn):設(shè)計(jì)方案相對(duì)固定,程序?qū)哟畏置鳎Y(jié)構(gòu)清晰,特別是可以定義為符號(hào)化枚舉類型的狀態(tài),使VHDL綜合器對(duì)狀態(tài)機(jī)具有很大的優(yōu)化功能。 容易構(gòu)成性能良好的同步時(shí)序模塊,容易消除電路中的毛刺現(xiàn)象。由純硬件組成,工作方式是根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行順序運(yùn)行,使其運(yùn)行速度和可靠性較好。 二、狀態(tài)機(jī)的分類二、狀態(tài)機(jī)的分類按照不同的分類方法有不同類型的狀態(tài)機(jī)按照不同的分類方法有不同類型的狀態(tài)機(jī)u按狀態(tài)機(jī)的信號(hào)輸出方式分按狀態(tài)機(jī)的信號(hào)輸出方式分MOORE型狀態(tài)機(jī)型狀態(tài)機(jī)MEALY型狀態(tài)機(jī)型狀態(tài)機(jī)輸出由當(dāng)前狀態(tài)所決定輸出由當(dāng)前狀態(tài)所決定輸出由

6、當(dāng)前狀態(tài)和輸入共同決定輸出由當(dāng)前狀態(tài)和輸入共同決定二、狀態(tài)機(jī)的分類(續(xù)二、狀態(tài)機(jī)的分類(續(xù)1 1)u按結(jié)構(gòu)分按結(jié)構(gòu)分單進(jìn)程狀態(tài)機(jī)(一段式)單進(jìn)程狀態(tài)機(jī)(一段式)多進(jìn)程狀態(tài)機(jī)(兩段式、三段式)多進(jìn)程狀態(tài)機(jī)(兩段式、三段式)主控時(shí)序進(jìn)程主控時(shí)序進(jìn)程主控組合進(jìn)程主控組合進(jìn)程決定下一狀態(tài)的具體取值決定下一狀態(tài)的具體取值每一個(gè)狀態(tài)的輸出每一個(gè)狀態(tài)的輸出二、狀態(tài)機(jī)的分類(續(xù)二、狀態(tài)機(jī)的分類(續(xù)2 2)u按狀態(tài)的表達(dá)方式上分按狀態(tài)的表達(dá)方式上分符號(hào)化狀態(tài)機(jī)符號(hào)化狀態(tài)機(jī) 以文字符號(hào)代表每一個(gè)狀態(tài),在實(shí)際電路中是以二進(jìn)制組合來表示,由綜合器根據(jù)優(yōu)化情況來確定編碼確定狀態(tài)編碼的狀態(tài)機(jī)確定狀態(tài)編碼的狀態(tài)機(jī) 在定義狀

7、態(tài)時(shí),就人為的將狀態(tài)的編碼確定下來,可以采用的編碼形式有: 狀態(tài)位直接輸出型編碼、順序碼、格雷碼、一位熱碼等例:CONSTANT s0 : std_logic_vector(1downtown 0):=“00”;CONSTANT s1 : std_logic_vector(1 downtown 0):=“01”;CONSTANT s2 : std_logic_vector(1 downtown 0):=“10”;二、狀態(tài)機(jī)的分類(續(xù)二、狀態(tài)機(jī)的分類(續(xù)3 3)u按時(shí)鐘分按時(shí)鐘分同步輸出狀態(tài)機(jī)同步輸出狀態(tài)機(jī) 由時(shí)鐘信號(hào)控制異步輸出狀態(tài)機(jī)異步輸出狀態(tài)機(jī) 沒有經(jīng)過時(shí)鐘而直接輸出 一般情況下,速度快于

8、同步狀態(tài)機(jī),僅僅檔狀態(tài)機(jī)的性能要求高時(shí),才選擇三、三、MOOREMOORE型狀態(tài)機(jī)型狀態(tài)機(jī)輸出僅和狀態(tài)有關(guān),因此輸出僅和狀態(tài)有關(guān),因此狀狀態(tài)機(jī)的輸出信號(hào)就寫在表示態(tài)機(jī)的輸出信號(hào)就寫在表示狀態(tài)的圓圈之中。狀態(tài)的圓圈之中。狀態(tài)轉(zhuǎn)移圖狀態(tài)轉(zhuǎn)移圖例例1:實(shí)現(xiàn)下圖所示狀態(tài)機(jī)設(shè)計(jì):實(shí)現(xiàn)下圖所示狀態(tài)機(jī)設(shè)計(jì)三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)1 1)entity d2moore isport(clk,a,reset:in std_logic; q:out std_logic_vector(3 downto 0);end;p0:process(reset,clk) begin if reset=

9、1 then current_state=st0; elsif clkevent and clk=1 then current_stateqqqq if a=1 then next_state=st1; else next_state if a=0 then next_state=st2; else next_state if a=1 then next_state=st3; else next_state if a=0 then next_state=st0; else next_state=st3; end if; end case; end process; end;決決定定下下一一狀狀

10、態(tài)態(tài)的的具具體體取取值值三段式、三段式、MOORE型狀態(tài)機(jī)型狀態(tài)機(jī)返回三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)3 3)u由軟件自動(dòng)生成狀態(tài)轉(zhuǎn)移圖由軟件自動(dòng)生成狀態(tài)轉(zhuǎn)移圖TOOLSNETLIST VIEWERS三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)4 4)三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)5 5)u波形仿真結(jié)果波形仿真結(jié)果異步復(fù)位異步復(fù)位三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)6 6)architecture one of d1moore istype stype is(st0,st1,st2,st3);signal state : sty

11、pe;beginp0:process(reset,clk) begin if reset=1 then stateq=0000; if a=1 then state=st1; else stateq=1001; if a=0 then state=st2; else stateq=1100; if a=1 then state=st3; else stateq=1100; if a=1 then state=st3; else stateq=1111; if a=0 then state=st0; else state=st3; end if; end case; end if; end pr

12、ocess; end;返回返回1三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)7 7)單進(jìn)程單進(jìn)程MOORE狀態(tài)機(jī)狀態(tài)機(jī)多進(jìn)程多進(jìn)程MOORE狀態(tài)機(jī)狀態(tài)機(jī)next_state=st1current_state=st1q=“1001”q=“0000”state=st1;示例示例三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)8 8)單進(jìn)程單進(jìn)程MOORE狀態(tài)機(jī)狀態(tài)機(jī)多進(jìn)程多進(jìn)程MOORE狀態(tài)機(jī)狀態(tài)機(jī)毛刺毛刺三、三、MOOREMOORE型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)9 9)u總結(jié)單進(jìn)程狀態(tài)機(jī)的特點(diǎn)總結(jié)單進(jìn)程狀態(tài)機(jī)的特點(diǎn)輸出端得到的信號(hào)值要比多進(jìn)程晚一個(gè)時(shí)鐘周期輸出端得到的信號(hào)值要比多進(jìn)程晚一個(gè)

13、時(shí)鐘周期能夠減少輸出信號(hào)波形的毛刺現(xiàn)象能夠減少輸出信號(hào)波形的毛刺現(xiàn)象四、四、MEALYMEALY型狀態(tài)機(jī)型狀態(tài)機(jī)例例2:實(shí)現(xiàn)下圖所示狀態(tài)機(jī)設(shè)計(jì):實(shí)現(xiàn)下圖所示狀態(tài)機(jī)設(shè)計(jì)輸出由當(dāng)前狀態(tài)和輸入信輸出由當(dāng)前狀態(tài)和輸入信號(hào)決定,所以號(hào)決定,所以輸出信號(hào)寫輸出信號(hào)寫在箭頭轉(zhuǎn)移處在箭頭轉(zhuǎn)移處四、四、MEALYMEALY型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)1 1)architecture one of d2mealy istype stype is (st0,st1,st2,st3); signal state:stype; begin reg:process(reset,clk) begin if reset=1 th

14、en stateif a=1 then stateif a=0 then stateif a=1 then stateif a=0 then stateif a=1 then q=1001; else qif a=0 then q=1100; else qif a=1 then q=1111; else qif a=0 then q=0000; else q=1111;end if; end case;end process;end;根據(jù)根據(jù)狀態(tài)狀態(tài)和輸和輸入信入信號(hào)控號(hào)控制輸制輸出出輸出信號(hào)輸出信號(hào)q由當(dāng)由當(dāng)前狀態(tài)和輸入信前狀態(tài)和輸入信號(hào)共同決定,與號(hào)共同決定,與時(shí)鐘無關(guān)時(shí)鐘無關(guān)返回四、四、

15、MEALYMEALY型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)3 3)MEALY型狀態(tài)機(jī)MOORE型狀態(tài)機(jī)示例示例四、四、MEALYMEALY型狀態(tài)機(jī)(續(xù)型狀態(tài)機(jī)(續(xù)4 4)u總結(jié)總結(jié)MEALY型狀態(tài)機(jī)和型狀態(tài)機(jī)和MOORE型狀態(tài)機(jī)的特點(diǎn)型狀態(tài)機(jī)的特點(diǎn)狀態(tài)轉(zhuǎn)化狀態(tài)轉(zhuǎn)化輸出信號(hào)輸出信號(hào)與時(shí)鐘信號(hào)的關(guān)系與時(shí)鐘信號(hào)的關(guān)系MOOREMEALY由由輸入輸入決定決定由由輸入輸入決定決定由由當(dāng)前狀當(dāng)前狀態(tài)態(tài)決定決定由由當(dāng)前狀當(dāng)前狀態(tài)和輸入態(tài)和輸入決定決定與時(shí)鐘信號(hào)與時(shí)鐘信號(hào)同步同步不依賴于時(shí)鐘不依賴于時(shí)鐘,只,只要輸入變化,輸出要輸入變化,輸出能夠立即變化能夠立即變化五、狀態(tài)編碼五、狀態(tài)編碼u為了滿足一些特殊需要,可直接將各

16、狀態(tài)用具體的二進(jìn)制為了滿足一些特殊需要,可直接將各狀態(tài)用具體的二進(jìn)制數(shù)進(jìn)行定義,即狀態(tài)機(jī)的直接編碼。數(shù)進(jìn)行定義,即狀態(tài)機(jī)的直接編碼。狀態(tài)位直接輸出型編碼狀態(tài)位直接輸出型編碼順序編碼順序編碼格雷碼(格雷碼(Gray)編碼)編碼一位熱碼(一位熱碼(one-hot)編碼)編碼五、狀態(tài)編碼(續(xù)五、狀態(tài)編碼(續(xù)1 1)1、狀態(tài)為直接輸出型編碼、狀態(tài)為直接輸出型編碼u直接把狀態(tài)機(jī)的狀態(tài)編碼作為輸出信號(hào)(直接把狀態(tài)機(jī)的狀態(tài)編碼作為輸出信號(hào)(output=stateoutput=state),),是狀態(tài)機(jī)的一種特殊類型。是狀態(tài)機(jī)的一種特殊類型。u例例1 1:思考:此狀態(tài)機(jī)屬于什思考:此狀態(tài)機(jī)屬于什么類型?么類

17、型?五、狀態(tài)編碼(續(xù)五、狀態(tài)編碼(續(xù)2 2)library ieee;use ieee.std_logic_1164.all;entity mo is port(clk,a,reset : in std_logic; q : out std_logic_vector(1 downto 0);end;architecture one of mo is signal state :std_logic_vector(1 downto 0); constant s0:std_logic_vector(1 downto 0):=00; constant s1:std_logic_vector(1 dow

18、nto 0):=10; constant s2:std_logic_vector(1 downto 0):=11; constant s3:std_logic_vector(1 downto 0):=01;begin狀態(tài)編碼狀態(tài)編碼五、狀態(tài)編碼(續(xù)五、狀態(tài)編碼(續(xù)3 3) process(clk,reset) begin if reset=1 then stateif a=1 then stateif a=0 then stateif a=1 then stateif a=0 then state=s0;end if; end case; end if; end process; qnext_statenext_statenext_statenext_state=st0; end case;alarm=(st0 and (st1 or st2 or st3 or st4 or st5) or (st1 and (st0 or st2 or st3 or st4 or st5) or .七、總結(jié)狀態(tài)機(jī)的優(yōu)點(diǎn)七、總結(jié)狀態(tài)機(jī)的優(yōu)點(diǎn)u設(shè)計(jì)方案相對(duì)固定,程序?qū)哟畏置鳎Y(jié)構(gòu)清晰設(shè)計(jì)方案相對(duì)固定,程序?qū)哟畏置鳎Y(jié)構(gòu)清晰。u容易利用現(xiàn)成的容易利用現(xiàn)成的EDA優(yōu)化工具優(yōu)化工具。特別是可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論