版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、f=ab 安徽師范大學(xué)安徽師范大學(xué)20152015第5章 Verilog HDL同步有限狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)的基本概念狀態(tài)機(jī)的編碼方式復(fù)雜狀態(tài)機(jī)的編寫(xiě)方法采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn)程序算法狀態(tài)機(jī)狀態(tài)機(jī)適合描述那些發(fā)生時(shí)有先后順序或者有邏輯規(guī)律的事情。其本質(zhì)是對(duì)具有邏輯順序或時(shí)序規(guī)律事件的一種描述方法。時(shí)序邏輯電路設(shè)計(jì)過(guò)程由給定的邏輯功能建立原始狀態(tài)圖和狀態(tài)表狀態(tài)化簡(jiǎn)狀態(tài)編碼選擇觸發(fā)器類型確定激勵(lì)方程組和輸出方程組畫(huà)出邏輯圖并檢查自啟動(dòng)有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)它是一個(gè)有向的狀態(tài)轉(zhuǎn)移圖形,由一組狀態(tài)和一組它是一個(gè)有向的狀態(tài)轉(zhuǎn)移圖形,由一組狀態(tài)和一組相應(yīng)的狀態(tài)轉(zhuǎn)移函數(shù)組成。相應(yīng)的狀態(tài)轉(zhuǎn)移函數(shù)組成。狀態(tài)機(jī)包
2、含的要素可歸納為4個(gè):現(xiàn)態(tài)、條件、動(dòng)作、次態(tài)?!艾F(xiàn)態(tài)”和“條件”是因,“動(dòng)作”和“次態(tài)”是果。現(xiàn)態(tài):是指當(dāng)前所處的狀態(tài)。條件:又稱為“事件”。當(dāng)一個(gè)條件被滿足,將會(huì)觸發(fā)一個(gè)動(dòng)作,或者執(zhí)行一次狀態(tài)的遷移。動(dòng)作:條件滿足后執(zhí)行的動(dòng)作。動(dòng)作執(zhí)行完畢后,可以遷移到新的狀態(tài),也可以仍舊保持原狀態(tài)。動(dòng)作不是必需的,當(dāng)條件滿足后,也可以不執(zhí)行任何動(dòng)作,直接遷移到新?tīng)顟B(tài)。次態(tài):條件滿足后要遷往的新?tīng)顟B(tài)?!按螒B(tài)”是相對(duì)于“現(xiàn)態(tài)”而言的,“次態(tài)”一旦被激活,就轉(zhuǎn)變成新的“現(xiàn)態(tài)”了。有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)感冒感冒健康健康康復(fù)中康復(fù)中休息休息 淋雨淋雨吃藥吃藥有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)設(shè)計(jì)集成電路時(shí)設(shè)
3、計(jì)集成電路時(shí),通??蓪⒄麄€(gè)系統(tǒng)劃分為數(shù)據(jù)單元和通??蓪⒄麄€(gè)系統(tǒng)劃分為數(shù)據(jù)單元和控制單元。其中控制單元的主體通常是一個(gè)有限狀態(tài)控制單元。其中控制單元的主體通常是一個(gè)有限狀態(tài)機(jī)機(jī),它接收外部信號(hào)和數(shù)據(jù)單元產(chǎn)生的狀態(tài)信息它接收外部信號(hào)和數(shù)據(jù)單元產(chǎn)生的狀態(tài)信息, 產(chǎn)生控產(chǎn)生控制信號(hào)序列。制信號(hào)序列。有了以上電路,就不難設(shè)計(jì)出復(fù)雜的控制序列來(lái)操縱數(shù)有了以上電路,就不難設(shè)計(jì)出復(fù)雜的控制序列來(lái)操縱數(shù)字系統(tǒng)的控制開(kāi)關(guān)陣列。字系統(tǒng)的控制開(kāi)關(guān)陣列。有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)有限狀態(tài)機(jī)能夠克服純硬件數(shù)字系統(tǒng)順序方式控制不有限狀態(tài)機(jī)能夠克服純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。靈活的缺點(diǎn)。狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)
4、簡(jiǎn)單。狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單。狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。狀態(tài)機(jī)的狀態(tài)機(jī)的Verilog表述豐富多樣。表述豐富多樣。在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢(shì)。在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢(shì)。就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的。就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的。有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)狀態(tài)機(jī)一般包括組合邏輯和寄存器邏輯兩部分。寄存器用于存儲(chǔ)狀態(tài)機(jī)一般包括組合邏輯和寄存器邏輯兩部分。寄存器用于存儲(chǔ)狀態(tài),組合電路用于狀態(tài)譯碼和產(chǎn)生輸出信號(hào)。狀態(tài),組合電路用于狀態(tài)譯碼和產(chǎn)生輸出信號(hào)。狀態(tài)機(jī)的下一個(gè)狀態(tài)及輸
5、出不僅與輸入信號(hào)有關(guān),還與寄存器當(dāng)狀態(tài)機(jī)的下一個(gè)狀態(tài)及輸出不僅與輸入信號(hào)有關(guān),還與寄存器當(dāng)前狀態(tài)有關(guān)。前狀態(tài)有關(guān)。根據(jù)輸出信號(hào)產(chǎn)生方法的不同,狀態(tài)機(jī)可分為根據(jù)輸出信號(hào)產(chǎn)生方法的不同,狀態(tài)機(jī)可分為米里米里(Mealy) 機(jī)機(jī)和和摩爾摩爾(Moore) 機(jī)機(jī)。米里米里(Mealy) 機(jī)的機(jī)的輸出輸出是當(dāng)前狀態(tài)和輸入信號(hào)的函數(shù)。是當(dāng)前狀態(tài)和輸入信號(hào)的函數(shù)。摩爾摩爾(Moore) 機(jī)的機(jī)的輸出輸出僅是當(dāng)前狀態(tài)的函數(shù)。僅是當(dāng)前狀態(tài)的函數(shù)。在硬件設(shè)計(jì)時(shí)在硬件設(shè)計(jì)時(shí),需自行決定采用哪種狀態(tài)機(jī)。需自行決定采用哪種狀態(tài)機(jī)。Mealy 狀態(tài)機(jī)狀態(tài)機(jī)下一狀態(tài)下一狀態(tài)的邏輯的邏輯 F F輸出邏輯輸出邏輯 G G狀態(tài)狀
6、態(tài)寄存器寄存器 clk 輸入輸入下一個(gè)狀態(tài) = F(當(dāng)前狀態(tài),輸入信號(hào)); 輸出信號(hào) = G(當(dāng)前狀態(tài),輸入信號(hào));Moor 狀態(tài)機(jī)狀態(tài)機(jī)下一個(gè)狀態(tài) = F(當(dāng)前狀態(tài),輸入信號(hào)) 輸出信號(hào) = G(當(dāng)前狀態(tài));下一狀下一狀態(tài)的邏態(tài)的邏輯輯 F F輸出邏輯輸出邏輯 G G狀態(tài)狀態(tài)寄存器寄存器有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)Idle Start Stop Clear !A !Reset /K2=0 K1=0 !Reset / K2=0 K1=0A=1/K2=1 (!Reset |!A )/ K2=0 K1=1!Reset /K2=0 K1=0 A/K1=0狀態(tài)機(jī)的設(shè)計(jì)包含兩個(gè)主要過(guò)程: 一是狀態(tài)機(jī)
7、的編碼,二是狀態(tài)機(jī)的建模。 同步時(shí)鐘:clk輸入信號(hào):reset、A輸出信號(hào):K1、K2狀態(tài)轉(zhuǎn)移發(fā)生在時(shí)鐘上升沿觸有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)-編碼編碼狀態(tài)編碼又稱狀態(tài)分配。狀態(tài)編碼又稱狀態(tài)分配。通常有多種編碼方法,編碼方案選擇得當(dāng),設(shè)計(jì)的電路可通常有多種編碼方法,編碼方案選擇得當(dāng),設(shè)計(jì)的電路可以簡(jiǎn)單;反之,電路會(huì)占用過(guò)多的邏輯或速度降低。設(shè)計(jì)以簡(jiǎn)單;反之,電路會(huì)占用過(guò)多的邏輯或速度降低。設(shè)計(jì)時(shí),須綜合考慮電路復(fù)雜度和電路性能這兩個(gè)因素。時(shí),須綜合考慮電路復(fù)雜度和電路性能這兩個(gè)因素。二進(jìn)制編碼二進(jìn)制編碼、格雷編碼、格雷編碼、完整一位熱編碼完整一位熱編碼( verbose one-hot)
8、、簡(jiǎn)化一位熱編碼、簡(jiǎn)化一位熱編碼( simplified one-hot )二進(jìn)制編碼: Idle = 2b00 Start = 2b01 Stop = 2b10 Clear = 2b11 One-Hot編碼: Idle = 4b1000 Start = 4b0100 Stop = 4b0010 Clear = 4b0001有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)-編碼編碼二進(jìn)制編碼:使用較少的觸發(fā)器和較多的組合邏輯; 適用于CPLD和小型狀態(tài)機(jī)設(shè)計(jì); One-Hot編碼:使用較多的觸發(fā)器和較少的組合邏輯; 適用于FPGA和大型狀態(tài)機(jī)設(shè)計(jì);有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)-建模建模有限狀態(tài)機(jī)(有限狀態(tài)
9、機(jī)(FSM)-建模建模用用Verilog 語(yǔ)言描述有限狀態(tài)機(jī)可使用多種風(fēng)格語(yǔ)言描述有限狀態(tài)機(jī)可使用多種風(fēng)格,不同的風(fēng)格會(huì)極不同的風(fēng)格會(huì)極大地影響電路性能。大地影響電路性能。通常有通常有2種描述方式種描述方式:單單always 塊、多塊、多always 塊。塊。單always 塊:將狀態(tài)轉(zhuǎn)移和狀態(tài)的操作、判斷等寫(xiě)到一個(gè)塊中多always 塊:將狀態(tài)轉(zhuǎn)移寫(xiě)成一個(gè)單獨(dú)的塊,將狀態(tài)的操作、判斷寫(xiě)到其它塊中狀態(tài)轉(zhuǎn)移是用寄存器實(shí)現(xiàn)的,是同步時(shí)序部分。狀態(tài)的判斷是組合邏輯。多always 塊方式將同步時(shí)序和組合邏輯分別放到不同的塊中實(shí)現(xiàn)。狀態(tài)機(jī)較復(fù)雜時(shí),多always 塊是比較好的設(shè)計(jì)方式。結(jié)構(gòu)清晰,便于閱
10、讀、理解、維護(hù),更重要的是利于綜合器優(yōu)化代碼,利于用戶添加合適的時(shí)序約束條件,利于布局布線器實(shí)現(xiàn)設(shè)計(jì)。有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)Idle Start Stop Clear !A !Reset /K2=0 K1=0 !Reset / K2=0 K1=0A=1/K2=1 (!Reset |!A )/ K2=0 K1=1!Reset /K2=0 K1=0 A/K1=0同步時(shí)鐘:clk輸入信號(hào):reset、A輸出信號(hào):K1、K2狀態(tài)轉(zhuǎn)移發(fā)生在時(shí)鐘上升沿觸module fsm (Clock, Reset, A, K2, K1);module fsm (Clock, Reset, A, K2, K1
11、);input Clock, Reset, A; /input Clock, Reset, A; /定義時(shí)鐘、復(fù)位和輸入信號(hào)定義時(shí)鐘、復(fù)位和輸入信號(hào)output K2, K1; /output K2, K1; /定義輸出控制信號(hào)的端口定義輸出控制信號(hào)的端口reg K2, K1; /reg K2, K1; /定義輸出控制信號(hào)的寄存器定義輸出控制信號(hào)的寄存器reg 1:0 state ;reg 1:0 state ; / /定義狀態(tài)寄存器定義狀態(tài)寄存器parameter Idle = 2parameter Idle = 2b00, Start = 2b00, Start = 2b01, /b01,
12、 /定義狀態(tài)變量參數(shù)值定義狀態(tài)變量參數(shù)值 Stop = 2Stop = 2b10, Clear = 2b10, Clear = 2b11b11;always (posedge Clock)always (posedge Clock) if (!Reset) if (!Reset) begin / begin /定義復(fù)位后的初始狀態(tài)和輸出值定義復(fù)位后的初始狀態(tài)和輸出值 state = Idle; K2=0; K1=0; state = Idle; K2=0; K1=0; end endelseelse case (state) case (state) Idle: begin Idle: beg
13、in if (A) begin if (A) begin state = Start; state = Start; K1=0; K1=0; end end else state = Idle; else state = Idle; end end建模方法之一(二進(jìn)制編碼)Start: begin Start: begin if (!A) state = Stop; if (!A) state = Stop; else state = Start; else state = Start; end endStop: begin Stop: begin if (A) begin if (A) be
14、gin state = Clear; state = Clear; K2= 1; K2= 1; end end else state = Stop; else state = Stop; end endClear: begin Clear: begin if (!A) begin if (!A) begin state = Idle; state = Idle; K2=0; K1=1; K2=0; K1=1; end end else state = Clear; else state = Clear; end end endcase endcaseendmodule endmodule 建模
15、方法之一(二進(jìn)制編碼)module fsm (Clock, Reset, A, K2, K1);module fsm (Clock, Reset, A, K2, K1);input Clock, Reset, A;input Clock, Reset, A;output K2, K1;output K2, K1;reg K2, K1;reg K2, K1;reg 3:0 state ;reg 3:0 state ; parameter Idle = 4parameter Idle = 4b1000, b1000, Start = 4 Start = 4b0100, b0100, Stop =
16、4 Stop = 4b0010, b0010, Clear = 4 Clear = 4b0001;b0001; always (posedge clock) always (posedge clock) if (!Reset) if (!Reset) begin begin state = Idle; K2=0; K1=0; state = Idle; K2=0; K1=0; end end else else case (state) case (state) Idle: if (A) begin Idle: if (A) begin state = Start; state = Start
17、; K1=0; K1=0; end end else state = Idle; else state = Idle;建模方法之二(一位熱編碼) 建模方法之二(一位熱編碼)建模方法之三(2個(gè)always)endendmodule建模方法之三(2個(gè)always)建模方法之四(多個(gè)always)建模方法之四(多個(gè)always)建模方法之四(多個(gè)always)有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM) 多數(shù)多數(shù)FPGA內(nèi)觸發(fā)器加多,且一位熱編碼的譯碼邏輯較內(nèi)觸發(fā)器加多,且一位熱編碼的譯碼邏輯較為簡(jiǎn)單,建議利用為簡(jiǎn)單,建議利用FPGA實(shí)現(xiàn)的有限狀態(tài)機(jī)采用一位熱實(shí)現(xiàn)的有限狀態(tài)機(jī)采用一位熱編碼方式編碼方式在比較復(fù)雜
18、的狀態(tài)機(jī)設(shè)計(jì)過(guò)程中,往往把狀態(tài)的變化與在比較復(fù)雜的狀態(tài)機(jī)設(shè)計(jì)過(guò)程中,往往把狀態(tài)的變化與輸出的控制分成兩部分來(lái)考慮。為了調(diào)試方便,還常常輸出的控制分成兩部分來(lái)考慮。為了調(diào)試方便,還常常把每一個(gè)輸出寫(xiě)成一個(gè)個(gè)獨(dú)立的把每一個(gè)輸出寫(xiě)成一個(gè)個(gè)獨(dú)立的always組合塊。在調(diào)試組合塊。在調(diào)試多輸出狀態(tài)機(jī)時(shí),這樣做比較容易發(fā)現(xiàn)問(wèn)題和改正模塊多輸出狀態(tài)機(jī)時(shí),這樣做比較容易發(fā)現(xiàn)問(wèn)題和改正模塊編寫(xiě)中出現(xiàn)的問(wèn)題。編寫(xiě)中出現(xiàn)的問(wèn)題。FSM的Test Benchtimescale 1ns/100psmodule test(); reg Clock,Reset,A; wire K2,K1; ; always #10 Clock=Clock; initial beginClock=0;Reset=0;A=0; #20;Reset=1;A=0; #20;Reset=1;A=1;endendmodule 有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)-總結(jié)總結(jié) 有限狀態(tài)機(jī)(有限狀態(tài)機(jī)(FSM)-擴(kuò)展擴(kuò)展 有限狀態(tài)機(jī)有限狀態(tài)機(jī)-擴(kuò)展擴(kuò)展隱式狀態(tài)機(jī)隱式狀態(tài)機(jī)FSM 不需要聲明狀態(tài)寄存器
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年全球及中國(guó)消防靴行業(yè)銷售動(dòng)態(tài)及盈利前景預(yù)測(cè)報(bào)告
- 2024年房地產(chǎn)開(kāi)發(fā)商貸款協(xié)議
- 2024-2030年全球及中國(guó)太陽(yáng)能紙行業(yè)發(fā)展前景及投資趨勢(shì)預(yù)測(cè)報(bào)告
- 2024年建筑工程項(xiàng)目施工安全協(xié)議書(shū)范本
- 2024-2030年全球及中國(guó)動(dòng)物飼料和水產(chǎn)飼料行業(yè)銷售渠道及競(jìng)爭(zhēng)趨勢(shì)預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)低壓成型熱熔膠行業(yè)產(chǎn)銷狀況及需求前景預(yù)測(cè)報(bào)告
- 2024年度衛(wèi)星通信服務(wù)與技術(shù)轉(zhuǎn)讓合同
- 2024-2030年全球SCADA行業(yè)發(fā)展動(dòng)態(tài)及投資前景預(yù)測(cè)報(bào)告
- 2024年抖音游戲廣告投放合同
- 2024-2030年中國(guó)風(fēng)電運(yùn)維行業(yè)發(fā)展?jié)摿σ?guī)劃分析報(bào)告
- 《全國(guó)技工院校專業(yè)目錄(2022年修訂)》專業(yè)主要信息
- EM277的DP通訊使用詳解
- 醫(yī)學(xué)考博閱讀強(qiáng)化3附答案
- 耐壓絕緣測(cè)試報(bào)告
- 野獸派 beast 花店 調(diào)研 設(shè)計(jì)-文檔資料
- 水泵房每日巡視檢查表
- 杭州市區(qū)汽車客運(yùn)站臨時(shí)加班管理規(guī)定
- 墊片沖壓模具設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 冷庫(kù)工程特點(diǎn)施工難點(diǎn)分析及對(duì)策
- Python-Django開(kāi)發(fā)實(shí)戰(zhàn)
- 小學(xué)道法小學(xué)道法1我們的好朋友--第一課時(shí)ppt課件
評(píng)論
0/150
提交評(píng)論