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
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
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
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
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.
D.h, der DPRAM im FPGA muss mit dem Takt vom DSP synchroniert werden. Übrigens soll der FPGA Kommandos im SDRAM Modus verstehen. Senmeis
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,
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
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.
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?
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.
Asynch MODE scheint das Stichwort zu sein. Da muss ich schauen, ob ich das verwenden kann. Danke jedenfalls.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.