Forum: FPGA, VHDL & Co. Hard TEMAC mit xps_ll_temac auf Virtex4 ML410 zum laufen bewegen


von A. M. (am85)


Lesenswert?

Ich habe eine Problem damit, die Netzwerkschnittstelle auf meinem 
ML410er Board zum laufen zu bewegen. Hintergrund des ganzen ist, dass 
ich später eine Anwendung schreiben möchte, die mittels lwIP Daten 
verschickt. Nun stehe ich aber primär vor dem Problem, mit dem Xilinx 
Platform Studio ein passendes Design für das Board zu erstellen.

In dem PPC 405 Chip ist ja ein hard TEMAC (Tri-mode Ethernet MAC) 
integriert, also ein Stück Silizium extra dafür, und laut Xilinx soll 
die Nutzung des xps_ll_temac (Wrapper?), was scheinbar der Nachfolger 
des PLB_TEMAC Soft-core's ist, in Verbindung mit dem hard TEMAC 
kostenlos sein. Nun stehe ich aber deutlich auf dem Schlauch wenn es 
darum geht, beides ordentlich und lauffähig in mein Design zu 
integrieren. Aus den Dokumentationen und Datenblättern geht leider nicht 
eindeutig hervor, welche Ports ich wie belegen muss, um beides 
miteinaner zum laufen zu bewegen.

Auch die Application Notes, die es leider nur vereinzelt und in recht 
schlechter Qualität bzw. mit zu geringer Aussagekraft seitens Xilinx 
gibt, haben mir bis jetzt nicht wirklich weiter geholfen. Meist beziehen 
sie sich auf andere Boards, was noch das kleinere Übel wäre, oder auf 
andere EDK Versionen und da sind die Probleme dann schon viel größer. 
Ich selber habe hier die EDK 10.1 SP3.

Ich würde mich sehr über eure Hilfe freuen und wenn noch irgendwelche 
Informationen benötigt werden, dann bitte einfach fragen.

Schon mal danke.

von Christian R. (supachris)


Lesenswert?

Also XPS_LL_TEMAC ist schon richtig. In dessen optionen kann man dann 
"Hard" einstellen, dann wird der kostenlose Hard-IP genommen. LL steht 
für Local Link, das schnelle DMA Interface. Der xps_ll_temac arbeitet 
nur sinnvoll mit dem mpmc zusammen. Am dem erstellst du noch einen SDMA 
Port (LocalLink) und dann kannst du daran den temac anschließen. Der 
DatenTransfer läuft dann über den DMA des MPMC. Die Steuerung des Temac 
erfolg über den PLB.
Beim 10.x ist die Sache mit den Lizenzen allerdings bissl komisch, kann 
sein, der verweigert dir die BitStream Generierung, weil die 
mitgelieferte Lizenz für den Hard-IP im Sommer 2009 ausgelaufen ist. Ich 
hatte dann auf Anfrage von Xilinx eine unbegrenzte Lizenz bekommen. Bei 
11.x ist dieser Bug behoben, die Hard-IP Lizenzen laufen nie aus.

von A. M. (am85)


Lesenswert?

Christian R. schrieb:
> Also XPS_LL_TEMAC ist schon richtig. In dessen optionen kann man dann
> "Hard" einstellen

Wo genau kann ich das einstellen? Ich habe mich schon im Platform Studio 
umgeschaut, vielleicht aber nicht an der richtigen Stelle

Christian R. schrieb:
> Der xps_ll_temac arbeitet
> nur sinnvoll mit dem mpmc zusammen.

Der ist, soweit ich das überblicke, im Design durch den BSB bereits 
integriert.

Christian R. schrieb:
> Am dem erstellst du noch einen SDMA
> Port (LocalLink) und dann kannst du daran den temac anschließen.

Geht das auch über das XPS oder müsste ich dafür HDL-mäßig Hand anlegen? 
Meine Kenntnisse in VHDL sind leider eher beschränkt, ebenso meine FPGA 
Kenntnisse...typische Praktikumsaufgabe ;-)

Christian R. schrieb:
> Beim 10.x ist die Sache mit den Lizenzen allerdings bissl komisch, kann
> sein, der verweigert dir die BitStream Generierung, weil die
> mitgelieferte Lizenz für den Hard-IP im Sommer 2009 ausgelaufen ist. Ich
> hatte dann auf Anfrage von Xilinx eine unbegrenzte Lizenz bekommen. Bei
> 11.x ist dieser Bug behoben, die Hard-IP Lizenzen laufen nie aus.

