初學者對有限狀態機(FSM)的設計的認識

2021-01-07 電子產品世界

有限狀態機(FSM)是一種常見的電路,由時序電路和組合電路組成。設計有限狀態機的第一步是確定採用Moore狀態機還是採用Mealy狀態機。(Mealy型:狀態的轉變不僅和當前狀態有關,而且跟各輸入信號有關;Moore型:狀態的轉變只和當前狀態有關)。從實現電路功能來講,任何一種都可以實現同樣的功能。但他們的輸出時序不同,所以,在選擇使用那種狀態機時要根據具體情況而定,在此,把他們的主要區別介紹一下:

本文引用地址:http://www.eepw.com.cn/article/201710/365639.htm

1. Moore狀態機:在時鐘脈衝的有限個門延時之後,輸出達到穩定。輸出會在一個完整的時鐘周期內保持穩定值,即使在該時鐘內輸入信號變化了,輸出信號也不會變化。輸入對輸出的影響要到下一個時鐘周期才能反映出來。把輸入和輸出分開,是Moore狀態機的重要特徵。

2. Mealy狀態機:由於輸出直接受輸入影響,而輸入可以在時鐘周期的任一時刻變化,這就使得輸出狀態比Moore狀態機的輸出狀態提前一個周期到達。輸入信號的噪聲可能會出現在輸出信號上。

3. 對同一電路,使用Moore狀態機設計可能會比使用Mealy狀態機多出一些狀態。
根據他們的特徵和要設計的電路的具體情況,就可以確定使用那種狀態機來實現功能。一旦確定狀態機,接下來就要構造狀態轉換圖。現在還沒有一個成熟的系統化狀態圖構造算法,所以,對於實現同一功能,可以構造出不同的狀態轉換圖。但一定要遵循結構化設計。在構造電路的狀態轉換圖時,使用互補原則可以幫助我們檢查設計過程中是否出現了錯誤。互補原則是指離開狀態圖節點的所有支路的條件必須是互補的。同一節點的任何2個或多個支路的條件不能同時為真。同時為真是我們設計不允許的。

在檢查無冗餘狀態和錯誤條件後,就可以開始用verilog HDL來設計電路了。


