上圖表示的就是數字電路設計中常用的時鍾同步狀態機的結構。其中共有四個部分產生下一狀態的組合邏輯F、狀態寄存器組、輸出組合邏輯G、流水線輸出寄存器組。如果狀態寄存器組由n個寄存器組成,就可以記憶2^n個狀態。並且所有的寄存器都連接在一個共同的時鍾信號上,現代電路設計通常采用正跳變沿D觸發器。
下一個狀態=F(當前狀態,輸入信號)
輸出信號=G(當前狀態,輸入信號)
通常的狀態機是沒有Pipeline output的,並且可以分為兩類:
Mealy型:時序邏輯的輸出不但取決於狀態還取決於輸入,輸出信號=G(當前狀態,輸入信號)
Moore型:時序邏輯的輸出只取決於當前狀態,與輸入無關,輸出信號=G(當前狀態)
這兩種電路結構除了在輸出電路有些不同外,其他地方都是相同的。在實際工作中,大部分狀態機都是Mealy狀態機。
1)在設計高速通路時,常常有必要使得狀態機的輸出和時鍾幾乎完全同步。有一個辦法就是把狀態寄存器組的狀態變量直接用做輸出,為此可能在狀態編碼時要多費些腦力,也有可能要多用幾個寄存器。這種設計思路,在高速狀態機電路常常使用,稱為輸出編碼的狀態指定。這種狀態機就屬於Moore類型,但是輸出部分沒有組合邏輯只有連線。
2)設計高速狀態機還有另一種辦法,如圖所示,在邏輯輸出后面加上一組與時鍾同步的寄存器組作為流水線輸出寄存器組,這樣可以使得G的所有輸出信號在下一個時鍾跳變沿的同時存入寄存器組,即實現同步輸出,將這種輸出叫做流水線化的輸出。