DSP mit FGPA ueber EMIF

Gast #3767889
Lesenswert?

Owen Senmeis schrieb:
> D.h, der DPRAM im FPGA muss mit dem Takt vom DSP synchroniert werden.

Njein, der DSP liefert einen zu den daten und Adressen passenden Takt 
mit, den führst du in den FPGA zu einer DCM und dann zu IFF und dem 
DualPortRAM.

kritisch ist das Lesen von Daten zum FPGA. Je nach eingestellter 
CE-Latency erwartet der DSP die Daten nach 2-3 Takten. Da kannst du 
nicht Zeit durch einsynchronisieren verplembern.

Üblicherweise wählt man einen synchronen EMIF-Mode mit der maximal 
möglichen Latency.
MfG,
OP #3768879
Lesenswert?

Diese folgende Beschreibung stammt aus dem Kapitel "Asynchronous Reads":

At the beginning of a hold period:
Data is sampled on the CLKOUT1 or the ECLKOUT rising edge concurrent 
with the beginning of the hold period and just prior to the ARE 
low-to-high transition.

Frage: Beim Async Modus spielt der Takt gar keine Rolle. Was macht 
CLKOUT1 oder ECLKOUT hier?

Senmeis
Gast #3786548
Lesenswert?

Fpga Kuechle schrieb:
> Da kannst du
> nicht Zeit durch einsynchronisieren verplembern.
In dem Fall ist das Einsynchronisieren auch nicht erforderlich, weil die 
wait states ja exisitieren, anders, als bei einem Datenbus, wo sich 
Daten mit jedem Takt ändern. Einsynchronisieren wäre hier sogar 
kontraproduktiv.
Gast #4416037
Lesenswert?

Ich habe das ganze vor zwei jahren für einen C6678 implementiert. Den 
Sourcecode darf ich Dir hier nicht posten, aber es sind nicht einmal 100 
Zeilen VHDL. Das ganze läuft im Async-Modus des EMIF. Die untersten 
12Bit des Adressbusses sind die direkt mit dem DPRAM verbunden, die 
oberen Bits werden zu einem Chipselect verknüpft (oder offengelassen, 
dann wird der DPRAM über den gesamten Adressraum gespiegelt). Alle 
Bussignale vom DSP werden über eine Registerstufe in eine 
100MHz-Clockdomain eingesamplet und erst dann ausgewertet. Am Ende musst 
Du das Bustiming des EMIF16 anpassen, um die schnellstmögliche 
Einstellung zu finden. Du musst ein wenig vorsichtig sein mit dem 
turnaround des bidirektionalen Datenbusses.
Am gleichen EMIF hängt übrigens bei mir auch noch ein Parallel-Flash. 
Das ganze hat von Anfang an recht problemlos funktioniert.

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