Initialisieren asynchronen SRAM

G

grubby23

Guest
Hi

Bis jetzt habe ich immer verwendet Bram für Speicher.Dies könnte leicht mit Werten initialisieren.
Aber jetzt habe ich das Problem, dass ich eine asynchrone Speicher zum Lesen von Daten aus.

Wer eine Idee, wie ich kann initialisieren diese Art von RAM?Ich bin mit XST 7/3 für die Synthese.
Vielen Dank für die hilfreichen Kommentare

 
Hallo,

Wenn es sich um einen SRAM, am Anfang müssen Sie initialisieren, indem Sie Nullen in allen Standorten durch den Einsatz der richtigen Signale wie WEN-, CE-und-Adressen.

Wenn u Benötigen Sie weitere Informationen zögern Sie nicht, fragen Sie mich.

Danke,
N. Muralidhara

 
muralicrl schrieb:

Hallo,Wenn es sich um einen SRAM, am Anfang müssen Sie initialisieren, indem Sie Nullen in allen Standorten durch den Einsatz der richtigen Signale wie WEN-, CE-und-Adressen.Wenn u Benötigen Sie weitere Informationen zögern Sie nicht, fragen Sie mich.Danke,

N. Muralidhara
 
Sie können eine große asynchrone RAM mit verteilten RAM.Finden Sie im Abschnitt "RAMs und ROMs HDL Coding Techniques" in Ihrem XST User Guide, und die Suche nach dem Wort "verteilt" oder "Asynchronous".

Sie können auch mit Core-Generator zum Erzeugen verteilt RAM.Durchsuchen Sie die "Basic Elements - Memory Elements" Abschnitt.Ich bin nicht daran erinnern, die Kern ist die beste Wahl.

Allerdings wird ein großer verteilter RAM verbraucht viel Logik Stoff, und es dauert eine Weile, zu synthetisieren, und es wird eher langsam.Wenn möglich, versuchen Sie es mit Ihrem Projekt zu ändern, so kann sie die viel schöner synchrone Brams.

Sie verfügen nicht über die Logik, um auf Ihre FPGA-Design nur die Initialisierung des RAM mit Nullen oder eine konstante Daten.Die FPGA-Konfiguration kann der Initialisierung des RAM für Sie.Es gibt verschiedene Art und Weise der Angabe Ihres gewünschten Initialisierung Daten, wie
z. B. durch die Verwendung HDL ersten Erklärungen oder Attribute, oder Core-Generator Initialisierungsdateien.Einige dieser Methoden sind in der "RAMs und ROMs HDL Coding Techniques"-Sektion.

 
echo47 schrieb:Sie verfügen nicht über die Logik, um auf Ihre FPGA-Design nur die Initialisierung des RAM mit Nullen oder eine konstante Daten.
Die FPGA-Konfiguration kann der Initialisierung des RAMs für Sie.
Es gibt verschiedene Art und Weise der Angabe Ihres gewünschten Initialisierung Daten, wie z. B. HDL ursprünglichen Erklärungen oder Attribute, oder Core-Generator Initialisierungsdateien.
 
Es ist
schon eine Weile her, seit ich mit einem coregen. Coe-Datei, aber ich denke, Sie. Coe-Datei sollte ausreichen für Simulation und Synthese,
wobei alle Instrumente korrekt installiert sind.Sie sollten nicht haben, um die Initialisierung Daten anderswo.

Die verschiedenen Attribute können INIT initialisiert Daten in einer Bibliothek instanziiert primitive wie RAMB16_S18_S18, aber die Bibliothek bietet keine großen RAMs verteilt, so dass INIT wahrscheinlich nicht von Nutzen sein können.

Siehe auch "Initialisieren RAM direkt in HDL-Code" in Ihrem XST User Guide.Es zeigt, wie Sie initialisiert RAM mit einer VHDL-Array, ohne Kern oder Generator. Coe-Datei.Das Beispiel sieht synchron, aber die Initialisierung Technik sollte mit asynchronen verteilten RAM zu.

 
echo47 schrieb:Siehe auch "Initialisieren RAM direkt in HDL-Code" in Ihrem XST User Guide.
Es zeigt, wie Sie initialisiert RAM mit einer VHDL-Array, ohne Kern oder Generator. Coe-Datei.
Das Beispiel sieht synchron, aber die Initialisierung Technik sollte mit asynchronen verteilten RAM zu.
 
Oh, Moment mal, Sie ISE 7.3i.Ich konnte nicht mit der Version 7, da der Fehler.Die HDL-Speicher-Initialisierung kann nicht oder nicht ordnungsgemäß funktioniert.Können Sie ein Upgrade auf eine moderne Version?Ich habe große Verbesserungen in der Version 8 und 9.

Ich spreche kein VHDL.Diese Verilog 64x16 asynchron verteilt ROM synthetisiert Geldbuße in ISE 9.2.04i.Größere ROMs zu arbeiten,
wird der Code einfach länger wird:
Code:

Modul nach oben (addr, data);

input [5:0] addr;

reg [15:0] rom [0:63];

Leistung [15:0] data;ersten beginnen

rom [0] = 64313; ROM [1] = 45804; rom [2] = 16813; ROM [3] = 31955;

ROM [4] = 55950; rom [5] = 38894; rom [6] = 12950; rom [7] = 8497;

ROM [8] = 13144; rom [9] = 41124; ROM [10] = 16391; ROM [11] = 54947;

ROM [12] = 4544; ROM [13] = 51590; ROM [14] = 29238; ROM [15] = 63755;

ROM [16] = 17495; ROM [17] = 49541; ROM [18] = 43365; ROM [19] = 18498;

ROM [20] = 27931; ROM [21] = 26724; ROM [22] = 50540; ROM [23] = 59099;

ROM [24] = 63746; ROM [25] = 6375; ROM [26] = 16127; ROM [27] = 63003;

ROM [28] = 5513; ROM [29] = 53091; ROM [30] = 22325; ROM [31] = 32963;

ROM [32] = 59740; ROM [33] = 56116; ROM [34] = 56953; ROM [35] = 37646;

ROM [36] = 7179; ROM [37] = 43120; ROM [38] = 5928; ROM [39] = 47343;

ROM [40] = 65150; ROM [41] = 62776; ROM [42] = 9213; ROM [43] = 64208;

ROM [44] = 53917; ROM [45] = 14185; ROM [46] = 59718; ROM [47] = 51542;

ROM [48] = 63828; ROM [49] = 51044; ROM [50] = 34328; ROM [51] = 12753;

ROM [52] = 46895; ROM [53] = 61784; ROM [54] = 39033; ROM [55] = 53040;

ROM [56] = 53926; ROM [57] = 794; ROM [58] = 47707; ROM [59] = 27823;

ROM [60] = 9949; ROM [61] = 74; ROM [62] = 561; ROM [63] = 54549;

Endeassign data = rom [addr];

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top