Ich beabsichtige, Datenpakete von meinem PC über ein Ethernet-Kabel an ein Virtex-5-Board zu senden. Ich habe drei Möglichkeiten gefunden, dies zu erreichen: 1. Verwenden Sie den Microblaze-Prozessorkern, indem Sie die EDK- und SDK-Tools verwenden. (Es wird jedoch viele Geräteressourcen verwenden) 2. Instanziieren Sie den Temac-Kern. 3. Erstellen Sie eine eigene LUT-basierte Implementierung, um die Pakete zu senden. (ressourcenschonend, aber erforderlich, um einen eigenen Block zu bauen)
Ich entscheide mich für den Temac Core-basierten Ansatz, konnte aber nicht viele Dokumentationen/Projekte in diesem Bereich finden. Ich habe einen Server auf meinem PC und verwende eine Socket-Verbindung, um Pakete über Ethernet zu senden. Woher weiß ich die MAC-Adresse des Boards? Und sobald der Temac-Kern instanziiert ist, wird die gesamte Datenverarbeitung von ihm durchgeführt? Ich beabsichtige, TCP/IP-Kommunikation zu verwenden, aber UDP/IP ist auch in Ordnung. Ich habe nicht viel Erfahrung im Umgang mit Xilinx-Kernen und liege vielleicht irgendwann falsch. Bitte helft!!!
Ich habe den TEMAC-Kern verwendet, der direkt in Logik instanziiert wurde, sodass ich Ihnen wahrscheinlich einige Gedanken und Antworten geben kann.
Erstens stellt Xilinx eine ganze Reihe von Dokumenten für jeden seiner IP-Kerne bereit. Sie bewahren auch Dokumente für verschiedene Versionen des Kerns auf, also achten Sie darauf, das richtige Dokument auszuwählen. Eine Suche in den Support-Dokumenten von Xilinx ergab diese Sammlung von Dokumenten:
Das Hauptdokument, das Sie sich ansehen sollten, ist das Benutzerhandbuch. Es ist SEHR detailliert und sollte alles haben, was Sie brauchen, um den Kern in einem Projekt zu verwenden. Allerdings kann es ziemlich schwierig sein, die gewünschten Informationen durchzuarbeiten und zu verfeinern.
Ich basiere dies auf v4.5 des Kerns, ich denke, das ist die neueste direkte Instanziierungsversion (nicht AXI-Bus). Welche Kerne Sie verwenden können, hängt davon ab, wie aktuell Ihre ISE-Version ist, aber sie ändern sich nicht an den Grundlagen zwischen den Versionen.
Das Benutzerhandbuch für TEMAC v4.5 finden Sie unter http://www.xilinx.com/support/documentation/ip_documentation/tri_mode_eth_mac_ug138.pdf
Für die Verwendung des TEMAC-Kerns ist eine Lizenz erforderlich. Eine Evaluierungslizenz ist kostenlos und voll funktionsfähig, funktioniert aber nach einer Weile nicht mehr
Der Kern kann im Zielgerät für eine begrenzte Zeit getestet werden, bevor er abläuft (nicht mehr funktioniert). Zu diesem Zeitpunkt kann er durch Neukonfiguration des Geräts reaktiviert werden.
Auf dem Spartan-6-Gerät habe ich den Kern mit einem 50-MHz-Takt verwendet, der Kern funktionierte etwa 8 Stunden lang, aber es gibt keine Dokumentation darüber, wie genau das Timeout funktioniert.
Ich würde ein Angebot für eine Lizenz einholen, bevor Sie zu viel Arbeit mit dem Kern machen, es kostet ziemlich viel Geld!
Es gibt ein Blockdiagramm des Kerns auf Seite 52 des Dokuments.
Dies zeigt Ihnen, was der TEMAC im Ethernet-Jargon tut, aber im Grunde die Kernschnittstellen zwischen der Benutzerlogik und dem Ethernet-PHY (der die eigentlichen Leitungssignale ansteuert) auf Paket-für-Paket-Basis.
Der Schlüssel zu den meisten Ihrer Fragen ist, wie die "Client-Schnittstelle" funktioniert. Dies ist die Schnittstelle zu Ihrer Logik und ist gut beschrieben. Sehen Sie sich dieses Kapitel an, um zu sehen, wie die Ein- und Ausgabedaten der Schnittstelle aussehen.
Um Ihre konkreten Fragen zu beantworten:
Woher weiß ich die MAC-Adresse des Boards?
Der TEMAC übernimmt die von Ihnen angegebene MAC-Adresse und verwendet diese, sodass Sie sie irgendwo angeben müssen. Viele Entwicklungsplatinen bieten einen MAC-Adressen-EEPROM-Chip, in dem eine eindeutige Adresse gespeichert ist, die Sie lesen und verwenden können. Wenn Sie auf dem Board selbst keine MAC-Adresse verfügbar haben, können Sie eine fest codieren, aber beachten Sie, dass dies gegen die Regeln verstößt und möglicherweise ein Problem verursachen könnte, wenn ein anderes Gerät in Ihrem Netzwerk diese Adresse hat. Eine ziemlich elegante Lösung besteht darin, ein altes Ethernet-Gerät zu finden, das Sie nicht mehr verwenden, und dessen Adresse einfach zum Testen zu verwenden.
Und sobald der Temac-Kern instanziiert ist, wird die gesamte Datenverarbeitung von ihm durchgeführt?
Nein nicht wirklich. Die Empfänger- und Senderschnittstellen arbeiten auf Ebene einzelner Ethernet-Pakete, sodass Ihre Logik einzelne Pakete bereitstellen muss. Dies ist Schicht 2 des OSI-Modells . Sie müssen eine andere Logik erstellen oder einen anderen Kern verwenden, um alle Protokolle höherer Ebene zu handhaben, die Sie verwenden möchten (z. B. TCP oder UDP).
Ich habe diesen Kern verwendet, um ein System zum Laufen zu bringen, einschließlich des Schreibens meiner eigenen Module für die Schnittstelle mit der Client-Schnittstelle, und beantworte gerne alle anderen Fragen. Leider gehört mein Code der Firma, für die ich arbeite, aber ich kann allgemein darüber sprechen.
mac93
Xcodo
mac93