![EDA技術(shù)實(shí)用教程(潘松第5版)第10章-狀態(tài)機(jī)設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/b786d5974f84118d763fa0261ca79364/b786d5974f84118d763fa0261ca793641.gif)
![EDA技術(shù)實(shí)用教程(潘松第5版)第10章-狀態(tài)機(jī)設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/b786d5974f84118d763fa0261ca79364/b786d5974f84118d763fa0261ca793642.gif)
![EDA技術(shù)實(shí)用教程(潘松第5版)第10章-狀態(tài)機(jī)設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/b786d5974f84118d763fa0261ca79364/b786d5974f84118d763fa0261ca793643.gif)
![EDA技術(shù)實(shí)用教程(潘松第5版)第10章-狀態(tài)機(jī)設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/b786d5974f84118d763fa0261ca79364/b786d5974f84118d763fa0261ca793644.gif)
![EDA技術(shù)實(shí)用教程(潘松第5版)第10章-狀態(tài)機(jī)設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/b786d5974f84118d763fa0261ca79364/b786d5974f84118d763fa0261ca793645.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
EDA技術(shù)實(shí)用教程第10章有限狀態(tài)機(jī)設(shè)計(jì)10.1VHDL狀態(tài)機(jī)的一般形式10.1.1用戶自定義數(shù)據(jù)類型定義語句TYPE語句用法如下:TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義OF基本數(shù)據(jù)類型;或TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義;以下列出了兩種不同的定義方式:TYPEst1ISARRAY(0TO15)OFSTD_LOGIC;TYPEweekIS(sun,mon,tue,wed,thu,fri,sat);10.1VHDL狀態(tài)機(jī)的一般形式10.1.1用戶自定義數(shù)據(jù)類型定義語句TYPEm_stateIS(st0,st1,st2,st3,st4,st5);SIGNALpresent_state,next_state:m_state;布爾數(shù)據(jù)類型的定義語句是:TYPEBOOLEANIS(FALSE,TRUE);TYPEmy_logicIS('1','Z','U','0');SIGNALs1:my_logic;s1<='Z';10.1VHDL狀態(tài)機(jī)的一般形式10.1.1用戶自定義數(shù)據(jù)類型定義語句子類型SUBTYPE的語句格式如下:SUBTYPE子類型名IS基本數(shù)據(jù)類型RANGE約束范圍;
SUBTYPEdigitsISINTEGERRANGE0to9;10.1.1狀態(tài)機(jī)的特點(diǎn)與優(yōu)勢(shì)10.1VHDL狀態(tài)機(jī)的一般形式有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單。狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。狀態(tài)機(jī)的VHDL表述豐富多樣。在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢(shì)。就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的。10.1.2狀態(tài)機(jī)的一般結(jié)構(gòu)10.1VHDL狀態(tài)機(jī)的一般形式1.說明部分2.主控時(shí)序進(jìn)程圖10-1
一般狀態(tài)機(jī)結(jié)構(gòu)框圖工作示意圖ARCHITECTURE...ISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;...主控時(shí)序進(jìn)程,只負(fù)責(zé)將當(dāng)前狀態(tài)轉(zhuǎn)換為下一狀態(tài)主控組合進(jìn)程,決定下一個(gè)狀態(tài)為哪個(gè)狀態(tài)以及輸出結(jié)果。3.主控組合進(jìn)程10.1.2狀態(tài)機(jī)的一般結(jié)構(gòu)
主控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(hào)(包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)部其它非主控的組合或時(shí)序進(jìn)程的信號(hào)),或(和)當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next_state)的取向,即next_state的取值內(nèi)容,以及確定對(duì)外輸出或?qū)?nèi)部其它組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。4.輔助進(jìn)程
用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時(shí)序進(jìn)程。【例10-1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machineISPORT(clk,reset:INSTD_LOGIC;state_inputs:INSTD_LOGIC_VECTOR(0TO1);comb_outputs:OUTINTEGERRANGE0TO15);ENDs_machine;ARCHITECTUREbehvOFs_machineISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;BEGINREG:PROCESS(reset,clk)BEGINIFreset='1'THENcurrent_state<=s0;ELSIFclk='1'ANDclk'EVENTTHENcurrent_state<=next_state;ENDIF;ENDPROCESS;
接下頁10.1.2狀態(tài)機(jī)的一般結(jié)構(gòu)COM:PROCESS(current_state,state_Inputs)BEGINCASEcurrent_stateISWHENs0=>comb_outputs<=5;IFstate_inputs="00"THENnext_state<=s0;ELSEnext_state<=s1;ENDIF;WHENs1=>comb_outputs<=8;IFstate_inputs="00"THENnext_state<=s1;ELSEnext_state<=s2;ENDIF;WHENs2=>comb_outputs<=12;IFstate_inputs="11"THENnext_state<=s0;ELSEnext_state<=s3;ENDIF;WHENs3=>comb_outputs<=14;IFstate_inputs="11"THENnext_state<=s3;ELSEnext_state<=s0;ENDIF;ENDcase;ENDPROCESS;ENDbehv;接上頁10.2Moore型有限狀態(tài)機(jī)的設(shè)計(jì)從狀態(tài)機(jī)的信號(hào)輸出方式分,有Mealy和Moore型兩類狀態(tài)機(jī):
Mealy型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號(hào)的函數(shù)。它的輸出是在輸入變化后立即發(fā)生的,不依賴時(shí)鐘的同步,屬于同步輸出狀態(tài)機(jī);
Moore型狀態(tài)機(jī)的輸出則僅為當(dāng)前狀態(tài)的函數(shù),這類狀態(tài)機(jī)在輸入發(fā)生變化時(shí)還必須等待時(shí)鐘的到來,時(shí)鐘使?fàn)顟B(tài)發(fā)生變化時(shí)才導(dǎo)致輸出的變化,所以比Mealy機(jī)要多等待一個(gè)時(shí)鐘周期。屬于異步輸出狀態(tài)機(jī)。表10-1AD0809邏輯控制真值表(X表示任意)
狀態(tài)ALE/STARTEOCOELOCK工作狀態(tài)ST00100初始化,禁止轉(zhuǎn)換ST11000啟動(dòng)轉(zhuǎn)換ST20100轉(zhuǎn)換結(jié)束ST30110輸出數(shù)據(jù)ST40011鎖存10.2.1多進(jìn)程有限狀態(tài)機(jī)10.2.1多進(jìn)程有限狀態(tài)機(jī)圖10-5AD0809工作時(shí)序10.2.1多進(jìn)程有限狀態(tài)機(jī)圖10-6控制ADC0809采樣狀態(tài)圖PROCESSREG時(shí)序進(jìn)程PROCESSCOM組合進(jìn)程PROCESSLATCH1鎖存器current_statenext_stateLOCK狀態(tài)機(jī)FSMFPGA/CPLDCLK
ALESTARTOEADDAEOCD[7..0]ADC0809Q[7..0]模擬信號(hào)輸入采樣數(shù)據(jù)輸出CLKA/D工作時(shí)鐘CLK=750KHz狀態(tài)機(jī)工作時(shí)鐘圖10-7采樣狀態(tài)機(jī)結(jié)構(gòu)框圖【例10-2】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYAD574ISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK,EOC:INSTD_LOGIC;--狀態(tài)機(jī)時(shí)鐘CLK、轉(zhuǎn)換結(jié)束信號(hào)ALE,START,OE,ADDA,LOCK0:OUTSTD_LOGIC;--0809控制信號(hào)
Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--鎖存數(shù)據(jù)輸出END;ARCHITECTUREbehavOFADC0809ISTYPEstatesIS(st0,st1,st2,st3,st4);--定義各狀態(tài)子類型SIGNALcurrent_state,next_state:states:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;--轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時(shí)鐘信號(hào)BEGINADDA<=‘1’;--當(dāng)ADDA<=‘0’,模擬信號(hào)進(jìn)入0809通道0;當(dāng)ADDA<=‘1’,則進(jìn)入通道1
Q<=REGL;LOCK20<=LOCK;
接下頁10.2.1多進(jìn)程有限狀態(tài)機(jī)COM:PROCESS(current_state,EOC)--決定轉(zhuǎn)換狀態(tài)的進(jìn)程BEGINCASEcurrent_stateISWHENst0=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE=‘0’;next_state<=st1;--0809初始化WHENst1=>ALE<=‘1’;START<=‘1’;LOCK<=‘0’;OE=‘0’;next_state<=st2;--啟動(dòng)采樣
WHENst2=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE=‘0’;IF(EOC=‘1’)THENnext_state<=
st3;--EOC=1表明轉(zhuǎn)換結(jié)束ELSEnext_state<=st2;--轉(zhuǎn)換未結(jié)束,繼續(xù)等待ENDIF;
WHENst3=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE=‘1’;
next_state<=st4;--開啟OE,輸出轉(zhuǎn)換好的數(shù)據(jù)
WHENst4=>ALE<=‘0’;START<=‘0’;LOCK<=‘1’;OE=‘0’;next_state<=st0;
WHENOTHERS=>next_state<=st0;ENDCASE;ENDPROCESSCOM;
接下頁接上頁REG:PROCESS(CLK)--時(shí)序進(jìn)程
BEGINIF(CLK'EVENTANDCLK='1')THENcurrent_state<=next_state;ENDIF;ENDPROCESSREG;LATCH1:PROCESS(LOCK)--數(shù)據(jù)鎖存器進(jìn)程
BEGINIFLOCK='1'ANDLOCK'EVENTTHENREGL<=D;ENDIF;ENDPROCESS;Q<=REGL;ENDbehav;接上頁10.2.1多進(jìn)程有限狀態(tài)機(jī)圖10-8AD0809采樣狀態(tài)機(jī)工作時(shí)序10.2.1多進(jìn)程有限狀態(tài)機(jī)一個(gè)負(fù)責(zé)狀態(tài)譯碼,一個(gè)負(fù)責(zé)狀態(tài)轉(zhuǎn)換,構(gòu)成一個(gè)3進(jìn)程狀態(tài)機(jī)10.2.1多進(jìn)程有限狀態(tài)機(jī)【例10-3】將組合進(jìn)程COM分成兩個(gè)組合進(jìn)程COM1和COM2,一個(gè)負(fù)責(zé)狀態(tài)譯碼,另一個(gè)負(fù)責(zé)狀態(tài)轉(zhuǎn)換,構(gòu)成一個(gè)3進(jìn)程有限狀態(tài)機(jī),其功能與前者完全一樣。
COM1:PROCESS(current_state,EOC)----負(fù)責(zé)狀態(tài)轉(zhuǎn)換BEGINCASEcurrent_stateISWHENst0=>next_state<=st1;WHENst1=>next_state<=st2;WHENst2=>IF(EOC='1')THENnext_state<=st3;ELSEnext_state<=st2;ENDIF;WHENst3=>next_state<=st4;--開啟OEWHENst4=>next_state<=st0;WHENOTHERS=>next_state<=st0;ENDCASE;ENDPROCESSCOM1;--接下頁10.2.1多進(jìn)程有限狀態(tài)機(jī)--接上頁COM2:PROCESS(current_state)----負(fù)責(zé)狀態(tài)譯碼BEGINCASEcurrent_stateISWHENst0=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE<=‘0’;WHENst1=>ALE<=‘1’;START<=‘1’;LOCK<=‘0’;OE<=‘0’;
WHENst2=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE<=‘0’;WHENst3=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE<=‘1’;
WHENst4=>ALE<=‘0’;START<=‘0’;LOCK<=‘1’;OE<=‘1’;
WHENOTHERS=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;ENDCASE;ENDPROCESSCOM2;狀態(tài)機(jī)RTL電路圖10.2.2序列檢測(cè)器之狀態(tài)機(jī)設(shè)計(jì)序列檢測(cè)器可用于檢測(cè)一組或多組由二進(jìn)制碼組成的脈沖序列信號(hào),當(dāng)序列檢測(cè)器連續(xù)收到一組串行二進(jìn)制碼后,如果這組碼與檢測(cè)器中預(yù)先設(shè)置的碼相同,則輸出1,否則輸出0.由于這種檢測(cè)的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測(cè)器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測(cè)中所收到的每一位碼都與預(yù)置數(shù)的對(duì)應(yīng)碼相同。在檢測(cè)過程中,任何一位不相等都將回到初始狀態(tài)重新檢測(cè)?!纠?0-4】Moore型序列器(雙進(jìn)程)檢測(cè)數(shù)據(jù)1101_0011,高位在前LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSCHKISPORT(DIN,CLK,RST:INSTD_LOGIC;SOUT:OUTSTD_LOGIC);ENDSCHK;ARCHITECTUREbehavOFSCHKISTYPEstatesIS(s0,s1,s2,s3,s4,s5,s6,s7,s8);--定義各狀態(tài)SIGNALST,NST:states:=s0;
BEGIN
接下頁10.2.2序列檢測(cè)器之狀態(tài)機(jī)設(shè)計(jì)--接上頁COM:PROCESS(ST,DIN)BEGINCASESTIS----1101_0011WHENs0=>IFDIN=‘1’THENNST<=S1;ELSENST<=S0;ENDIF;WHENs1=>IFDIN=‘1’THENNST<=S2;ELSENST<=S0;ENDIF;WHENs2=>IFDIN=‘0’THENNST<=S3;ELSENST<=S0;ENDIF;WHENs3=>IFDIN=‘1’THENNST<=S4;ELSENST<=S0;ENDIF;WHENs4=>IFDIN=‘0’THENNST<=S5;ELSENST<=S0;ENDIF;WHENs5=>IFDIN=‘0’THENNST<=S6;ELSENST<=S0;ENDIF;WHENs6=>IFDIN=‘1’THENNST<=S7;ELSENST<=S0;ENDIF;WHENs7=>IFDIN=‘1’THENNST<=S8;ELSENST<=S0;ENDIF;WHENs8=>IFDIN=‘0’THENNST<=S3;ELSENST<=S0;ENDIF;WHENOTHERS=>NST<=s0;ENDCASE;ENDPROCESSCOM;
接下頁10.2.2序列檢測(cè)器之狀態(tài)機(jī)設(shè)計(jì)此處進(jìn)入s3,是因?yàn)檫@時(shí)測(cè)出的數(shù)據(jù)110恰好與原序列數(shù)的頭三位相同--接上頁REG:PROCESS(CLK,RST)BEGIN--時(shí)序進(jìn)程
IFRST=‘1’THENST<=s0;ELSIF(CLK'EVENTANDCLK='1')THENST<=NST;ENDIF;ENDPROCESSREG;
SOUT<=‘1’WHENST=s8ELSE‘0’;
ENDbehav;
10.2.2序列檢測(cè)器之狀態(tài)機(jī)設(shè)計(jì).2.2單進(jìn)程Moore型有限狀態(tài)機(jī)由于以上狀態(tài)機(jī)的輸出信號(hào)是由組合電路發(fā)出的,所以在一些特定情況下難免出現(xiàn)毛刺現(xiàn)象,如果這些輸出用于特殊控制,極易產(chǎn)生錯(cuò)誤的操作,這是要盡力避免的。單進(jìn)程Moore狀態(tài)機(jī)比較容易構(gòu)成能避免出現(xiàn)毛刺現(xiàn)象的狀態(tài)機(jī)。.2.2單進(jìn)程Moore型有限狀態(tài)機(jī)【例-4】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMOORE1ISPORT(DATAIN:INSTD_LOGIC_VECTOR(1DOWNTO0);CLK,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDMOORE1;ARCHITECTUREbehavOFMOORE1ISTYPEST_TYPEIS(ST0,ST1,ST2,ST3,ST4);SIGNALC_ST:ST_TYPE;BEGINPROCESS(CLK,RST)BEGINIFRST='1'THENC_ST<=ST0;Q<="0000";ELSIFCLK'EVENTANDCLK='1'THEN
接下頁CASEC_STISWHENST0=>IFDATAIN="10"THENC_ST<=ST1;ELSEC_ST<=ST0;ENDIF;Q<="1001";WHENST1=>IFDATAIN="11"THENC_ST<=ST2;ELSEC_ST<=ST1;ENDIF;Q<="0101";WHENST2=>IFDATAIN="01"THENC_ST<=ST3;ELSEC_ST<=ST0;ENDIF;Q<="1100";WHENST3=>IFDATAIN="00"THENC_ST<=ST4;ELSEC_ST<=ST2;ENDIF;Q<="0010";WHENST4=>IFDATAIN="11"THENC_ST<=ST0;ELSEC_ST<=ST3;ENDIF;Q<="1001";WHENOTHERS=>C_ST<=ST0;ENDCASE;ENDIF;ENDPROCESS;ENDbehav;接上頁CASE語句處于時(shí)鐘上升沿的ELSIF語句中,對(duì)Q的賦值必然能引入對(duì)Q鎖存的鎖存器圖7-7例7-4狀態(tài)機(jī)綜合后的RTL電路模塊圖.2.2單進(jìn)程Moore型有限狀態(tài)機(jī).2.2單進(jìn)程Moore型有限狀態(tài)機(jī)圖7-8例7-4單進(jìn)程狀態(tài)機(jī)工作時(shí)序7.2.2單進(jìn)程Moore型有限狀態(tài)機(jī)圖7-9對(duì)應(yīng)于例7-4的2進(jìn)程狀態(tài)機(jī)工作時(shí)序圖10.3Mealy型有限狀態(tài)機(jī)的設(shè)計(jì)
Mealy機(jī)的組合進(jìn)程結(jié)構(gòu)中的輸出信號(hào)是當(dāng)前狀態(tài)和當(dāng)前輸入的函數(shù)。與Moore型狀態(tài)機(jī)相比,Mealy機(jī)的輸出變化要領(lǐng)先一個(gè)周期即一旦輸入信號(hào)或狀態(tài)發(fā)生變化,輸出信號(hào)即刻發(fā)生變化。
10.3Mealy型有限狀態(tài)機(jī)的設(shè)計(jì)【例10-5】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMEALY1ISPORT(CLK,DIN1,DIN2,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(4DOWNTO0));ENDMEALY1;ARCHITECTUREbehavOFMEALY1ISTYPEstatesIS(st0,st1,st2,st3,st4);SIGNALPST:states;BEGINCOMREG:PROCESS(CLK,RST,PST,DIN1)BEGIN--決定轉(zhuǎn)換狀態(tài)的進(jìn)程
IFRST='1'THENPST<=ST0;ELSIFCLK'EVENTANDCLK='1'THENCASEPSTISWHENst0=>IFDIN1='1'THENPST<=st1;ENDIF;WHENst1=>IFDIN1=‘1'THENPST<=st2;ENDIF;WHENst2=>IFDIN1='1'THENPST<=st3;ENDIF;WHENst3=>IFDIN1=‘1'THENPST<=st4;ENDIF;WHENst4=>IFDIN1=‘0'THENPST<=st0;ENDIF;WHENOTHERS=>PST<=st0;ENDCASE;ENDIF;ENDPROCESSCOMREG;接下頁COM:PROCESS(PST,DIN2)BEGIN--輸出控制信號(hào)的進(jìn)程
CASEPSTISWHENst0=>IFDIN2='1'THENQ<="10000";ELSEQ<="01010";ENDIF;WHENst1=>IFDIN2='0'THENQ<="10111";ELSEQ<="10100";ENDIF;WHENst2=>IFDIN2='1'THENQ<="10101";ELSEQ<="10011";ENDIF;WHENst3=>IFDIN2='0'THENQ<="11011";ELSEQ<="01001";ENDIF;WHENst4=>IFDIN2='1'THENQ<="11101";ELSEQ<="01101";ENDIF;WHENOTHERS=>Q<="00000";ENDCASE;ENDPROCESSCOM;ENDbehav;圖10-10例10-5之雙進(jìn)程狀態(tài)機(jī)工作時(shí)序圖【例10-6】MEALY2LIBRARYIEEE;--MEALYFSMUSEIEEE.STD_LOGIC_1164.ALL;ENTITYMEALY2ISPORT(CLK,DIN1,DIN2,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(4DOWNTO0));ENDMEALY2;ARCHITECTUREbehavOFMEALY2ISTYPEstatesIS(st0,st1,st2,st3,st4);SIGNALPST:states;BEGINPROCESS(CLK,RST)--決定轉(zhuǎn)換狀態(tài)的進(jìn)程BEGINIFRST='1'THENPST<=ST0;ELSIFRISING_EDGE(CLK)THENCASEPSTISWHENst0=>IFDIN1='1'THENPST<=st1;ELSEPST<=st0;ENDIF;IFDIN2=‘1’THENQ<="10000";ELSEQ<="01010";ENDIF;接下頁WHENst1=>IFDIN1='1'THENPST<=st2;ELSEPST<=st1;ENDIF;IFDIN2='0'THENQ<="10111";ELSEQ<="10100";ENDIF;WHENst2=>IFDIN1='1'THENPST<=st3;ELSEPST<=st2;ENDIF;IFDIN2='1'THENQ<="10101";ELSEQ<="10011";ENDIF;WHENst3=>IFDIN1='1'THENPST<=st4;ELSEPST<=st3;ENDIF;IFDIN2='0'THENQ<="11011";ELSEQ<="01001";ENDIF;WHENst4=>IFDIN1=‘0'THENPST<=st0;ELSEPST<=st4;ENDIF;IFDIN2='1'THENQ<="11101";ELSEQ<="01101";ENDIF;WHENOTHERS=>PST<=st0;Q<="00000";ENDCASE;ENDIF;ENDPROCESSCOM;ENDbehav;圖10-11例10-6之單進(jìn)程狀態(tài)機(jī)工作時(shí)序圖【例10-7】Mealy型序列檢測(cè)器(單進(jìn)程)
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSCHKISPORT(DIN,CLK,RST:INSTD_LOGIC;SOUT:OUTSTD_LOGIC);ENDSCHK;ARCHITECTUREbehavOFSCHKISTYPEstatesIS(s0,s1,s2,s3,s4,s5,s6,s7,s8);--定義各狀態(tài)SIGNALST:states:=s0;
BEGIN接下頁--接上頁P(yáng)ROCESS(ST,DIN)BEGINIFRST=‘1’THENST<=s0;
ELSIFCLK’EVENTANDCLK=‘1’THENCASESTIS----1101_0011WHENs0=>IFDIN=‘1’THENST<=S1;ELSEST<=S0;ENDIF;WHENs1=>IFDIN=‘1’THENST<=S2;ELSEST<=S0;ENDIF;WHENs2=>IFDIN=‘0’THENST<=S3;ELSEST<=S0;ENDIF;WHENs3=>IFDIN=‘1’THENST<=S4;ELSEST<=S0;ENDIF;WHENs4=>IFDIN=‘0’THENST<=S5;ELSEST<=S0;ENDIF;WHENs5=>IFDIN=‘0’THENST<=S6;ELSEST<=S0;ENDIF;WHENs6=>IFDIN=‘1’THENST<=S7;ELSEST<=S0;ENDIF;WHENs7=>IFDIN=‘1’THENST<=S8;ELSEST<=S0;ENDIF;WHENs8=>IFDIN=‘0’THENST<=S3;ELSEST<=S0;ENDIF;WHENOTHERS=>ST<=s0;ENDCASE;IF(ST=s8)THENSOUT<=‘1’;ELSESOUT<=‘0’;ENDIF;ENDIF;ENDPROCESS;ENDbehav;
圖10-13例10-7之單進(jìn)程狀態(tài)機(jī)工作時(shí)序圖10.4狀態(tài)編碼10.4.1直接輸出型編碼表10-1控制信號(hào)狀態(tài)編碼表每一位的編碼值都賦予了實(shí)際的控制功能,即:
START=SOUT(4);ALE=SOUT(3);OE=SOUT(2);LOCK=SOUT(1)。狀態(tài)狀態(tài)編碼功能說明START
ALE
OELOCKBST00
0
0
0
0初始態(tài)ST1
1
1
0
0
0啟動(dòng)轉(zhuǎn)換ST2
0
0
0
0
1若測(cè)得EOC=1時(shí),轉(zhuǎn)下一狀態(tài)ST3
ST3
0
0
1
0
0輸出轉(zhuǎn)換好的數(shù)據(jù)
ST4
0
0
1
1
0利用LOCK的上升沿將轉(zhuǎn)換好的數(shù)據(jù)鎖存【例10-8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYADC0809ISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK,EOC:INSTD_LOGIC;ALE,START,OE,ADDA:OUTSTD_LOGIC;c_state:OUTSTD_LOGIC_VECTOR(4DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDADC0809;ARCHITECTUREbehavOFADC0809ISSIGNALcs,SOUT:STD_LOGIC_VECTOR(4DOWNTO0);CONSTANTst0:STD_LOGIC_VECTOR(4DOWNTO0):=“00000";CONSTANTst1:STD_LOGIC_VECTOR(4DOWNTO0):=“11000";CONSTANTst2:STD_LOGIC_VECTOR(4DOWNTO0):="00001";CONSTANTst3:STD_LOGIC_VECTOR(4DOWNTO0):="00100";CONSTANTst4:STD_LOGIC_VECTOR(4DOWNTO0):="00110";SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;BEGINADDA<=‘1’;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天然氣供應(yīng)鏈風(fēng)險(xiǎn)管理與信息安全考核試卷
- 家居用品批發(fā)商網(wǎng)絡(luò)營(yíng)銷新趨勢(shì)考核試卷
- 2025-2030年拉曼光譜儀行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年手術(shù)隱私保護(hù)方案行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年文具維修店行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年手機(jī)支付安全解決方案行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年塑料口風(fēng)琴行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年控糖飲食企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年地質(zhì)鉆探設(shè)備升級(jí)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年商用空氣凈化器行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2024年平面設(shè)計(jì)師技能及理論知識(shí)考試題庫(附含答案)
- 相互批評(píng)意見500條【5篇】
- 2024-2030年中國(guó)汽車駕駛培訓(xùn)市場(chǎng)發(fā)展動(dòng)態(tài)與前景趨勢(shì)預(yù)測(cè)報(bào)告
- 中鐵十四局合同范本
- 醫(yī)院課件:《食源性疾病知識(shí)培訓(xùn)》
- 浙教版七年級(jí)數(shù)學(xué)下冊(cè)單元測(cè)試題及參考答案
- 華為人才發(fā)展與運(yùn)營(yíng)管理
- 2024年廣州金融控股集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 中國(guó)食物成分表2018年(標(biāo)準(zhǔn)版)第6版
- 九三學(xué)社申請(qǐng)入社人員簡(jiǎn)歷表
- 卓有成效的管理者讀后感3000字
評(píng)論
0/150
提交評(píng)論