狀態暫存器由一組觸發器組成,用來記憶狀態機當前所處的狀態,狀態的改變只發生在時鐘的跳變沿
狀態是否改變、如何改變,取決於組合邏輯f的輸出,f是當前狀態和輸入訊號的函式
狀態機的輸出由組合邏輯g提供,g是當前狀態和輸入訊號的函式
常規狀態機
狀態空間
//獨熱碼:每個狀態只有乙個暫存器置位,解碼邏輯簡單
parameter orange = 4'b0100;
parameter banana = 4'b0010;
parameter cherry = 4'b0001;
狀態跳轉(時序邏輯)
always @(posedge clk or negedge rst_n) begin
下乙個狀態的判斷(組合邏輯)
各個狀態下的動作
//簡單情況
wire read_book;
assign read_bool = (currentn_state == study) ? 1'b1 : 1'b0
//若狀態描述較複雜
always @ (currentn_state) begin
if(currentn_state == study)
read_book = 1;
else
read_book = 0;
end
三段式狀態機
可以在組合邏輯後再增加一級暫存器來實現時序邏輯輸出:
可以有效濾去組合邏輯輸出的毛刺
進行時序計算和約束
對於匯流排形式的輸出訊號來說,容易使匯流排資料對齊,從而減小匯流排資料間的偏移,減小接收端資料取樣出錯的頻率
FPGA學習筆記 狀態機的實現
一 原理介紹 狀態機 乙個狀態機對應多種狀態,每個狀態由乙個觸發條件改變 專案例子介紹 當檢測到測試資料中 fpga 四個字母連續出現,led狀態改變 二 實驗 專案檔案 module finitestatemachine clk,rst n,data,led 檢測fpga input clk in...
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...