2016-12-02 12 views
-1

2つの常時ブロックを使用して10要素の配列の最小値と最大値を検出するMOORE FSMを実装したいと考えていますが、どちらも同じ状態を使用しますが、両方の常時ブロックで同じステート名を使用していますが、実装が異なると(それぞれ異なるレジスタに影響します)、動作しますか?Mooreマシン、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 

ただ1つの常にブロックで各レジスタが変更されていることを確認してください。