2017-07-25 1 views
1

Angenommen, ich habe ein Array von Parametern, die ich in einer Covergroup verwenden möchte. Um über alle Parameter im Array Interate Ich habe versucht, eine for-Schleife auf diese Weise zu verwenden:Sampling Deckgruppe des Parameterarrays - Systemverilog

array [5]; 
covergroup param; 
coefficient: coverpoint array[i]{ 
bin low = {0:50}; 
bins high = {51:100}; 
} 

for (i=0;i<5;i++) 
param = new(i); 

for (i=0;i<5;i++) 
param.sample(i); 

Ich bin nicht wirklich sicher, wie dies zu lösen, anstatt in der eine Coverpoint für jede Zelle zu schaffen Array, aber das ist nur unordentlich und falsch.

+1

Sie können nur ganzzahlige Werte, keine Arrays oder ähnliches abdecken. –

+0

Versuchen Sie, 'covergroup param;' zu 'covergroup param (int i);'. – Greg

Antwort

0

Übergeben Sie das Eingabeargument an die Deckungsgruppe.

int array [5]; 

covergroup param (ref int a); 
coefficient: coverpoint a{ 
bin low = {0:50}; 
bins high = {51:100}; 
} 
endgroup 

for (i=0;i<5;i++) 
param = new(array[i]); 

for (i=0;i<5;i++) 
param.sample();