第六章有限狀態(tài)機(jī)設(shè)計(jì)_第1頁(yè)
第六章有限狀態(tài)機(jī)設(shè)計(jì)_第2頁(yè)
第六章有限狀態(tài)機(jī)設(shè)計(jì)_第3頁(yè)
第六章有限狀態(tài)機(jī)設(shè)計(jì)_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余40頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、第第 1 1 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)第第 1 1 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)第六章第六章 有限狀態(tài)機(jī)設(shè)計(jì)有限狀態(tài)機(jī)設(shè)計(jì)第第 2 2 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì) 為什么要使用狀態(tài)機(jī)為什么要使用狀態(tài)機(jī)6.1 概述概述 有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。的缺點(diǎn)。 狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單。 狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。 狀態(tài)機(jī)的狀態(tài)機(jī)的VHDLVHDL表述豐富多樣表述豐富多樣。 在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢(shì)在高速運(yùn)算和控制方面,狀態(tài)機(jī)

2、更有其巨大的優(yōu)勢(shì)。 就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的。第第 3 3 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì) VHDL綜合器易于優(yōu)化 易構(gòu)成性能良好的時(shí)序邏輯模塊 結(jié)構(gòu)模式簡(jiǎn)單、層次分明、易讀易懂、易排錯(cuò) 運(yùn)行模式類似于CPU,易于進(jìn)行順序控制 利用同步時(shí)序和全局時(shí)鐘線可實(shí)現(xiàn)高速FSM 高可靠性,非法狀態(tài)易控制 第第 4 4 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)6.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)6.2.1 用戶自定義數(shù)據(jù)類型定義語(yǔ)句用戶自定義數(shù)據(jù)類型定義語(yǔ)句TYPETYPE語(yǔ)句用法如下:語(yǔ)句用法如下:TYPE TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名IS IS 數(shù)據(jù)

3、類型定義數(shù)據(jù)類型定義 OF OF 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 ; ;或或TYPE TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS IS 數(shù)據(jù)類型定義數(shù)據(jù)類型定義 ; ;以下列出了兩種不同的定義方式:以下列出了兩種不同的定義方式:TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;第第 5 5 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)用戶自定義數(shù)據(jù)類型定義語(yǔ)句用戶自定義數(shù)據(jù)類型定義語(yǔ)句TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL prese

4、nt_state,next_state : m_state ;布爾數(shù)據(jù)類型的定義語(yǔ)句是:布爾數(shù)據(jù)類型的定義語(yǔ)句是: TYPE BOOLEAN IS (FALSE,TRUE) ;TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; 6.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)第第 6 6 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)用戶自定義數(shù)據(jù)類型定義語(yǔ)句用戶自定義數(shù)據(jù)類型定義語(yǔ)句子類型子類型SUBTYPE的語(yǔ)句格式如下:的語(yǔ)句格式如下:SUBTYPE 子類型名子類型名 IS 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 RANGE 約束范圍約束范圍

5、; SUBTYPE digits IS INTEGER RANGE 0 to 9 ;6.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)第第 7 7 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)6.2.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)6.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)1. 1. 說明部分說明部分2. 2. 主控時(shí)序進(jìn)程主控時(shí)序進(jìn)程com b_outputsstate_inputsresetclkF S M :s_m achineC O Mnext_statecurrent_stateP R O C E S SR E GP R O C E S S圖圖6-1 一般狀態(tài)機(jī)結(jié)構(gòu)框圖工作示意圖一般狀

6、態(tài)機(jī)結(jié)構(gòu)框圖工作示意圖ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 第第 8 8 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)3. 3. 主控組合進(jìn)程主控組合進(jìn)程 控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(hào)(包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)號(hào)(包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)部其它非主控的組合或時(shí)序進(jìn)程的信號(hào)),或部其它非主控的組合或時(shí)序進(jìn)程的信號(hào)),或(和)當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(和)當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next

7、_statenext_state)的取向,即的取向,即next_statenext_state的取值內(nèi)的取值內(nèi)容,以及確定對(duì)外輸出或?qū)?nèi)部其它組合或時(shí)序容,以及確定對(duì)外輸出或?qū)?nèi)部其它組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。進(jìn)程輸出控制信號(hào)的內(nèi)容。6.2.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)第第 9 9 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)4. 4. 輔助進(jìn)程輔助進(jìn)程【例6-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN S

8、TD_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); SIGNAL current_state, next_state: FSM_ST;BEGIN REG: PROCESS (reset,clk) BEGIN IF reset = 1 THEN current_state = s0; ELSIF clk=1 AND clkEVENT THEN curr

9、ent_state comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THEN 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; ELS

