J'ai une question liée aux phases UVM. Comme j'ai compris les phases UVM par ex. build_phase, connect_phases, sont valides uniquement pour uvm_component et sont des classes dérivées.Phases UVM pour les objets de transaction
Cela signifie que toutes les classes dérivées de uvm_transaction, c'est-à-dire uvm_sequence, uvm_sequence_item ne supportent pas ces phases. Et dans le code si l'on écrit ce qui suit
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
Cela donnera l'erreur de simulation, comme build_phase ne sera jamais appelé et tâche de corps ne peut pas reconnaître l'objet « req ». Donc, ma question est - pourquoi les phases ne sont pas supportées pour uvm_transaction, c'est-à-dire les classes uvm_sequence?
Très bonne explication! Merci beaucoup Dave – haykp