Forum: FPGA, VHDL & Co. Zybo, AXI Slave, AXI-GPIO und "meine IP"


von Burkhard K. (buks)


Lesenswert?

Nach intensivem Wühlen durch Tutorials, Docs und eigenen Ausprobieren 
habe ich noch immer ein grundlegendes Verständnisproblem: Wie kommen 
meine im FPGA-Fabric beschriebenen Register zum Auslesen in 
Processing-System?

Aufgabenstellung : Zwei 16bit breite Counter meiner "IP" ins PS 
einlesen und dort per Software weiterverarbeiten (z.B. die Werte auf 
einem Monitor anzeigen oder per UART ausgeben).

Es geht los beim IP-Packager von Vivado - baue ich eine neue IP, wird 
ein AXI-Slave mit mindest. 4 bidirektionalen Slave-Registern und 32bit 
Mindestbreite generiert, in den ich meine User-Logic einfügen 
kann/soll. Auslesen der Slave-Register oder Ansteuern irgendwelcher 
Output-Pins damit ist kein Problem. Will ich die slv_regs aber 
beschreiben und weise Ihnen Werte zu, beschimpft mich XST - zu Recht: 
"multiple drivers" - die slv_regs sind bereits mit dem AXI-Bus zum 
Schreiben (andere Richtung) verbunden.

Es fehlt ein Bus, der die Schreib- und Lesezugriffe auf die slv_regs 
koordiniert. Solch ein Bus wird vom AXI-IPIF Core bereitgestellt - nur 
kann ich diesen Core nicht per IP-Liste auswählen und in mein 
Projekt-Diagramm einfügen.  Füge ich stattdessen den AXI-GPIO Core 
ein, verwendet dieser den IPIF Core - anscheinend aber ohne Möglichkeit 
dort User-Logic einzuhängen. An den GPIO Core könnte ich statt eines 
"Input-Pins" die zu lesenden Register meiner FPGA-Schaltung hängen - nur 
wenn ich meine IP verpacken will, bekomme ich wieder den Code für einen 
AXI-Lite Slave drumrum gebaut - die Katze beisst sich gedanklich in 
den eigenen Schwanz.

Was übersehe ich hier - den Wald oder die Bäume? Muss ich meinen eigenen 
AXI-Lite Slave schreiben? Oder brauche ganz andere AXI Cores? Ich wäre 
dankbar für ein Beispiel, mit dem das Einlesen von Registern ins PS 
gezeigt wird, leider habe ich das in all den Xilinx-, Digilent- und 
sonstigen Tutorials bisher nicht gefunden.

Gruß,
Burkhard

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.