【发布时间】:2021-05-02 16:00:54
【问题描述】:
在具有默认时钟块的接口内的##N 应该延迟 N 个周期
如果我在接口中有一个类,这似乎不起作用。 LRM 似乎没有指定任何错误,我没有收到任何编译错误
参见下面的 sn-p,其中接口内部有一个访问器类,并且该类有一个用于等待周期的成员。调用此任务似乎不会引入任何延迟
interface my_if (
input logic clk,
inout logic valid,
inout logic[1:0] req );
default clocking cb @(posedge clk);
inout valid;
inout req;
endclocking
class accessor_c;
function new();
endfunction
task wait_cycles(int value);
##value;
endtask
endclass
initial begin
accessor_c acc;
acc = new();
#100;
$display("%t: call wait", $time);
acc.wait_cycles(1);
$display("%t: after wait", $time);
end
endinterface
以上两个显示同时打印。
edaplayground 上的代码,其中直接在界面中等待,而在类中不工作 https://www.edaplayground.com/x/9_u_
【问题讨论】:
标签: system-verilog