米利型與摩爾型狀態機的差異:輸出、時序、狀態數、HDL寫法比較
狀態機由記住目前狀態的暫存器、決定下一個狀態的組合電路,以及決定輸出的組合電路組成。米利型與摩爾型的差別在於輸出由什麼決定。米利型的輸出由目前的狀態與目前的輸入兩者決定,輸入的變化會在同一個週期內出現在輸出。摩爾型的輸出只由目前的狀態決定,輸入的變化要等時脈改變狀態後才出現在輸出,因此反應慢一個週期。米利型的特點是狀態少、反應快,摩爾型的特點是輸出穩定、時序容易預測。
| 項目 | 米利型 | 摩爾型 |
|---|---|---|
| 決定輸出的因素 | 目前的狀態與目前的輸入 | 只有目前的狀態 |
| 狀態轉移圖中輸出的寫法 | 以「輸入/輸出」的形式寫在轉移的箭頭上 | 與狀態名稱一起寫在狀態的圓圈內 |
| 對輸入的反應 | 輸入改變時,不等時脈就在同一個週期內改變輸出 | 下一個時脈改變狀態後輸出才改變,比米利型慢一個週期 |
| 狀態數(可重疊偵測「101」的例子) | 3個狀態(尚未符合、符合到1、符合到10) | 4個狀態(另外需要表示輸出1的「偵測到101」狀態) |
| 狀態數(一般) | 實現相同功能時,與摩爾型相同或較少 | 需要依進入轉移的輸出拆分米利型的狀態,容易變多 |
| 突波與雜訊 | 輸入的突波或雜訊會經過組合電路直接出現在輸出 | 輸入的雜訊不會傳到輸出。若以讓輸出直接取自狀態暫存器位元的方式編碼,也能消除輸出的突波 |
| 時序路徑 | 從輸入到輸出由組合電路相連,包含前後電路的路徑變長。米利型彼此相接時可能形成組合迴路 | 輸出只由時脈邊緣之後的狀態決定,路徑被暫存器切開,時序容易分析 |
| HDL的寫法 | 在決定輸出的組合電路區塊中,除了狀態也參照輸入 | 輸出的式子只參照狀態(例如用case敘述依狀態決定輸出)。也常由暫存器輸出 |
| 適合的用途 | 希望對輸入毫無週期延遲地回應的控制、想減少狀態數時 | 需要乾淨輸出的控制訊號(送到其他時脈域的電路或晶片外的訊號等)、希望時序容易預測時 |
數值為具代表性的大致參考值,會因世代或產品而異。