AXI auf Zynq7000 über C in SDK ansprechen

Gast #4624048
Lesenswert?
• ▲
▼
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
#4624912
Lesenswert?
• ▲
▼
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?!
Gast #4629299
Lesenswert?
• ▲
▼
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
Gast #4661643
Lesenswert?
• ▲
▼
@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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.