У меня есть два упакованных массива сигналов, и мне нужно создать свойство и связанное с ним утверждение для этого свойства, которое доказывает, что два массива идентичны при определенных условиях. Я формально проверяю, и инструмент не может проверить оба полных массива в одном свойстве, поэтому мне нужно разделить его на отдельные элементы. Итак, есть ли способ сгенерировать свойства для каждого элемента массива с помощью цикла? На данный момент мой код очень многословен и сложен в навигации.
Мой код в настоящее время выглядит так:
...
property bb_3_4_p;
@(posedge clk)
bb_seq
|=>
bb_exp [3][4] == bb_rtl [3][4] ;
endproperty
property bb_3_5_p;
@(posedge clk)
bb_seq
|=>
bb_exp [3][5] == bb_rtl [3][5] ;
endproperty
property bb_3_6_p;
@(posedge clk)
bb_seq
|=>
bb_exp [3][6] == bb_rtl [3][6] ;
endproperty
...
...
assert_bb_3_4: assert property (bb_3_4_p);
assert_bb_3_5: assert property (bb_3_5_p);
assert_bb_3_6: assert property (bb_3_6_p);
...
Вот как я хотел бы, чтобы мой код выглядел так:
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
begin
property bb_[i]_[j]_p;
@(posedge clk)
bb_seq
|=>
bb_exp [i][j] == bb_rtl [i][j] ;
endproperty
assert_bb_[i]_[j]: assert property (bb_[i]_[j]_p);
end