我正在尝试随机化关联数组的内容,但遇到了错误:
在约束中找不到关联数组索引的元素
如何初始化这些索引,然后随机化它们的值?
module top;
class TFoo;
typedef struct {
rand byte element_id;
rand byte length;
rand byte body_val[int];
} mgmt_info_ele;
rand mgmt_info_ele tspec;
constraint tspec_1 //Constraints for tspec
{
tspec.element_id == 8'd13;
tspec.length == 'd55;
//tspec.body_val.num() == tspec.length;
{tspec.body_val[1][0],tspec.body_val[0][7]} inside {[1:3]};
tspec.body_val[1][7:6] inside {0, 1, 3};
tspec.body_val[2][7:1] == 7'b0;
}
endclass
TFoo f = new;
int status;
initial begin
for(int i = 0; i < 1000; i++) begin
$display("i=%0d: %s", i, f.get_randstate());
$display("NUM Return value = %0d", f.tspec.body_val.num());
status = f.randomize();
$display(status);
assert(status) else $fatal;
end
end
endmodule