2017-05-23 15 views
0

Verilogではtrueまたはfalseですか? ミキシングとは何を意味するのか分かりません。動作すれば出力を直接変更しますか?ブロックと非ブロックの割り当てを同じブロックに混在させないでください。

+3

[this](https://stackoverflow.com/questions/4653284/how-to-interpret-blocking-vs-non-blocking-assignments-in-verilog)の可能な複製です。 –

+0

シミュレーションでは機能するかもしれませんが、合成はできません。 – Laleh

+0

はい、私はそれがsynthesizabilityだけではなく、シミュレーションに関連すると思う –

答えて

2

ルールを明確にする必要があります。

同じ変数には、同じブロック内のブロックと非ブロックの両方の割り当てを使用しないでください。この問題は通常、非同期リセットを記述するときに現れます。それが失われるので、それは、0に設定されます後

always @(posedge clk or negedge rst) 
    if (!reset) 
    q = 0; 
    else 
    q < = d; 
2つのイベントが同時に発生した場合

が、q<= dq=0前に処理されます、そして、Qに対する保留中の更新があります。他にもいくつかのシナリオがあります。

関連する問題