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...