Forum: FPGA, VHDL & Co. Cypress FX3 jetzt mit 381MByte


von Sebastian (Gast)


Lesenswert?

Ich habe auf Cypress ein Video gesehen, in dem die 
Übertragungsbandbreite gemessen wird.

Die gemessene Bandbreite beträgt dort 381MByte pro Sekunde.

Es gibt ja inzwischen den CYUSB3014-BZXC der besitz ein 32Bit Interface 
und mehr RAM. Ich weis nicht ob der Speedtest mit dem alten FX3 (16Bit 
Interface und weniger RAM) oder mit dem neuen FX3 durchgeführt wurde.

Vielleicht hat auch eine Treiberoptimierung mehr Performance aus dem IC 
geholt.

von Christian R. (supachris)


Lesenswert?

Den FX3 mit 32 Bit GPIF II gabs doch als erstes (3014). Die anderen 
kamen erst später. Ich hab hier das DVK schon seit langem und damit 
erreicht man schon solche Werte. Mit 16 Bit geht das nicht, das GPIF II 
kann maximal mit 100MHz betrieben werden. Ich hab an einem NEC 
Controller als Maximum so knapp über 320MB/s erreicht.

von Klaus (Gast)


Lesenswert?

Richtig. Der allererste Fx3 hatte auch schon 32 Bit Interface. Und damit 
konnte man diese Bandbreite auch erreichen. Sogar mit den noch etwas 
fehlerbehafteten Engineering-Samples.

von Christian R. (supachris)


Lesenswert?

Klaus schrieb:
> Sogar mit den noch etwas
> fehlerbehafteten Engineering-Samples.

Jo, so einen hatte ich auf dem DVK. Damit ging kein SPI Boot. 
Mittlerweile habe ich den gegen einen finalen ausgetauscht.

von Sebastian (Gast)


Lesenswert?

Ich dachte immer unter 300MByte währen mit dem FX3 realitisch

von Christian R. (supachris)


Lesenswert?

Reichlich 320MB/s hab ich ohne großartige Optimierungen erreicht, ein 
BULK IN EP, 16 Packetes per Burst, 1024 Byte pro Paket, 100MHz PCLK, 
PCIe 2.0 Host Controller. Kann schon sein, dass man durch weitere 
Optimierungen noch etwas mehr schafft.

von Mario G. (Gast)


Lesenswert?

Hallo Chrsitian. Die mehr als 300 MByte/s versuche ich schon seit Tagen 
(und Nächten) mit dem FX3 DVK in Richtung PC zu erreichen (Stream IN), 
leider vergebens. Ich nehme als Basis die AN65974 von Cypress und die 
zugehörige SyncSlaveFifo Firmware, darin sind 16 Packete per Burst 
gesetzt, ich habe DMA auf AUTO gestellt. Am FX3 GPIF habe ich ein FPGA 
Board mit 100 MHz und 32 bit. Das FPGA liefert bei jedem FlagA genau 
4096 Takte Daten a 32 bit (16384 bytes), das Partial Flag habe ich im 
ersten Schritt nicht implementiert. Die ersten 8 buffer (8x16384) laufen 
mit voller Geschwindigkeit in das FIFO, danach wechselt das FlagA etwa 
im Verhältnis 50:50 seinen Pegel, demnach halbe Zeit Pause, halbe Zeit 
Datentransfer in das FIFO. An der Streamer Applikatioin erhalte ich dann 
auch ca. 160 MByte/s. Ich verwende identische Einstellungen am Streamer 
für Bulk IN wie der AN65974 beschrieben. Da werden sogar 356 MByte/s 
gezeigt. Auf der Host Seite sitzt ein aktueller NEC USB3.0 Controller im 
PCI 2.0 Express Slot unter WinXP SP3. Der Cypress Streamer verwendet den 
CyUSB3 Treiber. Nachdem der erste der 8 buffer übertragen wurden sollte 
ich doch sofort wieder Daten in das FIFO schreiben können, somit nahtlos 
und ohne große Pausen übertragen oder muss ich einen weiteren Kanal für 
die Übertragung P2U implementieren ?

von Christian R. (supachris)


Lesenswert?

Hm, die 160MB/s hören sich verdammt nach der PCIe 1.1 Grenze an. Genau 
den gleichen Wert bekomme ich an meinem Office Rechner mit NEC 
Controller im 1.1 Slot. Schau da nochmal genau nach, ob PCIe 2.0 unter 
XP und mit dem Mainboard/Controller überhaupt geht. Die 340MB/s erreiche 
ich nur an einem Athlon Quadcore Board mit NEC Controller auf dem 
Mainboard oder an aktuellen Laptops mit i7 und aktuellem Chipsatz mit 
nativem USB 3.0 (Z77 ?).

Am FX3 kannst du nichts mehr optimieren, wenn du das so eingestellt 
hast, mehr hab ich da auch nicht.

von Lattice User (Gast)


Lesenswert?

Welchen Chipsatz hat das Motherboard?

von Mario G. (Gast)


Lesenswert?

Danke. Das werde ich gleich Morgen noch mal prûfen. Allerdings habe ich 
die 160 Mbyte/s auch an meinem Win7 64 Notebook mit PCIe 2.0 und NEC 
Controller. Chipsatz unf weitere Info sende ich nach.

von Mario G. (Gast)


Lesenswert?

Ja, PCIe war der Flaschenhals. Ich hatte den Transcend PDU3 USB3.0 
Adapter im PCIe 2.0 x 1 Slot stecken, weil die Karte auch nur einen x 1 
Anschluß hat, aber der scheint auf meinem Mainboard nicht optimal 
angeschlossen zu sein. Das Mainboad ist ein Asus P5Q Pro mit Chipsatz 
Intel P45 (Northbridge) und Intel ICH10 (Southbridge) mit einem Intel 
Quad Core. Jetzt steckt der Adapter im PCIe 2.0 x 16 und der ist im 
Gegensatz zum PCIe 2.0 x1 auf meinem Mainboard an der Northbridge 
angeschlossen. Ich gehe nun davon aus, das der vorherige Steckplatz (x 
1) die 500 MByte/sec in seiner Lane nicht erreicht (über Southbridge und 
Northbridge geführt). Nun bekomme ich zumindest mal 290 Mbyte/sec, aber 
mein PCLK am FX3 GPIF ist auch vorerst nur ca. 70 MHz. Den werde ich nun 
weiter erhöhen unter Beachtung der Setup/Hold Zeiten am GPIF. Scheinbar 
wird das Problem an meinem ziemlich aktuellen Win 7 64 Notebook ähnlich 
sein. Besser wäre natürlich ein Onboard USB3.0 (Intel Chipsatz Z77). 
Danke Euch für den wertvollen Hinweis.

von Christian R. (supachris)


Lesenswert?

Na dann gehts ja. Das ist echt eine böse Falle mit dem PCIe Steckplatz. 
Aber 70MHz und 290MB ist dann aber auch etwas nach oben gerundet, da 
sind ja nur 280MB/s möglich.

von Mario G. (Gast)


Lesenswert?

Ja ich habe gerundet. Es sind mehr als 70 MHz, das passt.
Ich hatte auch schon kurz die 100MHz am Laufen, kam nur auf etwa 
312MByte/s. Also auch hier wird höchstwahrscheinlich PC-seitig der 
Durchsatz nicht ganz erreicht. Das ist nun aber i.O., für mehr muss ich 
wohl ein aktuelles System mit optimaler Anbindung des USB3.0 
Host-Controllers haben.
Aber Danke noch mal und frohe Weihnachten.

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.