我想在verilog中創建一個有限狀態機。該系統具有4個1-bit
輸入rst
,clk
,A
,B
和一個輸出,Z
。Verilog有限狀態機
如果: A在最後兩個時鐘沿上具有相同的值,則Z等於1。
或B自從最後一條規則爲真以來,在每個時鐘邊沿都處於高位(1)。
否則z=0
;
我沒有工具來模擬我的嘗試atm。所以我想知道這是否是正確的方法,如果我在正確的軌道上?
module StateMachine(R, A, B, clk, Z);
input R, A, B, clk;
output reg Z;
reg ATemp;
reg state;
always @ (posedge clk or A)
if (A == 1'b1)
/////////////////
begin
if (ATemp == 1'b1) state <= 1'b1;
else ATemp <= A;
end
////////////////
else
////////////
begin
if (ATemp == 1'b0) state <= 1'b1;
else ATemp <= A;
end
always @ (state)
case(state)
1'b0: Z=0;
1'b1: Z=1;
default: Z=0;
endcase
endmodule
如果你沒有模擬工具,那麼你需要得到一些。否則,這是毫無意義的,如果沒有模擬,你將永遠無法到達任 – Tim
你爲什麼不有SIM工具(最商業的提供30天的演示)? –