我想在我的顶级测试平台中创建一个时钟,其周期可以从测试中控制。我所做的是将周期设置到 uvm_config_db 中,然后将其放回测试台中。我必须输入 #1 以确保构建阶段完成,否则 get 返回错误的值:
module testbench_top;
int clk_period;
bit clk = 0;
initial begin
#1;
void'(uvm_config_db #(int) ::get(null, "uvm_test_top.env", "clk_period", clk_period));
// Create clk
forever begin
#(clk_period/2) clk = !clk;
end
end
我对#1很生气。有没有更好的方法来检查配置是否已设置?我可以以某种方式阻止直到 start_of_simulation_phase 吗?