下面是用于随机复位的基本序列类:
class random_reset;
rand int rst_period;
constraint rst_range { rst_period inside {[1:100]}; }
task random_system_reset (
ref reg rst,
ref reg clk);
begin
rst = 1;
repeat (rst_period) @(posedge clk);
rst = 0;
end
endtask
endclass
但是,我测试至少需要6个时钟。无论如何要确保当我调用此类时,将获得大于6的随机值吗?
假设您想保持原始约束不变,但是在某些情况下,您需要将周期强制为6或更大,可以使用randomize() with
:
random_reset rr = new();
initial rr.randomize() with { rst_period >= 6; };
对于此rr
对象,范围rst_period
是6到100。
请参阅IEEE标准1800-2017,第18.7节内联约束-带的randomize()。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句