1. 概述--何為有限狀態機FSM?
有限狀態機-Finite State Machine,簡寫為FSM,是表示有限個狀態及在這些狀態之間的轉移和動作等行為的數學模型,在計算機領域有着廣泛的應用。通常FSM包含幾個要素:狀態的管理、狀態的監控、狀態的觸發、狀態觸發后引發的動作。
以下為wiki上有關FSM的介紹,鏈接地址為Finite State Machine-WiKi 。
A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a state machine, is a mathematical model of computation used to design both computer programs and sequential logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states. The machine is in only one state at a time; the state it is in at any given time is called the current state. It can change from one state to another when initiated by a triggering event or condition; this is called a transition. A particular FSM is defined by a list of its states, and the triggering condition for each transition.
2. FSM有哪些形式?
對於FPGA硬件電路,不管狀態機是何種,我們假定F是當前狀態和輸入信號的函數。狀態機的輸出是由輸出組合邏輯G提供的,G也是當前狀態和輸入信號的函數。那么對於狀態機的邏輯,可以表達如下:
下一個狀態 = F(當前狀態,輸入信號);
輸出信號 = G(當前狀態,輸入信號);
在狀態機中,我們依據狀態機輸出與輸入的關系將狀態機分為了兩個模型,分別是Mealy狀態機和Moore狀態機。下面對這兩個部分進行詳解。
3. Mealy狀態機
Mealy狀態機為狀態機時序邏輯輸出不但取決於狀態,還取決於輸入的一類狀態機。此時,其狀態機輸出表達式為"輸出信號 = G(當前狀態,輸入信號);"這種。
時鍾同步的Mealy狀態機結構如圖1所示,從圖中可以看出其輸出邏輯G的輸出由輸入和當前狀態一同決定。
圖1 時鍾同步的Mealy狀態機結構
4. Moore狀態機
與Mealy狀態機相對應,Moore狀態機的時序邏輯輸出只取決於當前狀態的這一類狀態機。此時,其輸出表達式為"輸出信號 = G(當前狀態,輸入信號);"這種。
時鍾同步的Moore狀態機結構如圖2所示,從圖中可以看出其輸出邏輯G的輸出僅由當前狀態決定。
圖2 時鍾同步的Moore狀態機結構
5. Mealy vs Moore 狀態機
a) Mealy機比Moore機“響應”速度快。
Mealy機的輸出與當前狀態和輸入有關,而Moore機輸出僅與當前狀態有關。Mealy機的輸入立即反應在當前周期;Moore機的輸入影響下一狀態,通過下一狀態影響輸出。為此Mealy機比Moore機輸出序列超前一個周期,即“響應速度”較快。Mealy機的輸出在當前周期,具有較長的路徑(組合邏輯);Moore機的輸出具有一個周期的延時,容易利用時鍾同步,Moore機具有較好的時序。
b) Mealy機狀態少,Moore機結構簡單。
由於Moore機的輸出只有當前的狀態有關,一個狀態對應一個輸出,Moore機具有更多的狀態。Mealy和Moore機之間可以相互轉化,對於每個Mealy機,都有一個等價的Moore機,Moore機狀態的上限為所對應的Mealy機狀態的數量和輸出數量的乘積。
c) 狀態機的狀態通過觸發器的數量來反應,Mealy機具有較少的狀態,為此具有較少的觸發器。
此部分參考:兩種類型狀態機。