Forum: FPGA, VHDL & Co. USB FX3 GPIF II an mehrere FPGA's anbinden


von Mark W. (kram) Benutzerseite


Lesenswert?

Hallo,

Den FX3 kann ich ja via 8, 16, 32 bit weiten dataenbus an FPGA's 
anbinden.
Nun habe ich eine Anwendung wo mehrere FPGA boards und eine sogenanntes 
baseboard verwendet werden. Dazu habe ich folgende Frage:

Ist es moeglich, dass man zwei FPGA's and den FX3 ranhaengen kann? Also 
mit jeweils 16 Datenleitungen and das GPIF II. Es muss nicht eine 
gleichzeitige Kommunikation stattfinden.

Wenn ja, dann muss es doch auch moeglich sein 4 mit jeweils 8 
Datenleitungen anzubinden.

Es geht erstmal nur um prinzipiele Machbarkeit. Ob FX3 oder FX2 ist 
nicht so wichtig.

Gruss
Mark

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Wenn hier jemand weiss, was mit "FX3 GPIF II" gemeint ist, wird er Dir 
sicher helfen. Ich kann dazu nur meinen Deutschlehrer zitieren:

   B. k. A. b.

Ich vestehe jedenfalls nur "Bahnhof".

: Bearbeitet durch User
von Mark W. (kram) Benutzerseite


Lesenswert?

Hallo Thorsten,

Der FX3 ist ein USB Slave controller von Cypress. Superspeed.
Der FX2 nur USB 2.0 High Speed.
Das GPIF II ist das General Purpose Interface.

Bei FTDI heisst das MPSSE, Multi-Protocol Syncronous Serial Engine.

Ich dachte jemand, der schonmal einen FPGA ueber einen USB chip mit dem 
PC verbunden hat, koennte das wissen.

Mark

von Mark W. (kram) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Wenn hier jemand weiss, was mit "FX3 GPIF II" gemeint ist, wird er Dir
> sicher helfen. Ich kann dazu nur meinen Deutschlehrer zitieren:
>
>    B. k. A. b.
>
Ich tippe mal:

Bearbeite keine Abkuerzungen! Basta!

Mark

von Christian R. (supachris)


Lesenswert?

Warum sollte das nicht gehen? Du musst nur dafür sorgen dass immer nur 
ein FPGA auf den Bus zugreift. Dazu kannst du ja die Flags nehmen und 
durch den FX3 entsprechend ansteuern lassen. Der FX3 kann am GPIF II 
erst mal 4 Adressen, das sollte ja reichen. Da kannst du z.B. 4 solcher 
GPIF Threads machen, mit 4 DMA Kanälen und 4 USB Endpointa, und dann hat 
jeder FPGA seinen eigenen Kanal. Wenn du dann vom PC aiua die Endpoints 
so füllst, dass immer nur einer dran ist, wird das eine recht einfache 
Sache.

von Holger (Gast)


Lesenswert?

Mark W. schrieb:
> mit jeweils 16 Datenleitungen and das GPIF II. Es muss nicht eine
> gleichzeitige Kommunikation stattfinden.
Hier ein Link zu deinem Vorhaben.
http://www.cypress.com/?app=forum&id=167&rID=93326

If you are sending data packet from fpga whose size is less than the DMA 
buffer size, then it is counted as a short packet.

 A short packet can be committed to the USB host from GPIF end by using 
the PKTEND# signal in Slave Fifo state machine. The FPGA should be 
designed to assert the PKTEND# along with the last word of data and 
SLWR# pulse corresponding to the last word. The FIFOADDR lines must be 
held constant during the PKTEND# assertion. On assertion of PKTEND# with 
SLWR#, the GPIF II state machine interprets the packet to be a short 
packet and commits it to the USB interface. If the protocol does not 
require any short packets to be transferred, the PKTEND# signal may be 
pulled high.

Refer Application note AN65974 Designing with the EZ-USB® FX3™ Slave 
FIFO Interface where this is explained in detail


http://www.cypress.com/?rID=51581
Gruss Holger.

von Christian R. (supachris)


Lesenswert?

Holger und seine eingeworfenen Brocken wieder. :)
Das hat mit den USB short packets doch überhaupt nix zu tun. Durch die 4 
Hardware Threads des GPIF ist das problemlos möglich, Endpoints kann der 
FX3 auch mehr als genug, jetzt kann man für den Anwendungsfall das GPIF 
als Master für die Slave FPGAs betreiben oder als Slave für ein 
Multimaster System aus den FPGAs. In ersterem Fall entscheidet der FX3 
über die Arbitrierung, bei zweitens müssen sich die FPGAs das selber 
aushandeln. Alles kein Hexenwerk. Ein FPGA an die oberen den anderen an 
die unteren 16 Bit wird aber nix, das GPIF kann nur entweder 16 bit oder 
32 bit.

: Bearbeitet durch User
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.