Я пытаюсь рандомизировать содержимое ассоциативного массива и столкнулся с ошибкой: элемент не найден для индекса ассоциативного массива в ограничении
Как мне инициализировать эти индексы, а затем рандомизировать их значения?
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