![第五講-狀態(tài)機(jī)設(shè)計及其指導(dǎo)原則_第1頁](http://file4.renrendoc.com/view12/M07/29/2F/wKhkGWcOQxKASjjnAAIYheAZO5Y510.jpg)
![第五講-狀態(tài)機(jī)設(shè)計及其指導(dǎo)原則_第2頁](http://file4.renrendoc.com/view12/M07/29/2F/wKhkGWcOQxKASjjnAAIYheAZO5Y5102.jpg)
![第五講-狀態(tài)機(jī)設(shè)計及其指導(dǎo)原則_第3頁](http://file4.renrendoc.com/view12/M07/29/2F/wKhkGWcOQxKASjjnAAIYheAZO5Y5103.jpg)
![第五講-狀態(tài)機(jī)設(shè)計及其指導(dǎo)原則_第4頁](http://file4.renrendoc.com/view12/M07/29/2F/wKhkGWcOQxKASjjnAAIYheAZO5Y5104.jpg)
![第五講-狀態(tài)機(jī)設(shè)計及其指導(dǎo)原則_第5頁](http://file4.renrendoc.com/view12/M07/29/2F/wKhkGWcOQxKASjjnAAIYheAZO5Y5105.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第五講狀態(tài)機(jī)設(shè)計及其指導(dǎo)原則1狀態(tài)機(jī)是一種設(shè)計思想方法2
狀態(tài)機(jī)結(jié)構(gòu)3
狀態(tài)機(jī)設(shè)計的其他技巧4
狀態(tài)機(jī)設(shè)計步驟
狀態(tài)機(jī)是一種設(shè)計思想方法原語描述modulenoconditional(clk,nrst,state,event);input clk,nrstinputstate;outputevent;regevent;reg[2:0]CS;//CurrentStatereg[2:0]NS;//NextStateparameter[2:0]//onehotwithzeroidle
idle =3’b000,dorm =3'b001,
diningroom =3'b010,classroom =3'b100;//sequentialstatetransitionalways@(posedge
clkornegedge
nrst)if(!nrst)CS<=idle;elseCS<=NS;//combinationalconditionjudgmentalways@(CS)begin case(CS) idle: idle_task;NS=dorm; dorm: dorm_task;NS=diningroom;
diningroom:diningroom_task;NS=classroom; classroom: classroom_task;NS=dorm; default: idle_task;NS=dorm;
endcaseendendmodule狀態(tài)機(jī)的本質(zhì)--對具有邏輯順序或時序規(guī)律事件的一種描述方法
狀態(tài)機(jī)的兩個應(yīng)用思路:從狀態(tài)變量入手明確電路的輸出的關(guān)系
對于邏輯電路而言,小到一個簡單的時序邏輯,大到復(fù)雜的微處理器,都適合用狀態(tài)機(jī)方法進(jìn)行描述。不要僅僅局限于時序邏輯,發(fā)現(xiàn)電路的內(nèi)在規(guī)律,確認(rèn)電路的“狀態(tài)變量”,大膽使用狀態(tài)機(jī)描述電路模型。由于狀態(tài)機(jī)不僅僅是一種電路描述工具,它更是一種思想方法,而且狀態(tài)機(jī)的HDL語言表達(dá)方式比較規(guī)范,有章可循,所以很多有經(jīng)驗(yàn)的設(shè)計者習(xí)慣用狀態(tài)機(jī)思想進(jìn)行邏輯設(shè)計,對各種復(fù)雜設(shè)計都套用狀態(tài)機(jī)的設(shè)計理念,從而提高設(shè)計的效率和穩(wěn)定性。總結(jié):
狀態(tài)機(jī)結(jié)構(gòu)
摩爾(MOORE)狀態(tài)機(jī)
輸出只是當(dāng)前狀態(tài)值的函數(shù),并且僅在時鐘邊沿到來時才發(fā)生變化米立(MEALY)狀態(tài)機(jī)
輸出則是當(dāng)前狀態(tài)值、當(dāng)前輸出值和當(dāng)前輸入值的函數(shù)注:這兩種狀態(tài)機(jī)都是同步的時序電路Moore狀態(tài)機(jī)
下一個狀態(tài)=F(當(dāng)前狀態(tài),輸入信號);
輸出信號=G(當(dāng)前狀態(tài));狀態(tài)譯碼器
F輸出譯碼器
G狀態(tài)寄存器時鐘信號clk
clk
輸入輸入輸出當(dāng)前狀態(tài)激勵信號時序邏輯組合邏輯組合邏輯Mealy狀態(tài)機(jī)
下一個狀態(tài)=F(當(dāng)前狀態(tài),輸入信號);
輸出信號=G(當(dāng)前狀態(tài),輸入信號);狀態(tài)譯碼器
F輸出譯碼器
G狀態(tài)寄存器時鐘信號clk
clk
輸入輸入輸出當(dāng)前狀態(tài)激勵信號時序邏輯組合邏輯組合邏輯
帶流水線的Mealy狀態(tài)機(jī)
下一個狀態(tài)=F(當(dāng)前狀態(tài),輸入信號);
輸出信號=G(當(dāng)前狀態(tài),輸入信號);狀態(tài)譯碼器
F輸出譯碼器
G狀態(tài)寄存器時鐘信號clk
clk
輸入輸入當(dāng)前狀態(tài)激勵信號輸出流水線寄存器
clk
輸入時序邏輯組合邏輯組合邏輯時序邏輯基本要素——狀態(tài)、輸出和輸入
狀態(tài):也叫狀態(tài)變量。在邏輯設(shè)計中,使用狀態(tài)劃分邏輯順序和時序規(guī)律。比如設(shè)計偽隨機(jī)碼發(fā)生器時,可以用移位寄存器序列作為狀態(tài);在設(shè)計電機(jī)控制電路時,可以將電機(jī)的不同轉(zhuǎn)速作為狀態(tài);在設(shè)計通信系統(tǒng)時,可以將信令的狀態(tài)作為狀態(tài)變量等。
輸出:輸出指在某一個狀態(tài)時特定發(fā)生的事件。如設(shè)計電機(jī)控制電路時,如果電機(jī)轉(zhuǎn)速過高,則輸出為轉(zhuǎn)速過高報警,也可以伴隨減速指令或降溫措施等。
輸入:指狀態(tài)機(jī)中進(jìn)入每個狀態(tài)的條件,有的狀態(tài)機(jī)沒有輸入條件,其中的狀態(tài)轉(zhuǎn)移較為簡單,有的狀態(tài)機(jī)有輸入條件,當(dāng)某個輸入條件存在時才能轉(zhuǎn)移到相應(yīng)的狀態(tài)。組成部分
組合邏輯部分:分為狀態(tài)譯碼器和輸出譯碼器:狀態(tài)譯碼器確定狀態(tài)機(jī)的下一個狀態(tài),即確定狀態(tài)機(jī)的激勵方程;輸出譯碼器確定狀態(tài)機(jī)的輸出,即確定狀態(tài)機(jī)的輸出方程。
時序邏輯部分:用于存儲狀態(tài)機(jī)的內(nèi)部狀態(tài)基本操作
狀態(tài)機(jī)內(nèi)部狀態(tài)轉(zhuǎn)換:狀態(tài)機(jī)經(jīng)歷一系列狀態(tài),下一狀態(tài)由狀態(tài)譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。
產(chǎn)生輸出信號序列:輸出信號由輸出譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。
基本描述方式
狀態(tài)轉(zhuǎn)移圖是狀態(tài)機(jī)描述中最自然的方式。狀態(tài)轉(zhuǎn)移圖經(jīng)常在設(shè)計規(guī)劃階段定義邏輯功能時使用,也可以在分析已有源代碼中的狀態(tài)機(jī)時使用,這種圖形化的描述方式非常有助于理解設(shè)計意圖。
狀態(tài)轉(zhuǎn)移列表是用列表的方式描述狀態(tài)機(jī),是數(shù)字邏輯電路常用的設(shè)計方法之一,經(jīng)常被用于狀態(tài)化簡,對于可編程邏輯設(shè)計而言,由于可用邏輯資源比較豐富,而且狀態(tài)編碼要考慮設(shè)計的穩(wěn)定性、安全性等因素,所以并不經(jīng)常使用狀態(tài)轉(zhuǎn)移列表優(yōu)化狀態(tài)。
使用HDL語言描述狀態(tài)機(jī)應(yīng)具有一定的靈活性,但是決不是天馬行空,而是有章可循的.通過使用一些規(guī)范的描述方法,可以使HDL語言描述狀態(tài)機(jī)更安全、更穩(wěn)定、更高效、更易于維護(hù)。狀態(tài)機(jī)設(shè)計常用語法
變量聲明(wire,reg等)
狀態(tài)編碼一般都要使用reg
寄存器型向量。
parameter
描述狀態(tài)名稱,增強(qiáng)源代碼的可讀性,簡化描述。
例:
reg[3:0]NS,CS; parameter[3:0]//onehotwithzeroinitial IDLE 3'b0000, S1 3'b0001, S2 3'b0010, S3 3'b0100, ERROR3'b1000;
always——三種使用方法
根據(jù)主時鐘沿完成同步時序的狀態(tài)遷移。例: //sequentialstatetransition always@(posedge
clkornegedge
nrst) if(!nrst) CS<=IDLE; else CS<=NS;
根據(jù)信號敏感表完成組合邏輯的輸出。
根據(jù)時鐘沿完成同步時序邏輯的輸出。
case……endcase
語法格式: case(case_expression) case_item1:case_item_statement1; case_item2:case_item_statement2; case_item3:case_item_statement3; case_item4:case_item_statement4; default:case_item_statement5;
endcase
使用default關(guān)鍵字來描述FSM所需狀態(tài)的補(bǔ)集狀態(tài)下的操作,避免FSM進(jìn)入死循環(huán)。
建議初學(xué)者使用完整的case結(jié)構(gòu),而不使用casex
或casez。
task……endtask
將不同狀態(tài)所對應(yīng)的輸出用task……endtask
封裝,增強(qiáng)了代碼的可維護(hù)性和可讀性。 taskIDLE_out; begin {w_o1,w_o2,w_err}=3'b000; end
狀態(tài)機(jī)的描述方式
一段式
將整個狀態(tài)機(jī)寫到一個always模塊里面,在該模塊中即描述狀態(tài)轉(zhuǎn)移,又描述狀態(tài)的輸入和輸出。
兩段式
使用兩個always模塊,其中一個always模塊采用同步時序的方式描述狀態(tài)轉(zhuǎn)移,而另一個模塊采用組合邏輯的方式判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律。
三段式
使用3個always模塊,一個always模塊采用同步時序的方式描述狀態(tài)轉(zhuǎn)移,一個采用組合邏輯的方式判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律,第三個always模塊使用同步時序電路描述每個狀態(tài)的輸出。例一個非常典型的Melay型狀態(tài)機(jī),共有4種狀態(tài),即IDEL、S1、S2和ERROR,輸入信號包括時鐘“clk”,低電平異步復(fù)位信號“nrst”和信號“i1”、“i2”,輸出信號為“o1”、“o2”和“err”,狀態(tài)轉(zhuǎn)移圖如下。狀態(tài)的輸出如下:IDLE狀態(tài)的輸出為{o1,o2,err}=3'b000;S1狀態(tài)的輸出為{o1,o2,err}=3'b100;S2狀態(tài)的輸出為{o1,o2,err}=3'b010;ERROR狀態(tài)的輸出為{o1,o2,err}=3'b111。S1
RRORS2IDLEi2&!i1
!i2&!i1
i2&i1
i2&i1!i2&i1i1i2!i2!i1!i2&i1基本部分modulestate1(nrst,clk,i1,i2,o1,o2,err);inputnrst,clk;inputi1,i2;outputo1,o2,err;rego1,o2,err;reg[2:0]NS;//NextStateparameter[2:0]//onehotwithzeroidleIDLE=3'b000,S1=3'b001,S2=3'b010,ERROR=3'b100;一段式always@(posedge
clkornegedge
nrst)if(!nrst)beginNS<=IDLE;{o1,o2,err}<=3'b000;endelsebegincase(NS)IDLE:beginif(~i1)begin{o1,o2,err}<=3'b000;NS<=IDLE;endif(i1&&i2)begin{o1,o2,err}<=3'b100;NS<=S1;endif(i1&&~i2)begin{o1,o2,err}<=3'b111;NS<=ERROR;endendS1:beginif(~i2)begin{o1,o2,err}<=3'b100;NS<=S1;endif(i2&&i1)begin{o1,o2,err}<=3'b010;NS<=S2;endif(i2&&(~i1))begin{o1,o2,err}<=3'b111;NS<=ERROR;endendS2:beginif(i2)begin{o1,o2,err}<=3'b010;NS<=S2;endif(~i2&&i1)begin{o1,o2,err}<=3'b000;NS<=IDLE;endif(~i2&&(~i1))begin{o1,o2,err}<=3'b111;NS<=ERROR;endendERROR:beginif(i1)begin{o1,o2,err}<=3'b111;NS<=ERROR;endif(~i1)begin{o1,o2,err}<=3'b000;NS<=IDLE;endenddefault: begin{o1,o2,err}<=3'b000;NS<=IDLE;end
endcaseendendmodule兩段式//outputtasktaskIDLE_out;{o1,o2,err}=3'b000;endtasktaskS1_out;{o1,o2,err}=3'b100;endtasktaskS2_out;{o1,o2,err}=3'b010;endtasktaskERROR_out;{o1,o2,err}=3'b111;endtask//sequentialstatetransitionalways@(posedge
clkornegedge
nrst)if(!nrst)CS<=IDLE;elseCS<=NS;//combinationalconditionjudgmentalways@(CSori1ori2)begincase(CS)IDLE:begin
IDLE_out;if(~i1)NS=IDLE;if(i1&&i2)NS=S1;if(i1&&~i2)NS=ERROR;end S1:beginS1_out;if(~i2)NS=S1;if(i2&&i1)NS=S2;if(i2&&(~i1))NS=ERROR;endS2:beginS2_out;if(i2)NS=S2; if(~i2&&i1)NS=IDLE;if(~i2&&(~i1))NS=ERROR;endERROR:begin
ERROR_out;if(i1)NS=ERROR;if(~i1)NS=IDLE;end default:begin
IDLE_out;NS=IDLE; end
endcaseendendmodule三段式//1stalwaysblock,sequentialstatetransitionalways@(posedge
clkornegedge
nrst)if(!nrst)CS<=IDLE;elseCS<=NS;//2ndalwaysblock,combinationalconditionjudgmentalways@(CSori1ori2)begincase(CS)IDLE:beginif(~i1)NS=IDLE;if(i1&&i2)NS=S1;if(i1&&~i2)NS=ERROR;end S1:beginif(~i2)NS=S1;if(i2&&i1)NS=S2;if(i2&&(~i1))NS=ERROR;endS2:beginif(i2)NS=S2; if(~i2&&i1)NS=IDLE;if(~i2&&(~i1))NS=ERROR;endERROR:beginif(i1)NS=ERROR;if(~i1)NS=IDLE;end default:NS=IDLE;
endcaseend//3rdalwaysblock,thesequentialFSM
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腎內(nèi)分泌科護(hù)理工作總結(jié)
- 2025年全球及中國醫(yī)用全自動凝血分析儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國企業(yè)級機(jī)械硬盤和固態(tài)硬盤行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球3D晶體管行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球立式不銹鋼離心泵行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球汽車電池試驗(yàn)箱行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國游戲人工智能NPC行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球自動藥敏分析儀行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國無線藍(lán)牙肉類溫度計行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國固定橋式坐標(biāo)測量機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030年中國清真食品行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測報告
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級上學(xué)期期末質(zhì)量監(jiān)測生物學(xué)試卷(含答案)
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 2025年河南洛陽市孟津區(qū)引進(jìn)研究生學(xué)歷人才50人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度軍人軍事秘密保護(hù)保密協(xié)議與信息安全風(fēng)險評估合同3篇
- 數(shù)字化轉(zhuǎn)型中的職業(yè)能力重構(gòu)
- 運(yùn)用PDCA降低住院患者跌倒-墜床發(fā)生率
- 2025屆高中數(shù)學(xué)一輪復(fù)習(xí)專練:橢圓(含解析)
- 立春氣象與生活影響模板
- 中國服裝零售行業(yè)發(fā)展環(huán)境、市場運(yùn)行格局及前景研究報告-智研咨詢(2025版)
評論
0/150
提交評論