Clock Domain Crossing - Shared Memory Verständnisfrage

Gast #2504964
Lesenswert?

Hallo,
ich versuche einen Taktübergang mit großen auf einanderfolgenden 
Datenmengen auf einen Virtex-5.

Dabei schreibt nur Domain 1 mit Clk1 und Domain 2 ließt nur mit Clk2.

Da der Code Plattformunabhängig sein soll, sollte kein Xilinx IP (Fifo) 
verwendet werden.

Gleichzeitiges Lesen und Schreiben findet nicht statt. Der Zugriff 
erfolgt über Abstimmung mit Handshake Signalen.

Meine Gedanke war nun:
Single Port Ram und die Clock Leitung während des Handshakes auf die 
andere Domain multiplexen. Hier bekomm ich aber massive Timinig 
Violations.

Simple Dual Port Ram. Hier bin ich mir nicht sicher. Benötigt dieser 
mehr Blockram?

Wie würdet ihr hier rangehen?

Grüße Klakx
Gast #2505085
Lesenswert?

>> Simple Dual Port Ram. Hier bin ich mir nicht sicher. Benötigt dieser
>> mehr Blockram?

Nein und es ist auch die sinnvollste Lösung.

Ansonsten ein asynchrones Fifo, das geht auch Plattformunabhängig.

Clk muxen ist murks, lass das.
Gast #2505092
Lesenswert?

ok danke,

noch eine frage am rande:

wenn ich bei xilinx im core generator ein 16 bit breiten und 32768 
(=64kbyte) tiefen sdp_ram anlege, warum sind das dann 16 blockrams? Ich 
dachte ein Blockram fasst 32kbyte?
Gast #2505185
Lesenswert?

>Ansonsten ein asynchrones Fifo, das geht auch Plattformunabhängig.

Ich würde erst einmal ein Hersteller-Template für einen DC-Fifo 
verwenden. Wenn das klappt, erst dann würde ich eine eigene 
HDL-Beschreibung ausprobieren. Ich verspreche dir: Die eigene Variante 
hat es in sich!

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