狀態機的寫法
有限狀態機FSM思想廣泛應用于硬件控制電路設計,也是軟件上常用的一種處理方法(軟件上稱為FMM有限消息機)。它把復雜的控制邏輯分解成有限個穩定狀態,在每個狀態上判斷事件,變連續處理為離散數字處理,符合計算機的工作特點。
有限狀態機的工作原理如圖所示,發生事件(event)后,根據當前狀態(cur_state),決定執行的動作(action),并設置下一個狀態號(nxt_state)。
圖 ?有限狀態機工作原理
下圖為一個狀態機實例的狀態轉移圖,它的含義是:
在s0狀態,如果發生e0事件,那么就執行a0動作,并保持狀態不變;
如果發生e1事件,那么就執行a1動作,并將狀態轉移到s1態;
如果發生e2事件,那么就執行a2動作,并將狀態轉移到s2態;
在s1狀態,如果發生e2事件,那么就執行a2動作,并將狀態轉移到s2態;
在s2狀態,如果發生e0事件,那么就執行a0動作,并將狀態轉移到s0態。
圖0一個有限狀態機實例
有限狀態機不僅能夠用狀態轉移圖表示,還可以用二維的表格代表。一般將當前狀態號寫在橫行上,將事件寫在縱列上,如表1所示。其中“--”表示空(不執行動作,也不進行狀態轉移),“an/sn”表示執行動作an,同時將下一狀態設置為sn。下表和圖0表示的含義是完全相同的。
表 ? 圖2狀態機實例的二維表格表示(動作/下一狀態)
時序邏輯電路的數學模型是有限狀態機(FiniteStateMachine)。時序邏輯電路的設計通常用觸發器來實現,狀態機越復雜,設計過程也越復雜。利用MSI(Medium-ScaleIntegration)也可以實現復雜狀態機,雖然設計過程比利用觸發器實現要復雜,但電路相對簡單。在數字邏輯系統中,計數器是基本部件之一。集成計數器芯片類型很多,文中主要討論使用MSI同步計數器74LS161進行復雜狀態機的設計。
74LS161功能介紹
74LS161的引腳排列和邏輯功能如圖1所示。各引出端的邏輯功能如下。1腳為清零端/RD,低電平有效。2腳為時鐘脈沖輸入端CP,上升沿有效(CP↑)。3~6腳為數據輸入端A0~A3,可預置任意四位二進制數。7腳和10腳分別為計數控制端EP和ET,當其中有一腳為低電平時計數器保持狀態不變,當均為高電平時為計數狀態。9腳為同步并行置數控制端/LD,低電平有效。11~14腳為數據輸出端QQ30~。15腳為進位輸出端RCO,高電平有效。
圖1 ? 四位同步二進制計數器74LS161
(a)引線排列圖;(b)邏輯功能圖
評論
查看更多