Der XST-Userguide enthält diverse Beispiele, wie man ein Block-RAM mit VHDL beschreiben soll. Ich bräuchte nun ein RAM, wo die Daten z.B. 8 Bit breit geschrieben werden, und dann als z.B. als 32 Bit oder noch breitere Blöcke ausgelesen werden. Sozusagen ein seriell-zu-parallel-RAM. Mit dem Core-Generator kann man sowas problemlos bauen, doch wie beschreibt man das (am besten) in VHDL?
Oder vielleicht noch anders gefragt: Wie implementiert XST ein solches RAM?
Michael schrieb: > Mit dem Core-Generator kann man sowas problemlos bauen, doch wie > beschreibt man das (am besten) in VHDL? Im XST User Guide für Spartan-6 ist ein "Asymmetric Port RAM VHDL Coding Example" das genau Deinen Wünschen entspricht. Das ist WIMRE auch in den Templates in ISE enthalten. Michael schrieb: > Oder vielleicht noch anders gefragt: Wie implementiert XST ein solches > RAM? Im Synthesereport wird unter "Advanced HDL Synthesis" ausgegeben was XST aus Deiner Beschreibung erkannt und synthetisiert hat. Im User Guide sind entsprechende Beispiele zu sehen.
Michael schrieb: > Wie implementiert XST ein solches > > RAM? da geht es doch nur darum, wie die decoder und encoder vor den RAM Zellen komfiguriert/zusammengeschaltet werden müssen. die ram zellen tangiert das gar nicht
Hallo zusammen, ich klinke mich mal in den Thread mit ein, da ich ein ähnliches Problem habe. Ich möchte ebenfalls ein asymetrisches RAM in VHDL Beschreiben (Write Port doppelt so groß, wie Read Port), jedoch für einen Lattice Baustein. Das "Asymmetric Port RAM VHDL Coding Example" von Lattice habe ich mal ausprobiert, jedoch wurde es vom Lattice Diamond nicht als Blockram synthetisiert. Hat jemand von Euch noch einen Tip, wie ich ein Asymetrisches Ram so beschreibe, dass es auch vom Lattice Diamond als Blockram erkannt wird? Viele Grüße, Peter
Nimm IPExpress und generier Dir den Core, dann bist du sicher. Gruß
Hallo Franke, Das habe ich schon getan, funktioniert auch einwandfrei, hinsichtlich der portierbarkeit ziehe ich jedoch, falls möglich, eine VHDL Beschreibung vor. Wer weiß schon, ob mein aktuell generierter Core noch mit der Diamond Version in 3 Jahren kompatibel ist. Außerdem tut man sich beim Portieren auf andere Bausteine ggf leichter, wenn man eine VHDL Beschreibung hat.
Hm... ich würden den Core immer bevorzugen, aber das sind Philosphien. Denke das wird nur gehen wenn du ein Symetrische RAM (größere Breite)nimmst und die "asymetrie" einfach über die Adressierung machst. Nichts anders wird der Core-Generator machen. Gruß
Rudolph schrieb: > Im XST User Guide für Spartan-6 ist ein "Asymmetric Port RAM VHDL Coding > Example" das genau Deinen Wünschen entspricht. Das ist WIMRE auch in den > Templates in ISE enthalten. möchte benfalls ein "asymmetric port ram" verwenden. kann ich das vhdl coding example für den virtex6 auf für den virtex5 verwenden? oder hat es einen grund, wieso das asymmetric port ram im "User Guid for Vitrex5" nicht beschrieben wird?! mfg alex
Lowtzow .... schrieb: > möchte benfalls ein "asymmetric port ram" verwenden. > kann ich das vhdl coding example für den virtex6 auf für den virtex5 > verwenden? oder hat es einen grund, wieso das asymmetric port ram im > "User Guid for Vitrex5" nicht beschrieben wird?! Du kannst das Beispiel zumindest ausprobieren. Prüfe aber im Synthesereport, was er draus macht. Duke
Ich würde einfach mit CoreGen arbeiten und für den 6er konstruieren. Im Allgemeinen Fall setzt man vor/nach das BRAM einen einfachen Multiplexer/Decoder, der die Adressen generiert und nimmt n parallele RAMs. Ob das Tool das immer erkennt, ist eine andere Sache. Xilinx ist da in der Regel erfolgreich.
Duke Scarring schrieb: > Du kannst das Beispiel zumindest ausprobieren. Prüfe aber im > Synthesereport, was er draus macht. ok, für die Nachwelt, das VHDL Coding Example läuft nicht mit dem Virtex-5. (Sicherheitshalber selbes File für Virtex 6 synt. => ok )
Lowtzow .... schrieb: > ok, für die Nachwelt, das VHDL Coding Example läuft nicht mit dem > Virtex-5. (Sicherheitshalber selbes File für Virtex 6 synt. => ok ) Jepp. Sowas hatte ich auch mal mit einem byte-wise-enable RAM. Auf einem Virtex5(?) ging es auf dem Spartan3 nicht. Duke
>byte-wise-enable RAM
das unterstützt der spartan3 auch nicht, wird zwar im core-generator
dialog angezeigt funzt aber nicht.
gruß jonas
Jonas Biensack schrieb: > das unterstützt der spartan3 auch nicht, wird zwar im core-generator > dialog angezeigt funzt aber nicht. interessant! Ausprobiert?
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.