Forum: FPGA, VHDL & Co. ZYNQ: AXI Lite Master Periph um in den DRAM zu schreiben


von Mw E. (Firma: fritzler-avr.de) (fritzler)


Angehängte Dateien:

Lesenswert?

Hallöle.
Bisher hab ich schon einige eigene AXI Slaves geschrieben, die dann vom 
ARM Kern des ZYNQ benutzt werden konnten. Lief auch immer wunderbar.
Nun diesmal soll auch die andere Richtung möglich sein, der IP braucht 
8MB RAM und die sollen aus dem DRAM abgezwickt werden.
Also habe ich mir zum Testen ersteinmal im XPS 14.7 eine IP geklickt und 
den AXI Master aktiviert und dazu noch Test C Code generieren lassen.

Die so zusammengeklickte IP besitzt zum Testen auch gleich ein paar 
Register mit denen ein AXI Lite Master angesprochen werden kann und der 
Xilinx Testcode liest und schreibt dann auch gleich 4 Byte aus/ins DRAM.
(Die IP hat also 2 AXI Anschlüsse, Master und Slave)

Basieren tut das Ganze auf dem "zybo_base_system", also da ist der PS7 
drinne, eine VGA/HDMI Grafikausgabe sowie AXI Slaves für die Taster und 
LEDs.
Darein hab ich dann meine Test IP eingebaut und das Ganze funktioniert 
nicht.

Der Xilinx Testcode (SP2_ZYNQ_WRAPPER_SelfTest) läuft zwar durch, aber 
es wird nicht in den RAM geschrieben, es kommt die Ausgabe, dass SRC und 
DST Buffer ungleich sind.
Die Basisadresse stimmt aber.

Dann dacht ich, dass der Fehler daran liegt, dass der AXI Interconnect 
mit den beiden Grafikmastern und meinem AXI Master am High Performance 
Anschluss des PS7 hängt und der war auf 64Bit gestellt. Mein AXI Master 
hat aber nur 32Bit.
Also meine IP an den General Purpose gehangen mit 32Bit und das alleine.

Ja jetzt geht garnichts mehr, er hängt bei "start user logic master 
module to send one word to the destination"
(Z.118 in sp2_zynq_wrapper_selftest.c).

Meine eingebaute Debugausgabe welche das Statusregister abfragt kommt 
auch nicht mehr.
Der ganze AXI Bus scheint zu hängen?

Hat da wer ne Idee wieso schon das Beispiel nicht funktioniert?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Hat hier noch keiner mit dem ZYNQ gespielt?

von Christoph (Gast)


Lesenswert?

Mw E. schrieb:
> Also meine IP an den General Purpose gehangen mit 32Bit und das alleine.

Ich mag mich daran erinnern, dass der 7000er Zynq nicht alle AXI Busse 
mit dem DRAM controller verbunden hat. Am General Purpose AXI wird es 
darum wohl nicht gehen.

Im Vivado sieht man das auch im Zynq GUI, dass da kein Pfeil dazwischen 
ist.

Im UG1165 Kapitel 5 gibt es ein Tutorial um einen AXI Master mit dem 
DRAM Daten austauschen zu lassen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Die General Purpose AXI Anschlüsse gehen zum Central Interconnect und 
von dort gehts auch zum DRAM Controller.
Auch mit dem High Performance Anschluss hab ichs zwischenzeitlich schon 
versucht, da hängt dann auch alles komplett.
Bild: 
https://xlnx.i.lithium.com/t5/image/serverpage/image-id/9509iFD7EF1D29F6BE4C4/image-size/original?v=mpbl-1&px=-1

Das UG1165 mit dem CDMA werd ich am Wochenende mal durchgehen.

Ich hab auch grade gesehen, dass es nen Chipscope Block gibt, der aufm 
AXI lauschen kann, den sollt ich mal einbauen.

von C. A. Rotwang (Gast)


Lesenswert?

IMHO ist AXI_HP die richtige Wahl fürs Interface. Check mal Kapitel 10 
S. 204 im Zynq Book 
https://is.muni.cz/el/1433/jaro2015/PV191/um/The_Zynq_Book_ebook.pdf

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.