基于有限狀態(tài)機(jī)的飛行器自毀系統(tǒng)時(shí)序控制設(shè)計(jì)
2 有限狀態(tài)機(jī)模型及選擇
2.1 有限狀態(tài)機(jī)模型
有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)可以用下面包含5種元素的集合來(lái)表示{X,Y,S,f,g},這里S={S1,S2,…,Sk}是FSM中狀態(tài)的集合;X={X1,X2,…,Xn}是FSM中輸入的集合;Y={Y1,Y2,…,Ym)是FSM中輸出的集合;f為狀態(tài)轉(zhuǎn)移函數(shù),表示由輸入信號(hào)變量X和當(dāng)前狀態(tài)S決定下一個(gè)狀態(tài),即:XY;→S;g為輸出函數(shù),表示由輸入信號(hào)變量X和狀態(tài)S決定狀態(tài)機(jī)的輸出變量Y,即:XS→Y。從上面定義可以看出,有限狀態(tài)機(jī)包含5類(lèi)基本要素:即狀態(tài)、輸入、輸出、轉(zhuǎn)移函數(shù)及輸出函數(shù)。它們分別用矢量函數(shù)表示如下:本文引用地址:http://www.ex-cimer.com/article/163781.htm
不用的分類(lèi)規(guī)則,狀態(tài)機(jī)分類(lèi)也不同。在實(shí)際的應(yīng)用中,根據(jù)有限狀態(tài)機(jī)是否使用輸入信號(hào),設(shè)計(jì)人員經(jīng)常將其劃分為Moore有限狀態(tài)機(jī)和Mealy型有限狀態(tài)機(jī)兩種類(lèi)型。Moore型狀態(tài)機(jī)的輸出只與當(dāng)前的狀態(tài)有關(guān)而與輸入無(wú)關(guān),而Mealy型狀態(tài)機(jī)的輸出不僅與當(dāng)前狀態(tài)有關(guān),還與當(dāng)前的輸入有關(guān),它們共同決定Mealy狀態(tài)機(jī)的輸出。圖2和圖3分別表示了Moore,Mealy狀態(tài)機(jī)的結(jié)構(gòu)圖。
有限狀態(tài)機(jī)還有很多分類(lèi)方法,比如根據(jù)復(fù)位信號(hào)的不同可以分為同步復(fù)位狀態(tài)機(jī)和異步復(fù)位狀態(tài)機(jī)。根據(jù)輸出是否寄存分為直接輸出、寄存輸出、根據(jù)狀態(tài)編碼輸出等類(lèi)型。
對(duì)于Moore型有限狀態(tài)機(jī),輸出信號(hào)將在時(shí)鐘信號(hào)的觸發(fā)沿到的幾個(gè)門(mén)時(shí)延后得到輸出值,同時(shí)在該時(shí)鐘周期的剩余時(shí)間內(nèi)保持不變,即使輸入信號(hào)在該時(shí)鐘周期內(nèi)發(fā)生變化,輸出信號(hào)的值也不會(huì)改變。由于Moore型有限狀態(tài)機(jī)的輸出與當(dāng)前的輸入部分無(wú)關(guān),因此當(dāng)前輸入產(chǎn)生的任何效果將會(huì)延遲到下一個(gè)時(shí)鐘周期??梢?jiàn),Moore型狀態(tài)機(jī)的最大優(yōu)點(diǎn)就是可以將輸入部分與輸出部分隔離開(kāi)。
對(duì)于Mealy型有限狀態(tài)機(jī),由于它的輸出是輸入信號(hào)的函數(shù),因此如果輸入信號(hào)發(fā)生變化,則輸出可以在1個(gè)時(shí)鐘周期的中間發(fā)生改變。與Moore型有限狀態(tài)機(jī)相比,它對(duì)輸入信號(hào)的變化相應(yīng)要早1個(gè)時(shí)鐘周期。但它也會(huì)將輸入端口的噪聲傳遞給輸出信號(hào)。
綜合以上幾點(diǎn)的考慮,該設(shè)計(jì)采用Moore型有限狀態(tài)機(jī)實(shí)現(xiàn)飛行器自毀系統(tǒng)的時(shí)序控制。
2.2 毛刺和信號(hào)時(shí)延處理
Moore型有限狀態(tài)由于有組合邏輯進(jìn)程的存在,狀態(tài)機(jī)輸出信號(hào)會(huì)出現(xiàn)毛刺(競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象);另一方面,如果狀態(tài)信號(hào)是多位值的,則在電路中對(duì)應(yīng)了多條信號(hào)線。由于存在傳輸延遲,各信號(hào)線上的值發(fā)生改變的時(shí)間則存在先后,從而使得狀態(tài)遷移時(shí)在初始狀態(tài)和目的狀態(tài)之間出現(xiàn)臨時(shí)狀態(tài),因此出現(xiàn)毛刺。
參考各方面文獻(xiàn),現(xiàn)在消除輸出信號(hào)的“毛刺”一般可采用3種方案:一是調(diào)整狀態(tài)編碼,使相鄰狀態(tài)間只有1位信號(hào)改變,從而消除競(jìng)爭(zhēng)冒險(xiǎn)的發(fā)生條件,避免了毛刺的產(chǎn)生。這種方案適用于順序遷移的狀態(tài)機(jī);二是在有限狀態(tài)機(jī)的基礎(chǔ)上采用時(shí)鐘同步信號(hào),即把時(shí)鐘信號(hào)引入組合進(jìn)程。狀態(tài)機(jī)每一個(gè)輸出信號(hào)都經(jīng)過(guò)附加的輸出寄存器,并由時(shí)鐘信號(hào)同步,因而保證了輸出信號(hào)沒(méi)有毛刺。這種方法存在一些弊端;由于增加了輸出寄存器,硬件開(kāi)銷(xiāo)增大,這對(duì)于一些寄存器資源較少的芯片是不利的;從狀態(tài)機(jī)的狀態(tài)位到達(dá)輸出需要經(jīng)過(guò)兩級(jí)組合邏輯,這就限制了系統(tǒng)時(shí)鐘的最高工作頻率;由于時(shí)鐘信號(hào)將輸出加載到附加的寄存器上,所以在輸出端得到信號(hào)值的時(shí)間比狀態(tài)的變化延時(shí)1個(gè)時(shí)鐘周期;三是直接把狀態(tài)機(jī)的狀態(tài)碼作為輸出信號(hào),即采用狀態(tài)碼直接輸出型狀態(tài)機(jī),使?fàn)顟B(tài)和輸出信號(hào)一致,使得輸出譯碼電路被優(yōu)化掉了,因此不會(huì)出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)。這種方案,占用芯片資源少,信號(hào)與狀態(tài)變化同步,因此速度快。
評(píng)論