Hallo Leute, Ich arbeite schon seit längerem an einem Projekt von mir und komme nun nicht weiter. Ziel ist es erst mal Sensordaten von einem Android Device(handy/tablet) an ein FPGA Eval Board (Avnet/Xilinx lx150t dev board)zu senden. Mitlerweile habe ich mich in die Android App Entwicklung eingearbeit und ein Programm geschrieben welches Sensordaten von einem Android Gerät zu einem anderen Android Gerät im Wlan über UDP schicken kann. Der nächste Schritt währe nun, Daten mit dem Evalboard zu empfangen und senden. Um das Evalboard mit den Android Geräten über Wlan zu verbinden wird eine Ethernet zu Wlan Bridge am Netzwerkanschluss des Evalboards angeschlossen. Und somit kommen wir zu meinem Problem: Soweit ich verstanden habe hat mein Board ein PHY welchen ich jetzt über GMII oder MII mit einem MAC verbinden kann. Ich habe mich mal nach einigen IP Cores umgeschaut und für mich kam eigentlich nur der Tri Mode Ethernet MAC von Xilinx in frage.(die 8 Stunden Nutzzeit der Eval Lizenz von Xilinx reichen für mich vollkommen aus). Da meine Erfahrungen mit IP Cores und MACs so ziemlich gegen Null gehen hätte ich folgende fragen: 1: Aufgrund des users guides von Xilinx und den dazugehörigen Examples werden eigentlich immer Microblaze Controller zur steuerung des Cores verwendet(Welche doch nicht kostenfrei sind oder?). Ist bei der Einbindung eines MAC in ein FPGA ein Microcontroller zur Steuerung und Konfiguration von Nöten wenn man "nur" UDP Pakte versenden möchte? 2:Funktionsprizip des MACs für Blöde: Lieg ich damit richtig das der MAC z.B. bei der Datenübermittlung Zieladresse, Quelladresse, Längenangabe der Daten/Typ,Daten Byteweise aus meinen Speicher z.B FIFO einließt und dann sozusagen nur noch vorne die Preamble ,SFD und hinten PADs und FCS an das Frame anhängt. Und daraufhin dieses Frame an den PHY überträgt?
newbie schrieb: > an ein FPGA Eval Board (Avnet/Xilinx lx150t dev > board)zu senden. Ich habe auch letzterdings mit dem Spartan-Board gearbeitet und mich an dem Tricore versucht. Leider sind die Demos von Xilinx und auch AVNET ziemlich Banane. Das Board hatte einen kaputten PHY, der erst in der darauffolgenden Version defektfrei sein sollte, zudem musste man da per Hand was patchen. Welche PCB Version hast Du? Es gibt von AVNET ein Design, welches die Abarbeitung des Ethernet-Stacks über TCPI/IP erledigt und Daten vom auf dem board befindlichen DDR3-Chip über Ethernet versendet. Die Performance soll angeblich bei 800MBit sein, was ich aber dahingehend infrage stelle, dass von Seiten des FAEs ausdrücklich ein kommerzieller Core empfohlen wurde, der dann aufgrund der stack Optimierung in der Lage sein soll, das zu leisten. Das Problem bei beiden Lösungen ist auch, dass alles über EDK läuft, d.h. man braucht einen kompletten Soft-Apparat um das design herum, welcher dann für einen limitierten Durchsatz sorgt, insbesondere, wenn man mit dem DDR3 noch was anderes anstellen will, als ethernetten. Beim Virtex, mit dem die Demo-App (ETH+PHY+DDR) wohl gelaufen ist, max das wohl noch gut gelungen sein, weil der den Power-PC benutzt - auf dem S6 ist aber keiner drauf, daher läauft das alles mit Micro Blaze, wie Du bereits vermutest hast. Mit dem Microblaze ist kein Staat zu machen, jedenfalls nicht, wenn man an die Performance ds PHYs heran will. Wie weit man mit dem TEMAC kommt, ist daher etwas ungewiss. Ich habe mich fast 1 Monat damit auseinander gesetzt und kam da nicht recht vom Fleck, sei es aufgrund der mangelnden Doku oder nicht funktionierender Demos, die mehr verwirren, als helfen. Da der MAC kostepflichtig ist (site-Lizenz 5k, project Lizenz 2500,-) sollte man sich gfs lieber den OC core nehmen und umrüsten. Wenn Du kein GBit brauchst, ist der auch direkt verwendbar. (10/100)
newbie schrieb: > 2:Funktionsprizip des MACs für Blöde: Der MAC (Media Access Controller) nimmt Dir einen Teil des Protokolls ab und schafft zudem die hochgeschwinde Anbindung des Phy. Zur Verfügung stehen da verschiedene Interfaces, mit denen der MAC und der Phy logisch kommunizieren. Physikalisch werden dazu die schnellen GigiBitTransceiver der FPGAs benutzt. Man kann sich das auch sparen indem man einen physikalischen MAC+PHY verwendet. Da ist dann die Datenkommunikations einfacher und langsamer und der FPGA braucht keine GBT-Ports. Das wird billiger. Umgekehrt kann man mit FPGAs auch den Phy emulieren, muss sich dann aber mit der 5PAM was einfallen lassen. Lohnen tut sich das meines Wissens nicht. Wenn Du Dich entschließt, den MAC von Xilinx einzusetzen, könnten wir uns kurzschliessen, weil ich ähnliches vorhabe.
Hallo und danke schonmal für eure schnellen Antworten. Spartanist schrieb: > Welche PCB Version hast Du? Laut Boardbezeichnung : ...lx150t-PCB-E (sollte soweit ich weiß eine aktuellere Version sein) Hatte auch am Anfang meine Bedenken ob der Phy funktionsfähig ist, da der Ethernet Test(Welcher beiliegend zum Factory_test Ordner ist) aufgrund der nicht funktionsfähigen Batchdatei funktionslos war(Auch wenn der Bitsream "von Hand" über Impact geladen wurde). Habe aber mittlerweile den S6LX150T_TEMAC_FIFO_perf_edk12_3 RXtest unter ISE 13.1 zum laufen bekommen indem ich die Batchdatei ein wenig bearbeitet habe (Musste den Pfad welcher auf die Settings Datei des ISE führte anpassen). Andreas F. schrieb: > Wenn Du Dich entschließt, den MAC von Xilinx einzusetzen, könnten wir > uns kurzschliessen, weil ich ähnliches vorhabe. Bei dem Projekt handelt es sich um eine Bachelor Thesis welche ich an meiner Hochschule betreibe.Ich kann dir leider im Moment nicht sagen ob ich mit dem TEMAC von Xilinx mein Projekt fortführen werde, da ich nicht weiß ob mir eine EDK Lizenz zur Verfügung gestellt wird... Trotzdem Danke für dein Angebot und dein Antwort!! Spartanist schrieb: > Da der MAC kostepflichtig ist (site-Lizenz 5k, project Lizenz 2500,-) > sollte man sich gfs lieber den OC core nehmen und umrüsten. Wenn Du kein > GBit brauchst, ist der auch direkt verwendbar. (10/100) Habe momentan die kostenlose Eval Lizenz des TEMAC welche mir ermöglicht einen Bitstream zu erzeugen und ins Board zu laden . Dieser ist dann für eine bestimmte Zeit im Board funktionsfähig (laut einem AVNET Mitarbeiter etwa 8 Stunden )und kann nach Ablauf der Zeit ins Board neu geladen werden. Habe mich auch mal mit 2 Opencores befasst : 10_100_1000 Mbps Tri-mode Ethernet MAC und den Ethernet IP Core (Denke das ist der welcher Spartanist gemeint hat) : Welche mich doch wegen der überschaubaren Anzahl an Beispielen und der etwas spärlich geratenen Doku abgeschreckt hat. Ist zum Verzweifeln das ganze Thema...
newbie schrieb: > Laut Boardbezeichnung : ...lx150t-PCB-E (sollte soweit ich weiß eine > > aktuellere Version sein) Soweit mir bekannt, ist das Problem ab Revision "D" erledigt. Nicht erledigt sind die zahllosen Dokuschwächen bei den xilnx-Cores. wir haben schließlich auf einen kostenpflichtigen Altera-IP-Core umgesattelt. Es wäre aber interessant, wenn du Deine Erfahrungen berichten könntst. newbie schrieb: > Habe momentan die kostenlose Eval Lizenz des TEMAC welche mir ermöglicht > einen Bitstream zu erzeugen und ins Board zu laden . Dieser ist dann für > eine bestimmte Zeit im Board funktionsfähig (laut einem AVNET > Mitarbeiter etwa 8 Stunden )und kann nach Ablauf der Zeit ins Board neu > geladen werden. Auf welches Design beziehst Du Dich?
Michael schrieb: > Nicht erledigt sind die zahllosen Dokuschwächen bei den xilnx-Cores. wir > haben schließlich auf einen kostenpflichtigen Altera-IP-Core > umgesattelt. > > Es wäre aber interessant, wenn du Deine Erfahrungen berichten könntst. Habe mich letze Woche mit der Configuration des TEMACS über den configuration_vector(anstatt AXI4-lite) beschäftigt, da ich nicht wusste ob ich nun eine EDK Lizenz bewilligt bekomme.Kahm aber relativ langsam voran da die ganzen Beispiele auf den AXI4 Bus aufbauten. Spartanist schrieb: > Es gibt von AVNET ein Design, welches die Abarbeitung des > Ethernet-Stacks über TCPI/IP erledigt und Daten vom auf dem board > befindlichen DDR3-Chip über Ethernet versendet. Die Performance soll > angeblich bei 800MBit sein, was ich aber dahingehend infrage stelle Habe diesen Montag eine Zusage für die EDK Lizenz bekommen. Gestern Abend habe ich dann wohl noch das von Spartanist genannte Design ausprobieren können, jedoch wahren die Ergebnisse im Receive Modus mit etwa 22 MBit/s und im Transmit bei 9MBIT/s doch sehr ernüchternd. Beim Beispiel handelte es sich um den Performance Test welcher den: Xilinx TEMAC mit FIFO und LwiP Stack ausführte.(Werde heute wohl noch die DMA variante austesten). Michael schrieb: > Auf welches Design beziehst Du Dich? Weiß jetzt nicht genau was du mit Design meinst, ich kann mit der Eval Lizenz und ISE 13.1 2 Versionen des TEMAC(http://www.xilinx.com/products/intellectual-property/TEMAC.htm) 4.5 und 5.1 erzeugen. Wenn ich ihn erstellt habe, kommt eben die Statusmeldung: Das ich mit dieser Lizenz einen Bitstream erzeugen kann, aber dieser nur Für eine bestimmt Zeit im Board funktioniert.
newbie schrieb: > 9MBIT/s doch sehr ernüchternd. In der Tat sehr ernüchternd. Was wäre denn erwartet? 100MBit? Ich suche eine Gigabit-Anbindung. Den LW IP kann man da wohl vergessen. Scheint wenig zu geben. Ich bin auch nicht so firm mit ETH, aber für eine hochperformante Übertragung nahe am theoertischen limit wird man sich was einfallen lassen müssen, denke ich, denn über's EDK kommt ja die gesamte Verwaltung der Software hinzu - auch wenn stacks, state machines und dergleichen in C sicher einfacher zu handeln sein werden. Wäre mal interessant zu wissen, was des BS an Datenbandbreite schluckt und wie mal mit einem CPU Kern hinkommt. > Ethernet MAC ip core mit FIFO für spartan 6 Beim Spartan kommt dann nur ein Softcore in Frage. Ein 32-Bitter auf 125 MHz internem Takt müsste die Rate (unidirektional) eigentlich schaffen, wenn man eine Bearbeitungsschleife von durchschnittlich 4 Takten annimmt bei 50% Last: (1x idle, 1x Programmspeicher lesen, 1x Daten aus RAM holen (4 Bytes!), 1x Daten auf MAC schicken (4 Bytes),) 32*125/4 = 1000 MBit
Der Microblaze mit 65MHz auf einem S3E schafft mit einem RTL8169 (33MHz PCI) über uCLinux ca. 2-3MByte/s, egal ob read oder write. Und da sind schon DMA und IPv4-Checksums vom Realtek an. Wenn ich UDP-Frames in HW zusammenbaue und den Realtek über PCI abholen lasse, komme ich bequem auf 100MByte/s...
Was wären denn so die limits eines Microblaze in Sachen Datendurchsatz?
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.