NV-Memory File IO Mehrere Instanzen

Gast #3185168
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
(Firma: abaxor engineering) #3185251
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
Gast #3186182
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
Gast #3199563
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
Gast #3200422
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren