FPGA狀態機總結

2021-08-01 02:14:13 字數 780 閱讀 4759

1. 狀態機的結構

(1)邏輯表示式

下乙個狀態=f(當前狀態,輸入訊號);

輸出訊號=g(當前狀態,輸入訊號);

(2)mealy狀態機:時序邏輯的輸出取決於狀態與輸入

(3)moore狀態機:時序邏輯的輸出取決於狀態

2. 狀態編碼的型別

(1)獨熱編碼:乙個bit代表乙個狀態(4中狀態的編碼有:4』b0001, 4』b0010, 4』b100, 4』b1000)

(2)gray編碼:格雷編碼累加(4中狀態的編碼有:2』b00, 2』b01, 2』b11, 2』b10)

(3)輸出直接指定為狀態碼,多用於高速訊號

3. 狀態機編寫的方法

(1)一段式

輸入、輸出、狀態變化寫在一起,用非阻塞「<=」對當前狀態暫存器(cstat)和命令暫存器(cmd)進行賦值。

(2)二段式

時序邏輯與組合邏輯分離。時序邏輯為狀態切換,組合邏輯實現輸入、輸出、狀態判斷。狀態切換用非阻塞「<=」完成下一狀態暫存器(nstat)對當前狀態暫存器(cstat)的賦值。組合邏輯通過阻塞「=」,利用cstat暫存器狀態和輸入,對下一狀態暫存器(nstat)和輸出暫存器(cmd)進行賦值。由於輸出用邏輯電路,會產生毛刺

(3)三段式

輸入、輸出、狀態切換分離。狀態切換用非阻塞「<=」完成下一狀態暫存器(nstat)對當前狀態暫存器(cstat)的賦值。通過阻塞「=」,利用cstat暫存器狀態和輸入訊號,對下一狀態暫存器(nstat)進行賦值。輸出暫存器通過利用當前狀態,使用非阻塞的「<=」賦值,延遲乙個時鐘以達到消除毛刺的目的。

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 狀態機,FPGA的靈魂

有關狀態機的文章,事實上已經寫過很多了,可是即使如此,真的懂了嗎?真的能熟練應用嗎?未必吧。這篇博文 是 fpga之道 認真下看去收貨頗豐!借這個主題來梳理下狀態機 狀態機是fpga設計中一種非常重要 非常根基的設計思想,堪稱fpga的靈魂,貫穿fpga設計的始終。簡單地說,狀態機就是一副描繪著狀態...

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

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