FPGA 狀態機,FPGA的靈魂

2021-09-02 04:55:06 字數 1827 閱讀 1076

有關狀態機的文章,事實上已經寫過很多了,可是即使如此,真的懂了嗎?真的能熟練應用嗎?未必吧。這篇博文**是《fpga之道》,認真下看去收貨頗豐!

借這個主題來梳理下狀態機:

狀態機是fpga設計中一種非常重要、非常根基的設計思想,堪稱fpga的靈魂,貫穿fpga設計的始終。

簡單地說,狀態機就是一副描繪著狀態變遷的狀態轉移圖,它體現著系統對外界事件的反應和行為。

fpga中的狀態機是指有限狀態機,簡稱為fsm,是指狀態節點數和輸入、輸出範圍皆有限的狀態機。需要說明的是,雖然有限狀態機的狀態節點和輸入、輸出皆為有限的,但這並不意味著它僅能進行有限次的處理,這是因為有限狀態機可以形成閉環系統,所以可以用有限個狀態處理無限的事件,從而到達化有限為無窮的境界。

例如,宇宙中物資的三種最基本的狀態:固態,液態和氣態,它們之間的狀態轉移圖如下:

從上圖可以看出,雖然該狀態機僅有三個狀態,輸入(六個觸發條件)、輸出(狀態本身即為輸出)也是有限的,但是它卻永遠不會結束,因為宇宙中的物理轉換永遠也不會停止。。。至少可預見的未來不會停止。

(1)狀態集合:

狀態集合是組成狀態機的必備要素,該集合裡包含了狀態機所能達到的所有狀態,例如上例中的。

(2)初態:

初態是狀態機的第二必備要素,它是整個狀態機開始工作的起點。它的功能類似於乙個參考係,它為狀態機的其他狀態提供參考與標準。

例如上例中,任何乙個狀態都可以作為初態。

(3)終態

終態是狀態機的結束狀態,即若狀態機達到終態,它的使命也將完成,不再工作。

與初態不同,終態不是狀態機的必備要素,大部分執行在fpga上的狀態機是沒有終態的,因為它們都需要用有限的狀態來處理無限的事件。

(4)輸入符號集

輸入符號集是驅動狀態機進行狀態轉換的主要因素,不過狀態機的狀態轉換其實並不一定需要外界的事件觸發,因此,輸入符號集也不是組成狀態機的必備要素,但是大部分執行在fpga上的狀態機是需要輸入符號集的,至少大多數情況下,需要乙個復位訊號來讓fpga進入初態。

例如,上例中的輸入符號集為。

(5)輸出符號集

輸出符號集是狀態機傳遞給外界的反饋,不過與輸入符號集不同,輸出符號集是組成狀態機的乙個必備要素,因為乙個對外界毫無影響、或者在外界看來毫無變化的狀態機是沒有必要存在的。

例如上例中的輸出符號集可以是

(6)狀態轉移函式

狀態轉移函式決定了狀態機的行為,它是狀態機的必備要素之一,也是狀態機最重要的乙個組成因素。狀態轉移函式的表現形式可以由很多種,例如帶有說明的有向箭頭,狀態轉移**等。

狀態機在工作的時候,出於對狀態機內在因果關係的考慮,將狀態機的工作狀態劃分為四個要素:現態,輸入,輸出和次態。其中,現態和輸入是因,輸出和次態是果。

(1)現態

現態指狀態機當前所處的狀態。

(2)輸入

輸入一般指外部事件,當乙個外部事件發生後,狀態機便會根據狀態轉移函式發生響應的狀態跳轉,或者狀態機將會更新自己的輸出情況。

通常在fpga中,根據輸入訊號是非同步的還是同步的,又可以將狀態機分為非同步狀態機和同步狀態機,不過鑑於穩定性的考慮,以後提到和fpga相關的狀態機都是同步狀態機。而對於非同步訊號,要先同步化後再送至狀態機。

(3)輸出

輸出是由現態或者現態和輸入共同決定的。輸出符號集是必需的,但是具體到某一狀態或者某一輸入觸發事件,輸出並不是必需的,有時候帶來的僅僅是狀態遷移而已。

(4)次態

次態是根據現態,輸入以及狀態轉移函式所得到的,狀態機將要跳轉至的新狀態。次態是相對於現態而言的,一旦狀態遷移完成,次態便變成了新的現態。

這篇博文暫時到此,下篇博文,關於狀態機的模型介紹。

FPGA 常用 狀態機

1,單always塊結構 一段式 always posedge clk begin case fsm st0 begin out0 輸出 if case0 fsm st1 狀態轉移 endst1 begin out1 輸出 if case0 fsm st2 狀態轉移 end default endc...

FPGA狀態機總結

1.狀態機的結構 1 邏輯表示式 下乙個狀態 f 當前狀態,輸入訊號 輸出訊號 g 當前狀態,輸入訊號 2 mealy狀態機 時序邏輯的輸出取決於狀態與輸入 3 moore狀態機 時序邏輯的輸出取決於狀態 2.狀態編碼的型別 1 獨熱編碼 乙個bit代表乙個狀態 4中狀態的編碼有 4 b0001,4...

FPGA 狀態機的模型之Moore型狀態機

上篇博文 狀態機,fpga的靈魂,說到了狀態機的基礎知識,講到了狀態機的組成六要素,工作四要素。這篇博文來講狀態機的模型之moore狀態機,從標題也能看出,狀態機的知識並沒有結束,後面還會提到mealy型狀態機。根據狀態機的輸出與其現態 輸入之間的關係,可將fpga中的狀態機抽象為三種基本模型 mo...