У меня есть один вопрос, связанный с фазами UVM. Поскольку я понял фазы УФМ, например. build_phase, connect_phases, действительны только для uvm_component и являются производными классами.Фазы UVM для объектов транзакций
Это означает, что все классы, которые происходят из uvm_transaction, т.е. uvm_sequence, uvm_sequence_item, не поддерживают эти фазы. И в коде, если мы пишем следующую
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
Это даст ошибку моделирования, как build_phase никогда не будет называться и задача тела не может распознать «REQ» объект.
Так что мой вопрос: почему фазы не поддерживаются для классов uvm_transaction i.e uvm_sequence?
Очень хорошее объяснение! Большое спасибо Дэйву – haykp