狀態(tài)機(jī)精品課件_第1頁
狀態(tài)機(jī)精品課件_第2頁
狀態(tài)機(jī)精品課件_第3頁
狀態(tài)機(jī)精品課件_第4頁
狀態(tài)機(jī)精品課件_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、關(guān)于狀態(tài)機(jī)第一張,PPT共四十五頁,創(chuàng)作于2022年6月 狀態(tài)機(jī)是由組合邏輯和寄存器組成的。包括組合邏輯部分和寄存器部分。寄存器部分用于存儲狀態(tài)機(jī)的內(nèi)部狀態(tài);組合邏輯部分又分為狀態(tài)譯碼器和輸出譯碼器,狀態(tài)譯碼器確定狀態(tài)機(jī)的下一個狀態(tài),即確定狀態(tài)機(jī)的激勵方程,輸出譯碼器確定狀態(tài)機(jī)的輸出狀態(tài),即確定狀態(tài)機(jī)的輸出方程。運(yùn)行時狀態(tài)機(jī)實(shí)現(xiàn)以下兩種操作:1、狀態(tài)機(jī)內(nèi)部狀態(tài)轉(zhuǎn)換。狀態(tài)機(jī)在所有狀態(tài)中,下一個狀態(tài)由狀態(tài)譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。2、產(chǎn)生輸出序列信號。輸出信號由輸出譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。狀態(tài)機(jī)常常用來描述計數(shù)器、移位寄存器、循環(huán)寄存器等。狀態(tài)譯碼器狀態(tài)寄存器輸入譯碼器狀態(tài)反饋輸

2、入輸出狀態(tài)機(jī)結(jié)構(gòu)示意圖第二張,PPT共四十五頁,創(chuàng)作于2022年6月 狀態(tài)機(jī)按照其輸入、當(dāng)前狀態(tài)、下一次狀態(tài)、輸出信號的變化關(guān)系,可分成兩大類: 摩爾狀態(tài)機(jī)(Moore Machine) 米立狀態(tài)機(jī)(Mealy Machine)Moore輸出電位只與當(dāng)前所處的狀態(tài)有關(guān),而與輸入信號 無立即的關(guān)系。Mealy輸出電位不僅與當(dāng)前所處的狀態(tài)有關(guān),而且與輸入 信號也有關(guān)。第三張,PPT共四十五頁,創(chuàng)作于2022年6月TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ;布爾數(shù)據(jù)類

3、型的定義語句是: TYPE BOOLEAN IS (FALSE,TRUE) ;TYPE my_logic IS ( 1 ,Z ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; 以下列出了兩種不同的定義方式:TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;TYPE語句用法如下:1)TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 ;2)TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 ;1. 用戶自定義數(shù)據(jù)類型定義語句第四張,PPT共四十

4、五頁,創(chuàng)作于2022年6月子類型SUBTYPE的語句格式如下:SUBTYPE 子類型名 IS 基本數(shù)據(jù)類型 RANGE 約束范圍; SUBTYPE digits IS INTEGER RANGE 0 to 9 ;2. 一般有限狀態(tài)機(jī)的設(shè)計ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 1. 說明部分2. 主控時序進(jìn)程3. 主控組合進(jìn)程4. 輔助進(jìn)程第五張,PPT共四十五頁,創(chuàng)作于2022年6月圖4-1 一般狀態(tài)機(jī)結(jié)構(gòu)框圖工作示意圖ProcessREGProces

5、sCOMFSM: s_machineCurrent_stateNext_stateComb_outputsclkresetState_inputs時序邏輯進(jìn)程組合邏輯進(jìn)程第六張,PPT共四十五頁,創(chuàng)作于2022年6月3. 主控組合進(jìn)程4.4.1 一般有限狀態(tài)機(jī)的設(shè)計 主控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(包括來自狀態(tài)機(jī)外部的信號和來自狀態(tài)機(jī)內(nèi)部其它非主控的組合或時序進(jìn)程的信號),或當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next_state)的取向,即next_state的取值內(nèi)容,以及確定對外輸出或?qū)?nèi)部其它組合或時序進(jìn)程輸出控制信號的內(nèi)容。4. 輔助進(jìn)程 第七張,PPT共四十五頁,創(chuàng)作于202

