Ports von dual-ported Ram unabhängig?

OP #4904557
Mein Design liest aus einem Ram(Port1) Werte aus, zu Testzwecken lese 
ich
derzeit zyklisch aus und gebe die Werte per DAC aus.

Um die Werte ins Ram zu bekommen verwende ich einen zweiten Port des 
Rams (Port 2). Ich schreibe darüber ins Ram und lese zur Kontrolle 
zurück. Manchmal lese ich nicht die richtigen Werte zurück, manchmal 
werden auch anscheinend nicht die richtigen Werte geschrieben.

Wenn das Auslesen (Port 1) und Schreib/Lesen (Port 2) mit dem gleichen 
Takt
passieren, passieren keine Fehler. Verwendet Port 2 eine andere 
Taktdomäne passieren die Fehler.

Ich arbeite auf einem Xilinx Zynq, das Ram wird aud BRAM Blöcken 
synthetisiert.

Folgende konkreten Fragen:

Dürfen die beiden Ports eines dual-porte Rams verschiedene Clock-Domains 
benutzen?

Sind die beiden Ports wirklich unabhängig voneinander ?
Gast #4904634
Was sagt denn das Datenblatt?
Normalerweise müssen nur Schreibkonflikte vermieden werden. Deine 
Anwendung sollte also ohne Probleme funktionieren.
Gast #4906431
Moin,

klingt nach dem Dual-Clock-FIFO-Klassiker. Wenn du gleichzeitig auf 
dieselbe Adresse schreibst und ausliest, gibt's schon mal falsche Werte, 
du musst also Write/Read-Pointer über die Clockdomains hinweg 
vergleichen. Das klappt nur wirklich 100% zuverlässig mit Gray-Codierung 
der Pointer.
Sonst könntest du vorher per Dualclock-FIFO aus dem IP-Generator deiner 
Wahl schon mal das Problem entschärfen, opferst halt dafür nochmal ein 
BRAM-Atom :-)
Weiss nicht, ob es bei Xilinx inzwischen auch Dual Clock "FIRO" (First 
in, Random out) IP gibt, bisher hielt sich das Rätsel, warum man das 
immer selbermachen muss(te).
Gast #4909328
Martin O. schrieb:
> Sieht nach einem echten Problem aus. Vielen Dank für eure Infos.


Ich empfehle Dir einen Blick in den "Vivado Design Suite User Guide: 
Synthesis UG901". Dort gibt einen Abschnitt "Block RAM Read/Write 
Synchronization Modes" und seitenweise Coding examples zu jedem 
erdenklichen Sonderfall.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.