2016-12-02 93 views
-1

我想實現一個冕FSM,通過使用2總是塊,兩者使用相同的狀態,但是,從陣列的不同半部發現10個元件的陣列的最小和最大。如果我在兩個塊中都使用相同的狀態名,但具有不同的實現方式(它們中的每一個影響不同的寄存器),它是否工作?摩爾機,Verilog的

+0

不明白!! –

回答

0

是的,這是可能的。事實上,如果你這樣做,代碼可能會更容易理解,因爲你會理解每個寄存器的實現。

parameter S_START = 0, 
      S_DO_SOMETHING = 1, 
      S_DO_ANOTHER = 2, 
      S_END = 3 

integer current_state = S_START; 

always @ (posedge clk) 
case (current_state): 
// define state transitions 
endcase 

always @ (posedge clk) 
case (current_state): 
// modify a register according to state 
end 

always @ (posedge clk) 
case (current_state): 
// modify another register according to state 
end 

只要確保每個寄存器只在一個always塊中被修改。