Bis jetzt habe ich mir erstmal mit einer Eval. Lizenz ausgeholfen. 
Sollte das klappen, kann ich Xilinx immer noch anschreiben. Evtl. kommt 
in absehbarer Zeit auch noch ein Versionswechsel auf die 11.x. Dann wird 
das Problem eh geklärt sein. Hauptsache ich bekomm die ganze Geschichte 
so langsam zum laufen.

EDIT:
Mit der Eval. Lizenz meine ich den xps_ll_temac core. Bei dem hard_temac 
core nörgelt er nicht wegen der Lizenz.

EDIT2:
Den hard TEMAC kann ich leider nicht über den BSB einbinden, so dass ich 
das nachträglich machen muss. Daher muss ich auch händisch die 
Verbindungen herstellen. Wie muss ich da vorgehen bzw. was habe ich zu 
beachten?

Danke für deine hilfreiche Antwort

von Christian R. (supachris)


Lesenswert?

Einstellen auf Hard einfach indem du das doppelklickst in der System 
View Liste da, nachdem du den hinzugefügt hast. Genauso beim MPMC, 
doppelklicken und bei Ports dann einfach einen SDMA hinzufügen. Hab hier 
zu Hause x64, daher kein XPS, kann keine Screenshots machen. Aber geht 
alles über die grafische Oberfläche.

von A. M. (am85)


Lesenswert?

Christian R. schrieb:
> Einstellen auf Hard einfach indem du das doppelklickst in der System
> View Liste da, nachdem du den hinzugefügt hast. Genauso beim MPMC,
> doppelklicken und bei Ports dann einfach einen SDMA hinzufügen. Hab hier
> zu Hause x64, daher kein XPS, kann keine Screenshots machen. Aber geht
> alles über die grafische Oberfläche.

Danke für deine Antwort. War bis jetzt alles sehr hilfreich. Einige 
Details müsste ich aber noch beantwortet haben.

Ich habe in meinem Design zwei MPMC Instanzen, einmal für den DDR 
Speicher (64 MB) und einmal für den DDR2 Speicher (256 MB). Ich habe 
jetzt einfach mal die MPMC Instanz des DDR Speichers angezapft und dort 
einen freien Port als SDMA definiert und dem auch mittels "Generate 
Addresses" einen Adressraum gegeben. Kann ich so vorgehen oder sollte 
ich für den TEMAC lieber eine neue Instanz des MPMC's einbinden?

Die nächste Frage ist dann, neben den beiden EDITS aus meinem letzten 
Beitrag, über welchen Port ich dann die xps_ll_temac Instanz mit dem 
SDMA Port verbinden soll?

Schöne Grüße und vielen Dank für die Hilfe

von Christian R. (supachris)


Lesenswert?

Nee, brauchst keine extra Instanz. Der DMA ist ja dazu da, um zwischen 
dem Hauptspeicher und z.B. dem Temac Daten direkt auszutauschen. Das 
ginge mit 2 Instanzen ja nicht. Wir hatten damals den TEMAC und den 
DDR-SDRAM auf dem ML405 auch am gleichen MPMC. Verbunden wird das dann 
über die LL-Ports, die tauchen doch automatisch in der System Assembly 
View auf. Das sind Punkt-zu-Punkt Verbindungen, die "passen" dann nur da 
dran.

von A. M. (am85)


Angehängte Dateien:

Lesenswert?

Mh, also irgendwie ist das bei mir ne schwere Geburt. Ich habe einfach 
mal zwei Screenshots von den zur Verfügung stehenden Ports gemacht, um 
das ganze eindeutig zu machen. Denn LL-Ports tauchen dort leider nicht 
auf.

von Christian R. (supachris)


Angehängte Dateien:

Lesenswert?

Das ist die falsche Ansicht. Du musst bei Bus Interfaces die interne 
Bus-Verdrahtung ansehen und bearbeiten. Da wo links die ganzen Busse 
stehen (PLB, IPLB, DPLB...). Diese Ansicht, in der du bist, ist 
hauptsählich dazu da, um die Ports, die ganz nach außen an die Pins des 
FPGA gelegt werden, zu bearbeiten.
Übrigens kannst du den xps_ll_temac doch beim Base System Builder gleich 
auswählen, dann werden auch die richtigen Pins des FPGA angeschlossen, 
die Constraints richtig gesetzt usw. Das ist nämlich nicht ganz ohne, 
der generiert einige IDELAYs und sowas....in der Liste vom BSBS heißt 
der Tri Mode Mac irgendwie. Erst wenn man ihn hinzufügt, steht 
xps_ll_temac da und dann muss/kann man gleich den DMA aktivieren. Dann 
sind auch die LL-Busse gleich da.

