ich den folgenden Code in einem meiner Monitor haben:Warum Ausdruck Ursache warten blockiert
virtual task run_phase(uvm_phase phase);
forever begin
mon_trx = tx_upconv_in_transaction::type_id::create("mon_trx");
wait (vif.chind2 == 32'h0);
mon_trx.xi = vif.xi;
mon_trx.xq = vif.xq;
$display("TRX.XI = %h, TRX.XQ = %h", mon_trx.xi, mon_trx.xq);
end
endtask: run_phase
Als ich die Simulation laufen I (der Anzeige) viele Drucke sehen, aber die Zeit nicht hindurchgeht .
Warum?
p.s chind 2 ist eine Ganzzahl (Daten).
Das Warten wartet auf einen Signalpegel, nicht auf eine Flanke. Sobald chind2 = 0 ist, wiederholt sich die Schleife. Es ist wie eine Endlosschleife und dein Display wiederholt sich. Sie benötigen eine andere Zeitsteuerungs-Anweisung in Ihrer Schleife. – toolic
@toolic - wie was? – sara8d