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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.