Ports von dual-ported Ram unabhängig?

#4904557
Lesenswert?

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 #4906431
Lesenswert?

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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren