我想为我的DUT生成自动输入激励。此输入将同时进入不同的模块并处理这些数据。我希望以越来越多的方式生成输入。像0000,0001,0010,0011 ... 1111 我尝试使用for循环,但是它仅使用循环中的最后一个数据并对其进行处理。
always_comb begin
for (i=0, i<16; i=i+1)
begin
data <= i;
end
end
当我像这样单独输入时,
data = 8'd1;
#2;
data = 8'd2;
#2;
在指定了所有输入值的情况下,它可以顺利运行。
答案 0 :(得分:2)
always_comb
不能有延迟。至少符合IEEE1800标准。
您可以执行以下操作:
bit [3:0] data; // bit so the initial value is 0, not x
bit clk;
always #1 clk++; // or some other clock model
always_ff @(posedge clk) begin
data <= data+1;
end
或类似的内容:
logic [3:0] data;
initial begin
for (i=0, i<16; i=i+1) begin
data = i;
#2;
end
end
或其他具有时间延迟的类似代码。