數位電路/有限狀態機
抽象地說,有限狀態機是一個系統,可以由其可以採用的狀態、其初始狀態、其接收的輸入以及如何改變狀態來描述。狀態機將根據其當前狀態以及影響系統(即輸入)的當前因素改變狀態。一個狀態被指定為初始(或開始)狀態。從該狀態開始,週期性地對輸入進行取樣,機器根據輸入和當前狀態改變狀態。該狀態可以被觀察到並作為輸出處理;當前輸入也可以影響輸出。
具體來說,我們對建立一個在特定條件下產生特定輸出的系統感興趣。有限狀態機與眾不同之處在於,它們從某種意義上來說具有記憶功能。與邏輯閘不同的是,邏輯閘的當前輸出只取決於當前輸入,而有限狀態機的輸出則取決於過去輸入(透過從初始狀態開始隨著時間的推移而移動到當前狀態)和當前輸入。我們透過觸發器來實現這一點。此外,請注意,狀態只在離散時間改變;因此,我們正在建立一個時序電路。
要理解有限狀態機的運作方式,您必須理解它如何改變狀態。在給定狀態下,給定輸出會產生狀態改變(可能改變到相同狀態)。因此,我們可以將有限狀態機表示為一個函式,該函式將輸入和狀態對映到狀態。我們可以使用類似於真值表的狀態轉移表來描述此轉移函式:用不同的輸入標記行,用不同的狀態標記列,並在每個輸入狀態單元格中,放入當在列狀態下給定行輸入時機器轉移到的狀態的標籤。
在數位電路中,輸入將是二進位制值,轉移函式將使用給定時鐘脈衝下觸發器的輸入和輸出來影響觸發器的狀態,而新狀態將是時鐘脈衝後觸發器的新狀態。
有限狀態機的另一種表示方式是狀態圖。這裡,狀態由帶標籤的圓圈表示。當機器能夠一步從箭頭尾部的狀態轉換到其頭部的狀態時,就會從一個狀態畫一條箭頭指向另一個狀態。箭頭用導致轉換的輸入進行標記。
狀態圖對於生成狀態轉移表並確保所有可能的輸入轉移都被考慮在內非常有用。因為它們可能比相應的轉移表更簡單(當多個不同的輸入組合產生相同的轉移時,它們都被用來標記單個箭頭,而不是每個都給出自己的條目),所以它們在理解系統功能方面也很有用。
米利機是一種機器,其輸出是當前儲存器狀態和當前輸入的函式。
摩爾機是一種機器,其輸出是當前儲存器狀態的函式。