6、2年6月【例5-1】 P154LIBRARY 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); -定義FSM_ST為枚舉型數(shù)據(jù)類型 SIGNAL

7、 current_state, next_state: FSM_ST;BEGIN REG: PROCESS (reset,clk) -時序邏輯進(jìn)程 BEGIN IF reset = 1 THEN current_state = s0; -異步復(fù)位 ELSIF clk=1 AND clkEVENT THEN -當(dāng)檢測到時鐘上升沿時 current_state comb_outputs= “00”; -初態(tài)譯碼輸出”00” IF state_inputs = “00” THEN -根據(jù)外部的狀態(tài)控制輸入”00” next_state=s0; -在下一CP后,進(jìn)程REG的狀態(tài)維持S0 ELSE ne

8、xt_statecomb_outputs= “01”; -對應(yīng)狀態(tài)S1的譯碼輸出”01” IF state_inputs = 00 THEN -根據(jù)外部的狀態(tài)控制輸入”00” next_state=s1; -在下一CP后,進(jìn)程REG的狀態(tài)維持S1 ELSE next_state comb_outputs= “10”; -對應(yīng)狀態(tài)S2的譯碼輸出”10” IF state_inputs = 11 THEN -根據(jù)外部的狀態(tài)控制輸入”11” next_state = s2; -在下一CP后,進(jìn)程REG的狀態(tài)維持S2 ELSE next_state comb_outputs = “11”; IF st

9、ate_inputs = 11 THEN next_state = s3; 接上頁第九張,PPT共四十五頁,創(chuàng)作于2022年6月圖4-2 例4-1狀態(tài)機(jī)的工作時序圖ELSE next_state = s0; -否則在下一CP后,REG的狀態(tài)返回S0 END IF; END case; END PROCESS; END behv;第十張,PPT共四十五頁,創(chuàng)作于2022年6月用VHDL設(shè)計狀態(tài)機(jī) AD574A采樣控制狀態(tài)機(jī) 第十一張,PPT共四十五頁,創(chuàng)作于2022年6月 VHDL綜合器易于優(yōu)化 易構(gòu)成性能良好的時序邏輯模塊 結(jié)構(gòu)模式簡單、層次分明、易讀易懂、易排錯 運(yùn)行模式類似于CPU,易于進(jìn)

10、行順序控制 利用同步時序和全局時鐘線可實(shí)現(xiàn)高速FSM 高可靠性,非法狀態(tài)易控制 為什么要使用狀態(tài)機(jī)?第十二張,PPT共四十五頁,創(chuàng)作于2022年6月4.4.2 Moore型有限狀態(tài)機(jī)的設(shè)計 在Moore機(jī)中,其輸出只與當(dāng)前的狀態(tài)有關(guān),而與輸入信號無立即的關(guān)系,所以設(shè)計步驟簡單。只要竟所要設(shè)計的動作狀況一狀態(tài)圖繪出,然后以枚舉方式定義出它可能出現(xiàn)的所有狀態(tài),再配合等process,ifthenelse,caseiswhen語句,將其動作狀態(tài)以行為模式描述出來。例:某電路的方框圖及狀態(tài)圖如圖所示,利用VHDL語言設(shè)計此電路 ZCK輸入信號XS00S11S21S3011110000第十三張,PPT共

11、四十五頁,創(chuàng)作于2022年6月目前狀態(tài)下一個狀態(tài)輸出ZX=0X=1S0S1S2S3S0S0S2S3S2S2S3S101104.4.2.1 Moore單進(jìn)程有限狀態(tài)機(jī)第十四張,PPT共四十五頁,創(chuàng)作于2022年6月-*-* Parity Checker-* Filename : MOORE_2-*LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE_2 IS PORT ( CLK : in STD_LOGIC; RESET : in STD_LOGIC; X: in STD_LOGIC; Z: out STD_LOGIC; ); END MO

