Forum: Digitale Signalverarbeitung / DSP / Machine Learning DSP mit FGPA ueber EMIF


von Owen S. (senmeis)


Lesenswert?

Hi,

irgendwo habe ich gelesen, DSP kann über die EMIF Schnittstelle mit 
einem FPGA kommunizieren. Kann mir jemand nähere Info vorschlagen? 
Welche Rolle spielt der Adressen-Bus?

Gruss
Owen

von T.U.Darmstadt (Gast)


Lesenswert?

Du sprichts vom TI-Interface, nehme ich an. Dazu gibt es bei Xilinx eine 
eigene APP, weil es einige spezifische Dinge zu beachten gibt.

http://www.xilinx.com/support/documentation/application_notes/xapp753.pdf

Weiterhin empfehle ich diese Beiträge:
http://forums.xilinx.com/t5/Spartan-Family-FPGAs/How-to-connect-fpga-with-DSP-EMIF/td-p/288495

von Owen S. (senmeis)


Lesenswert?

Das EMIF im C6713B arbeitet in drei Modi: SDRAM, SBSRAM und ASYNC. 
Sollte EMIF nur im ASYNC Modus betrieben werden wenn dieses Daten mit 
FPGA austauscht?

Gruss
Owen

von Owen S. (senmeis)


Lesenswert?

Eigentilich will ich folgendes schaffen: Der DSP greift auf ein Dual 
Port RAM im FPGA zu über EMIF. Wie erwähnt ist ein Modus aus den drei 
auszuwählen. Vielleicht ist SDRAM doch der richtige Modus statt ASYNC?

Owen

von experte (Gast)


Lesenswert?

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.

von Owen S. (senmeis)


Lesenswert?

D.h, der DPRAM im FPGA muss mit dem Takt vom DSP synchroniert werden. 
Übrigens soll der FPGA Kommandos im SDRAM Modus verstehen.

Senmeis

von Fpgakuechle K. (Gast)


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,

von Owen S. (senmeis)


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

von T.U.Darmstadt (Gast)


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.

von Proggi (Gast)


Lesenswert?

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?

von Vancouver (Gast)


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.

von Proggi (Gast)


Lesenswert?

Asynch MODE scheint das Stichwort zu sein. Da muss ich schauen, ob ich 
das verwenden kann. Danke jedenfalls.

von T.U.Darmstadt (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.