Ich habe eine Frage zu UVM-Phasen. Wie ich die UVM-Phasen z.B. build_phase, connect_phases, sind nur für uvm_component gültig und sind abgeleitete Klassen.UVM-Phasen für Transaktionsobjekte
Das bedeutet, dass alle Klassen, die von uvm_transaction abgeleitet sind, d. H. Uvm_sequence, uvm_sequence_item, diese Phasen nicht unterstützen. Und in dem Code, wenn wir schreiben die folgenden
class setupSeq extends uvm_sequence #(seqItem);
`uvm_object_utils(setupSeq )
function build_phase (uvm_phase phase);
req = seqItem::type_id::create("req");
endfunction
task body();
start_item(req);
…
finish_item(req);
endtask
…
endclass
Dies wird Simulation Fehler geben, da die build_phase nie und Körper Task aufgerufen werden kann das „req“ Objekt nicht erkannt.
Also meine Frage ist - warum die Phasen nicht für uvm_transaction d. H. Uvm_sequence-Klassen unterstützt werden?
Sehr gute Erklärung! Vielen Dank Dave – haykp