Hallo zusammen, ich bin gerade dabei, eine FPGA (Kintex7) -> PC Datenverbindung über einen Cypress FX3 Board herzustellen. Ich beziehe mich auf die Slave-FIFO-Beispiel-Applikation http://www.cypress.com/?docID=49786 Bei der Anwendung des StreamIN-Modus wird seitens des Cypress FX3 die Flag_b nie auf '1' gesetzt, was für den Datentransfer nötig ist. Hat jemand schon mal die von Cypress bereitgestellten Beispiele verwendet und eine Idee woran das Problem liegen könnte? Die Clock (5 MHz) wird im FPGA generiert. Vielen Dank! Gruß, Chris
Da hilft wohl nur die vom Designer erzeugten Files durchzuschauen, ob die Bits für die Zusatzfunktionen der Pins stimmen. Außerdem muss auch diese Watermark Größe strimmen, die in der Firmware eingestellt wird. Diese Zusatz Flags sind leider recht komplex einzustzellen. Ich hab mir das manuell gemacht, weil es damals vom Designer noch nicht erstzellt wurde, prinzipiell klappt das.
Also ich habe die von Cypress bereitgestellte Firmware für den StreamIN-Modus verwendet. Das vhdl-Projekt habe ich für mein FPGA-Board angepasst. Im Wesentlichen habe ich die Pins im UCF abgeändert. Also im Prinzip (um zuzugeben noch ohne groß Ahnung vom USB-Controller und seiner Programmierung zu haben) alles per Anleitung für Dummies. Leider hab ich auch nicht so recht verstanden, was Watermark überhaupt bedeutet. Eigentlich möchte ich nur irgendwelche Daten vom FPGA über den FX3 mit etwa 200 MBit/s auf den PC streamen bzw. ablegen. Könntest du mir vllt. deine StreamIn-Firmware bzw. das Projekt schicken?
Nee, kann ich nicht schicken, ist ja von Arbeit. Ich hab das Slave FIFO Beispiel (1 IN, 1 OUT) genommen, was bei den Firmware Samples dabei ist, und da nur einiges hinzugefügt. Im wesentlichen das Fast-Voll-Flag. Watermark bedeutet bei denen den Abstand zum Voll, also wenn du Watermark 8 einstellst, geht das Flag aktiv, wenn weniger als 8 Worte Platz sind. Dummerweise ist das aber auch irgendwie mit der Wortbreite verknippert, das war irgendwie schwierig zu durchschauen. Ich glaube, ich hab bei 32 Bit Watermark 8 eingestellt, dann hab ich genug Zeit, den Transfer zu verlangsamen um alle paar Takte nach dem echten Voll-Flag zu schauen, denn die Flags haben ja so viel Latenz, das geht nicht anders. Ich arbeite übrigens mit 75 bis 100Mhz, je nach FPGA, das klappt ganz gut (wenn die VCCIO am GPIF II 1,8V ist, siehe Forum bei Cypress, sonst gibts dauernd Aussetzer und Abstürze).
Bin mir aus Deiner Aufgabenstellung nicht ganz sicher, ob Du den Hut A) für den FX3 und das FPGA oder B) nur für das FPGA auf hast. Falls A): Investiere etwas Zeit, um Dich an den FX3 zu gewöhnen. Die mitgelieferten Beispiele hatte ich eigentlich recht schnell am Laufen, die sollten brauchbar sein. Da Du ein Xilinx-FPGA benutzt, ist AN65974 (inkl. FPGA-Beispiel-Code, wenn auch nur Spartan) genau das Richtige für Dich. Falls B): Klopfe dem Kollegen auf den Busch... Am Rande: Christian R. schrieb: > wenn die VCCIO am GPIF II 1,8V ist Unbedingt beherzigen! Auch die 22Ohm-Serie-R in den GPIF sollten nicht vernachlässigt werden (generell macht es Sinn, sich sehr genau an AN70707 zu halten...)
P. K. schrieb: > Auch die 22Ohm-Serie-R in den GPIF sollten nicht vernachlässigt werden Naja, wobei das aber bei 50 Leitungen am GPIF II wahrscheinlich mehr Probleme bringt als löst. Ist ja technisch kaum sinnvoll umsetzbar bei 100MHz und Längenabgleich usw. Bei uns läufts auch mit 2,5V oder kleiner über das Demo-Board und ein Samtec Spezialkabel fehlerfrei. Bei 3,3V allerdings nicht zu gebrauchen.
Christian R. schrieb: > Naja, wobei das aber bei 50 Leitungen am GPIF II wahrscheinlich mehr > Probleme bringt als löst. Bei mir sind es nur 16 Datenleitungen plus 2 Flags und Slave Control. Dass ich die Dinger (aus Platzgründen) weggelassen habe, wurde in einem Cypress MyCase explizit bemängelt...
Hallo, danke für eure Hilfe. Prinzipiell klappt es bei mir jetzt. Leider findet bei mir noch Datenverlust statt, (jeweils 5x 16 bit nach Befüllen des DMA-Buffers). Ich denke mal, dass das tatsächlich an einer zu niedrigen Schwelle liegt. Daher meine etwas dumme Frage: wo kann ich denn die watermark einstellen? Danke!
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.