www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Anzahl Blockrams sind begrenzt was tun ?


Autor: FPGA-Fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.