Puis-je générer un certain nombre de SystemVerilog propriétés à l'intérieur d'une boucle?

J'ai deux paniers tableaux de signaux et j'ai besoin de créer une propriété et associés affirmation de cette propriété qui prouve que les deux tableaux sont identiques, sous certaines conditions. Je suis officiellement la vérification et de l'outil ne peut pas être à la fois complète les tableaux en une seule propriété, donc j'ai besoin de le diviser en éléments individuels. Donc, il y a un moyen pour que je puisse générer les propriétés de chaque élément du tableau à l'aide d'une boucle? Pour le moment mon code est très détaillé et difficile à naviguer.

Mon code ressemble à ceci:

...
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);
...

C'est un peu la façon dont j'aimerais que mon code ressemble à:

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     
Pouvez-vous mettre un peu de code? Est-ce le tout dans un contexte procédural?
Les propriétés et les affirmations sont à l'intérieur d'un module. Je pense que vous pourriez avoir à mettre pour des boucles dans un bloc qui je ne pense pas que vous pouvez mettre les propriétés.

OriginalL'auteur WestHamster | 2012-10-17