




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
為什么要設(shè)計有限狀態(tài)機應(yīng)用的需要,復(fù)雜系統(tǒng)的需要如果我們能設(shè)計這樣一個電路能記住自己目前所處的狀態(tài)狀態(tài)的變化只可能在同一時鐘的跳變沿時刻發(fā)生,而不可能發(fā)生在任意時刻在時鐘跳變沿時刻,如輸入條件滿足則進入下一狀態(tài),并記住自己目錄所處的狀態(tài)。否則仍保留原來的狀態(tài)。在進入不同的狀態(tài)時刻,對系統(tǒng)的開關(guān)陣列做開啟或關(guān)閉操作。12346.1有限狀態(tài)機2、有限狀態(tài)機的基本概念狀態(tài)機是一種思想方法狀態(tài)機的本質(zhì)就是對具有邏輯順序或時序規(guī)律事件的一種描述方法。具有邏輯順序和時序規(guī)律的事件都適合用狀態(tài)機描述。拋開電路的具體含義,時序電路的通用模型就是有限狀態(tài)機。什么是有限狀態(tài)機FSM:FiniteStateMachine應(yīng)用市場上的電子產(chǎn)品進入非正常狀態(tài)/(不需要考慮的狀態(tài))的可能很多,不可能一一去列舉于是采用以“不變應(yīng)萬變”的方式,只考慮需要的狀態(tài),不需要的狀態(tài)不管。需要考慮的狀態(tài)一一列舉出來(有限性Finite),不需要考慮的狀態(tài)都統(tǒng)一當(dāng)異常處理(default)1232、有限狀態(tài)機的基本概念有限狀態(tài)機三要素FSM:FiniteStateMachine狀態(tài)(當(dāng)前狀態(tài),下一個狀態(tài))輸入信號(事件)輸出控制信號(相應(yīng)操作)1232、有限狀態(tài)機的基本概念用VHDL設(shè)計的狀態(tài)機有多種形式從信號輸出方式分:Mealy型狀態(tài)機和Moore型狀態(tài)機從結(jié)構(gòu)上分:單進程狀態(tài)機和多進程狀態(tài)機從狀態(tài)表達方式上分:符號化狀態(tài)機、確定狀態(tài)編碼狀態(tài)機從編碼方式上分:順序編碼狀態(tài)機、一位熱碼編碼狀態(tài)機或其他編碼方式狀態(tài)機√√√√3、VHDL一般有限狀態(tài)機的類型Moore型有限狀態(tài)機是指那些輸出信號僅與當(dāng)前狀態(tài)有關(guān)的有限狀態(tài)機,即可以把Moore型有限狀態(tài)機的輸出看成是當(dāng)前狀態(tài)的函數(shù)。Moore型有限狀態(tài)機框圖:3、VHDL一般有限狀態(tài)機的類型Mealy型有限狀態(tài)機是指那些輸出信號不僅與當(dāng)前狀態(tài)有關(guān),而且還與所有的輸入信號有關(guān)的有限狀態(tài)機,即可以把Mealy有限狀態(tài)機的輸出看作當(dāng)前狀態(tài)和所有輸入信號的函數(shù)??梢?,Mealy有限狀態(tài)機要比Moore有限狀態(tài)機復(fù)雜一些。Mealy有限狀態(tài)機框圖:3、VHDL一般有限狀態(tài)機的類型Moore型和Mealy型有限狀態(tài)機的區(qū)別:Moore型有限狀態(tài)機僅與當(dāng)前狀態(tài)有關(guān),而與輸入信號無關(guān);Mealy型有限狀態(tài)機不但與當(dāng)前狀態(tài)有關(guān),而且還與狀態(tài)機的輸入信號有關(guān)。3、VHDL一般有限狀態(tài)機的類型采用何種有限狀態(tài)機的判別條件:Moore型有限狀態(tài)機可能要比相應(yīng)的Mealy型有限狀態(tài)機需要更多的狀態(tài)。Moore型有限狀態(tài)機的輸出與當(dāng)前的輸入部分無關(guān),因此當(dāng)前輸入產(chǎn)生的任何效果將會延遲到下一個時鐘周期??梢?,Moore型狀態(tài)機的最大優(yōu)點就是可以將輸入部分和輸出部分隔離開。對于Mealy型有限狀態(tài)機來說,由于它的輸出是輸入信號的函數(shù),因此如果輸入信號發(fā)生改變,那么輸出可以在一個時鐘周期內(nèi)發(fā)生改變3、VHDL一般有限狀態(tài)機的類型單進程狀態(tài)機整個狀態(tài)機的描述在一個進程中完成雙進程狀態(tài)機將組合邏輯部分和時序邏輯部分分開描述,放在結(jié)構(gòu)體的說明部分三進程狀態(tài)機將組合邏輯部分再分為產(chǎn)生次態(tài)的組合邏輯部分和產(chǎn)生輸出的組合邏輯部分,與時序邏輯部分一起放在結(jié)構(gòu)體的說明部分3、VHDL一般有限狀態(tài)機的類型1.利用VHDL進行狀態(tài)機設(shè)計利用VHDL語言將時序電路的狀態(tài)轉(zhuǎn)換關(guān)系進行描述。在VHDL中,所有狀態(tài)均可表達為case_when結(jié)構(gòu)中的一條case語句,而狀態(tài)的轉(zhuǎn)移可以通過if_then_else語句實現(xiàn)。6.2有限狀態(tài)機的VHDL程序設(shè)計Process(clk)BeginIfclk’eventandclk=‘1’thenCasestateis:When“000”=>If條件1then state<=“001”;Endif;When……Endcase;Endif;Endprocess例1:寫出圖示狀態(tài)轉(zhuǎn)換圖的VHDL描述LIBRARYieee;USEieee.std_logic_1164.ALL;ENTITYstate_machineISPORT( clk,input,clr:IN
BIT; output: OUTBIT);ENDstate_machine;S0/0S1/1Input=1/output=10/1/output=0ARCHITECTUREbehave_1OFstate_machineISTYPEstate_typeIS(s0,s1);--通常使用枚舉類型定義狀態(tài)機的狀態(tài)SIGNALstate:state_type;BEGINPROCESS(clk) BEGIN IFclr='1'THENstate<=s0; ELSIF(clk’eventANDclk='1')THEN CASEstateIS WHENs0=>state<=s1; WHENs1=> IFinput=’1'THEN state<=s0; ELSEstate<=s1;ENDIF;S0/0S1/1Input=1/output=10/1/output=0
ENDIF;ENDPROCESS; output<='1'WHEN(state=s1)ELSE'0';ENDbehave_1;S0/0S1/1Input=1/output=10/1/output=0LIBRARYieee;USEieee.std_logic_1164.ALL;ENTITYstate_machineISPORT(clk,reset,A,B: INstd_logic; Y,Z:OUTstd_logic);ENDstate_machine;ARCHITECTUREtest
ofstate_machineIS
TYPE
FSM_ST
IS(s0,s1,s2,s3);
SIGNALcurrent_state,next_state:
FSM_ST
;
Begin……;--通常使用枚舉類型定義狀態(tài)機的狀態(tài)(1)說明部分2.一般有限狀態(tài)機的VHDL程序設(shè)計用戶自定義數(shù)據(jù)類型定義語句TYPE語句用法如下:TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義OF基本數(shù)據(jù)類型;或TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義;以下列出了兩種不同的定義方式:TYPEst1ISARRAY(0TO15)OFSTD_LOGIC;數(shù)組數(shù)據(jù)類型TYPEweek
IS(sun,mon,tue,wed,thu,fri,sat);
枚舉數(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';符號化狀態(tài)機:用文字符號表示二進制數(shù)。確定化狀態(tài)機:直接用數(shù)值表示。(2)時序進程(PROCESSREG)時序進程是負責(zé)狀態(tài)機運轉(zhuǎn)和在時鐘驅(qū)動下負責(zé)狀態(tài)轉(zhuǎn)換的進程。2.一般有限狀態(tài)機的VHDL程序設(shè)計BEGINREG:PROCESS(clk,reset)--時序邏輯進程BEGIN IFreset='1'THENcurrent_state<=s0;ELSIFrising_edge(clock)THENcurrent_state<=next_state;--狀態(tài)轉(zhuǎn)換ENDIF; ENDPROCESSreg;--由信號current_state將當(dāng)前狀態(tài)值帶出此進程,進入com進程(3)組合進程(PROCESSCOM)
組合進程是根據(jù)外部輸入的控制信號(包括來自狀態(tài)機外部的信號和來自狀態(tài)機內(nèi)部其它非主控的組合或時序進程的信號),或(和)當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next_state)的取向,即next_state的取值內(nèi)容,以及確定對外輸出或?qū)?nèi)部其它組合或時序進程輸出控制信號的內(nèi)容。COM:PROCESS(current_state,A,B)--組合邏輯進程BEGIN
CASEcurrent_stateIS
--確定當(dāng)前狀態(tài)的狀態(tài)值
WHENs0=> IFA=‘0’andB=‘1’THENnext_state<=s1;ELSIFA=‘1’andB=‘0’THENnext_state<=s2;ELSIFA=‘0’andB=‘0’THENnext_state<=s0;ENDIF;
WHENs1=>IFA=‘0’andB=‘0’THENnext_state<=s1;ELSIFA=‘0’andB=‘1’THENnext_state<=s2;ELSIFA=‘1’andB=‘0’THENnext_state<=s0;ENDIF;
WHENs2=>IFA=‘0’andB=‘0’THENnext_state<=s2;ELSEnext_state<=s0;ENDIF;
ENDCASE;ENDPROCESS;--由信號next_state將下一個狀態(tài)值帶出此進程,進入reg進程ENDtest;(4)輸出模塊輸出模塊可有可無,需要的話可以用并行賦值語句實現(xiàn),也可以用進程實現(xiàn)。
信號current_state、next_state在狀態(tài)機中稱為反饋信號,用于進程間的信息傳遞,實現(xiàn)當(dāng)前狀態(tài)的存儲和下一個狀態(tài)的設(shè)定等功能。OUTPUT:PROCESS(current_state,A,B)--輸出進程BEGIN
CASEcurrent_stateIS
WHENs0=> IFA=‘0’andB=‘1’THEN
Y<=‘0’,Z<=‘0’;ELSIFA=‘1’andB=‘0’THEN
Y<=‘0’,Z<=‘0’;
ELSIFA=‘0’andB=‘0’THEN
Y<=‘0’,Z<=‘0’;ENDIF;
……;
ENDCASE;ENDPROCESS;VHDL狀態(tài)機中,所有狀態(tài)均可表達為case_when結(jié)構(gòu)中的一條case語句,而狀態(tài)的轉(zhuǎn)移可以通過if_then_else語句實現(xiàn)。設(shè)計步驟分解分析輸入輸出端口信號;狀態(tài)轉(zhuǎn)移圖;根據(jù)狀態(tài)轉(zhuǎn)移圖進行VHDL語言描述;測試代碼編寫,仿真;FPGA實現(xiàn)。123456.3狀態(tài)機應(yīng)用實例交通燈狀態(tài)機設(shè)計RESET(asynchronous)REDTIMER1YELLOWGREENTIMER1TIMER2TIMER2Y='1'G='1'TIMER3TIMER3R='1'交通燈狀態(tài)機設(shè)計——實體描述LIBRARYieee; USEieee.std_logic_1164.ALL; ENTITYstate_machineISPORT( clock,reset: INstd_logic; timer1,timer2,timer3:INstd_logic; r,y,g: OUTstd_logic); ENDstate_machine;交通燈狀態(tài)機設(shè)計——方案一ARCHITECTURE
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 8的乘法口訣(教學(xué)設(shè)計)-2024-2025學(xué)年數(shù)學(xué)二年級上冊冀教版
- 乘數(shù)末尾有0的乘法(教學(xué)設(shè)計)-2024-2025學(xué)年數(shù)學(xué)三年級上冊冀教版
- 15 白鵝教學(xué)設(shè)計-2023-2024學(xué)年四年級下冊語文統(tǒng)編版
- 2024年高中化學(xué) 第三章 重要的有機化合物 第二節(jié) 石油和煤重要的烴 第2課時 煤的干餾 苯教學(xué)設(shè)計 魯科版必修2
- 《清理廚房》教學(xué)設(shè)計-2023-2024學(xué)年勞動四年級下冊人教版
- 《年月日》(教學(xué)設(shè)計)-2024-2025學(xué)年三年級下冊數(shù)學(xué)人教版
- 《8 搞好個人衛(wèi)生》(教學(xué)設(shè)計)-2023-2024學(xué)年三年級上冊綜合實踐活動皖教版
- 2023-2024學(xué)年高中化學(xué) 1.2.2 科學(xué)家怎樣研究有機物教學(xué)設(shè)計 蘇教版選擇性必修3
- 三年級上冊道德與法治教學(xué)設(shè)計-3.2我們的學(xué)校我介紹 第二課時 桂師星球版
- Unit 2 My class (教學(xué)設(shè)計)-2024-2025學(xué)年人教精通版英語三年級下冊
- 2025年03月春季甘肅臨夏州引進高層次人才和急需緊缺專業(yè)技術(shù)人才344人筆試歷年參考題庫考點剖析附解題思路及答案詳解
- 2025-2030中國面巾紙行業(yè)運營模式與競爭格局分析研究報告
- 2025年浙江省初中學(xué)校TZ8共同體中考數(shù)學(xué)一模試卷
- 2025年各地低空經(jīng)濟政策匯編
- 酒店應(yīng)知應(yīng)會培訓(xùn)
- 2025年共青團入團考試測試題庫及答案
- 房屋建筑工程竣工驗收技術(shù)資料統(tǒng)一用表(2024 版)
- 2021年同等學(xué)力申碩《臨床醫(yī)學(xué)》試題真題及答案
- CNAS-EC-027-2010 信息安全管理體系認證機構(gòu)認可說明
- 小學(xué)科學(xué)實驗教學(xué)與現(xiàn)代教育技術(shù)融合研究
- 熱鍍鋅鋼管柵欄施工方案
評論
0/150
提交評論