![集成電路EDA設(shè)計技術(shù):第8章 有限狀態(tài)機設(shè)計技術(shù)_第1頁](http://file4.renrendoc.com/view/a08d0d0a92191ec3db737a808d54fa53/a08d0d0a92191ec3db737a808d54fa531.gif)
![集成電路EDA設(shè)計技術(shù):第8章 有限狀態(tài)機設(shè)計技術(shù)_第2頁](http://file4.renrendoc.com/view/a08d0d0a92191ec3db737a808d54fa53/a08d0d0a92191ec3db737a808d54fa532.gif)
![集成電路EDA設(shè)計技術(shù):第8章 有限狀態(tài)機設(shè)計技術(shù)_第3頁](http://file4.renrendoc.com/view/a08d0d0a92191ec3db737a808d54fa53/a08d0d0a92191ec3db737a808d54fa533.gif)
![集成電路EDA設(shè)計技術(shù):第8章 有限狀態(tài)機設(shè)計技術(shù)_第4頁](http://file4.renrendoc.com/view/a08d0d0a92191ec3db737a808d54fa53/a08d0d0a92191ec3db737a808d54fa534.gif)
![集成電路EDA設(shè)計技術(shù):第8章 有限狀態(tài)機設(shè)計技術(shù)_第5頁](http://file4.renrendoc.com/view/a08d0d0a92191ec3db737a808d54fa53/a08d0d0a92191ec3db737a808d54fa535.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第8章有限狀態(tài)機設(shè)計技術(shù) 硬件(芯片)設(shè)計講究并行設(shè)計思想,雖然用verilog描述的電路大都是并行執(zhí)行的,但是對于實際的工程應(yīng)用,往往需要讓硬件實現(xiàn)一些具有一定順序的工作,這就要用到狀態(tài)機的思想。狀態(tài)機-就是通過不同的狀態(tài)遷移來完成一些特定的順序邏輯。有限狀態(tài)機的簡介有限狀態(tài)機的簡介硬件(芯片)設(shè)計講究并行設(shè)計思想,雖然用verilog描述的電路大都是并行執(zhí)行的,但是對于實際的工程應(yīng)用,往往需要讓硬件實現(xiàn)一些具有一定順序的工作,這就要用到狀態(tài)機的思想。狀態(tài)機-就是通過不同的狀態(tài)遷移來完成一些特定的順序邏輯。 有限狀態(tài)機是由寄存器組和組合邏輯構(gòu)成的硬件時序電路,其狀態(tài)(即由寄存器組的1和0的組
2、合狀態(tài)所構(gòu)成的有限個狀態(tài))只可能在同一時鐘跳變沿的情況下才能從一個狀態(tài)轉(zhuǎn)向另一個狀態(tài),究竟轉(zhuǎn)向哪一狀態(tài)還是留在原狀態(tài)不但取決于各個輸入值,還取決于當前所在狀態(tài)。(這里指的是米里Mealy型有限狀態(tài)機,而莫爾Moore型有限狀態(tài)機究竟轉(zhuǎn)向哪一狀態(tài)只決于當前狀態(tài)。)狀態(tài)機的結(jié)構(gòu)有限狀態(tài)機的簡介基本概念有限狀態(tài)機用來實現(xiàn)一個數(shù)字電路設(shè)計的控制部分,與CPU 的功能類似,綜合了時序邏輯和組合邏輯電路。有限狀態(tài)機與CPU功能比較控制功能的實現(xiàn) CPU通過操作指令和硬件操作單元。 有限狀態(tài)機通過狀態(tài)轉(zhuǎn)移。有限狀態(tài)機適用于可編程邏輯器件。通過恰當?shù)腣erilog語言描述和EDA工具綜合,可以生成性能優(yōu)越的有
3、限狀態(tài)機,在執(zhí)行時間、運行速度和占用資源等方面優(yōu)于CPU實現(xiàn)的設(shè)計方案。有限狀態(tài)機分類Moore型有限狀態(tài)機和Mealy型有限狀態(tài)機。Moore型有限狀態(tài)機次態(tài) 邏輯狀態(tài) 寄存器輸出 邏輯輸入次態(tài)現(xiàn)態(tài)輸出時鐘復位Moore型:輸出信號僅與當前狀態(tài)有關(guān)。有限狀態(tài)機的簡介Mealy型有限狀態(tài)機Mealy型:輸出信號不僅與當前狀態(tài)有關(guān),還與所有 輸入信號有關(guān)。次態(tài) 邏輯狀態(tài) 寄存器輸出 邏輯輸入次態(tài)現(xiàn)態(tài)輸出時鐘復位有限狀態(tài)機的簡介8.1.2 狀態(tài)機的一般結(jié)構(gòu) 有限狀態(tài)機(FSM,F(xiàn)inite State Machine)是時序電路設(shè)計中經(jīng)常采用的一種方式,尤其適于設(shè)計數(shù)字系統(tǒng)的控制模塊。用Veril
4、og的case、if-else等語句能很好地描述基于狀態(tài)機的設(shè)計。1. 說明部分狀態(tài)轉(zhuǎn)換變量的定義和所有可能狀態(tài)的說明 2005版參數(shù)說明關(guān)鍵字parameter2. 主控時序過程:狀態(tài)機的運轉(zhuǎn)和狀態(tài)轉(zhuǎn)換的過程8.1.2 狀態(tài)機的一般結(jié)構(gòu)3. 主控組合過程 :根據(jù)當前狀態(tài)和外部的信號發(fā)出控制信號,同時確定下一狀態(tài)的走向 4. 輔助過程:配合狀態(tài)機工作的組合過程和時序過程。 8.1.2 狀態(tài)機的一般結(jié)構(gòu)說明部分主控時序過程8.1.2 狀態(tài)機的一般結(jié)構(gòu)主控組合過程主控組合過程 用狀態(tài)機設(shè)計一個二進制序列檢測器,其功能是檢測一個4位二進制序列“1111”,即輸入序列中如果有4個或4個以上連續(xù)的“1”
5、出現(xiàn),輸出為1,其它情況下,輸出為0。有限狀態(tài)機(FSM)設(shè)計舉例輸出z:000 000 000 000 000 100 001 110 000其輸入輸出如下所示:輸入x:000 101 010 110 111 101 111 110 101有限狀態(tài)機(FSM)設(shè)計“1111”序列檢測器狀態(tài)轉(zhuǎn)換圖 先畫出狀態(tài)轉(zhuǎn)換圖:(可以不寫代碼,用quartus II自動生成 Verilog代碼)狀態(tài)輸入輸出“1111”序列檢測器的Verilog描述module fsm_seq(x,z,clk,reset,state);input x,clk,reset;output z;output2:0 state;r
6、eg z;parameter s0=0,s1=1,s2=2,s3=3,s4=4;reg 2:0 current_state,next_state;assign state=current_state;always (posedge clk or posedge reset)begin if(reset) current_state=s0; else current_state=next_state; endalways (current_state or x)begin casex(current_state) “1111”序列檢測器的Verilog描述 s0: beginif(x=0) be
7、gin next_state=s0; z=0; endelse begin next_state=s1; z=0; end end s1: beginif(x=0) begin next_state=s0; z=0; end else begin next_state=s2; z=0; end ends2: beginif(x=0) begin next_state=s0; z=0; end else begin next_state=s3; z=0; end ends3: begin if(x=0) begin next_state=s0; z=0; endelse begin next_s
8、tate=s4; z=1; end ends4: beginif(x=0) begin next_state=s0; z=0; endelse begin next_state=s4; z=1; end end default: begin next_state=s0; end endcase endendmodule(1)用三個過程描述:即現(xiàn)態(tài)(CS)、次態(tài)(NS)、輸出邏輯(OL)各用一個always過程描述。(2)雙過程描述(CS+NS、OL雙過程描述):使用兩個always過程來描述有限狀態(tài)機,一個過程描述現(xiàn)態(tài)和次態(tài)時序邏輯(CS+NS);另一個過程描述輸出邏輯(OL)。(3)雙過程描
9、述(CS、NS+OL雙過程描述):一個過程用來描述現(xiàn)態(tài)(CS);另一個過程描述次態(tài)和輸出邏輯(NS+OL)。(4)單過程描述:在單過程描述方式中,將狀態(tài)機的現(xiàn)態(tài)、次態(tài)和輸出邏輯(CS+NS+OL)放在一個always過程中進行描述。8.2 有限狀態(tài)機的幾種描述方式“101”序列檢測器的Verilog描述(三個過程) module fsm1_seq101(clk,clr,x,z);input clk,clr,x; output reg z; reg1:0 state,next_state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10; /*狀態(tài)編碼,采用格雷
10、(Gray)編碼方式*/always (posedge clk or posedge clr) /*該過程定義當前狀態(tài)*/beginif(clr) state=S0; /異步復位,s0為起始狀態(tài)else state=next_state;endalways (state or x) /*該過程定義次態(tài)*/begincase (state)S0:begin if(x) next_state=S1;else next_state=S0; endS1:beginif(x) next_state=S1;else next_state=S2; endS2:beginif(x) next_state=S3
11、;else next_state=S0; endS3:beginif(x) next_state=S1;else next_state=S2; enddefault:next_state=S0; /*default語句*/endcaseendalways (state) /*該過程產(chǎn)生輸出邏輯*/begin case(state)S3: z=1b1;default:z=1b0;endcaseendendmodule“101”序列檢測器的Verilog描述(三個過程) “101”序列檢測器(單過程描述) module fsm4_seq101(clk,clr,x,z);input clk,clr,
12、x; output reg z; reg1:0 state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10;/*狀態(tài)編碼,采用格雷(Gray)編碼方式*/always (posedge clk or posedge clr)Begin if(clr) state=S0; /異步復位,s0為起始狀態(tài)else case(state)S0:begin if(x) begin state=S1; z=1b0;endelse begin state=S0; z=1b0;end endS1:begin if(x) begin state=S1; z=1b0;endels
13、e begin state=S2; z=1b0;end endS2:beginif(x) begin state=S3; z=1b0;endelse begin state=S0; z=1b0;end endS3:begin if(x) begin state=S1; z=1b1;endelse begin state=S2; z=1b1;end enddefault:begin state=S0; z=1b0;end /*default語句*/endcaseendendmodule摘自深入淺出玩轉(zhuǎn)FPGA 8.3 狀 態(tài) 編 碼 順序編碼 格雷編碼 約翰遜編碼一位熱碼常用的編碼方式 一位熱碼
14、編碼選擇對話框(Quartus ) 狀態(tài)編碼的定義在Verilog語言中,有兩種方式可用于定義狀態(tài)編碼,分別用parameter和define語句實現(xiàn),比如要為state0、state1、state2、state3四個狀態(tài)定義碼字為:00、01、11、10,可采用下面兩種方式。方式1:用parameter參數(shù)定義 parameter state1=2b00,state2=2b01,state3=2b11,state4=2b10; case(state) state1:; /調(diào)用 state2:; 要注意兩種方式定義與調(diào)用時的區(qū)別,一般情況下,更傾向于采用方式1來定義狀態(tài)編碼。一般使用case、
15、casez和casex語句來描述狀態(tài)之間的轉(zhuǎn)換,用case語句表述比用if-else語句更清晰明了。 狀態(tài)編碼的定義方式2:用define語句定義define state1 2b00 /不要加分號“;”define state2 2b01define state3 2b11define state4 2b10case(state)state1:; /調(diào)用,不要漏掉符號“”state2:;狀態(tài)編碼的定義8.4 有限狀態(tài)機設(shè)計要點1起始狀態(tài)的選擇 :起始狀態(tài)是指電路復位后所處的狀態(tài),選擇一個合理的起始狀態(tài)將使整個系統(tǒng)簡潔、高效。多數(shù)EDA軟件會自動為基于狀態(tài)機的設(shè)計選擇一個最佳的起始狀態(tài)。 8.4 有限狀態(tài)機設(shè)計要點2有限狀態(tài)機的同步復位 3有限狀態(tài)機的異步復位多余狀態(tài)的處理一般有如下兩種處理多余狀態(tài)的方法:(1)在case語句中用default分支決定如果進入無效狀態(tài)所采取的措施;(2)編寫必要的Veril
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國軌道交通列控系統(tǒng)市場規(guī)?,F(xiàn)狀及投資規(guī)劃建議報告
- 2024年食品檢驗行業(yè)市場深度分析及投資戰(zhàn)略規(guī)劃建議報告
- 2025年度新能源公交車駕駛員聘用與績效管理協(xié)議
- 廢料回收相關(guān)行業(yè)投資規(guī)劃報告范文
- 2025年度酒店總經(jīng)理任期法律法規(guī)遵守與合規(guī)性合同
- 2024年再生資源回收市場全景評估及發(fā)展趨勢研究預測報告
- 2025年無刷爬坡王后轂剎電機行業(yè)深度研究分析報告
- 2025年度建筑電氣設(shè)計與施工合同范本-@-1
- 中國核電泵市場運營態(tài)勢分析及投資前景預測報告
- 2025-2031年中國口腔修復膜行業(yè)市場全景監(jiān)測及投資戰(zhàn)略咨詢報告
- 島津氣相色譜培訓
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 睡眠專業(yè)知識培訓課件
- 臨床思維能力培養(yǎng)
- 人教版高中物理必修第三冊第十章靜電場中的能量10-1電勢能和電勢練習含答案
- 《工程勘察設(shè)計收費標準》(2002年修訂本)
- 中國宗教文化 中國古代宗教文化的特點及現(xiàn)代意義
- 2024年四川省巴中市級事業(yè)單位選聘15人歷年高頻難、易錯點練習500題附帶答案詳解
- 演出經(jīng)紀人培訓
- 蓋房四鄰簽字協(xié)議書范文
- 2024年新人教版七年級上冊數(shù)學教學課件 第六章 幾何圖形初步 數(shù)學活動
評論
0/150
提交評論