




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第八章有限元狀態(tài)機的設(shè)計一、概述二、Moore狀態(tài)機三、Mealy狀態(tài)機四、狀態(tài)編碼五、非法狀態(tài)處理作業(yè)一、概述時序電路典型時序電路典型時序電路一般時序電路一般時序電路每一種典型時序電路,都有明確的邏輯功能和比較固定的設(shè)計方法。這類電路在實際中應(yīng)用十分廣泛。如同步計數(shù)器、異步計數(shù)器、移位寄存器等等。用以解決一般的時序邏輯問題,這些問題都能用有限個不同的狀態(tài)來描述和控制能用有限個不同的狀態(tài)來描述和控制。這些狀態(tài)在一定的條件之下會發(fā)生轉(zhuǎn)換。有限元狀態(tài)機主要是用來解決有限元狀態(tài)機主要是用來解決一般時序邏輯電路一般時序邏輯電路問題。問題。 有限元狀態(tài)機有限元狀態(tài)機(Finite State Machi
2、ne FSM)在VHDL中有著廣泛的應(yīng)用,許多實際問題都是通過狀態(tài)機來實現(xiàn)的,尤其是同步時序邏輯電路的設(shè)計。主要功能: 是用來實現(xiàn)一個數(shù)字電路設(shè)計中的控制部分控制部分,其功能與CPU的功能十分相似。對CPU來講,系統(tǒng)執(zhí)行速度與CPU運行速度及具體編程風格有關(guān)。使用狀態(tài)機來實現(xiàn)時,執(zhí)行使用狀態(tài)機來實現(xiàn)時,執(zhí)行的速度主要受系統(tǒng)更新狀態(tài)所需時間的限制的速度主要受系統(tǒng)更新狀態(tài)所需時間的限制。實踐證明:在執(zhí)行耗費時間和執(zhí)行時間的確定性方面,狀態(tài)機要比CPU好。狀態(tài)機分類從信號輸出方式分:Mealy型:輸出與輸入和現(xiàn)態(tài)有關(guān)。Moore型:輸出只與現(xiàn)態(tài)有關(guān)。次態(tài)次態(tài)邏輯邏輯狀態(tài)狀態(tài)寄存器寄存器輸出輸出邏輯邏
3、輯輸入輸入輸出輸出次態(tài)次態(tài)現(xiàn)態(tài)現(xiàn)態(tài)時鐘信號時鐘信號復(fù)位信號復(fù)位信號次態(tài)次態(tài)邏輯邏輯狀態(tài)狀態(tài)寄存器寄存器輸出輸出邏輯邏輯輸入輸入輸出輸出次態(tài)次態(tài)現(xiàn)態(tài)現(xiàn)態(tài)時鐘信號時鐘信號復(fù)位信號復(fù)位信號Mealy型狀態(tài)機結(jié)構(gòu)圖Moore型狀態(tài)機結(jié)構(gòu)圖狀態(tài)機分類單進程狀態(tài)機多進程狀態(tài)機(二進程、三進程)符號化狀態(tài)機確定狀態(tài)編碼的狀態(tài)機從編碼方式分:從結(jié)構(gòu)分:從狀態(tài)表達方式分:順序編碼狀態(tài)機一位熱碼編碼狀態(tài)機其他編碼方式狀態(tài)機實現(xiàn)方法 在VHDL語言中,狀態(tài)機的實現(xiàn)符合人的思維邏輯,簡單明了。用用VHDL可以設(shè)計不同表達方式和不同實用功能的狀可以設(shè)計不同表達方式和不同實用功能的狀態(tài)機,態(tài)機,多數(shù)狀態(tài)機都有相對固定的語
4、句和程序表達方式多數(shù)狀態(tài)機都有相對固定的語句和程序表達方式,只,只要把握住了這些固定的語句表達部分,就能根據(jù)實際需要寫要把握住了這些固定的語句表達部分,就能根據(jù)實際需要寫出各種風格和面向不同實用目的的出各種風格和面向不同實用目的的VHDL狀態(tài)機狀態(tài)機,適用于大型復(fù)雜的系統(tǒng)。 在傳統(tǒng)傳統(tǒng)的數(shù)字電路設(shè)計中,往往通過設(shè)計原始狀態(tài)圖,進行狀態(tài)化簡得到最簡狀態(tài)圖,再通過狀態(tài)分配和確定激勵函數(shù)和輸出函數(shù)后,實現(xiàn)狀態(tài)機。設(shè)計過程比較復(fù)雜,只適合小型簡單系統(tǒng)。狀態(tài)機的優(yōu)勢1、狀態(tài)機克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活順序方式控制不靈活的缺點;2、由于狀態(tài)機的結(jié)構(gòu)相對簡單,故設(shè)計方案相對固定設(shè)計方案相對固定;
5、3、狀態(tài)機容易構(gòu)成性能良好的同步時序邏輯模塊;4、與VHDL的其他描述方式相比,狀態(tài)機的VHDL表述豐富多樣、程序?qū)哟畏置?,結(jié)構(gòu)清晰層次分明,結(jié)構(gòu)清晰,易讀易懂;在排錯、修改和模塊移植方面也有其獨到的好處;5、在高速運算和控制方面,狀態(tài)機更有其巨大的優(yōu)勢。6、高可靠性。狀態(tài)機設(shè)計相關(guān)語句TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義;枚舉型類型定義語句TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;TYPE BOOLEAN IS (FALSE,TRUE) ;定義:舉例:TYPE my_logic IS ( 1 ,Z ,U ,0 ) ;SIGNAL s1 : m
6、y_logic ;s1 = Z ;狀態(tài)機設(shè)計相關(guān)語句TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ;SIGNAL present_state,next_state : m_state ;定義狀態(tài)機用枚舉型語句VHDL設(shè)計狀態(tài)機的構(gòu)成構(gòu)成說明部分主控時序時序進程主控組合組合進程輔助輔助進程等單進程狀態(tài)機三進程狀態(tài)機構(gòu)成說明部分主控時序時序進程主控組合組合進程二進程狀態(tài)機構(gòu)成說明部分主控時序、組合進程說明部分說明部分說明部分使用TYPE語句來定義新的數(shù)據(jù)類型,此數(shù)據(jù)類型為枚舉型,其元素通常都是用狀態(tài)機的狀態(tài)來定義都是用狀態(tài)機的狀態(tài)來定義。狀態(tài)變量(如現(xiàn)態(tài)和
7、次態(tài))應(yīng)定義為信號信號,便于信息傳遞,狀態(tài)變量的數(shù)據(jù)類型為方才定義的新的數(shù)據(jù)類型。 說明部分一般放在結(jié)構(gòu)體的ARCHITECTURE和BEGIN之間。ARCHITECTURE IS TYPE FSM_ST IS (S0,S1,S2,S3); SIGNAL current_state , next_state : FSM_ST; BEGIN例:ARCHITECTURE IS TYPE FSM_ST IS (S0,S1,S2,S3); SIGNAL current_state , next_state : FSM_ST; BEGIN說明:1、定義新的數(shù)據(jù)類型FSM_ST為枚舉型,有4個成員(S0,
8、S1,S2,S3);2、定義兩個信號current_state(現(xiàn)態(tài)),next_state(次態(tài)),類型為FSM_ST,每個信號都有4種取值。3、由于狀態(tài)變量的取值為文字符號,因此以上語句定義的狀態(tài)機屬于符號化狀態(tài)機屬于符號化狀態(tài)機。主控時序進程主控時序進程u主控時序進程是指負責狀態(tài)機運轉(zhuǎn)負責狀態(tài)機運轉(zhuǎn)和在時鐘驅(qū)動下負責狀態(tài)在時鐘驅(qū)動下負責狀態(tài)轉(zhuǎn)換的進程轉(zhuǎn)換的進程。(即負責將次態(tài)次態(tài)賦給現(xiàn)態(tài)現(xiàn)態(tài))u當時鐘發(fā)生有效跳變時,狀態(tài)機狀態(tài)才發(fā)生變化,狀態(tài)機向下一狀態(tài)(包括再次進入本狀態(tài))轉(zhuǎn)換的時刻時刻僅取決于時鐘信號的到來。u一般地,主控時序進程不負責不負責下一狀態(tài)的具體狀態(tài)取值,如S0,S1,S2
9、,S3中的某一狀態(tài)值,當時鐘的有效跳變到來時,時序進程只是機械地將代表次態(tài)的信號只是機械地將代表次態(tài)的信號next_statenext_state中的值送中的值送入現(xiàn)態(tài)的信號入現(xiàn)態(tài)的信號current_statecurrent_state中,而信號中,而信號next_statenext_state中的內(nèi)容中的內(nèi)容完全由其他進程根據(jù)實際情況來決定。完全由其他進程根據(jù)實際情況來決定。u時序進程中也可以放置一些同步或異步清零或置位同步或異步清零或置位方面的控制信號。例1:主控時序進程舉例REG: PROCESS (reset, clk) BEGIN IF reset = 1 THEN current
10、_state = s0 ; ELSIF clk=1 AND clkEVENT THEN current_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
11、; IF state_inputs=“11” THEN next_state =S3; ELSE next_state =S0; END IF; END CASE;END PROCESS ;S05S18S212S3140000/00/0011/11/1111輔助進程 輔助進程是配合狀態(tài)機工作的組合或時序進程配合狀態(tài)機工作的組合或時序進程。例如為了完成某種算法的進程,或用于配合狀態(tài)機工作的其他時序進程,或為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存器等。例3:完整的狀態(tài)機舉例LIRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk
12、,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR(0 TO 1); comb_output : OUT INTEGER RANGE 0 TO15 ) ; END ENTITY s_machine;ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS (S0, S1, S2, S3); SIGNAL current_state,next_state : FSM_ST;BEGIN定義端口定義類型定義信號例3:完整的狀態(tài)機舉例BEGINREG: PROCESS (reset, clk) BE
13、GIN IF reset = 1 THEN current_state = s0 ; ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs comb_outputs comb_outputs comb_outputs Z輸出信號現(xiàn)態(tài)次態(tài)輸出ZX=0X=1S0S0S20S1S0S21S2S2S31S3S3S10某一電路狀態(tài)圖如圖所示,用VHDL語言設(shè)計此電路。(VHDL芯片設(shè)計,清華大學(xué)出版社, P351)例4:現(xiàn)態(tài)次態(tài)輸出ZX=0X=1S0S0S20S1S0S21S2S2S31S3S3S10LIRARY IEEE;USE IEEE.S
14、TD_LOGIC_1164.ALL;ENTITY Moore_2 IS PORT ( clk,reset : IN STD_LOGIC; X : IN STD_LOGIC ; Z : OUT STD_LOGIC) ; END Moore_2;ARCHITECTURE Moore_2_arch OF Moore_2 IS TYPE State IS (S0,S1,S2,S3); SIGNAL Present_state,Next_state : State;BEGIN例4:BEGIN PROCESS (reset, clk) BEGIN IF reset = 1 THEN Present_sta
15、te = s0 ; ELSIF clk=1 AND clkEVENT THEN Present_state IF X=0 then Next_state =S0; ELSE Next_state =S2; END IF; Z IF END IF; Z IF END IF; Z IF END IF; Z Z輸出信號現(xiàn)態(tài)次態(tài)輸出ZX=0X=1S0S0S10S1S1S01用MooreMachine設(shè)計一個奇偶校驗器(Parity checker),其方框圖如圖所示。在X端輸入的一連串0與1的信號中:(1)當1的數(shù)量為偶數(shù)個時,輸出端Z為0;(2)當1的數(shù)量為奇數(shù)個時,輸出端Z為1。(VHDL芯片設(shè)計
16、,清華大學(xué)出版社, P354)S11S001001例4_1:LIRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Moore_3 IS PORT ( clk,reset : IN STD_LOGIC; X : IN STD_LOGIC ; Z : OUT STD_LOGIC) ; END Moore_3;ARCHITECTURE Moore_3_arch OF Moore_3 IS TYPE State IS (S0,S1); SIGNAL Present_state,Next_state : State;BEGIN現(xiàn)態(tài)次態(tài)輸出ZX=0X=1S0S0S1
17、0S1S1S01例4-1:BEGIN BB: PROCESS (reset, clk) BEGIN IF reset = 1 THEN Present_state = s0 ; ELSIF clk=1 AND clkEVENT THEN Present_state IF X=0 then Next_state =S0; ELSE Next_state =S1; END IF; Z IF X=0 then Next_state =S1; ELSE Next_state =S0; END IF; Z =1; END CASE;END PROCESS AA ;END Moore_3_arch ;例4
18、_1:現(xiàn)態(tài)次態(tài)輸出X=0X=1S0S0S10S1S1S01多進程狀態(tài)機ADC0809工作時序圖以ADC0809的應(yīng)用為例,進行多進程狀態(tài)機編程舉例。(EDA技術(shù)與VHDL(2版) 清華大學(xué)出版社 P154)100uS控制控制ADC0809采樣狀態(tài)圖采樣狀態(tài)圖采樣狀態(tài)機結(jié)構(gòu)框圖采樣狀態(tài)機結(jié)構(gòu)框圖LOOK0數(shù)據(jù)鎖存信號LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT ISPORT( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -來自0809轉(zhuǎn)換好的8位數(shù)據(jù) CLK : IN STD_LOGIC; -狀態(tài)機工作
19、時鐘 EOC : IN STD_LOGIC; -轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換 ALE : OUT STD_LOGIC; -8個模擬信號通道地址鎖存信號 START : OUT STD_LOGIC; -轉(zhuǎn)換開始信號 OE : OUT STD_LOGIC; -數(shù)據(jù)輸出3態(tài)控制信號 ADDA : OUT STD_LOGIC; -信號通道最低位控制信號【例5】 ADDA : OUT STD_LOGIC; LOCK0 : OUT STD_LOGIC; -轉(zhuǎn)換數(shù)據(jù)鎖存時鐘 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位數(shù)據(jù)輸出END ADCINT; ARCHITEC
20、TURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3,st4) ; -定義各狀態(tài)子類型SIGNAL current_state, next_state: states :=st0 ;SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK : STD_LOGIC; - 轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號BEGIN【例5】BEGIN ADDA = 1; -當ADDA=0,模擬信號進入通道IN0; - 當ADDA=1,則進入通道IN1 Q = REGL; LOCK0 = LOCK ;REG:
21、PROCESS (CLK)BEGIN IF (CLKEVENT AND CLK=1) THEN current_state ALE=0; START=0; LOCK=0; OE=0; next_state ALE=1; START=1; LOCK=0; OE=0; next_state ALE=0; START=0; LOCK=0; OE=0; IF (EOC=1) THEN next_state = st3; -EOC=1表明轉(zhuǎn)換結(jié)束表明轉(zhuǎn)換結(jié)束 ELSE next_state ALE=0; START=0; LOCK=0; OE=1; next_state ALE=0; START=0;
22、LOCK=1; OE=1; next_state next_state = st0; END CASE ;END PROCESS COM ;【例5】【例5】LATCH1: PROCESS (LOCK) - 此進程中,在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF;END PROCESS LATCH1 ;END behav;ADC0809采樣狀態(tài)機工作時序啟動轉(zhuǎn)換轉(zhuǎn)換結(jié)束輸出允許。在EOC=1后下一個CLK,使OE=1。輸出鎖存。LOCK0=1回到準備狀態(tài)單進程Moore狀態(tài)機u單進程狀態(tài)機其特點是組
23、合進程和時序進程在同一個組合進程和時序進程在同一個進程中進程中,可認為此進程為混合進程。 u單進程Moore狀態(tài)機比較容易構(gòu)成能避免毛刺能避免毛刺現(xiàn)象的進程。【例6】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 ISPORT (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 S
24、T_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL C_ST : ST_TYPE ;BEGIN 【例6】BEGINPROCESS(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 = ST2 ; ELSE C_ST = ST1 ; END IF; Q IF DATAIN =01 THEN C_ST = ST3 ;ELSE C_ST = ST0 ; END I
25、F;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 Z輸出信號S00/01/01/00/01/10/0S2S1現(xiàn)態(tài)次態(tài)/輸出X=0X=1S0S0/0S1/0S1S2/0S1/0S2S0/0S1/1S00/01/01/00/01/10/0S2S1例7:LIRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Mealy_1 IS PORT ( clk,reset : I
26、N STD_LOGIC; X : IN STD_LOGIC ; Z : OUT STD_LOGIC) ; END Mealy_1;ARCHITECTURE Mealy_1 _arch OF Mealy_1 IS TYPE State IS (S0,S1,S2); SIGNAL Present_state, Next_state : State;BEGIN現(xiàn)態(tài)次態(tài)/輸出X=0X=1S0S0/0S1/0S1S2/0S1/0S2S0/0S1/1例7:BEHIN PROCESS (reset, clk) BEGIN IF reset = 1 THEN Present_state = S0 ; ELSI
27、F clk=1 AND clkEVENT THEN Present_state IF X=0 then Next_state =S0; Z=0; ELSE Next_state =S1; Z IF X=0 then Next_state =S2; Z=0; ELSE Next_state =S1; Z IF X=0 then Next_state =S0; Z=0; ELSE Next_state =S1; ZZ輸出信號S01/01/01/1S2S10/0S30/01/00/00/0現(xiàn)態(tài)次態(tài)/輸出X=0X=1S0S1/0S0/0S1S1/0S2/0S2S3/0S0/0S3S1/0S2/1S01
28、/01/01/1S2S10/0S30/01/00/00/0例8:LIRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Mealy_2 IS PORT ( clk,reset : IN STD_LOGIC; X : IN STD_LOGIC ; Z : OUT STD_LOGIC) ; END Mealy_2;ARCHITECTURE Mealy_2 _arch OF Mealy_2 IS TYPE State IS (S0,S1,S2,S3); SIGNAL Present_state, Next_state : State;BEGIN現(xiàn)態(tài)次態(tài)/輸出X=
29、0X=1S0S1/0S0/0S1S1/0S2/0S2S3/0S0/0S3S1/0S2/1例8:BEHIN PROCESS (reset, clk) BEGIN IF reset = 1 THEN Present_state = S0 ; ELSIF clk=1 AND clkEVENT THEN Present_state IF X=0 then Next_state =S1; Z=0; ELSE Next_state =S0; Z WHEN S2 = WHEN S3 = IF X=0 then Next_state =S1; Z=0; ELSE Next_state =S2; Z=1; EN
30、D IF;END CASE;END PROCESS ;END Mealy_2 _arch ;例8:現(xiàn)態(tài)次態(tài)/輸出X=0X=1S0S1/0S0/0S1S1/0S2/0S2S3/0S0/0S3S1/0S2/1例9 兩進程Mealy狀態(tài)機(EDA技術(shù)與VHDL(2版) 清華大學(xué)出版社 P159)S00/01010S11/101001/100000/10111S20/100111/10101S31/010010/10111S40/011011/11101 狀態(tài)圖如圖所示,其中:狀態(tài)數(shù):5個,輸入變量 DATAIN : 1位,輸出變量Q:5位。狀態(tài)圖特點:在特定輸入下轉(zhuǎn)到下一狀態(tài),否則維持原態(tài)。例9LI
31、BRARY IEEE;USE IEEE.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 ISTYPE states IS (st0, st1, st2, st3,st4 ); -定義狀態(tài)SIGNAL STX : states ;BEGIN兩進程Mealy狀態(tài)機例9COMREG : PROCESS(CLK,RESET) -決定決定轉(zhuǎn)換
32、狀態(tài)轉(zhuǎn)換狀態(tài)的進程的進程BEGINIF 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 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
33、; ELSE Q IF DATAIN = 1 THEN Q = 11101 ; ELSE Q Q 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
34、DATAIN=1 THEN Q2 :=11101; ELSE Q2:=01101; END IF;WHEN OTHERS = Q2:=00000 ; END CASE ;IF CLKEVENT AND CLK = 1 THEN Q1=Q2; END IF;END PROCESS COM1 ;Q = Q1 ;END behav;- 新增變量新增變量Q2改進編程狀態(tài)機工作時序圖區(qū)別:1、在COM1進程中增加了一條IF語句:IF CLKEVENT AND CLK = 1 THEN Q1=Q2; END IF; 2、進程之外有語句:Q = Q1 ; 從而使Q的變化受CLK的影響,輸出幾乎沒有毛刺改進前
35、改進后四、 狀態(tài)編碼直接輸出型編碼順序編碼一位熱碼編碼 狀態(tài)編碼就是把狀態(tài)機的每個狀態(tài)(狀態(tài)編碼就是把狀態(tài)機的每個狀態(tài)(ST0、ST1)用)用一個確定的編碼來表示。一個確定的編碼來表示。1、直接輸出型編碼 將狀態(tài)編碼直接輸出作為控制信號,即output=state,要求對狀態(tài)機各狀態(tài)的編碼作特殊的選擇,以適應(yīng)控制對象的要求。這種狀態(tài)機稱為直接輸出型狀態(tài)機。 這類編碼方式最典型的應(yīng)用就是計數(shù)器。計數(shù)器實質(zhì)上是一個主控時序進程和主控組合進程合二為一狀態(tài)機,他的輸出就是各狀態(tài)的狀態(tài)碼??刂菩盘枲顟B(tài)編碼表狀態(tài)狀 態(tài) 編 碼START ALEOELOCKB功能說明ST000000初始態(tài)ST111000啟
36、動轉(zhuǎn)換ST200001若測得EOC=1時,轉(zhuǎn)下一狀態(tài)ST3ST300100輸出轉(zhuǎn)換好的數(shù)據(jù)ST400110利用LOCK的上升沿將轉(zhuǎn)換好的數(shù)據(jù)鎖存【例10】 下表是根據(jù)0809時序要求,控制0809采樣的編碼表,B是標志信號。這個狀態(tài)機有5個狀態(tài)組成,從ST0ST5,編碼為00000、11000、00001、00100、00110。每一位編碼值都賦予了實際控制功能??刂菩盘枲顟B(tài)編碼表狀態(tài)狀 態(tài) 編 碼START ALEOELOCKB功能說明ST000000初始態(tài)ST111000啟動轉(zhuǎn)換ST200001若測得EOC=1時,轉(zhuǎn)下一狀態(tài)ST3ST300100輸出轉(zhuǎn)換好的數(shù)據(jù)ST400110利用LOCK
37、的上升沿將轉(zhuǎn)換好的數(shù)據(jù)鎖存【例5-7】START =current_state(4)ALE =current_state(3)OE =current_state(2)LOCK =current_state(1)B =current_state(0)設(shè)有:current_state(4 downto 0)則:【例10】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD0809 IS PORT (D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK ,EOC : IN STD_LOGIC; ALE, START, OE,
38、 ADDA : OUT STD_LOGIC; c_state : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END AD0809;ARCHITECTURE behav OF AD0809 ISSIGNAL current_state: STD_LOGIC_VECTOR(4 DOWNTO 0 );SIGNAL next_state: STD_LOGIC_VECTOR(4 DOWNTO 0 );CONSTANT st0 :【例10】CONSTANT st0 : STD_LOGIC_VECTOR(
39、4 DOWNTO 0) := 00000 ;CONSTANT st1 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 11000 ;CONSTANT st2 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 00001 ;CONSTANT st3 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 00100 ;CONSTANT st4 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 00110 ;SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK : STD_LOGIC;BEGINADDA = 1; Q = REGL;START=current_state(4); ALE=current_state(3);OE=current_state(2); LOCK=current_state(1);c_state next_state next_state IF (EOC=1) THEN
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年麗水市縉云縣人民法院招聘筆試真題
- 2024年金昌市中級人民法院招聘筆試真題
- 2024年恒豐銀行成都分行招聘筆試真題
- 重視員工意見與建議計劃
- 行業(yè)動態(tài)與自身發(fā)展的關(guān)聯(lián)計劃
- 網(wǎng)絡(luò)管理實踐中的案例借鑒試題及答案
- 網(wǎng)絡(luò)工具使用技巧試題及答案
- 2025年戰(zhàn)略管理中的人力資源考量試題及答案
- 企業(yè)環(huán)境風險與長遠戰(zhàn)略目標的互動研究試題及答案
- 提升競爭力2025年軟件設(shè)計師考試試題及答案
- 2025-2030全球及中國免疫磁珠行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 狼人殺測試題及答案
- 2025-2030中國艾草行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 抱負與使命主題范文引領(lǐng)-2024-2025學(xué)年高一語文單元寫作深度指導(dǎo)(統(tǒng)編版必修下冊)
- 深度學(xué)習基礎(chǔ)與實踐 課件 2.3.2模型的欠擬合與過擬合
- 山東省濟南長清區(qū)六校聯(lián)考2025年初三下學(xué)期5月模擬考試生物試題試卷含解析
- 2025統(tǒng)編版(2024)小學(xué)道德與法治一年級下冊《第13課-快樂兒童節(jié)》教學(xué)設(shè)計
- 2024年成都市城市管理委員會所屬事業(yè)單位招聘真題
- 2025冶金工業(yè)信息標準研究院招聘筆試參考題庫附帶答案詳解
- 警犬培訓(xùn)授課課件
- 初中化學(xué)跨學(xué)科教學(xué)實踐活動設(shè)計與實施研究
評論
0/150
提交評論