我有一个长度为 x 的数组。给定测试平台的信号输出将是数组中的每个值,其顺序从 0:x-1 开始。
特别是在我的问题中,数组是滤波器系数,而测试台是脉冲响应。测试需要进行自检,这将需要具有动态长度的序列,因为系数会因测试而异。
我想要的序列应该是这样的:
always @(posedge clk) begin
assert_sequence : assert property (
(data_out == array_1[0])
|=> (data_out == array_1[1])
|=> (data_out == array_1[2])
|=> (data_out == array_1[3])
|=> (data_out == array_1[4])
|=> (data_out == 0) )
$info("Seen the sequence");
else
$error("Sequence was incorrect");
end
这可以动态进行吗?我尝试了一个 genvar for 循环,但它会引发错误。我搜索了论坛,找不到任何符合我要求的东西。
可能这样的事情可以给出正确的答案?
always @(posedge clk) begin
assert_sequence : assert property (
(data_out == array1[0][0])
for(genvar i = 1; i < 5, i++) begin
|=> (data_out == array1[i])
end
|=> (data_out == 0) )
$info("Seen the sequence");
else
$error("Sequence was incorrect");
end