Hallo zusammen, in meinem VHDL Entwurf benötige ich insgesammt mehr als 16 Blockrams. In der Synthese wird jedoch angezeigt, dass mein Spartan 3 S 400 nur 16 Blockrams besitzt. Nun sind es eigentlich lauter "kleine" Blockrams z.B. 4 Stk ( 64 * 16 Bit) ; 6 Stk ( 128 * 32 Bit) ; usw. Nun meine Frage nur so zum Verständnis: Wenn ich z.B. definieren würde: 16 Blockrams mit z.B. ( 16 * 8 Bit ) was ja insgesamt nur einen kleinen Teil des theoretisch verfügbaren Gesamt-Blockram Speicher darstellt, kann ich dann tatsächlich kein weiteres Blockram mehr anlegen ? Sind also im Bezug auf meinen Baustein tatsächlich nur 16 Blockram Definitionen möglich, egal wieviel gesamt Speicherplatz diese belegen ? Als Lösung müßte ich dann wohl von den kleinsten Blockram Definitionen anfangend diese in Distri-Ram Definition umwandeln, was ich eigentlich vermeiden wollte, weil ich zwar Blockram übrig hab aber die Logik Zellen knapp sind. Der Distri Ram verbraucht aber Logik Zellen. Dann müßte ich meinen ganzen Enwurf umbauen. Habt Ihr einen guten Tipp für mich ? Die Blockrams hab ich mit dem CoreGen angelegt. Gruß vom FPGA-Fragenden
@ FPGA-Fragender >in meinem VHDL Entwurf benötige ich insgesammt mehr als 16 Blockrams. Es scheint eher, dass du mehr als 16 RAMs brauchst, was nicht notwendigerweise ein BRAM sein muss. >In der Synthese wird jedoch angezeigt, dass mein Spartan 3 S 400 nur 16 >Blockrams besitzt. Das ist auch so. ;-) >16 Blockrams mit z.B. ( 16 * 8 Bit ) was ja insgesamt nur einen kleinen >Teil des theoretisch verfügbaren Gesamt-Blockram Speicher darstellt, >kann ich dann tatsächlich kein weiteres Blockram mehr anlegen ? Ja. >Sind also im Bezug auf meinen Baustein tatsächlich nur 16 Blockram >Definitionen möglich, egal wieviel gesamt Speicherplatz diese belegen ? Ja. >Der Distri Ram verbraucht aber Logik Zellen. Ja. >Dann müßte ich meinen ganzen Enwurf umbauen. Habt Ihr einen guten Tipp >für mich ? Man kann ein BRAM als Dual Port konfigurieren und beide Ports getrennt nutzen. Dabei legt man beispielsweise das oberste Adressbit des einen Ports auf 0, das des anderen auf 1. Somit benutzt der eine Port die untere Hälfte un der andere die obere Hälfte. >Die Blockrams hab ich mit dem CoreGen angelegt. Für solche kleinen RAMs nimmt man meist eher Distributed RAM. MfG Falk
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.