DSP mit FGPA ueber EMIF

Gast
Das dürfte sich am Ende dasselbe bleiben, weil Du in jedem Fall ein 
asynchrones IF im FPGA einbauen musst. Wenn beide denselben Takt haben, 
würde ich synchron arbeiten, also im SDRAM mode.
Gast
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
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
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
experte schrieb:
> Das dürfte sich am Ende dasselbe bleiben, weil Du in jedem Fall ein
> asynchrones IF im FPGA einbauen musst. Wenn beide denselben Takt haben,
> würde ich synchron arbeiten, also im SDRAM mode.

Hätte jemand so eine Art CORE für das EMIF in einem FPGA? Oder gibt es 
da von Herstellerseite etwas?
Gast
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.
Gast
Ich hätte einen Core für EMI zum FPGA, aber der ist winzig, weil da so 
viel nicht zu machen ist, zudem ist er spezifisch und muss erst noch 
umgebaut werden. Aber wenn du magst ...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 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]
  • [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.