Hallo zusammen, hat hier schon Jemand den XADC mit AXI am Laufen? Also
ich kann Register lesen aber der konvertiert nichts, also auch wenn ich
im Event Mode die Konvertierung manuell anstoße. Mit dem DRP
funktioniert alles super.
AXI Stream habe ich auch probiert aber da kommen einfach keine Daten
raus ...
Edit:
Also wenn ich convst_in egal wann auf '1' setze egal für wie lange, dann
geht busy_out auch auf '1' und bleibt da beliebig lange.
Edit2:
Fehler gefunden, aber ich weiß nicht wie ich den beheben kann:
1
Warning: *** Warning: The analog data file for XADC was not found. Use the SIM_MONITOR_FILE generic to specify the input analog data file name or use default name: design.txt.
Steht irgendwo wo diese Datei "design.txt" liegen muss relativ zu
welcher anderen Datei? Bei mir existiert nämlich diese design.txt im IP
Core Ordner.
Ja das Format ist mir bekannt und der Coregen generiert ja auch die
Datei mit Werten, aber bei der Simulation wird die Datei nicht gefunden
obwohl sie im IP Ordner liegt.
Edit:
Es gibt da zwei generics:
SIM_FILE_REL_PATH und SIM_FILE_SEL
1. Sim_File_Rel_Path parameter is relative to the directory where Vivado
example
design is evoked.
2. Sim_File_Name parameter must not include any file extensions (such as
.txt or csv).
Jetzt liegt mein Projekt in
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\
und die design.txt liegt in
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\pxx_xadc_axi.srcs\sources_1\ip\xadc
_wiz_0\
Also ist der Relative Pfad SIM_FILE_REL_PATH:
.\pxx_xadc_axi.srcs\sources_1\ip\xadc_wiz_0\
Und SIM_FILE_SEL:
design
Aber: Die Fehlermeldung bleibt die gleiche ...
Edit:
Jetzt habe ich den Pfad sogar direkt angegeben in der xadc_wiz_0.vhd und
nicht nur im Coregen eingegeben.
Jetzt gibt es da eine xadc_wiz_0.vho Datei und auch eine xadc_wiz_0.vhd
Datei. Die beiden Dateien haben eine Port Beschreibung, aber die ist
nicht identisch, sondern unterscheidet sich durch die Reihenfolge der
Ports.
Welche soll man ins Top VHDL einbauen?
Das ist alles noch viel schlimmer:
Ich hatte ja ein altes XADC Projekt mit DRP, das hat auch gut
funktioniert bisher (in der Simulation), aber jetzt wollte ich das
nochmal angucken und ... das neuere VIVADO hat das also aktualisiert.
Siehe da, jetzt wird auch da diese Wertedatei zur Simulation nichtmehr
gefunden.
Das Projekt liegt hier:
https://gus.tl/fpga/nexys4_xadc_minimal.zip
Was mich dabei wundert:
Früher stand in der xadc_wiz_0.vhd folgendes:
SIM_MONITOR_FILE => "design.txt"
Und jetzt steht da
C_SIM_MONITOR_FILE => "design.txt"
Der vollständige Fehler lautet:
1
Warning: *** Warning: The analog data file for XADC was not found. Use the SIM_MONITOR_FILE generic to specify the input analog data file name or use default name: design.txt.
Diese Hilfe hier hilft mir leider auch nicht:
https://forums.xilinx.com/t5/Simulation-and-Verification/XADC-simulation-file-locatoin/td-p/679540
Und zwar weil es bei mir kein SIM_MONITOR_FILE gibt sondern nur ein
C_SIM_MONITOR_FILE und selbst wenn ich da den kompletten Pfad zur Datei
angebe wird die nicht gefunden. Man ist das alles kaputt oder ich
unfassbar dumm.
Edit:
Das oben verlinkte Minimalbeispiel mit Simulation funktioniert jetzt
auch unter VIVADO 2016.4. Das ist mit DRP und nicht mit AXI.
Man kann da SIM_MONITOR_FILE einstellen und es funktioniert nur, wenn
ich den vollen Pfad angebe.
Ausserdem habe ich das auch nicht mit AXI am laufen, da kommt immer der
bekannte Fehler. Denn sobald ich das mit AXI im Coregen bauen lasse,
gibt es den SIM_MONITOR_FILE nichtmehr im xadc_wiz_0.vhd sondern nurnoch
den C_SIM_MONITOR_FILE.
Edit:
Zu C_SIM_MONITOR_FILE findet man fast nichts. Also nicht ob das ein Pfad
ist, nur ein Dateiname, oder wo die Datei liegen muss.
Die Stimulus-Datei muss dort liegen, von wo die Simulation gestartet
wird. Das ist bei einer normalen Verhaltensimulation hier:
\project\project.sim\sim_1\behav
Von dort aus kann man mit "..\" zu einem sinnvollen Verzeichnis
navigieren.
Ich hab' den XADC nur direkt instanziiert, zu generierten Cores kann ich
nichts sagen, würde aber vermuten, dass es dort ähnlich ist.
Vielen Dank, aber das hat nicht geholfen.
Die design.txt liegt jetzt hier, also
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\pxx_xadc_axi.sim\sim_1\behav\design
.txt
und in der Datei
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\pxx_xadc_axi.srcs\sources_1\ip\xadc
_wiz_0\xadc_wiz_0.vhd
steht
C_SIM_MONITOR_FILE => "design.txt"
Fehler ist wie zuvor. Verwendest Du auch
C_SIM_MONITOR_FILE oder SIM_MONITOR_FILE ?
Wenn ich den XADC mit AXI generieren lasse bekomme ich immer nur das
C_SIM_MONITOR_FILE.
Ich hab' mal kurz ein Example generiert. C_SIM_MONITOR_FILE zeigt auf
gar nichts, es geht in zwar in xadc_wiz_0_xadc_core_drp.vhd rein, wird
dort aber nicht benutzt. Der XADC wird dann mit
SIM_MONITOR_FILE => "design.txt"
eingebunden.
Es würde dann also \dein_projekt\dein_projekt.sim\sim_1\behav\design.txt
gesucht werden, egal was in C_SIM_MONITOR_FILE steht.
Denke übrigens daran, dass das
\dein_projekt\dein_projekt.sim\sim_1\behav jedemal bei Start seiner
Simulation gelöscht wird, wenn die "Clean up simulation files" Option
gesetzt ist. Schau also mal nach, ob Deine design.txt überhaupt noch da
ist...
Hm, das ist alles komisch.
In meinem funktionierenden Projekt mit DRP liegt die design.txt nur in
D:\vhdl\nexys4_xadc_minimal\nexys4_xadc_minimal.srcs\sources_1\ip\xadc_w
iz_0
und wird gefunden. Da gibt es auch den SIM_MONITOR_FILE wo man einen
Pfad angeben kann.
Wenn ich das identisch baue, aber statt DRP AXI verwenden möchte, dann
wird die Datei nichtmehr gefunden und es gibt auch kein SIM_MONITOR_FILE
Parameter sondern C_SIM_MONITOR_FILE.
Hast Du DRP oder AXI verwendet? Mich würde interessieren wenn Jemand
eine Simulation vom XADC mit AXI unter einem VIVADO 2016.x ans Laufen
bekommt.
Edit:
Vielen Dank!
\dein_projekt\dein_projekt.sim\sim_1\behav\design.txt
Ist tatsächlich der richtige Ort. Was noch unklar ist:
- Wieso gibt es da einen Unterschied wenn man AXI statt DRP verwendet?
- Wenn man AXI Verwendet, wo kann man einstellen wo design.txt liegt?
(damit ich das nicht für jede Simulation da neu reinkopieren muss)
Danke!
Edit:
Wenn ich über Coregen den XADC generieren lasse werden folgende Befehle
ausgeführt:
generate_target all [get_files D:/vhdl/Elektronik_FPGA/pxx_xadc_axi/pxx_xadc_axi.srcs/sources_1/ip/xadc_wiz_0/xadc_wiz_0.xci]
Man kann also diesen Pfad setzen. Ich finde nur nicht wo der Startpunkt
ist.
Wenn das der hier ist
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\pxx_xadc_axi.sim\sim_1\behav
und ich die Datei
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\pxx_xadc_axi.srcs\sources_1\design.
txt
verwenden will müsste das relativ doch so aussehen:
../../../pxx_xadc_axi.srcs/sources_1/
aber wenn ich den Befehl dann so eintippe
Und es geht weiter:
Liegt die design.txt unter
D:\vhdl\Elektronik_FPGA\pxx_xadc_axi\pxx_xadc_axi.srcs\sources_1
dann bringt der folgende Befehl keinen Fehler.
Sprich das ist dann relativ zum Projektverzeichnis.
Aber: Die Simulation findet die Datei nicht.
Vermutung:
Die Routine von Xilinx die während der Eingabe prüft ob im angegebenen
Pfad tatsächlich die angegebene Datei liegt prüft das relativ zum
Projektverzeichnis, bei der Simulation muss das aber relativ sein zu:
\dein_projekt\dein_projekt.sim\sim_1\behav\
Eine Möglichkeit das passend einzustellen manuell habe ich bisher nicht
gefunden. Aus meiner Sicht ist das ein Bug.
Gustl B. schrieb:> Aus meiner Sicht ist das ein Bug.
Wäre ja nix neues.
Funktioniert es, wenn Du die Datei mehrfach auf der Platte (in
verschiedenen Verzeichnissen) hast?
Duke
Juhu! Die Lösung:
In VIVADO die design.txt als simulation source hinzufügen.
Seltsamerweise braucht man das nicht zu tun wenn man DRP verwendet.
Warum auch immer.
Gustl B. schrieb:> In VIVADO die design.txt als simulation source hinzufügen.
Sehr gut! Das funktioniert auch hervorragend wenn man den XADC direkt
instantiiert!
Komischerweise ist das wohl neu. Ich hatte mit einem Vivado 2015.x ein
Projekt gemacht da musste man gar nichts machen, nur den XADC mit
Coregen bauen und schon hat auch die Simulation funktioniert. Jetzt im
neuen Vivado funktioniert dieses alte Projekt immer noch problemlos,
aber wenn ich ein neues Projekt aufmache mit XADC muss ich extra noch
diese Simulationsdatei hinzufügen obwohl die ja weiterhin der Coregen
generiert.
Und noch ein Bug im XADC bei Coregen:
Da kann man sich für die Simulation ein "analoges" Signal erzeugen
lassen. Funktioniert auch, aber das kann kein Rechteck. Man kann zwar
Konstant, Sinus, Dreieck und Rechteck einstellen, aber Rechteck liefert
ebenfalls Dreieck.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang