www.mikrocontroller.net

Forum: FPGA, VHDL & Co. CLB als RAM konfigurieren


Autor: Johann M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Eine Frage zur Konfiguration von CLBs als RAM:
So wie ich das verstanden habe, besteht ein CLB aus Slices, diese 
wiederum aus je zwei LUTs mit FF. Die LUTs (in meinem Fall mit je vier 
Eingängen) lassen sich für eine boolesche Funktion verwenden oder als 
RAM konfigurieren.

Bisher habe ich diese Konfiguration als RAM nicht genutzt, würde aber 
gern wissen wie es geht bzw. ob das automatisch geschieht? Wenn ich eine 
Anweisung in VHDL schreibe, welche mir einen (z.B. 8-Bit-)Wert in ein 
Register speichert, werden da die FFs benutzt und dementsprechend viele 
Slices? Wie bekomme ich diesen Wert stattdessen in solch einen RAM 
(welcher nur ein Slice braucht) und wieder raus? Außerdem, wie lange 
benötigt der RAM zum speichern bzw. lesen? Wenn das taktmäßig genauso 
schnell funktioniert wie beim Zugriff auf die FF, wozu dann FF?

Hab bisher nicht so auf die Technologie geschaut, wird Zeit, dass ich 
was drüber lerne :-) . Vielen Dank für Antworten.

Autor: Xilinxuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die FFs takten nach Aussen gesehen am schnellsten. Du bekommst je Takt 
ein Datum rein und auch wieder raus. Das geschieht einfach durch 
Schreiben der VAriablen und gleichzeigtes Lesen derselben. (Ein Takt 
Verzug).

Blockramzellen sind - da in Hardware und optiert aufgebaut - theoretisch 
schneller, in der Praxis bekommst Du aber aufgrund des Routings und des 
Adress-MUX oft timing-Probleme, daß höchste Frequenzen nicht mehr 
leistbar sind und ein Register dahinter muss. Damit hast Du pauschal 
einen (oder auch zwei) clks Verzug, bis nach dem Anlegen der Adresse das 
Datum kommt.

Autor: Johann M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Ich mein ja aber nicht die vorhandenen Blockram, die hab ich schonmal 
benutzt, sondern die LUT, welche sich zu RAM konfigurieren lassen. Oder 
ist das dasselbe und ich hab es falsch verstanden? Laut Datenblättern 
gibt es diese verschiedenen Modi der CLBs.

Autor: DPGAküchle (Gast)
Datum:
Angehängte Dateien:
  • preview image for c.jpg
    c.jpg
    101 KB, 93 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Dein Stichwort ist distributed RAM. Ich würde mich nicht verlassen das 
aus dem VHDL Code (array) ein solcher RAM erkannt und benu8tzt wird. Am 
besten die wirfst mal den Coregen an. Dort wählst Du Speicherelemente 
aus, gibst die Größe etc an und wählst als Realisierung Distributed RAM 
an. Dann kommen hinten die Files raus die du einbinden kannst. Ich hab 
mal nen screenshot drangehängen

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.