12、ORE_2 ; ARCHITECTURE MOORE_2 _arch OF MOORE_2 IS type State is(S3,S2,S1,S0); -狀態(tài)有S3,S2,S1,S0四種 signal Present_ State: State; -當(dāng)前狀態(tài) signal Next_ State: State; -下一個狀態(tài) BEGIN if RESET=1 then Present_ State = S0 elsif CLKevent and CLK=1then Present_ State -處理以下語句 if X=0 then Next_State=S0; else Next_Stat

13、e=S2; end if; Z -行為模式加以描述。 if X=0 then Next_State=S2; else Next_State=S3; end if; Z if X=0 then Next_State=S3; else Next_State=S1; end if;Z if X=0 then Next_State=S0; else Next_State=S2; end if; Z=1 ; end case; End process; End MOORE_2 _arch 第十六張,PPT共四十五頁,創(chuàng)作于2022年6月 單進(jìn)程Moore型有限狀態(tài)機(jī)【例5-4】 P160LIBRARY

14、IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 IS PORT (DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN STD_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 R

15、ST =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 = 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

16、C_ST = ST3 ;END IF; Q C_ST = ST0; END CASE; END IF; END PROCESS;END behav;接上頁第十八張,PPT共四十五頁,創(chuàng)作于2022年6月7.2.2 單進(jìn)程Moore型有限狀態(tài)機(jī)圖7-8 例7-4單進(jìn)程狀態(tài)機(jī)工作時序第十九張,PPT共四十五頁,創(chuàng)作于2022年6月4.4.2.1 三進(jìn)程有限狀態(tài)機(jī)CECS R/C K12/8 A0工 作 狀 態(tài)0XXXX禁止X1XXX禁止100X0啟動12位轉(zhuǎn)換100X1啟動8位轉(zhuǎn)換1011X12位并行輸出有效10100高8位并行輸出有效10101低4位加上尾隨4個0有效表4-1 AD574邏輯控制

17、真值表(X表示任意) 本例與例4-1基本一致,只是多了一個數(shù)據(jù)鎖存進(jìn)程”LATCH”,目的是將轉(zhuǎn)換好的數(shù)據(jù)鎖入12位鎖存器REGL中,以便得到正確和穩(wěn)定輸出。在組合邏輯進(jìn)程“COM”中,根據(jù)AD574的工作時序,對6種狀態(tài)的轉(zhuǎn)換方式和控制數(shù)據(jù)的輸出作了設(shè)定,程序中詳細(xì)注釋。應(yīng)注意,轉(zhuǎn)換好的數(shù)據(jù)鎖入寄存器的鎖存時鐘信號“LOCK”是在狀態(tài)“ST3”向“ST4”轉(zhuǎn)換的時候產(chǎn)生的,這有利于正確數(shù)據(jù)被穩(wěn)定的鎖入。第二十張,PPT共四十五頁,創(chuàng)作于2022年6月AD574A12345678910111213142827262524232221201918171615STSDB11DB10DB9DB8DB

18、7DB6DB5DB4DB3DB2DB1DB0DGVL12/8CSA0R/CCEVCCRUTAGRINVEEBIF10IN20IN輸出轉(zhuǎn)換后的數(shù)據(jù)12位轉(zhuǎn)換結(jié)束狀態(tài)位數(shù)字地模擬信號輸入單極性方式雙極性方式片選端VCC-12V+12VR1RFAD574電路原理圖A/D轉(zhuǎn)換啟動A/D數(shù)據(jù)輸出控制12位或8位輸出有效控制信號第二十一張,PPT共四十五頁,創(chuàng)作于2022年6月4.4.2.1 二進(jìn)程有限狀態(tài)機(jī)圖4-3 AD574工作時序 A/D轉(zhuǎn)換和數(shù)據(jù)輸出控制信號轉(zhuǎn)換結(jié)束狀態(tài)位A/D轉(zhuǎn)換數(shù)據(jù)輸出顯示 第二十二張,PPT共四十五頁,創(chuàng)作于2022年6月4.4.2.1 二進(jìn)程有限狀態(tài)機(jī)圖4-4 AD574工

19、作時序第二十三張,PPT共四十五頁,創(chuàng)作于2022年6月PROCESSREG時序進(jìn)程PROCESSCOM組合進(jìn)程PROCESSLATCH鎖存器current_statenext_stateLOCK狀態(tài)機(jī)FSMFPGA/CPLDCLK CS A0 RC K12/8 STATUSD11.0AD574Q11.0模擬信號輸入采樣數(shù)據(jù)輸出第二十四張,PPT共四十五頁,創(chuàng)作于2022年6月【例4-2】LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT (D:IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK

20、,STATUS:IN STD_LOGIC;-狀態(tài)機(jī)時鐘CLK,轉(zhuǎn)換結(jié)束狀態(tài)信號STATUS LOCK0 :OUT STD_LOGIC; -內(nèi)部鎖存信號LOCK的測試信號 CS,A0,RC,K12X8:OUT STD_LOGIC; -A0轉(zhuǎn)換啟動信號和輸出控制信號 -CS片選,RC轉(zhuǎn)換和輸出控制信號 -K12X8是12位或8位輸出有效控制信號 Q:OUT STD_LOGIC_VECTOR(11 DOWNTO 0); -鎖存數(shù)據(jù)輸出顯示END AD574;ARCHITECTURE behav OF AD574 IS TYPE states IS (st0, st1, st2, st3,st4);-

21、定義狀態(tài)子類型 SIGNAL current_state, next_state: states:=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0);-A/D轉(zhuǎn)換數(shù)據(jù)鎖存器 SIGNAL LOCK : STD_LOGIC; -轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號 BEGIN K12X8 = 1; -8位并行輸出有效 LOCK0 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

22、 next_state = st2; -轉(zhuǎn)換未結(jié)束,等待 ELSE next_state CS =0;A0=0;RC =1;LOCK=0; next_state CS =0;A0=0;RC =1;LOCK=1; next_state CS =1;A0=1;RC =1;LOCK=0; next_state next_state = st0; -所有閑置狀態(tài)導(dǎo)入初始態(tài) END CASE ; END PROCESS COM ; REG: PROCESS (CLK) - 時序進(jìn)程 BEGIN IF ( CLKEVENT AND CLK=1) THEN current_state = next_stat

23、e; -在CLK上升沿,轉(zhuǎn)換到下一狀態(tài) END IF; END PROCESS REG; -由信號current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程,進(jìn)入COM接上頁第二十六張,PPT共四十五頁,創(chuàng)作于2022年6月LATCH1 : PROCESS (LOCK) - 數(shù)據(jù)鎖存器進(jìn)程 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS ; -在此進(jìn)程中,在LOCK上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入12位 鎖存器REGL中,以便得到穩(wěn)定顯示 Q = REGL; -REGL的輸出端口與目標(biāo)器件的輸出端口Q相連接 END behav

24、;接上頁圖4-6 AD574采樣狀態(tài)機(jī)工作時序狀態(tài)2:等待第二十七張,PPT共四十五頁,創(chuàng)作于2022年6月5.4 狀態(tài)編碼 P164狀態(tài)狀態(tài)編碼STARTALEOELOCKB 功 能 說 明ST0 0 0 0 0 0初始態(tài)ST1 1 1 0 0 0啟動轉(zhuǎn)換ST2 0 0 0 0 1若測得EOC=1時,轉(zhuǎn)下一狀態(tài)ST3ST3 0 0 1 0 0輸出轉(zhuǎn)換好的數(shù)據(jù)ST4 0 0 1 1 0利用LOCK的上升沿將轉(zhuǎn)換好的數(shù)據(jù)鎖存第二十八張,PPT共四十五頁,創(chuàng)作于2022年6月【例5-7】LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574

25、IS PORT (D:IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK,STATUS:IN STD_LOGIC;-狀態(tài)機(jī)時鐘CLK,轉(zhuǎn)換結(jié)束狀態(tài)信號STATUS LOCK0 :OUT STD_LOGIC; -內(nèi)部鎖存信號LOCK的測試信號 CS,A0,RC,K12X8:OUT STD_LOGIC; -A0轉(zhuǎn)換啟動信號和輸出控制信號 -CS片選,RC轉(zhuǎn)換和輸出控制信號 -K12X8是12位或8位輸出有效控制信號 Q:OUT STD_LOGIC_VECTOR(11 DOWNTO 0); -鎖存數(shù)據(jù)輸出顯示END AD574;ARCHITECTURE behav OF AD

26、574 IS TYPE states IS (st0, st1, st2, st3,st4);-定義狀態(tài)子類型 SIGNAL current_state, next_state: states:=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0);-A/D轉(zhuǎn)換數(shù)據(jù)鎖存器 SIGNAL LOCK : STD_LOGIC; -轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號 BEGIN K12X8 = 1; -8位并行輸出有效 LOCK0 CS =1;A0=0;RC =0;LOCK=0; next_state CS =0;A0=0;RC =0;LOCK=0; next_s

27、tate CS =0;A0=0;RC =0;LOCK=0; IF (STATUS=1) THEN next_state = st2; -轉(zhuǎn)換未結(jié)束,等待 ELSE next_state CS =0;A0=0;RC =1;LOCK=0; next_state CS =0;A0=0;RC =1;LOCK=1; next_state CS =1;A0=1;RC =1;LOCK=0; next_state next_state = st0; -所有閑置狀態(tài)導(dǎo)入初始態(tài) END CASE ; END PROCESS COM ; REG: PROCESS (CLK) - 時序進(jìn)程 BEGIN IF ( CL

28、KEVENT AND CLK=1) THEN current_state = next_state; -在CLK上升沿,轉(zhuǎn)換到下一狀態(tài) END IF; END PROCESS REG; -由信號current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程,進(jìn)入COM接上頁第三十張,PPT共四十五頁,創(chuàng)作于2022年6月LATCH1 : PROCESS (LOCK) - 數(shù)據(jù)鎖存器進(jìn)程 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS ; -在此進(jìn)程中,在LOCK上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入12位 鎖存器REGL中,以便得到穩(wěn)定

29、顯示 Q = REGL; -REGL的輸出端口與目標(biāo)器件的輸出端口Q相連接 END behav;接上頁圖4-6 AD574采樣狀態(tài)機(jī)工作時序狀態(tài)2:等待第三十一張,PPT共四十五頁,創(chuàng)作于2022年6月4.4.2.2 三進(jìn)程Moore型有限狀態(tài)機(jī)【例5-4】一個摩爾機(jī)的模型,其中FUNC1和FUNC2是任意復(fù)雜的組合邏輯函數(shù)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY system IS PORT ( a :IN STD_LOGIC; Clock: IN STD_LOGIC; d : OUT STD_LOGIC );END system ;A

30、RCHITECTURE moore OF system IS SIGNAL b,C : STD_LOGIC;BEGIN FUNC1: PROCESS(a,c) -第1組合邏輯進(jìn)程,為時序邏輯進(jìn)程提供反饋信息 BEGIN b=FUNC1(a,c); -C是反饋信號 END PROCESS; FUNC2: PROCESS(c) -第2組合邏輯進(jìn)程,為狀態(tài)機(jī)輸出提供數(shù)據(jù)接下頁第三十二張,PPT共四十五頁,創(chuàng)作于2022年6月 BEGIN d=FUNC2(c); -輸出信號D對所對應(yīng)的FUNC2,是當(dāng)前狀態(tài)的函數(shù) END PROCESS; REG:PROCESS(clock); -時序邏輯進(jìn)程,負(fù)責(zé)狀

31、態(tài)轉(zhuǎn)換 BEGIN IF CLKEVENT AND CLK=1 THEN C=b; -b是反饋信號 END IF; END PROCESS; END moore;接上頁進(jìn)程FUNC1進(jìn)程FUNC2進(jìn)程REGabcdclock摩爾狀態(tài)機(jī)示意圖第三十三張,PPT共四十五頁,創(chuàng)作于2022年6月在上例中使用了三個進(jìn)程,為了簡化,可將第一和第二進(jìn)程合二為一,如果系統(tǒng)時序要求在寄存器和輸出之間沒有任何邏輯,即希望實(shí)現(xiàn)最短的輸出延時,可以用例45所示的結(jié)構(gòu)體?!纠?-5】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY system IS PORT (Cloc

32、k: IN STD_LOGIC; a :IN STD_LOGIC; d : OUT STD_LOGIC);END system ;ARCHITECTURE moore2 OF system IS BEGIN REG:PROCESS(clock); BEGIN IF CLKEVENT AND CLK=1 THEN d=FUNC(a,d); END IF; END PROCESS;END moore2;組合邏輯功能塊FUNC時序邏輯輸出進(jìn)程REGCLOCKAD直接反饋式摩爾狀態(tài)機(jī)示意圖第三十四張,PPT共四十五頁,創(chuàng)作于2022年6月4.4.3 Mealy型有限狀態(tài)機(jī)的設(shè)計【例4_6】 Mealy

33、機(jī)的VHDL的結(jié)構(gòu)要求至少有兩個進(jìn)程,或是一個狀態(tài)機(jī)進(jìn)程加一個獨(dú)立的并行賦值語句.LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT ( CLK,A: IN STD_LOGIC; d : OUT STD_LOGIC);END MEALY1;ARCHITECTURE behav OF MEALY1 IS SIGNAL c: STD_LOGIC ; BEGIN COM: PROCESS(a,c) -狀態(tài)機(jī)輸出進(jìn)程BEGIN d = FUNC2(a,c); END PROCESS; REG: PROCESS(cLOCK) -時

34、序狀態(tài)轉(zhuǎn)換進(jìn)程 BEGIN IF CLK=1 AND CLKEVENT THEN C =FUNC1(a,c); END IF; END PROCESS; END behav ; 接下頁第三十五張,PPT共四十五頁,創(chuàng)作于2022年6月【例4_7】米立機(jī)也可以用3個進(jìn)程來描述,這樣結(jié)構(gòu)更清晰。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY1 IS PORT ( CLK,a: IN STD_LOGIC; d : OUT STD_LOGIC); END MEALY1; ARCHITECTURE behav OF MEALY1 IS SI

35、GNAL c: STD_LOGIC ; SIGNAL b: STD_LOGIC ; BEGIN REG: PROCESS(cLOCK) -時序狀態(tài)轉(zhuǎn)換進(jìn)程 BEGIN IF CLK=1 AND CLKEVENT THEN C =b; END IF; END PROCESS;第三十六張,PPT共四十五頁,創(chuàng)作于2022年6月圖4-10 米立狀態(tài)機(jī)示意圖D QD_FFBAinputclkcndThree_ssMUX21OT11outputTransition: PROCESS(a,c) BEGIN -轉(zhuǎn)換狀態(tài)確定的進(jìn)程 b = FUNC1(a,c); END PROCESS; outputs: P

36、ROCESS(a,c) BEGIN -狀態(tài)機(jī)輸出進(jìn)程 d = FUNC2(a,c); END PROCESS; END behav ;第三十七張,PPT共四十五頁,創(chuàng)作于2022年6月【例5-6】 MEALY2 P163 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 MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DO

溫馨提示

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