10、E next_state = s0; END IF; END case; END PROCESS; END behv;第第 1111 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖6-2 例例6-1狀態(tài)機(jī)的工作時(shí)序圖狀態(tài)機(jī)的工作時(shí)序圖4. 4. 輔助進(jìn)程輔助進(jìn)程6.2.2 一般有限狀態(tài)機(jī)的設(shè)計(jì)一般有限狀態(tài)機(jī)的設(shè)計(jì)第第 1212 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)第第 1313 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)6.3 Moore型有限狀態(tài)機(jī)的設(shè)計(jì)型有限狀態(tài)機(jī)的設(shè)計(jì)6.3.1 三進(jìn)程有限狀態(tài)機(jī)三進(jìn)程有限狀態(tài)機(jī)CECS RC K12/8 A0工 作 狀 態(tài)0XXXX禁止X1XXX禁止100X0啟動(dòng)12位轉(zhuǎn)換100X1啟動(dòng)8位轉(zhuǎn)換

11、1011X12位并行輸出有效10100高8位并行輸出有效10101低4位加上尾隨4個(gè)0有效表表6-1 AD574邏輯控制真值表(邏輯控制真值表(X表示任意)表示任意)第第 1414 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖6-3 AD574工作時(shí)序工作時(shí)序 6.3.1 三進(jìn)程有限狀態(tài)機(jī)三進(jìn)程有限狀態(tài)機(jī)第第 1515 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖6-4 AD574工作時(shí)序工作時(shí)序6.3.1 三進(jìn)程有限狀態(tài)機(jī)三進(jìn)程有限狀態(tài)機(jī)第第 1616 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖 采樣狀態(tài)機(jī)結(jié)構(gòu)框圖采樣狀態(tài)機(jī)結(jié)構(gòu)框圖6.3.1 三進(jìn)程有限狀態(tài)機(jī)三進(jìn)程有限狀態(tài)機(jī)第第 1717 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)【例】【例】L

12、IBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT (D :IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC;-狀態(tài)機(jī)時(shí)鐘狀態(tài)機(jī)時(shí)鐘CLK,AD574狀態(tài)信號(hào)狀態(tài)信號(hào)STATUS LOCK0 : OUT STD_LOGIC; -內(nèi)部鎖存信號(hào)內(nèi)部鎖存信號(hào)LOCK的測(cè)試信號(hào)的測(cè)試信號(hào) CS,A0,RC,K12X8 : OUT STD_LOGIC; -AD574控制信號(hào)控制信號(hào) Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0);

13、-鎖存數(shù)據(jù)輸出鎖存數(shù)據(jù)輸出END AD574;ARCHITECTURE behav OF AD574 ISTYPE states IS (st0, st1, st2, st3,st4); SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; BEGIN K12X8 = 1; LOCK0 next_state next_state IF (STATUS=1) THEN next_state = st2; ELSE

14、next_state next_state next_state next_state CS=1; A0=1;RC=1;LOCK CS=0; A0=0;RC=0;LOCK CS=0; A0=0;RC=0;LOCK CS=0; A0=0;RC=1;LOCK CS=0; A0=0;RC=1;LOCKCS=1; A0=1;RC=1;LOCK=0;-其它情況返回初始態(tài)其它情況返回初始態(tài) 接上頁(yè)接上頁(yè)第第 1919 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)END CASE ; END PROCESS COM2 ; REG: PROCESS (CLK) - 時(shí)序進(jìn)程時(shí)序進(jìn)程 BEGIN IF ( CLKEVENT AN

15、D CLK=1) THEN current_state = next_state; END IF; END PROCESS REG; LATCH1 : PROCESS (LOCK) - 數(shù)據(jù)鎖存器進(jìn)程數(shù)據(jù)鎖存器進(jìn)程 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS ; Q next_state = st1; CS=1; A0=1;RC=1;LOCK next_state = st2; CS=0; A0=0;RC=0;LOCK IF (STATUS=1) THEN next_state = st2; ELSE ne

16、xt_state = st3; END IF ; CS=0; A0=0;RC=0;LOCK next_state = st4; CS=0; A0=0;RC=1;LOCK next_state = st0; CS=0; A0=0;RC=1;LOCK next_state CS=1; A0=0; RC=0; LOCK=0; next_state CS=0; A0=0; RC=0; LOCK=0; next_state CS=0; A0=0; RC=0; LOCK=0; IF (STATUS=1) THEN next_state = st2;ELSE next_state CS=0; A0=0; R

17、C=1; LOCK=0; next_state CS=0; A0=1; RC=1; LOCK=1; next_state next_state = st0; END CASE ; END PROCESS COM ; REG:PROCESS (CLK) BEGIN IF ( CLKEVENT AND CLK=1) THEN current_state = next_state; END IF; END PROCESS REG; LATCH: PROCESS (LOCK) BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCE

