




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
為什么要設(shè)計(jì)有限狀態(tài)機(jī)應(yīng)用的需要,復(fù)雜系統(tǒng)的需要如果我們能設(shè)計(jì)這樣一個(gè)電路能記住自己目前所處的狀態(tài)狀態(tài)的變化只可能在同一時(shí)鐘的跳變沿時(shí)刻發(fā)生,而不可能發(fā)生在任意時(shí)刻在時(shí)鐘跳變沿時(shí)刻,如輸入條件滿足則進(jìn)入下一狀態(tài),并記住自己目錄所處的狀態(tài)。否則仍保留原來(lái)的狀態(tài)。在進(jìn)入不同的狀態(tài)時(shí)刻,對(duì)系統(tǒng)的開(kāi)關(guān)陣列做開(kāi)啟或關(guān)閉操作。12346.1有限狀態(tài)機(jī)2、有限狀態(tài)機(jī)的基本概念狀態(tài)機(jī)是一種思想方法狀態(tài)機(jī)的本質(zhì)就是對(duì)具有邏輯順序或時(shí)序規(guī)律事件的一種描述方法。具有邏輯順序和時(shí)序規(guī)律的事件都適合用狀態(tài)機(jī)描述。拋開(kāi)電路的具體含義,時(shí)序電路的通用模型就是有限狀態(tài)機(jī)。什么是有限狀態(tài)機(jī)FSM:FiniteStateMachine應(yīng)用市場(chǎng)上的電子產(chǎn)品進(jìn)入非正常狀態(tài)/(不需要考慮的狀態(tài))的可能很多,不可能一一去列舉于是采用以“不變應(yīng)萬(wàn)變”的方式,只考慮需要的狀態(tài),不需要的狀態(tài)不管。需要考慮的狀態(tài)一一列舉出來(lái)(有限性Finite),不需要考慮的狀態(tài)都統(tǒng)一當(dāng)異常處理(default)1232、有限狀態(tài)機(jī)的基本概念有限狀態(tài)機(jī)三要素FSM:FiniteStateMachine狀態(tài)(當(dāng)前狀態(tài),下一個(gè)狀態(tài))輸入信號(hào)(事件)輸出控制信號(hào)(相應(yīng)操作)1232、有限狀態(tài)機(jī)的基本概念用VHDL設(shè)計(jì)的狀態(tài)機(jī)有多種形式從信號(hào)輸出方式分:Mealy型狀態(tài)機(jī)和Moore型狀態(tài)機(jī)從結(jié)構(gòu)上分:?jiǎn)芜M(jìn)程狀態(tài)機(jī)和多進(jìn)程狀態(tài)機(jī)從狀態(tài)表達(dá)方式上分:符號(hào)化狀態(tài)機(jī)、確定狀態(tài)編碼狀態(tài)機(jī)從編碼方式上分:順序編碼狀態(tài)機(jī)、一位熱碼編碼狀態(tài)機(jī)或其他編碼方式狀態(tài)機(jī)√√√√3、VHDL一般有限狀態(tài)機(jī)的類型Moore型有限狀態(tài)機(jī)是指那些輸出信號(hào)僅與當(dāng)前狀態(tài)有關(guān)的有限狀態(tài)機(jī),即可以把Moore型有限狀態(tài)機(jī)的輸出看成是當(dāng)前狀態(tài)的函數(shù)。Moore型有限狀態(tài)機(jī)框圖:3、VHDL一般有限狀態(tài)機(jī)的類型Mealy型有限狀態(tài)機(jī)是指那些輸出信號(hào)不僅與當(dāng)前狀態(tài)有關(guān),而且還與所有的輸入信號(hào)有關(guān)的有限狀態(tài)機(jī),即可以把Mealy有限狀態(tài)機(jī)的輸出看作當(dāng)前狀態(tài)和所有輸入信號(hào)的函數(shù)??梢?jiàn),Mealy有限狀態(tài)機(jī)要比Moore有限狀態(tài)機(jī)復(fù)雜一些。Mealy有限狀態(tài)機(jī)框圖:3、VHDL一般有限狀態(tài)機(jī)的類型Moore型和Mealy型有限狀態(tài)機(jī)的區(qū)別:Moore型有限狀態(tài)機(jī)僅與當(dāng)前狀態(tài)有關(guān),而與輸入信號(hào)無(wú)關(guān);Mealy型有限狀態(tài)機(jī)不但與當(dāng)前狀態(tài)有關(guān),而且還與狀態(tài)機(jī)的輸入信號(hào)有關(guān)。3、VHDL一般有限狀態(tài)機(jī)的類型采用何種有限狀態(tài)機(jī)的判別條件:Moore型有限狀態(tài)機(jī)可能要比相應(yīng)的Mealy型有限狀態(tài)機(jī)需要更多的狀態(tài)。Moore型有限狀態(tài)機(jī)的輸出與當(dāng)前的輸入部分無(wú)關(guān),因此當(dāng)前輸入產(chǎn)生的任何效果將會(huì)延遲到下一個(gè)時(shí)鐘周期??梢?jiàn),Moore型狀態(tài)機(jī)的最大優(yōu)點(diǎn)就是可以將輸入部分和輸出部分隔離開(kāi)。對(duì)于Mealy型有限狀態(tài)機(jī)來(lái)說(shuō),由于它的輸出是輸入信號(hào)的函數(shù),因此如果輸入信號(hào)發(fā)生改變,那么輸出可以在一個(gè)時(shí)鐘周期內(nèi)發(fā)生改變3、VHDL一般有限狀態(tài)機(jī)的類型單進(jìn)程狀態(tài)機(jī)整個(gè)狀態(tài)機(jī)的描述在一個(gè)進(jìn)程中完成雙進(jìn)程狀態(tài)機(jī)將組合邏輯部分和時(shí)序邏輯部分分開(kāi)描述,放在結(jié)構(gòu)體的說(shuō)明部分三進(jìn)程狀態(tài)機(jī)將組合邏輯部分再分為產(chǎn)生次態(tài)的組合邏輯部分和產(chǎn)生輸出的組合邏輯部分,與時(shí)序邏輯部分一起放在結(jié)構(gòu)體的說(shuō)明部分3、VHDL一般有限狀態(tài)機(jī)的類型1.利用VHDL進(jìn)行狀態(tài)機(jī)設(shè)計(jì)利用VHDL語(yǔ)言將時(shí)序電路的狀態(tài)轉(zhuǎn)換關(guān)系進(jìn)行描述。在VHDL中,所有狀態(tài)均可表達(dá)為case_when結(jié)構(gòu)中的一條case語(yǔ)句,而狀態(tài)的轉(zhuǎn)移可以通過(guò)if_then_else語(yǔ)句實(shí)現(xiàn)。6.2有限狀態(tài)機(jī)的VHDL程序設(shè)計(jì)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)機(jī)的狀態(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)機(jī)的狀態(tài)(1)說(shuō)明部分2.一般有限狀態(tài)機(jī)的VHDL程序設(shè)計(jì)用戶自定義數(shù)據(jù)類型定義語(yǔ)句TYPE語(yǔ)句用法如下: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ù)類型的定義語(yǔ)句是:TYPEBOOLEANIS(FALSE,TRUE);TYPEmy_logicIS('1','Z','U','0');SIGNALs1:my_logic;s1<='Z';符號(hào)化狀態(tài)機(jī):用文字符號(hào)表示二進(jìn)制數(shù)。確定化狀態(tài)機(jī):直接用數(shù)值表示。(2)時(shí)序進(jìn)程(PROCESSREG)時(shí)序進(jìn)程是負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時(shí)鐘驅(qū)動(dòng)下負(fù)責(zé)狀態(tài)轉(zhuǎn)換的進(jìn)程。2.一般有限狀態(tài)機(jī)的VHDL程序設(shè)計(jì)BEGINREG:PROCESS(clk,reset)--時(shí)序邏輯進(jìn)程BEGIN IFreset='1'THENcurrent_state<=s0;ELSIFrising_edge(clock)THENcurrent_state<=next_state;--狀態(tài)轉(zhuǎn)換ENDIF; ENDPROCESSreg;--由信號(hào)current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程,進(jìn)入com進(jìn)程(3)組合進(jìn)程(PROCESSCOM)
組合進(jìn)程是根據(jù)外部輸入的控制信號(hào)(包括來(lái)自狀態(tài)機(jī)外部的信號(hào)和來(lái)自狀態(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)容。COM:PROCESS(current_state,A,B)--組合邏輯進(jìn)程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;--由信號(hào)next_state將下一個(gè)狀態(tài)值帶出此進(jìn)程,進(jìn)入reg進(jìn)程ENDtest;(4)輸出模塊輸出模塊可有可無(wú),需要的話可以用并行賦值語(yǔ)句實(shí)現(xiàn),也可以用進(jìn)程實(shí)現(xiàn)。
信號(hào)current_state、next_state在狀態(tài)機(jī)中稱為反饋信號(hào),用于進(jìn)程間的信息傳遞,實(shí)現(xiàn)當(dāng)前狀態(tài)的存儲(chǔ)和下一個(gè)狀態(tài)的設(shè)定等功能。OUTPUT:PROCESS(current_state,A,B)--輸出進(jìn)程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)機(jī)中,所有狀態(tài)均可表達(dá)為case_when結(jié)構(gòu)中的一條case語(yǔ)句,而狀態(tài)的轉(zhuǎn)移可以通過(guò)if_then_else語(yǔ)句實(shí)現(xiàn)。設(shè)計(jì)步驟分解分析輸入輸出端口信號(hào);狀態(tài)轉(zhuǎn)移圖;根據(jù)狀態(tài)轉(zhuǎn)移圖進(jìn)行VHDL語(yǔ)言描述;測(cè)試代碼編寫,仿真;FPGA實(shí)現(xiàn)。123456.3狀態(tài)機(jī)應(yīng)用實(shí)例交通燈狀態(tài)機(jī)設(shè)計(jì)RESET(asynchronous)REDTIMER1YELLOWGREENTIMER1TIMER2TIMER2Y='1'G='1'TIMER3TIMER3R='1'交通燈狀態(tài)機(jī)設(shè)計(jì)——實(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)機(jī)設(shè)計(jì)——方案一ARCHITECTURE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 抵押合同六8篇
- 伸縮門采購(gòu)合同合同
- 新零售模式下智慧物流配送優(yōu)化策略
- 灑水車合同5篇
- 商業(yè)保密協(xié)議書十
- 公司員工保底協(xié)議
- 2025年貴港貨運(yùn)資格證培訓(xùn)考試題
- 2025年寧夏貨車從業(yè)資格證答題軟件
- 陶瓷插芯市場(chǎng)分析及競(jìng)爭(zhēng)策略分析報(bào)告
- 珠光材料市場(chǎng)分析及競(jìng)爭(zhēng)策略分析報(bào)告
- 2024-2030年中國(guó)稅務(wù)師事務(wù)所行業(yè)管理模式及投資前景展望報(bào)告版
- 2024年全國(guó)高考英語(yǔ)試題及答案-湖南卷
- 部編人教版小學(xué)四年級(jí)下冊(cè)道德與法治全冊(cè)教案及每課教學(xué)反思
- 中建吊籃安拆專項(xiàng)施工方案(專家論證版)
- 《汽車維修接待實(shí)務(wù)》 課件全套 孫麗學(xué)習(xí)情景1-8 汽車維修服務(wù)接待認(rèn)知 -新能源汽車維修接待
- 2020年礦建監(jiān)理工作總結(jié)
- 獸醫(yī)學(xué)英語(yǔ)詞匯【參考】
- 浙江省溫州市2024-2025學(xué)年高三上學(xué)期一模英語(yǔ)試題 含解析
- 建筑施工安全生產(chǎn)包保責(zé)任實(shí)施方案
- 《時(shí)代與變革?版畫藝術(shù)的魅力》教學(xué)設(shè)計(jì)
- 《民法典》醫(yī)療損害責(zé)任篇培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論