Hallo zusammen, ich versuche mich gerade daran, diverse Beispiele auf dem Zedboard nachzubauen. Grade bin ich dabei meinen eigenen Hardware-Multiplizierer (32-bit) über den AXI anzusprechen. Das VHDL-Design ist korrekt simuliert und gewrappt (Vivavdo). Wenn ich nun versuche in SDK die Register meines IP-Cores zu lesen/schreiben passiert einfach nichts mehr. Im Debugging Mode sowie im Run Mode, beide Male wird das Programm einfach abgebrochen. ps7_init.tcl wird ordnungsgemäß ausgeführt und auch xil_printf() funktioniert, das bedeuted der Zynq läuft schonmal. Für das Lesen und Schreiben habe ich die vordefinierten Defines benutzt die mir Vivado im Wrapper geliefert hat (in meinem Fall: AXI_HW_MULTIPLIER_mWriteReg/ AXI_HW_MULTIPLIER_mReadReg). Hatte jemand von euch schonmal dieses Problem und weiß wie man es behebt? So etwas grundlegendes kann ja eigenlich nicht so schwer sein... Grüße, Michi
Bei mir funktioniert das automatische Übernehmen der Adressen nicht. Prüfe mal die ???_BASEADDR und ???_HIGHADDR Defines. Bei mir war BASEADDR immer nur 0xFFFFFFFF. Ich habe die entsprechenden Defines dann manuell gemacht.
gucke auch mal dass in der xparameters.h die Adressen nach deinem Design entsprechend aktualisiert wurden. Habe es schon öfeter gehabt, dass man manuell nochmal einen refresh vom FSBL, BSP etc machen muss. Deine Hardware hast du denke ich ja vorher aus Vivado heraus exportiert nehme ich mal an?!
:
Bearbeitet durch User
Hallo, habe nach langen rumprobieren das Problem gelöst. Adressen waren alle richig. Ich musste allerdings zusätzlich zum ps7_init Skript in den Run/Debug-Einstellungen das Häkchen bei Post-Init-Config machen. Jetzt funktionert alles einwandfrei. Danke für eure Hilfe :) Grüße, Michi
Das muss man sich echt mal zu Gemüte führen: Schnelle FPGA-Multiplizierer, die 500 MHz packen, werden über C und AXI angesprochen. Der Wahnsinn, wie man im Frankenland sagt.
@Weltbester FPGA-Pongo Sicherlich ist das nur der erste schritt in der Iteration. Es ist eine wirklich feine Sache über einen einfachen Linux Treiber z.B. um einen Axi-Fifo abzufragen der von einem Multipliziere/ADC oder sonstwas gefüttert wird um per RTP/UDP die Daten wgezuschaufeln. Um das in Hardware zu gießen ist viel mehr Aufwand notwendig. Gerade das finde ich am Zynq so genial... viel Rechenleistung mit Linux (welches mir TCP/IP etc. zur Verfügung stellt) und einfach alles über standardisierte Schnittstellen ohne viel CPU-Last wegschaufelt. Früher musste man für die "Software Sachen" noch einen langsamen MicroBlaze ins FPGA knallen. Da ist der A9 und um einiges besser.
Für sowas gab es aber schon vor einer Dekade die Power-PCs.
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.