




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第11章 有限狀態(tài)機的結構與設計硬件描述語言和數(shù)字系統(tǒng)設計2主要內容:11.1 為什么要設計狀態(tài)機? 11.2 什么是有限狀態(tài)機( FSM )?11.3 Moore狀態(tài)機11.4 Mealy狀態(tài)機11.5 序列檢測的Moore、Mealy狀態(tài)機實現(xiàn)11.6 有限狀態(tài)機Verilog可綜合風格3如果我們能設計這樣一個電路:(1)能記住自己目前所處的狀態(tài) ; (2)狀態(tài)的變化只可能在同一個時鐘的跳變沿時刻發(fā)生,而不可能發(fā)生在任意時刻;(3)在時鐘跳變沿時刻,如輸入條件滿足,則進入下一狀態(tài),并記住自己目前所處的狀態(tài),否則仍保留原來的狀態(tài);(4)在進入不同的狀態(tài)時刻,對系統(tǒng)的開關陣列做開啟或關閉的操作
2、。則能簡化設計,簡化出錯。11.1 為什么要設計狀態(tài)機? 411.2 什么是有限狀態(tài)機( FSM )?FSM:Finite State Machine應用市場上的電子產(chǎn)品進入非正常狀態(tài)/(不需要考慮的狀態(tài))的可能很多,不可能一一去列舉。于是采用以“不變應萬變”的方式,只考慮需要的狀態(tài),不需要的狀態(tài)不管。需要考慮的狀態(tài)一一列舉出來(有限性Finite),不需要考慮的狀態(tài)都統(tǒng)一當異常處理(default)。5有限狀態(tài)機三要素:FSM: (Finite State Machine)1.狀態(tài)(當前狀態(tài),下一個狀態(tài));2.輸入信號(事件);3.輸出控制信號(相應操作)。6有限狀態(tài)機是由寄存器組和組合邏輯
3、構成的硬件時序電路;其狀態(tài)(即由寄存器組的1和0的組合狀態(tài)所構成的有限個狀態(tài))只能在同一時鐘跳變沿的情況下,才能從一個狀態(tài)轉向另一個狀態(tài); 究竟轉向哪一狀態(tài)不但取決于各個輸入值,還取決于當前狀態(tài)。 狀態(tài)機可產(chǎn)生在時鐘跳變沿時刻進行開關的復雜的控制邏輯,是數(shù)字邏輯的控制核心。7顯式有限狀態(tài)機兩種表示方式:Moore狀態(tài)機Mealy狀態(tài)機 如:說說MOORE與MEALY狀態(tài)機的特征。(南山之橋)811.3 Moore狀態(tài)機 Moore有限狀態(tài)機(FSM)的輸出只依賴于狀態(tài)而不依賴其輸入信號。9下一個狀態(tài)= F(當前狀態(tài),輸入信號); 輸出信號= G(當前狀態(tài));下一狀態(tài)的邏輯 F輸出邏輯 G狀態(tài)寄
4、存器clk 輸入輸入圖1. Moore狀態(tài)機結構時鐘信號clk輸出當前狀態(tài)激勵信號1011.4 Mealy型有限狀態(tài)機建模 在Mealy型有限狀態(tài)機中,輸出不僅依賴狀態(tài)而且依賴于它的輸入。11 下一個狀態(tài) = F(當前狀態(tài),輸入信號); 輸出信號 = G(當前狀態(tài),輸入信號);圖2 . Mealy 狀態(tài)機結構下一狀態(tài)的邏輯 F輸出邏輯 G狀態(tài)寄存器 clk 輸入輸入時鐘信號clk激勵信號當前狀態(tài)輸出1211.5 序列檢測器 用FSM實現(xiàn)10010串的檢測,畫出其狀態(tài)圖,并用verilog語言實現(xiàn)。1311.5.1 Moore狀態(tài)轉移圖1411.5.2 Moore狀態(tài)機的Verilog實現(xiàn)mod
5、ule Moorefsm(clk,rst,a,z);input clk,rst;input a;output z;reg z;reg 3:0 currentstate,nextstate; parameter S0=4b0000; parameter S1=4b0001; parameter S2=4b0010; parameter S3=4b0011; parameter S4=4b0100; parameter S5=4b0101; always (posedge clk or negedge rst) if (!rst) currentstate = S0; else currentst
6、ate = nextstate; 15always(currentstate or a or rst) if(!rst) nextstate=S0;else case(currentstate) S0: nextstate=(a=1)?S1:S0; S1: nextstate=(a=0)?S2:S1; S2: nextstate=(a=0)?S3:S1; S3: nextstate=(a=1)?S4:S0; S4: nextstate=(a=0)?S5:S1; S5: nextstate=(a=0)?S3:S1; default: nextstate=S0; endcase 16always(
7、rst or currentstate)if(!rst) z=0; else case(currentstate) S0: z=0; S1: z=0; S2: z=0; S3: z=0; S4: z=0; S5: z=1; default: z=0; endcase endmodule 1711.5.3 Mealy狀態(tài)轉移圖1811.5.4 Mealy狀態(tài)機的Verilog實現(xiàn)module Mealyfsm(clk,rst,a,z);input clk,rst;input a;output z;reg z;reg temp_z; /10011reg 3:0 currentstate,nexts
8、tate; parameter S0=4b0000; parameter S1=4b0001; parameter S2=4b0010; parameter S3=4b0011; parameter S4=4b0100; always (posedge clk or negedge rst) if (!rst) currentstate = S0; else currentstate = nextstate; 19always(currentstate or a or rst) if(!rst) nextstate=S0;elsecase(currentstate) S0: nextstate
9、=(a=1)?S1:S0; S1: nextstate=(a=0)?S2:S1; S2: nextstate=(a=0)?S3:S1; S3: nextstate=(a=1)?S4:S0; S4: nextstate=(a=0)? S2 : S1; default: nextstate=S0; endcase 20always(rst or currentstate or a)if(!rst)temp_z=0; else case(currentstate) S0: temp_z=0; S1: temp_z=0; S2: temp_z=0; S3: temp_z=0; S4: temp_z =
10、 (a=0) ? 1 : 0; default: temp_z=0; endcase 21always(posedge clk or negedge rst) if(!rst) z=0; else begin if(temp_z=1)&(nextstate=S2) z=1; else z=0; end endmodule2211.5.5 測試模塊testbenchmodule tb_fsm;reg clk,rst;reg a;wire z;/Moorefsm fsm(.clk(clk),.rst(rst),.a(a),.z(z);Mealyfsm fsm(.clk(clk),.rst(rst)
11、,.a(a),.z(z);initialbeginrst=1;clk=0;#5rst=0;#3rst=1; /10010010 0010011 / 11001011 10010000#20a=1;#100 a=0;#100 a=0;#100a=1;#100a=0;#100a=0;#100a=1;#100a=0;.endalways #50 clk=clk; endmodule2311.5.6 Moore狀態(tài)機仿真波形如下(請同學分析波形,為什么nextstate和currentstate的波形不是一樣的?) 2411.5.7 Moore狀態(tài)機仿真波形如下2511.5.8 Moore狀態(tài)機電路原
12、理圖2611.5.9 Mealy狀態(tài)機仿真波形如下(為什么nextstate出現(xiàn)了0001這個狀態(tài),且為什么該值沒被賦給currentstate?)2711.5.10 Mealy狀態(tài)機仿真波形如下2811.5.11 Mealy狀態(tài)機電路原理圖2911.6 有限狀態(tài)機Verilog可綜合風格1. VerilogHDL狀態(tài)機的狀態(tài)分配;Verilog HDL描述狀態(tài)機必須由parameter分配好狀態(tài)。2. 組合邏輯和時序邏輯要分開用不同的過程塊。 組合邏輯包括狀態(tài)譯碼和輸出,時序邏輯則是狀態(tài)寄存器的切換;必須包括對所有狀態(tài)都處理,不能出現(xiàn)無法處理的狀態(tài),使狀態(tài)機失控。3. Mealy機的輸出與輸
13、入有關,而Moore機的輸出與輸入無關。30Keep FSM logic in two separated sections of a module, one for the sequential logic, and the other for the combinatorial logic. Each state is defined with parameter in capital. For example, /* NEXT STATE DECODING */ always (state or addr or ) begin case (state) IDLE: next_state
14、= state2; STATE2: next_state = state3; default: next_state = IDLE; endcase end31/* STATE ASSIGNMENT */ always (posedge clk or negedge n_Reset) begin if (n_Reset) state= #DLY IDLE; else state= #DLY next_state; end endmodule32練習-常見公司數(shù)字IC設計招聘題目1.畫出可以檢測10010串的狀態(tài)圖,并verilog實現(xiàn)之。(威盛) 2.用FSM實現(xiàn)101101的序列檢測模塊。(南山之橋) 3.a為輸入端,b為輸出端,如果a連續(xù)輸入為1101則b輸出為1,否則為0。 例如a: 0001100110110100100110 b: 0000000000100100000000 請畫出state machine;請用RTL描述其state machine。 (華為)334. 描述一個交通信號燈的設計。(仕蘭微電子) 5. 設計一個自動飲料售賣機,飲料10分錢,硬幣有5分和10分兩種,并考慮找零:(1) 畫出fsm(有限狀態(tài)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多方投資擔保合同
- 建筑工程分包合同5篇
- 賠償協(xié)議書的格式年
- 公路交通工程與道路養(yǎng)護作業(yè)指導書
- 煤炭進口合同6篇
- 針織橫機電控產(chǎn)業(yè)分析報告
- 南瓜收購合同范本
- 養(yǎng)殖用電合同范本
- 賣窯洞合同范本
- 一般經(jīng)濟購買合同范本
- 2024年南京旅游職業(yè)學院高職單招語文歷年參考題庫含答案解析
- GB/T 25890.7-2010軌道交通地面裝置直流開關設備第7-1部分:直流牽引供電系統(tǒng)專用測量、控制和保護裝置應用指南
- FZ/T 81013-2016寵物狗服裝
- 市政級安全管理
- 《社保知識培訓》教學課件
- 肌力與肌張力課件
- 學生檔案登記表
- is620p系列伺服用戶手冊-v0.2綜合版
- 電信渠道管理人員考核管理辦法
- 勘察工作內容及方案
- 八年級數(shù)學(上冊)整式計算題練習100道無答案_新人教版
評論
0/150
提交評論