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