‘SHIT’上最全有限狀態機設計研究(一)-狀態機介紹

本系列主要針對有限狀態機進行分析和設計,其中主要包括兩部分:時鐘同步狀態機的分析和時鐘同步狀態機的設計,預計會有五篇文章進行展開,其中介紹一篇,分析和設計分別有兩篇,每一部分都會有相應的實例。



‘SHIT’上最全有限狀態機設計研究(一)-狀態機介紹

‘SHIT’上最全有限狀態機設計研究(二)-時鐘同步狀態機分析1

‘SHIT’上最全有限狀態機設計研究(三)-時鐘同步狀態機分析2

‘SHIT’上最全有限狀態機設計研究(四)-時鐘同步狀態機設計1

‘SHIT’上最全有限狀態機設計研究(五)-時鐘同步狀態機設計2


FSM介紹

  有限狀態機(FSM,Finite State Mechine),顧名思義,就是一系列數量有限的狀態組成的一個循環機制。
在這裏插入圖片描述
        圖1 時序電路基本結構
  時序電路如圖1所示:組合邏輯接收電路輸入信號並輸出結果,時序邏輯將組合邏輯的輸出存儲並反饋回組合邏輯,以此來形成電路的當前狀態(current state),當前狀態和電路輸入信號經過組合邏輯作用形成電路的下一狀態(next state)傳遞給時序電路。
  時序電路如圖1所示:組合邏輯接收電路輸入信號並輸出結果,時序邏輯將組合邏輯的輸出存儲並反饋回組合邏輯,以此來形成電路的當前狀態(current state),當前狀態和電路輸入信號經過組合邏輯作用形成電路的下一狀態(next state)傳遞給時序電路。
  對於同步時序電路,根據輸入端情況可分爲兩種電路結構:一是沒有輸入端的同步時序電路,比如計數器、分頻器等;另外一種是有輸入端控制的電路,稱之爲有限狀態機。有限狀態機由組合邏輯電路和若干寄存器組成,根據電路的輸入和電路當前狀態決定電路的輸出。
  狀態機按是否和現態有關分爲輸出是現態的函數的 Moore 型狀態機和輸出是現態和輸入的函數的 Mealy 型狀態機。具體如圖2和圖3所示。
在這裏插入圖片描述
        圖2 摩爾型(Moore)狀態機
在這裏插入圖片描述
          圖3 米里型(Mealy)狀態機
  Mealy機屬於同步輸出狀態機,它的輸出是當前狀態和所有輸入信號的函數,其輸出會在輸入變化後立即發生,不依賴於時鐘的同步。
  Moore機屬於異步輸出狀態機,它的輸出僅爲當前狀態的函數,與當前輸入信號無關。當然,當前狀態是和上一時刻的輸入信號相關的,當前輸入的變化必須等待下一時鐘到來使狀態發生變化時才能導致輸出的變化。因此,Moore機比Mealy機多等待一個時鐘週期纔會引起輸出的變化。
  對於狀態機另一個需要考慮的就是狀態機編碼,在表1.1中,列出了幾個狀態機編碼的編碼方式,其中二進制碼和格雷碼是壓縮碼形式,具體優缺點如下:(1)獨熱編碼。其是使用 N 位寄存器來對 N 個狀態進行編碼的方式,由表中可知,其在任意時刻只有一位有效位。這種編碼方式優點就是狀態編碼簡單,由於是利用面積換取速度的典型應用,所以速度較快,缺點就是佔用資源較多,尤其較多的觸發器;(2)格雷編碼。其是利用一個狀態位的變化來表示相鄰狀態的變化。優點就是不僅降低了誤碼的概率,還較少了多條狀態線的競爭和冒險。缺點就是佔用較多的組合邏輯;(3)二進制編碼。其是利用二進制數表示相鄰的狀態變化,其碼原值是連續變化的。缺點也是佔用較多的組合邏輯。

在這裏插入圖片描述

  綜上,各種編碼各有優缺點,針對各自的特點,總結如下:一般的,二進制編碼用於小型設計(狀態數小於4)使用,當狀態數在4到24之間時,獨熱碼編碼是首選的,而大型狀態機(狀態數大於24)設計時使用格雷碼編碼更高效。
  FSM進行設計優點:
  1)有限狀態機能夠按照輸入信號的控制和預先設定的執行順序在各個狀態間順暢地切換,具有明顯的順序特徵,能夠很好地執行順序邏輯;
  2)有限狀態機設計方法非常規範,設計方案相對固定,並能被多數綜合工具支持;
  3)採用有限狀態機設計,易於構成性能良好的同步時序邏輯,有利於消除大規模邏輯電路中常見的競爭冒險現象;
  4)使用Verilog硬件語言進行有限狀態機設計,程序層次分明、結構清晰、易讀好懂。模塊的修改、優化和移植也非常方便;
  5)在高速運算與控制方面,和CPU相比,狀態機具有明顯的速度優勢。


歡迎大家訂閱我的公衆號,關於FPGA相關資料和新聞我會第一時間更新到公衆號中,謝謝大家!

在這裏插入圖片描述




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章