18、SS ; Q = REGL; K12X8 = 1 ;END behav;狀態(tài)機(jī)狀態(tài)機(jī)VHDL源程序源程序第第 2424 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)RTL電路圖第第 2525 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)工作時(shí)序圖狀態(tài)狀態(tài)2:等待:等待第第 2626 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)6.3.2 單進(jìn)程單進(jìn)程Moore型有限狀態(tài)機(jī)型有限狀態(tài)機(jī)【例【例6-4】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 IS PORT (DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN ST

19、D_LOGIC; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END MOORE1;ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL C_ST : ST_TYPE ; BEGIN PROCESS(CLK,RST) BEGIN IF RST =1 THEN C_ST = ST0 ; Q IF DATAIN =10 THEN C_ST = ST1 ; ELSE C_ST = ST0 ; END IF; Q IF DATAIN =11 THEN C_ST =

20、ST2 ; ELSE C_ST = ST1 ;END IF; Q IF DATAIN =01 THEN C_ST = ST3 ; ELSE C_ST = ST0 ;END IF; Q IF DATAIN =00 THEN C_ST = ST4 ; ELSE C_ST = ST2 ;END IF; Q IF DATAIN =11 THEN C_ST = ST0 ; ELSE C_ST = ST3 ;END IF; Q C_ST = ST0; END CASE; END IF; END PROCESS;END behav;接上頁(yè)接上頁(yè)第第 2828 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖7-7 例例7-4

21、狀態(tài)機(jī)綜合后的狀態(tài)機(jī)綜合后的RTL電路模塊圖電路模塊圖6.3.2 單進(jìn)程單進(jìn)程Moore型有限狀態(tài)機(jī)型有限狀態(tài)機(jī)第第 2929 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖 例例6-4單進(jìn)程狀態(tài)機(jī)工作時(shí)序單進(jìn)程狀態(tài)機(jī)工作時(shí)序6.3.2 單進(jìn)程單進(jìn)程Moore型有限狀態(tài)機(jī)型有限狀態(tài)機(jī)第第 3030 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)圖圖 對(duì)應(yīng)于例對(duì)應(yīng)于例6-4的的2進(jìn)程狀態(tài)機(jī)工作時(shí)序圖進(jìn)程狀態(tài)機(jī)工作時(shí)序圖6.3.2 單進(jìn)程單進(jìn)程Moore型有限狀態(tài)機(jī)型有限狀態(tài)機(jī)第第 3131 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)6.4 Mealy型有限狀態(tài)機(jī)的設(shè)計(jì)型有限狀態(tài)機(jī)的設(shè)計(jì)【例【例6-4】 LIBRARY IEEE; USE IEEE

22、.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY1;ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -決定轉(zhuǎn)換狀態(tài)的進(jìn)程決定轉(zhuǎn)換狀態(tài)的進(jìn)程 IF RESET =1 THEN STX

23、 IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN = 1 THEN Q = 10000 ; ELSE Q IF DATAIN = 0 THEN Q = 10111 ; ELSE Q IF DATAIN = 1 THEN Q = 10101 ; ELSE Q IF DATAIN = 0 THEN Q = 11011 ; ELSE Q IF DATAIN = 1 THEN Q = 11101

24、 ; ELSE Q Q=00000 ; END CASE ;END PROCESS COM1 ;END behav;圖圖 例例6-5狀態(tài)機(jī)工作時(shí)序圖狀態(tài)機(jī)工作時(shí)序圖第第 3434 頁(yè)頁(yè)第六章 有限狀態(tài)機(jī)設(shè)計(jì)【例【例6-5】 MEALY2 LIBRARY IEEE; -MEALY FSMUSE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY2;ARCHITECTURE behav OF M

25、EALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN COMREG : PROCESS(CLK,RESET) -決定轉(zhuǎn)換狀態(tài)的進(jìn)程決定轉(zhuǎn)換狀態(tài)的進(jìn)程 BEGIN IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1

26、 THEN STX STX IF DATAIN = 1 THEN Q2 := 10000 ; ELSE Q2 := 01010 ; END IF ; WHEN st1 = IF DATAIN = 0 THEN Q2 := 10111 ; ELSE Q2:=10100 ; END IF ; WHEN st2 = IF DATAIN = 1 THEN Q2 := 10101 ; ELSE Q2:=10011 ; END IF ; WHEN st3= IF DATAIN = 0 THEN Q2 := 11011 ; ELSE Q2:=01001 ; END IF ; WHEN st4= IF DATAIN = 1 THEN Q2 := 11101 ; ELSE Q2:=01101 ; END IF ; WHEN

溫馨提示

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