Forum: FPGA, VHDL & Co. NV-Memory File IO Mehrere Instanzen


von Andreas (Gast)


Lesenswert?

Hallo Freunde des gepflegten VHDLs,

Zur zeit arbeite ich an einer Ansteuerung für einen nichtflüchtigen 
Speicher. Zu diesem besitze ich ein Model, das den Speicherinhalt in 
eine Textdatei schreibt. Somit kann ich den Store/Recall des Speicher 
mit simulieren. Meine Ansteuerung instanziiert mehrere dieser 
Speicherblöcke. Bei einem Store landen nun der Speicherinhalt aller 
dieser Zellen in der gleichen Textdatei. Beim nächsten Recall ist nun 
die Textdatei vielzulang um sie in das erste Speichermodell wieder 
zuladen. Daher meine Frage, wie könnte ich den Speicherinhalt nach 
instanzen des NV-Memory ordnen. Wäre es zum Beispiel möglich den 
Instanznamen generisch mit in den Namen der Textdatei zu übernehmen und 
wenn ja wie könnte ich das bewerkstelligen?

Vielen Dank für die Antworten!

VG
Andreas

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Hallo,

ich wüsste nicht, wie man auf den Instanznamen zu greifen kann. Du 
kannst aber deine Instanzen in einem for generate anlegen. Jeder Instanz 
übergibst du den Wert deiner Laufvariable. In der Instanz, baust du dir 
einen Dateinamen zusammen, der aus einem festen Teil (per generic 
übergeben) und deiner Laufvariable besteht.

tom

von Andreas (Gast)


Lesenswert?

Hallo,

im VHDL-93 Standard soll es noch die beiden Attribute geben:
'path_name
'instance_name

Mal schauen was sich damit anfangen lässt. Da das Modell in Verilog 
geschrieben ist, wird es hoffentlich ähnliches in Verilog geben.

VG

von Duke Scarring (Gast)


Lesenswert?

Andreas schrieb:
> im VHDL-93 Standard soll es noch die beiden Attribute geben:
> 'path_name
> 'instance_name
Die gibt es und die funktionieren auch.
Problematisch könnten die Doppelpunkte sein, die zumindest Modelsim da 
mit reinmacht.

> Mal schauen was sich damit anfangen lässt. Da das Modell in Verilog
> geschrieben ist, wird es hoffentlich ähnliches in Verilog geben.
Du könntest die auch per generic an das Verilogmodell übergeben. So mach 
ich das, da kann man schnell an zentraler Stelle in der top-Testbench 
den Pfad- bzw. Dateinamen für Stimuli- und Ergebnisdaten ändern.

Duke

von Andreas (Gast)


Lesenswert?

Hallo nochmal Allerseits,

den aktuellen Instanznamen liefert der Befehl $display("%m") zurück. Wie 
könnte ich diese Rückgabe nun in einer Variablen abspeichern oder ist 
dafür ein andere Befehl notwenig?

Vielen Dank für die Antworten.

VG

von Andreas (Gast)


Lesenswert?

Achso, ich vergaß. Das Ganze spielt sich in Verilog ab.

von Andreas (Gast)


Lesenswert?

Für die Interessierten:

Der FileIO nach Instanzen klappt inzwischen unter Verilog:
1
reg[255*8:0] InitFileName;  // reg for store actual instance name, maximum 256 characters
2
$sformat(InitFileName, "%m"); //write actual instancename in reg variable
3
MyFile=$fopen($sformatf("MemContent_%s.DAT", $sformatf(InitFileName)), "w");

Damit ist das Problem gelöst.

Viele Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.