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