Einfache Möglichkeit zum zuweisen von Werten an ein array in Verilog?
So, ich bin die Schaffung eines großen FIR filter in Verilog, es hat 256 taps. So brauche ich 256 Koeffizienten. Ich möchte versuchen, dass mein code so modular wie möglich, so Frage ich mich, ob es gibt einen Weg, um erstellen Sie eine andere externe Datei an die FIR-Modul enthält die Werte für die Koeffizienten? Derzeit die einzige mir bekannte zuweisen von Werten an eine array in Verilog ist wie folgt:
reg [15:0] datafile [8];
initial
begin
datafile[0] = 32768;
datafile[1] = 37045;
datafile[2] = 41248;
datafile[3] = 45307;
datafile[4] = 49151;
datafile[5] = 52715;
datafile[6] = 55938;
datafile[7] = 58764;
end
Aber wenn man 256 Werte zuweisen, dies ist ein sehr langer Prozess manuell die Organisation der code, auch mit der Suchen/Ersetzen-Sie können nur so viel tun. Was ich möchte ist die Möglichkeit, Werte zuzuweisen-arrays, wie Sie im System Verilog:
reg [15:0] datafile [8] = '{8468,56472,56874,358,2564,8498,4513,9821};
Möchte ich nicht verwenden, System Verilog, da es nicht so weit verbreitet. Kann mir jemand helfen?
- Sie brauchen diese nur für die simulation oder müssen Sie das array von Konstanten synthetisierbare?
- Ich will dann synthetisierbare.
- In der Regel ist dies realisiert als ROM. Es gibt Bereich und Geschwindigkeit Vorteile.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Werte (Koeffizienten) wird gespeichert, in eine externe Datei (z.B. 'file.txt') ist, können Sie system-Funktionen in der simulation (
$fscanf
) zum Lesen der Werte aus der Datei und Schreibe Sie auf diedatafile
(datafile
ist ein array).In dem folgenden code bin ich davon ausgegangen, dass Sie über 256 Werte gespeichert, die in der externen Datei ('file.txt') und ich versuchte, Lesen Sie die Werte 256 mal aus 'file.txt" und schreiben Sie Sie auf die
datafile
:Als toolic gesagt -, system-Funktionen sind nicht synthetisierbare. Es ist für die simulation. Wenn Sie möchten, schreiben Sie eine synthetisierbare code, schlage ich die folgende Art und Weise :