Hallo zusammen, ich suche ein einfaches Protokoll, das sich in einen FPGA einbetten laesst und ca. 400 mb/s an Nettodaten verarbeiten kann? USB und Firewire sind definitiv zu kompliziert und sprengen alle Resourcen. Arbeite auf einem DE0-Nano, das nur ca 22k Logikzellen besitzt. Danke. Gruesse, Sven
Ist das Problem bei SPI nicht, dass auf der PC-Seite der Converter von SPI nach USB nicht diesen Datendurchsatz schafft?
Nee, micro ;) Das mega sollte in diesem Fall doch offensichtlich sein.
Habe eben nochmal gerechnet und es wuerden auch ca. 2 gbit/s reichen. wobei es das nicht wirklich leichter bei der auswahl macht.
PCIe - gibt sicherlich auch fertige Bridges die man dafür verwenden kann.
Sven schrieb: > Habe eben nochmal gerechnet und es wuerden auch ca. 2 gbit/s reichen. > wobei es das nicht wirklich leichter bei der auswahl macht. Wenn du alle bestehenden Lösungen vorsorglich ausschliesst... Oder gibts ein PCIe, dass in dein FPGA reinpasst?
es gibt ja auch noch 10Gbit Ethernet. Das ganze mit UDP sollte doch den aufwand im FPGA in Grenzen halten. http://www.cyberport.de/?DEEP=5702-39U&APID=117&gclid=CJDgxuq04cACFQLJtAodilkAvQ
400 MByte/s d.h. 3.2 GBit/s sind sehr viel. In dieser Liga spielen USB 3.0 SATA II PCIe 10G Ethernet Nichts davon kann man mit DE0-Nano ohne zusätzliche HW realisieren. Zum Vergleich: USB 2.0 480 MBit/s brutto. Firewire 800 MBit/s brutto. Der geringste Aufwand wäre 4 Mal 1000 MB Ethernet, mit 4 dedizierten Netzwerkkarten im PC.
Peter II schrieb: > es gibt ja auch noch 10Gbit Ethernet. Das ganze mit UDP sollte doch den > aufwand im FPGA in Grenzen halten. > > http://www.cyberport.de/?DEEP=5702-39U&APID=117&gclid=CJDgxuq04cACFQLJtAodilkAvQ Kleines Problem: Diese Transceiver haben in der Regel ein XAUI Interface, d.h. 4 * 2.5 GT/s serielle Links. XGMII Tranceiver sind mir noch nie über den Weg gelaufen, aber ich habe auch noch nie welche gesucht. XGMII braucht pro Richtung 32 Datenleitungen plus Kontrollsignale. IO Standard ist HSTL. (kennt man von DDR2 RAMs) (siehe IEEE 802.3 Section 4 &46.4)
Peter II schrieb: > es gibt ja auch noch 10Gbit Ethernet. Das ganze mit UDP sollte doch den > aufwand im FPGA in Grenzen halten. Wenn das eine kurze P2P-Verbindung sein soll, dann doch eher USB3.0.
Der einzig verfügbare USB 3.0 Controller, der FX3 schafft die 400MB/s nur auf dem Papier. Und SuperSpeed auf Basis von 5 GBit/s Transceivern selbst zu machen, ist schon eine Menge Arbeit, oder wird teuer (PLDA ist mir als einziger Core Anbieter bekannt). PCIe wäre auch was, aber auch nicht ohne, recht viel Protokoll...
Lattice User schrieb: > Diese Transceiver haben in der Regel ein XAUI Interface, d.h. 4 * 2.5 > GT/s serielle Links. Wikipedia sagt: 3,125GT/s. Passt auch, denn es sollen ja 10Gb/s netto rauskommen. Nicht wie bei SATA oder Fibre Channel, wo die Bitrate brutto gerechnet wird und als Byterate 1/10 rauskommt.
A. K. schrieb: > Lattice User schrieb: >> Diese Transceiver haben in der Regel ein XAUI Interface, d.h. 4 * 2.5 >> GT/s serielle Links. > > Wikipedia sagt: 3,125GT/s. Passt auch, denn es sollen ja 10Gb/s /netto/ > rauskommen. Nicht wie bei SATA oder Fibre Channel, wo die Bitrate brutto > gerechnet wird und als Byterate 1/10 rauskommt. Hast recht. Steht auch so in meinen FPGA Datasheets.
Christian R. schrieb: > Der einzig verfügbare USB 3.0 Controller, der FX3 schafft die 400MB/s > nur auf dem Papier. Man muss sich nicht nur auf einen Chip beschränken und kann 2 Kabel nutzen, wie bei CameraLink. Ich denke bei dem Vorschlag auch an die dem TE zur VErfügung stehende HW. USB3.0 wird von den PCs ohne grössere Umbauten verarbeitet und Adapterplatinen mit USB 3.0 für FPGAs gibt es inzwischen auch. Damit könnte er auskommen. > Und SuperSpeed auf Basis von 5 GBit/s Transceivern > selbst zu machen, ist schon eine Menge Arbeit und mit dem DE auch nicht wirklich eine Alternative. Dasselbe gilt aber auch für eine 10GB Anbindung mit PHY etc. Da müsste man auch mit GBT ran. Mit dem Board, wie vom TE beschrieben, sehe ich eigentlich nur die Chance, eine einfache 100MHz x 32 Bit Verbindung mit 2x16 parallel an zwei USB-Transmitter, die mit 200MB/s funken, u.u. mit 16-auf-8 FiFos, je nach Besaftung des Chips. Alles andere erfordert mehr FPGA-Power und auch mehr spezielles VHDL-Design. Lattice User schrieb: > Der geringste Aufwand wäre 4 Mal 1000 MB Ethernet, mit > 4 dedizierten Netzwerkkarten im PC. Das wäre eine ähnliche Lösung, braucht aber schon 4 Kanäle, wenn nicht 5 oder gar 6, weil 1GBE am PC üblicherweise real nicht mehr, als 800Mbps bringt. Man muss sich natürlich überhaupt Gedanken machen, wie der PC diese Mengen annehmen soll. Im schlimmsten Fall bräuchte man bei USB so 2 PCs. Aber bei 5-6 GigE-Kanälen 6 NICs ??
:
Bearbeitet durch User
Ich haette auch die Moeglichkeit die Datenkommunikation aufzuteilen und parallel ueber mehrere Ports verteilen. Ausserdem sollte ich den Verkehr soweit minimieren, dass pro Leitung maximal 260 mbit/s oder in einer anderen Konfiguration 520 mbit/s anfallen wuerden. Nach meiner Suche ist es fuer SPI aber noch immer zu viel. Stimmt das? Kleiner geht aber auf keinen Fall.
520MBit/s ist mit USB 3.0 dann locker machbar, das sind ja nur 65MB/s, das schafft der FX3 auch im 16 Bit Slave FIFO Modus.
Vom Preis her das günstigste was ich gefunden hat. man könnte HSMC mit 10G Ethernet zukaufen oder man probiert es erst mal über die SMB Anschlüsse oder die SMA Anschlüsse oder über 1G Ethernet. Das DE0 nano ist einfach dafür Harware/Layout/Anschlusstechnisch nicht ausgelegt. http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=166&No=740&PartNo=1
Jürgen S. schrieb: > > Lattice User schrieb: >> Der geringste Aufwand wäre 4 Mal 1000 MB Ethernet, mit >> 4 dedizierten Netzwerkkarten im PC. > Das wäre eine ähnliche Lösung, braucht aber schon 4 Kanäle, wenn nicht 5 > oder gar 6, weil 1GBE am PC üblicherweise real nicht mehr, als 800Mbps > bringt. 4 reicht. Ursprünglich waren 400 MByte/s verlangt, d.h. 4 x 100 MByte/s = 4 x 800 MBit/s. Ausserdem kann man den Overhead (und Aufwand) klein halten indem man raw Ethernet macht. > > Man muss sich natürlich überhaupt Gedanken machen, wie der PC diese > Mengen annehmen soll. Im schlimmsten Fall bräuchte man bei USB so 2 PCs. Bei USB muss man tierisch aufpassen, Die Anschlüsse am PC teilen sich oft die Bandbreite. > Aber bei 5-6 GigE-Kanälen 6 NICs ?? Da sehe ich kein Problem. uwe schrieb: > Das DE0 nano ist einfach dafür Harware/Layout/Anschlusstechnisch nicht > ausgelegt. > http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=166&No=740&PartNo=1 Das ist das grösste Problem. Auf den Stiftleisten sind z.B. nicht genug GND Pins um parallel zuverlässig höhere Datenraten zu erreichen.
Lattice User schrieb: > Bei USB muss man tierisch aufpassen, Die Anschlüsse am PC teilen sich > oft die Bandbreite. Naja, bei SuperSpeed ist das eher unkritisch, da in solchen Fällen ja selten mehr als ein SuperSpeed Gerät an einem Root Hub hängt. Notfalls muss halt eine weitere PCIe Karte rein. Problem ist eher die PCIe Anbindung, manche Mainboards und ältere Controller-Karten haben nur PCIe 1.1 damit sind dann nur 250MB/s brutto möglich, bei USB 3.0 dann etwa noch 170MB/s. PCIe 2.0 muss schon sein. Aber da aus den 400MByte/s jetzt nur noch 400MBit/s geworden sind, ist auch das an einem 3.0 Anschluss locker machbar. Mit dem FX3 hab ich max. 335MB/s gemessen, aber fehlerfrei geht wegen des blöden Slave FIFO Timings bisher nur so 275MB/s (75MHz, 32 Bit).
Christian R. schrieb: > Lattice User schrieb: >> Bei USB muss man tierisch aufpassen, Die Anschlüsse am PC teilen sich >> oft die Bandbreite. In neueren Chipsätzen spart sich Intel die UHCI Hostcontroller, und intergriert statt dessen zwei USB 2.0 Hubs hinter die EHCI Controller. Aber auch bisher schon haben die beiden EHCI Controller 6 je Rootports bedient. > > Naja, bei SuperSpeed ist das eher unkritisch, da in solchen Fällen ja > selten mehr als ein SuperSpeed Gerät an einem Root Hub hängt. Notfalls > muss halt eine weitere PCIe Karte rein. > Problem ist eher die PCIe > Anbindung, manche Mainboards und ältere Controller-Karten haben nur PCIe > 1.1 damit sind dann nur 250MB/s brutto möglich, bei USB 3.0 dann etwa > noch 170MB/s. PCIe 2.0 muss schon sein. Eine USB3 Einsteckkarte hat so 2 oder 4 Rootports, diese teilen sich dann natürlich die PCIe Bandbreite. Und genau das meinte ich. > Aber da aus den 400MByte/s jetzt > nur noch 400MBit/s geworden sind, Sind es nicht, der TO schreibt hier Beitrag "Re: Kommunikation mit PC (400 mb/s netto)" von der Aufteilung auf mehrere Ports und 520 MBit/s PRO Leitung. Du brauchst dann natürlich entsprechend viele FX3.
Die ganze Diskussion ist völlig für die Katz. An ein DE0 was dranzufrickeln mit dem man 400MByte/s in einen PC bekommt ist ungefähr so sinnvoll wie einen Trabimotor in einen SUV einbauen zu wollen. Bei dem Durchsatz kauft man ein richtiges Board mit PCIe und gut. Die total blödsinnige Ausgangsbedingung "400MByte/s mit DE0 Nano in PC" lässt aber darauf schließen dass der Threadersteller sowieso nicht die Kenntnisse hat da etwas funktionierendes zusammenzubauen.
Oo schrieb: > Die ganze Diskussion ist völlig für die Katz. Nicht ganz, es werden Informationen vermittelt und nicht nur dem TO. > An ein DE0 was dranzufrickeln mit dem man 400MByte/s in einen PC bekommt > ist ungefähr so sinnvoll wie einen Trabimotor in einen SUV einbauen zu > wollen. Zustimmung. > Bei dem Durchsatz kauft man ein richtiges Board mit PCIe und gut. Die > total blödsinnige Ausgangsbedingung "400MByte/s mit DE0 Nano in PC" > lässt aber darauf schließen dass der Threadersteller sowieso nicht die > Kenntnisse hat da etwas funktionierendes zusammenzubauen. Auch hier Zustimmung.
>Die ganze Diskussion ist völlig für die Katz.
Danke dafür...die haben den Schuss nicht gehört.
Gruß Jonas
Lattice User schrieb: >> Aber bei 5-6 GigE-Kanälen 6 NICs ?? > Da sehe ich kein Problem. Naja, 5-6 PHYs ich weiss net ... > es reichen 4, 800MB Ich dachte da eher an den PC. Ich habe sowas schon gemacht und vorgefunden, dass die PC-Treiber-Architektur Probleme machte, die theoretischen 1Gig anzunehmen. Christian R. schrieb: > Aber da aus den 400MByte/s jetzt nur noch 400MBit/s geworden sind Fürwahr ein wundersame Verschlankung der Requirements. Das liebe ich. > Mit dem FX3 hab ich max. 335MB/s gemessen, aber > fehlerfrei geht wegen des blöden Slave FIFO Timings bisher nur so > 275MB/s (75MHz, 32 Bit). Sowas hatte ich einkalkuliert, von daher mein Vorschlag, mal gleich 2 Leitungen vorzusehen. Aber wie oben schon festgestellt wurde, sind es nun wohl 400Mbps, da reicht ja fast der USB 2.0 (theoretisch).
Naja, das pro Leitung bei den 520MBit/s hab ich überlesen. Aber trotzdem sind die Anforderungen sehr schwammig...und mit dem Nano Krümel ist das ja eh Quatsch.
Vielleicht eine etwas ketzerische Frage: Schon mal darüber nachgedacht, Deine Daten auf irgendwelche Weise zu komprimieren, bevor sie transferiert werden? Dabei kommt es natürlich auf die Daten selbst an, und wie die beschaffen sind, ob die Komprimierung verlustfrei sein muss, oder ob schon auf dem Board entschieden werden kann, was ganz sicher nicht relevant ist etc. Mit dem Wissen, wie die Daten gestaltet sind, lässt sich unter Umständen mit recht einfachen Mitteln (wenig Logik) schon viel erreichen.
Und alternativ zur Kompression braucht man die Daten vielleicht auch gar nicht an einen PC zu übertragen, sondern nimmt ein weiteres FPGA-Board mit einer im FPGA integrierten (Multi-core) CPU zur finalen Verarbeitung oder Speicherung. Zur Visualisierung fordert man dann mit dem PC ein Häppchen an. PCIE-Bridge, -Treiber: Aufand FX3 USB: Timing, Unflexibel 5x GigE: Daten sortieren auf PC, eth-Treiber kommen nicht hinterher...
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.