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?
Hat hier noch keiner mit dem ZYNQ gespielt?
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.