FPGA-Anfänger hier.
Ich habe ein Basys2-FPGA-Board (i-Code in Verilog) und möchte es mit meinem PC kommunizieren lassen. Derzeit empfängt es Daten von einem Slave-Gerät und speichert sie in einem 64-Bit-Register. Ich möchte diese Daten jedoch zur Verarbeitung an meinen Computer senden und in Matlab verarbeiten.
Ich habe einige Nachforschungen angestellt. Es scheint, als könnte ich entweder die EPP-API von Digilent verwenden oder einfach die UART-Kommunikation verwenden. [: Scheint, als wäre dies jetzt nicht möglich, da ich keinen Zugriff auf einen UART-Übersetzer habe]. Ich kann jedoch keine ausreichend erklärenden Beispiele zu einer der Methoden finden. Vorhandene Beispiele scheinen eine Menge Code zu haben, "der einfach funktioniert". Aber der Mangel an Erklärung macht es mir unmöglich, es für mich anzupassen
Zum Beispiel gibt es die Funktion DeppGetReg (HIF hif, BYTE bAddr, BYTE * pbData, BOOL fOverlap) auf der API, aber ich weiß nicht, was ich eingeben soll (insbesondere die Adresse), um sie zum Lesen von Werten aus dem FPGA bereitzustellen. Nur Dokument i finden konnte war in diesem Link . Ich bin auch ahnungslos bei UART.
Hier sind die verfügbaren I/O-Ports von FPGA. Der einzige USB-Port wird zum Programmieren des FPGA verwendet, ich bin mir nicht sicher, ob ich auch über diesen Port kommunizieren kann.
Ich würde mich freuen, wenn Sie mir Ideen geben könnten, wo ich anfangen könnte, mein FPGA-Board in Betracht zu ziehen. Vielen Dank im Voraus.
Der USB-Anschluss kann verwendet werden, um mit einem Design zu kommunizieren, das auf dem FPGA läuft, sowie um es zu programmieren. Die Digilent Adept-Software kann verwendet werden, um mit einem Design zu interagieren, das dieses Protokoll implementiert; Es ist auch möglich, die Digilent-Bibliotheken zu verwenden, um Ihre eigene Software zu schreiben, die dieses Protokoll verwendet. (Ich habe auch ein Perl-Modul geschrieben, Device::Digilent
falls Sie das C vorziehen.)
Informationen zum Protokoll finden Sie unter:
https://www.digilentinc.com/Data/Products/ADEPT/DpimRef%20programmers%20manual.pdf
Kurz gesagt: Es gibt einen parallelen Bus zwischen dem USB-Schnittstellenchip und dem FPGA, bestehend aus:
Das verwendete Protokoll behandelt das FPGA so, als hätte es 256 Byte breite "Register", von denen jedes jederzeit vom Host gelesen oder beschrieben werden kann. Die Reihenfolge der Ereignisse für einen Lesevorgang ist:
Ein Schreibvorgang funktioniert ähnlich, außer dass bei der zweiten Übertragung das Schreibflag eingeschaltet ist und der Host den Datenbus mit dem zu schreibenden Wert treibt.
MarkU
Vasf
MarkU
Vasf