關於狀態機的書寫規範

2021-08-29 02:10:09 字數 1071 閱讀 5593

1、四段式狀態機的書寫規則

第一段:

同步時序的always模組,格式化描述次態遷移到現態暫存器。

**如下

always @(posedge clk or negedge rst_n)  begin

if(!rst_n)begin

state_c <= idle;

endelse begin

state_c <= state_n;

endend

第二段:

組合邏輯的always塊,描述狀態轉移條件。

always @(*)begin

case(state_c)

idle:begin

if(idl2s1)begin

state_n = s1;

endelse begin

state_n = state_c;

endend

s1:begin

if(s12s2)begin

state_n = s2;

endelse begin

state_n = state_c;

endend

s2:begin

if(s22idl)begin

state_n = idle;

endelse begin

state_n = state_c;

endend

default:begin

state_n = idle;

endendcase

end

第三段:定義轉移條件

assign     idl2s1_start = state_c == idle && ...;

assign s12s2_start = state_c == s1 && ...;

assign s22idl_start = state_c == s2 && ...;

第四段:設計輸出

乙個always設計乙個訊號,因此有多少個輸出訊號,就有多少個always。

狀態機 狀態機0

近半年都忙於做專案,沒有太多的時間去整理和總結在專案中用過的技術 個人還是覺得技術需要總結提煉和沉澱的,忙到沒時間去總結提公升其實不 是什麼好事,這次講下狀態機,在戰鬥型別的遊戲中角色有多種不同的狀態,而狀態的切換錯綜複雜,23種設計模式中有一種模式叫做狀態模式,不過 這種模式是把狀態切換條件放到各...

關於TCP的狀態機

另外 客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠 狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個 ack 後 就會進入 ti...

關於TCP的狀態機

另外 客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠 狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個 ack 後 就會進入 ti...