これらの私のテストベンチでのシミュレーション性能を妨げ、その理由(システムのverilogコンパイラの観点から答えを探してい):比較シミュレーション性能
task A;
wait(dut_if.a==1);
.
.
endtask
OR
task A;
forever @(posedge clk) begin
if(dut_if.a==1)..
end
endtask
PS: " a "は、シミュレーション中にあるクロックエッジでアサートされるdut信号です。このタスクが1回だけ呼び出されたとします。
ご意見ありがとうございます。だから、私が理解していることから、永遠にブロックされた後、常に低レベル言語に変換されると、実際には割り込みサービスルーチンの一部となり、待機文が分岐命令のようなものになります。私が間違っているなら私を訂正してください。コンパイラの観点からシステムのVerilogについて話しているいくつかのソースを私に教えていただければ幸いです。 –