2016-04-03 6 views
1

So versuche ich Zahlen auf ein Array in Verilog zuweisen, und es geht so:Verilog Array Zuordnung

initial begin 

waveforms[0] = 16'b1100100100000000; 
waveforms[1] = 16'b1000000000000000; 
waveforms[2] = 16'b1111111111111111; 

end 

Und die folgenden Codes ModelSim Compiler passieren können. Allerdings muss ich eine riesige Nachschlagetabelle in diesen "Wellenformen" speichern, so dass scheinbar der Wert eins nach dem anderen nicht effizient ist. Also habe ich versucht, dies:

initial begin 

waveforms [0:2] = '{16'b1100100100000000,16'b1000000000000000,16'b1111111111111111}; 

end 

Und durch die oben tun, bekomme ich folgende Fehlermeldung:

(vlog-2110) Illegal reference to memory "waveforms". 

Illegal array access into "waveforms" 

Illegal LHS of assignment. 

also die Frage, wie diese Fehler zu beheben?

Dank

Antwort

1

Nur SystemVerilog können Sie Arrays als Aggregat zuzuweisen. Ändern Sie die Dateierweiterung von *.v zu *.sv

Eine andere Option ist, $ readmemb zu verwenden und die Nachschlagetabelle aus einer anderen Datei zu laden.