【发布时间】:2021-10-27 18:32:08
【问题描述】:
我想等待任务的输出变量。
例如:wait(user_defined_task_name(output_variable_type_name) == 1)
在下面显示的这个示例中,我的目的是让wait 语句在 0ns 到 3ns 期间处于活动状态(基本上从时间戳开始到 t2=1)
这是一个工作示例;
class cl;
task run(output bit t);
$display("time=%0t , t=%0b",$realtime, t);
#1;
$display("time=%0t , t=%0b",$realtime, t);
#2;
t = 1;
$display("time=%0t , t=%0b",$realtime, t);
endtask
endclass
class c2 extends cl;
bit t2;
task run1();
wait(run(t2) == 1); // error from this line, what am i violating here?
$display("t2 working t2=%0b time = %0t", t2, $realtime);
endtask
endclass
module tmp;
c2 c2_h=new;
initial begin
c2_h.run1();
$display("test msg");
end
endmodule
eda 输出日志:
顶级模块: tmp TimeScale 为 1 ns / 1 ns
Error-[XMREF] 跨模块参考解析错误 testbench.sv, 19 发现跨模块引用解析错误。功能是 预期,但实际目标不是函数。来源信息: 运行(this.t2)
1 错误 CPU 时间:0.116 秒编译预期退出代码:0, 收到:1
【问题讨论】:
标签: system-verilog