有限狀態(tài)機(jī)的FPGA設(shè)計
有限狀態(tài)機(jī)是一種常見的電路,由于時序電路和組合電路組成,設(shè)計有限狀態(tài)機(jī)的第一步是確定采用Moore狀態(tài)機(jī)還是采用Mealy狀態(tài)機(jī)。Mealy狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)變不僅和當(dāng)前狀態(tài)有關(guān),而且和各輸入信號有關(guān);Moore狀態(tài)機(jī)的轉(zhuǎn)變只和當(dāng)前狀態(tài)有關(guān)。從電路實現(xiàn)功能上來講,任何一種都可以實現(xiàn)同樣的功能。但他們的輸出時序不同,所以選擇使用哪種狀態(tài)機(jī)是要根據(jù)具體情況來定。
Mealy狀態(tài)機(jī):由于輸出受輸入的直接影響,而輸入可以再時鐘周期的任一時刻變化,這就使得輸出狀態(tài)比Moore狀態(tài)機(jī)的輸出狀態(tài)提前一個周期到達(dá)。輸入信號的噪聲可能會出現(xiàn)在輸出信號上。
Moore狀態(tài)機(jī):在時鐘脈沖的有限個門延時之后,輸出達(dá)到穩(wěn)定。輸出會在一個完整的時鐘周期內(nèi)保持穩(wěn)定值,及時在該時鐘內(nèi)輸入信號變化了,輸出信號也不會變化。輸入對輸出的餓影響要到下一個時鐘周期才能反映出來。把輸入和輸出分開,是Moore狀態(tài)機(jī)的重要特征。
對于同一電路,使用Moore狀態(tài)機(jī)設(shè)計可能會比使用Mealy狀態(tài)機(jī)多出一些狀態(tài)。
根據(jù)特征和藥設(shè)計的電路的具體情況,就可以而確定使用哪種狀態(tài)機(jī)來實現(xiàn)功能。一旦確定狀態(tài)機(jī),接下來就要構(gòu)造專題轉(zhuǎn)換圖?,F(xiàn)在還沒有一個成熟的系統(tǒng)化裝踏入構(gòu)造算法,所以對于實現(xiàn)同一功能,可以搞糟出不同的狀態(tài)轉(zhuǎn)換圖。但一定要遵循結(jié)構(gòu)化設(shè)計。在構(gòu)造電路的狀態(tài)轉(zhuǎn)換圖時。使用互補(bǔ)原則可以幫助我們檢查設(shè)計過程中是否出現(xiàn)錯誤。互補(bǔ)原則是指離開狀態(tài)圖節(jié)點的所有之路的條件必須是互補(bǔ)的,同一節(jié)點的任何2個或多個之路的條件不能同時為真。同時為真時我們設(shè)計不允許的。
評論