第六章有限狀態(tài)機設計_第1頁
第六章有限狀態(tài)機設計_第2頁
第六章有限狀態(tài)機設計_第3頁
第六章有限狀態(tài)機設計_第4頁
免費預覽已結束,剩余40頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

5、; SUBTYPE digits IS INTEGER RANGE 0 to 9 ;6.2 一般有限狀態(tài)機的設計一般有限狀態(tài)機的設計第第 7 7 頁頁第六章 有限狀態(tài)機設計6.2.2 一般有限狀態(tài)機的設計一般有限狀態(tài)機的設計6.2 一般有限狀態(tài)機的設計一般有限狀態(tài)機的設計1. 1. 說明部分說明部分2. 2. 主控時序進程主控時序進程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)機結構框圖工作示意圖一般狀

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

7、_statenext_state)的取向,即的取向,即next_statenext_state的取值內的取值內容,以及確定對外輸出或對內部其它組合或時序容,以及確定對外輸出或對內部其它組合或時序進程輸出控制信號的內容。進程輸出控制信號的內容。6.2.2 一般有限狀態(tài)機的設計一般有限狀態(tài)機的設計第第 9 9 頁頁第六章 有限狀態(tài)機設計4. 4. 輔助進程輔助進程【例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 頁頁第六章 有限狀態(tài)機設計圖圖6-2 例例6-1狀態(tài)機的工作時序圖狀態(tài)機的工作時序圖4. 4. 輔助進程輔助進程6.2.2 一般有限狀態(tài)機的設計一般有限狀態(tài)機的設計第第 1212 頁頁第六章 有限狀態(tài)機設計第第 1313 頁頁第六章 有限狀態(tài)機設計6.3 Moore型有限狀態(tài)機的設計型有限狀態(tài)機的設計6.3.1 三進程有限狀態(tài)機三進程有限狀態(tài)機CECS RC K12/8 A0工 作 狀 態(tài)0XXXX禁止X1XXX禁止100X0啟動12位轉換100X1啟動8位轉換

11、1011X12位并行輸出有效10100高8位并行輸出有效10101低4位加上尾隨4個0有效表表6-1 AD574邏輯控制真值表(邏輯控制真值表(X表示任意)表示任意)第第 1414 頁頁第六章 有限狀態(tài)機設計圖圖6-3 AD574工作時序工作時序 6.3.1 三進程有限狀態(tài)機三進程有限狀態(tài)機第第 1515 頁頁第六章 有限狀態(tài)機設計圖圖6-4 AD574工作時序工作時序6.3.1 三進程有限狀態(tài)機三進程有限狀態(tài)機第第 1616 頁頁第六章 有限狀態(tài)機設計圖圖 采樣狀態(tài)機結構框圖采樣狀態(tài)機結構框圖6.3.1 三進程有限狀態(tài)機三進程有限狀態(tài)機第第 1717 頁頁第六章 有限狀態(tài)機設計【例】【例】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)機時鐘狀態(tài)機時鐘CLK,AD574狀態(tài)信號狀態(tài)信號STATUS LOCK0 : OUT STD_LOGIC; -內部鎖存信號內部鎖存信號LOCK的測試信號的測試信號 CS,A0,RC,K12X8 : OUT STD_LOGIC; -AD574控制信號控制信號 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) 接上頁接上頁第第 1919 頁頁第六章 有限狀態(tài)機設計END CASE ; END PROCESS COM2 ; REG: PROCESS (CLK) - 時序進程時序進程 BEGIN IF ( CLKEVENT AN

15、D CLK=1) THEN current_state = next_state; END IF; END PROCESS REG; LATCH1 : PROCESS (LOCK) - 數(shù)據(jù)鎖存器進程數(shù)據(jù)鎖存器進程 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)機狀態(tài)機VHDL源程序源程序第第 2424 頁頁第六章 有限狀態(tài)機設計狀態(tài)機RTL電路圖第第 2525 頁頁第六章 有限狀態(tài)機設計狀態(tài)機工作時序圖狀態(tài)狀態(tài)2:等待:等待第第 2626 頁頁第六章 有限狀態(tài)機設計6.3.2 單進程單進程Moore型有限狀態(tài)機型有限狀態(tài)機【例【例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;接上頁接上頁第第 2828 頁頁第六章 有限狀態(tài)機設計圖圖7-7 例例7-4

21、狀態(tài)機綜合后的狀態(tài)機綜合后的RTL電路模塊圖電路模塊圖6.3.2 單進程單進程Moore型有限狀態(tài)機型有限狀態(tài)機第第 2929 頁頁第六章 有限狀態(tài)機設計圖圖 例例6-4單進程狀態(tài)機工作時序單進程狀態(tài)機工作時序6.3.2 單進程單進程Moore型有限狀態(tài)機型有限狀態(tài)機第第 3030 頁頁第六章 有限狀態(tài)機設計圖圖 對應于例對應于例6-4的的2進程狀態(tài)機工作時序圖進程狀態(tài)機工作時序圖6.3.2 單進程單進程Moore型有限狀態(tài)機型有限狀態(tài)機第第 3131 頁頁第六章 有限狀態(tài)機設計6.4 Mealy型有限狀態(tài)機的設計型有限狀態(tài)機的設計【例【例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 -決定轉換狀態(tài)的進程決定轉換狀態(tài)的進程 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)機工作時序圖狀態(tài)機工作時序圖第第 3434 頁頁第六章 有限狀態(tài)機設計【例【例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) -決定轉換狀態(tài)的進程決定轉換狀態(tài)的進程 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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論