2017-07-19 4 views
1

Wie kann ich viele assoziative Arrays in SystemVerilog mit der Anweisung generieren generieren?Generieren von assoziativen Arrays SystemVerilog

e.x.

Hier ist eine assoziative Array Deklaration

logic [8-1:0] memory [*]; 

Wie kann ich 10 von ihnen erzeugen, ohne sie manuell zu schreiben?

Antwort

1

Sie verwenden keine generate-Anweisung. Sie können Arrays von Arrays haben

logic [8-1:0] memory [10][int]; 

P. S. Ich empfehle dringend, verwenden Sie nie [*] als einen Indextyp und stattdessen [int] oder einen anderen vorhandenen Datentyp verwenden. [*] ist aus Gründen der Rückwärtskompatibilität mit einer älteren Sprache verfügbar und die Verwendung dieser Funktion verhindert, dass Sie auf die volle Leistung von SystemVerilog zugreifen können.

+0

Nein [*]? Das war mir nicht bewusst. Warum ist das? –

+1

danke dave, du bist mein Guru ^.^ –

+2

@MatthewTaylor, Sie können nicht foreach oder eine andere Array-Methode, die einen Indextyp (first, last, find_index usw.) benötigt, wenn Sie einen Wildcard-Index verwenden. Siehe https://verificationacademy.com/forums/systemverilog/associative-array#reply-56713 –

Verwandte Themen