问题描述
考虑以下 SV 代码片段:
module clocks();
logic a ;
bit clk =0;
initial begin
forever #1ns clk = ~clk ;
end
clocking cb@(posedge clk);
default input #1step output negedge;
output a;
endclocking
initial begin
@(cb);
#100ps;
cb.a <= 1 ;
@(cb);
#100ps;
cb.a <= 0 ;
repeat(10) @(cb);
end
endmodule
另一方面,对于第二个模拟器,时钟模块输出作用于第一个时钟,并且可以在第一个时钟下降沿看到效果。你可以看到下面的图片。 Second simulator
另一方面,如果我使用比 100ps 延迟更小的延迟(es 10ps)来更改输出偏斜延迟,则第二个模拟器的行为与第一个相同(a 信号改变在第二个posedge之后,输出偏斜为10ps)。
两个模拟器中哪一个更符合 IEEE 1800-2017 SV 标准?在我看来,按照我对标准的理解,第一个模拟器更符合要求。
时间刻度设置为 1fs 以避免任何与模拟器分辨率相关的问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)