相關焦點

  • Verilog HDL設計進階:有限狀態機的設計原理及其代
    由於寄存器傳輸級(RTL)描述是以時序邏輯抽象所得到的有限狀態機為依據的,所以把一個時序邏輯抽象成一個同步有限狀態機是設計可綜合風格的Verilog HDL模塊的關鍵。在本章中我們將通過各種實例由淺入深地來介紹各種可綜合風格的Verilog HDL模塊,並把重點放在時序邏輯的可綜合有限狀態機的Verilog HDL設計要點。
  • Verilog HDL設計進階:有限狀態機的設計原理及其代碼風格
    由於寄存器傳輸級(RTL)描述是以時序邏輯抽象所得到的有限狀態機為依據的,所以把一個時序邏輯抽象成一個同步有限狀態機是設計可綜合風格的Verilog HDL模塊的關鍵。在本章中我們將通過各種實例由淺入深地來介紹各種可綜合風格的Verilog HDL模塊,並把重點放在時序邏輯的可綜合有限狀態機的Verilog HDL設計要點。
  • 有限狀態機的FPGA設計
    有限狀態機是一種常見的電路,由於時序電路和組合電路組成,設計有限狀態機的第一步是確定採用Moore狀態機還是採用Mealy狀態機。Mealy狀態機的狀態轉變不僅和當前狀態有關,而且和各輸入信號有關;Moore狀態機的轉變只和當前狀態有關。
  • 利用有限狀態機的交通燈控制系統設計與仿真
    1 有限狀態機的基本特性 有限狀態機FSM(finite state machine)由有限的狀態及其相互之間的轉移關係構成。從有限狀態機的角度看,許多數字系統中的時序電路都可以用其來描述,因此,有限狀態機是一種重要的、易於建立的、比較規範、以描述控制特性為主的建模方法,它可以應用於從系統分析到設計的所有階段。同時,因為有限狀態機具有有限個狀態,所以可以在實際的工程上實現。
  • 用STATECAD快速設計有限狀態機
    控制單元的實現方式有: 有限狀態機、控制寄存器和微代碼控制器等。有限狀態機在時間尺度上對其控制信號進行離散化控制, 利用狀態轉移使控制信號在有限狀態機的狀態節拍控制下變化, 以實現對被控對象的控制。有限狀態機設計的關鍵是如何把一個實際的時序邏輯關係抽象成一個時序邏輯函數,傳統的電路圖輸入法通過直接設計寄存器組來實現各個狀態之間的轉換, 而用硬體描述語言來描述有限狀態機, 往往是通過充分發揮硬體描述語言的抽象建模能力,通過對系統在系統級或寄存器傳輸級進行描述來建立有限狀態機。EDA 工具的快速發展,使通過CAD快速設計有限狀態機自動化成為可能。
  • 用VHDL設計有限狀態機的方法
    受控部分通常是設計者們所熟悉的各種功能電路,設計較為容易。主要任務是設計控制器,而其控制功能可以用有限狀態機來實現。因而有必要深入探討有限狀態機的設計方法。本文引用地址:http://www.eepw.com.cn/article/150667.htm1 狀態機設計的一般方法  傳統的設計方法是首先繪製出控制器的狀態圖,並由此列出狀態表,再合併消除狀態表中的等價狀態項。在完成狀態寄存器的分配之後,根據狀態表求出次態及輸出方程,最後畫出設計原理圖。
  • 基於VHDL的MTM總線主模塊有限狀態機設計
    摘要:為了能夠更簡潔嚴謹地描述MTM總線的主模塊有限狀態機的狀態轉換,同時減少FPGA晶片功耗,提高系統穩定性,文中在分析MTM總線結構和主模塊有限狀態機模型的基礎上,基於VHDL語言採用「單進程」式對該有限狀態機進行了設計,並在QuartusⅡ開發軟體中實現了對語言代碼的編譯及程序的時序仿真和功能仿真
  • 基於有限狀態機的飛行器自毀系統時序控制設計
    分析飛行器自毀系統工作原理,採用複雜可編程邏輯器件(CPLD)實現了飛行器自毀系統設計,結合CPLD的特點,提出一種基於改進型有限狀態機的飛行器自毀系統時序控制的設計方法,並在CPLD中予以實現。仿真及實驗表明,基於有限狀態機的飛行器自毀系統定時精度達到納秒級,可以有效地控制自毀信號輸出並消除毛刺現象,很好地滿足系統性能要求。該方法具有結構簡單緊湊、成本低、可靠性高、精度高等優點。
  • 如何以面向對象的思想設計有限狀態機
    狀態機的概念有限狀態機又稱有限狀態自動機,簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學計算模型,用英文縮寫也被簡稱為 FSM。FSM 會響應「事件」而改變狀態,當事件發生時,就會調用一個函數,而且 FSM 會執行動作產生輸出,所執行的動作會因為當前系統的狀態和輸入的事件不同而不同。
  • 基於FPGA與有限狀態機的高精度測角系統的設計與實
    本文介紹的有限狀態機方法,在FPGA上可以有效消除抖動引起的計數幹擾,提高計數的精度[1]。1 方案設計1.1 系統組成雷射跟蹤測量系統的核心處理模塊主要由ARM處理器,FPGA組成。2 理論分析與算法2.1 有限狀態機原理在編碼器的一個輸出周期內
  • 基於Verilog的順序狀態邏輯FSM設計與仿真
    這在設計過程中,進行邏輯結構部分設計時可以將行為結構和層次化結構混合起來;為確認正確性還可以將描述進行模擬,並提供一些用於自動設計的綜合工具。因而Verilog語言為設計者進行大型複雜數字系統的設計提供了途徑。超大規模集成電路設計的典型流程如圖1所示。   本文將以順序狀態邏輯有限狀態機的設計為例介紹用Verilog語言設計數字電路的一般過程。
  • 產品經理不得不知的——有限狀態機
    二、什麼是有限狀態機有限狀態機(Finite-state machine)是一個非常有用的模型,可以模擬世界上大部分事物。它有三個特徵:狀態總數(state)是有限的。任一時刻,只處在一種狀態之中。某種條件下,會從一種狀態轉變(transition)到另一種狀態。
  • 簡單的狀態機入門!
    大家晚上好,今天給大家分享一個篇關於狀態機的學習。1、有限狀態機:常說的狀態機是有限狀態機FSM(Finite State Machine)。FSM指的是有有限個狀態(一般是一個狀態變量的值),這個機器同時能夠從外部接收信號和信息輸入,機器在接收到外部輸入的信號後會綜合考慮當前自己的狀態和用戶輸入的信息,然後機器做出動作:跳轉到另一個狀態。
  • ST推出LIS3DSH內置2個有限狀態機的三軸高解析度加速度計
    打開APP ST推出LIS3DSH內置2個有限狀態機的三軸高解析度加速度計 愛好者 發表於 2011-11-07 23:33:20
  • LabVIEW設計模型——狀態機之狀態轉換圖
    狀態機是在工程應用中使用最多的設計模型。使用狀態機,我們可以很容易的實現程序流程圖中的判斷、分支。 狀態機是由一系列的狀態構成的,其中包括一個「初始化」狀態,和一個「停止」狀態。
  • 如何繪畫狀態機來描述業務的變化
    因為技術會反覆的問,有幾種狀態啊,怎麼轉移啊,啥時候轉移啊,什麼時候截止狀態啊,系統根據什麼條件判斷狀態啊……一、為什麼需要使用狀態機?講個親身的例子,去年我設計電商系統的訂單模塊,就犯過類似的問題。一開始參照淘寶的訂單系統,將訂單設計為待付款、已付款、已發貨、已完成,已關閉等5個狀態。上線後很快就發現有問題。
  • 基於有限狀態機的嵌入式系統模型校驗技術
    對於面向控制的系統,可以採用有限狀態 機(FSM)定義需求和設計,這是一種得到廣泛認可的抽象表示方法。當然,光靠FSM並不能對複雜的實際工業系統進行建模。我們還需要:1. 能將需求模塊化並區分需求等級;2. 能合併各組成部分的需求(或設計);3. 能通過更新預先規定的變量和設備,防止可能出現的異常。校驗設計需求時,通常可以通過回答一些問題得到結果。
  • 基於有限狀態機與消息隊列的第三方支付系統補單實踐
    0.引言在日常生活中,從線下的超市購物到線上的外賣點餐、電商網購等,支付無時無刻不在發生,不論是通過現金、pos機刷卡還是微信支付寶等第三方支付。線上支付有著及時便捷一氣呵成的極致體驗,當然也有少數的時候體驗不夠絲滑,比如早期我們在PC版12306買火車票,當支付完成後,訂單的支付狀態卻經常不能及時更新,會有一段時間的延遲,有時甚至會等待很長時間處在未支付狀態。
  • 一種RFID標籤晶片數字部分狀態機的設計
    嵌入式CPU設計較為靈活,能實現較為複雜的加密算法,但是功耗較大、成本高;而狀態機則功耗低、成本低,因而在注重功耗和成本的RFID市場獲得了廣泛應用,也為本文所採用。  1 VICC數字部分的構成  VICC數字部分的組成模塊如圖1所示。
  • FPGA工程師:如何在FPGA中實現狀態機?
    對於設計人員來說,滿足這些行動和序列要求的最佳方法則是使用狀態機。狀態機是在數量有限的狀態之間進行轉換的邏輯結構。一個狀態機在某個特定的時間點只處於一種狀態。但在一系列觸發器的觸發下,將在不同狀態間進行轉換。