有限狀態(tài)機(jī)設(shè)計的一般步驟 1. 邏輯抽象得出狀態(tài)轉(zhuǎn)換圖 就是把給出的一個實際邏輯關(guān)系表示為時序邏輯函數(shù),可以用狀態(tài)轉(zhuǎn)換表來描述,也可以用狀態(tài)轉(zhuǎn)換圖來描述。這就需要: 1) 分析給定的邏輯問題,確定輸入變量、輸出變量以及電路的狀態(tài)數(shù)。通常是取原因(或條件)作為輸入變量,取結(jié)果作為輸出變量。 2) 定義輸入、輸出邏輯狀態(tài)的含義,并將電路狀態(tài)順序編號。 3) 按照要求列出電路的狀態(tài)轉(zhuǎn)換表或畫出狀態(tài)轉(zhuǎn)換圖。 這樣,就把給定的邏輯問題抽象到了一個時序邏輯函數(shù)了。 2.狀態(tài)化簡 如果在狀態(tài)轉(zhuǎn)換圖中出現(xiàn)這樣兩個狀態(tài),它們在相同的輸入轉(zhuǎn)換到同一狀態(tài)去,并得出一樣的輸出,則稱為等價狀態(tài)。顯然等價狀態(tài)是重復(fù)的,一合并為一個電路的狀態(tài)數(shù)越少,存儲電路也就越簡單。狀態(tài)化簡的目的就是在于將等價狀態(tài)盡可能地的合并,以得到最簡的狀態(tài)轉(zhuǎn)換圖。 3.狀態(tài)分配 狀態(tài)分配又稱狀態(tài)編碼。通常有很多編碼方法,編碼方案選擇得當(dāng),設(shè)計的電路可以簡單,反之,選的不好,則設(shè)計的電路就會復(fù)雜很多。在實際設(shè)計中,須綜合考慮電路復(fù)雜度與電路性能之間的折中。在觸發(fā)器資源豐富的FPGA或ASIC設(shè)計中,采用獨熱碼即可用使電路性能得到保證又可以充分利用其觸發(fā)器數(shù)量多的優(yōu)勢,也可以采用輸出編碼的狀態(tài)指定來簡化電路結(jié)構(gòu),并提高狀態(tài)機(jī)的運(yùn)行速度。 4.選定觸發(fā)器的類型并求出狀態(tài)方程、驅(qū)動方程和輸出方程。 5.按照方程得出邏輯圖 用Verilog HDL來描述有限狀態(tài)機(jī),可以充分發(fā)揮硬件描述語言的抽象建模能力,使用always塊語句和case(if)等條件語句及賦值語句即可方便實現(xiàn)。具體的邏輯化簡、邏輯電路到觸發(fā)器映射均可有計算機(jī)自動完成。步驟中的2、4、5不再需要人為干預(yù),使電路設(shè)計工作得到簡化,效率也有很大的提高。 -----------------------------------節(jié)選之夏宇聞老師的Verilog HDL數(shù)字系統(tǒng)塊設(shè)計教程(第2版)
|