"Initial" 块在哪个阶段执行?

In which phase "Initial" blocks are executed?

我有一个接口信号,我在顶层模块的 initial 块中对其进行了初始化。 在测试中,我想通过 randomize() 的方式随机化它的值。但是这个问题我不知道应该在哪个阶段调用随机化函数。 在 build() 阶段调用 randomize() 是否正确?

谢谢,

假设您从模块中的 initial 块调用 uvm_pkg::run_test()run_test() 将在增量延迟后启动所有 UVM 阶段。这意味着所有其他 initial 块都有机会在任何 UVM 阶段开始之前执行。

UVM 建议您在 start_of_simulation() 阶段或更晚之前不要驱动任何信号。