Kann ich erstellen eine Reihe von SystemVerilog-Eigenschaften innerhalb einer Schleife?

Ich habe zwei arrays verpackt Signale und ich brauche zum erstellen einer Eigenschaft und der entsprechende Behauptung für diese Eigenschaft, der beweist, dass die beiden arrays identisch sind, unter bestimmten Bedingungen. Ich bin formal verifizieren und das tool kann nicht beweisen, sowohl die komplette Serie in einer einzelnen Eigenschaft, also muss ich es aufteilen in einzelne Elemente. So ist es ein Weg, den ich erzeugen kann, die Eigenschaften für jedes element des Arrays mit Hilfe einer Schleife? Im moment mein code ist sehr ausführlich und schwer zu navigieren.

Mein code sieht derzeit ungefähr so aus:

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

Diese Art ist wie gerne würde ich meinen code so Aussehen:

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     
  • Kannst du etwas code? Ist das alles in einem prozessualen Kontext?
  • Die Eigenschaften und Behauptungen sind in einem Modul. Ich denke, dass Sie möglicherweise setzen auf Schleifen in einem always-block, die ich glaube nicht, können Sie legen Sie die Eigenschaften im.
InformationsquelleAutor WestHamster | 2012-10-17
Schreibe einen Kommentar