von A. M. (am85)


Lesenswert?

Ah, jetzt geht mir ein Licht auf. Danke für die Antwort und den sehr 
hilfreichen Screenshot. Ich werde damit jetzt mal mein Glück versuchen.

Hast du evtl. noch eine Lösung für das Dilemma bezüglich der 
xps_ll_temac Lizenzgeschichte? In Verbindung mit dem hard TEMAC soll 
dieser Core ja kostenlos sein, trotzdem läuft die Geschichte bis jetzt 
nur mit einer Eval. Lizenz. Ist die Geschichte auch schon unter der 10.1 
so konzipiert oder wirds erst in der 11.x umsonst in der Verbindung?

von Christian R. (supachris)


Lesenswert?

Naja, wie gesagt, das war bei uns auch. Dummerweise ging nach Sommer 
2009 dann auf einmal die Eval-Lizenz auch nicht mehr. Da hat mir auf 
Anfrage Xilinx eine unbegrenzte zur Verfügung gestellt. In der 11.x ist 
das behoben, da steht zwar immer noch Eval drin, aber ich hatte mal 
probiert, das Datum vorgestellt vom Rechner, da lief´s immer noch. Bei 
der 10.x ging konnte man das mit Datum vorstellen schön testen.

von Christian Leber (Gast)


Lesenswert?

Der hard TEMAC funktioniert scheinbar ueberhaupt nicht richtig. Ich 
wuerde nicht zuviel Zeit drauf verschwenden. Wird seinen Grund haben 
warum die Dokumentation etwas sparse ist...
Die soft version funktioniert wunderbar.

von Christian R. (supachris)


Lesenswert?

Hm, bei uns ging der sehr gut, wenn man einmal kapiert hat, wie der 
bemuttelt werden will. Vor allem mit dem ScatterGather DMA und CheckSum 
Offloading wunderbar, da kann man sich nämlich vom DMA die ganzen Frames 
zusammen bauen lassen. Und Doku is ja genügend dran. Was allerdings 
nicht sinnvoll klappt, ist der LwIP Stack, den kann man in der Pfeife 
rauchen.

von A. M. (am85)


Lesenswert?

Christian R. schrieb:
> Was allerdings
> nicht sinnvoll klappt, ist der LwIP Stack, den kann man in der Pfeife
> rauchen.

Da machst du mir jetzt aber Mut ;-) Denn eigentlich "wollte" ich den 
benutzen, um dann über TCP/IP Daten an einen Host zu senden. Was mir bis 
jetzt daran aber aufgefallen ist, war einfach dieses schreckliche 
gewurstel von Xilinx...die haben selber ne Implementierung oder sowas in 
der Art auf die Beine gestellt und das ist sowas von undurchsichtig...

von Christian R. (supachris)


Lesenswert?

Genau so ist es. Außerdem ist der extrem langsam, nutzt kein DMA und 
kein CheckSum Offloading. Wir hatten das damals als Diplomarbeit und der 
Diplomand hat den Stack dann doch selber geschrieben dann. Damit konnten 
wir in UDP dann auch etwas über 100MB/s erreichen aus dem SDRAM zum PC.
Ich glaub der LwIP is nur zur Demonstration....muss man mindestens 
erweitern, oder als Anregeung nehmen.

von A. M. (am85)


Lesenswert?

Christian R. schrieb:
> Genau so ist es. Außerdem ist der extrem langsam, nutzt kein DMA und
> kein CheckSum Offloading. Wir hatten das damals als Diplomarbeit und der
> Diplomand hat den Stack dann doch selber geschrieben dann. Damit konnten
> wir in UDP dann auch etwas über 100MB/s erreichen aus dem SDRAM zum PC.
> Ich glaub der LwIP is nur zur Demonstration....muss man mindestens
> erweitern, oder als Anregeung nehmen.

Mh, selber schreiben fällt bei mir wohl eher weg, da ich sowas zum einen 
noch nie gemacht habe, zum anderen der Schwerpunkt der Aufgabenstellung 
woanders liegt. Netzwerkfähigkeit ist sehr wichtig, aber stellt nicht 
den Kernpunkt der Aufgabe dar.

Gibt es sonst noch bessere Alternativen?

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.