mikrocontroller.net

Forum: FPGA, VHDL & Co. Rams mit untersch. Breit+Tiefe am gleichen Adress+Datenbus


Autor: Martina M. (xaiven-be)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe 32 Blockrams (Xilinx, Simple Dual Port) mit den gleichen 
Speicherbreiten und -tiefen. Kann ich die alle an den gleichen Lese 
Daten- und Adressbus hängen und jeweils nur mit dem Readenable Signal 
steuern? Es wird auch immer nur von einem RAM gelesen und das 
Beschreiben kann auch sequentiell erfolgen. Will damit Leitungen, Signal 
und VHDL Code sparen.
Kann ich auch andere Blockrams an den gleichen Bus hängen, die total 
andere Speicherbreiten und -tiefen besitzen? Diese haben mehr oder auch 
weniger Leitungen für die Adresse/Daten.

Vielen Dank für eure Hilfe
Martina

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, kannst Du nicht.
Das ergibt einen internen Bus, der aber im FPGA nicht implementiert 
werden kann. Außerdem werden die Ausgänge des Blockrams nicht hochohmig.

Du musst einen Multiplexer nachschalten.

Autor: Martina M. (xaiven-be)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke. Die Rams haben keinen Tristate-Ausgang... Schade. Aber mit 
einem Multiplexer spare ich ja nicht wirklich Signal und damit 
VHDL-Code. Jedes RAM muss ja mittels Signal an den Mux angeschlossen 
werden. Also würde ich "nur" Leitungslänge auf dem FPGA sparen?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Leitungslänge im FPGA interessiert niemanden, das hängt sowieso vom 
Placement ab. Letztentlich ist nur entscheidend ob Du deine 
Geschwindigkeit erreichts, und das hängt auch von anderen Faktoren ab.
Kannst Du nicht die Blockrams zu einem zusammenfassen, wenn eh nur immer 
von einem gelesen/geschrieben wird?

Autor: Martina M. (xaiven-be)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, ich werde jetzt wohl die Rams mit den gleichen Breiten und Tiefen 
zusammenpacken. Dann gibts halt ein großes. Bei denen mit verschieden 
Wort- und Adresslängen bleibt mir dann nichts anderes übrig, als viele 
Signal zu deklarieren. Kann man denn Signale in einer extra Datei extern 
deklarieren? sonst wird mein Hauptfile so unübersichtlich.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Martina M.:
> Kann man denn Signale in einer extra Datei extern deklarieren?

Ja. Dafür kann man in VHDL elegant packages und records verwenden.

Duke

Autor: Joko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die 'Optimierung' viel entscheidender als die Anzahl der
VHDL-Zeilen wäre die richtige 'Partitionierung' der BRAMs..

Beispiel:
 falls 2k Daten a 16 Bit zu speichern sind, ist es günstiger,
 2 BRAMs a 8Bit "parallel" zu schalten, als den Adressbereich
  aufzusplitten (2 BRAMs a 16 Bit):

 Letzteres benötigt noch (besagte) Multiplexer, während diese
 im 1. Ansatz bereits 'in den BRAMs' enthalten sind..

Gruß
Jochen

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.