На каком этапе выполняются «начальные» блоки? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть сигнал интерфейса, который я инициализирую в блоке initial в моем верхнем модуле. В тесте я хочу рандомизировать его значение с помощью randomize(). Но проблема, которую я не знаю, в какой фазе я должен вызвать функцию рандомизации. Правильный ли будет вызов randomize() на build() фазе?

Спасибо,

1 Ответ

0 голосов
/ 17 сентября 2018

Если вы вызываете uvm_pkg::run_test() из блока initial в модуле, run_test() запустит все фазы UVM после дельта-задержки.Это означает, что все остальные initial блоки могут быть выполнены до начала любой фазы UVM.

UVM рекомендует не запускать какие-либо сигналы до фазы start_of_simulation () или более поздней.

...