Forum: FPGA, VHDL & Co. Xilinx Vivado: ILA-Core: Signale werden nicht dargestellt


von Bliad B. (bliad_b)


Angehängte Dateien:

Lesenswert?

Hallo guten Tag,

* habe den ILA core in ein simple A15T Vivado Projekt eingefügt.
* Zum Testen möchte ich einen der zwei Buttons des kleinen 15Tboards mit 
dem ILA-core verfolgen können.
* Es wird aber gar nichts angezeigt im Debug-Fenster
* Ich toggle zwei LEDs auf dem Board und wollte auch das darstellen. 
Aber das wird auch nicht dargestellt.

* Habe im Anhang mal meine top-level vhd Datei.
Probiere da viel rum.

Habe es synthetisiert, implementiert und dann auf den FPGA geladen.
Der Core ist zwar auf idle aber es scheint gar nichts zu kommen.

*.xdc
1
## 12 MHz Clock Signal
2
## ns
3
set_property -dict { PACKAGE_PIN L17 IOSTANDARD LVCMOS33 } [get_ports { sysclk }]; #IO_L12P_T1_MRCC_14 Sch=gclk 
4
create_clock -add -name sys_clk_pin -period 83.33 -waveform {0 41.66} [get_ports {sysclk}];
5
6
## onboard LEDs 
7
## LVCMOS33 ist the standard for the pin see IEEE
8
# what is dict?
9
set_property -dict { PACKAGE_PIN A17 IOSTANDARD LVCMOS33 } [get_ports { output1 }];
10
set_property -dict { PACKAGE_PIN C16 IOSTANDARD LVCMOS33 } [get_ports { output2 }]; 
11
12
## RGB LED 
13
set_property -dict { PACKAGE_PIN B17 IOSTANDARD LVCMOS33 } [get_ports { led0_b }]; #IO_L14N_T2_SRCC_16 Sch=le
14
15
# Input Button
16
set_property -dict { PACKAGE_PIN B18 IOSTANDARD LVCMOS33 } [get_ports { button1 }];

#### andere Weise ILA zu nutzen:
https://www.youtube.com/watch?v=wf96HMAJo3g&t=383s

Werde auch mal das testen. Über das Menü einfügen.

: Bearbeitet durch User
von Cle (Gast)


Lesenswert?

Bliad B. schrieb:
> * habe den ILA core in ein simple A15T Vivado Projekt eingefügt.
"Direkt instanziiert" oder "per debug constraint und automatischt 
instantiiert?
> * Zum Testen möchte ich einen der zwei Buttons des kleinen 15Tboards mit
> dem ILA-core verfolgen können.
Welchen Button? Wo ist der markiert? Wo ist der ILA core? Wo ist das 
Taktsignal für den Core her? Aus welcher Taktdomaine kommt das Signal? 
Ist das Signal getaktet/einsynchronisiert oder der "pure" Button?
> * Es wird aber gar nichts angezeigt im Debug-Fenster
In welchem Fenster? Wie wird nichts angezeigt? Was ist "nichts"?
> * Ich toggle zwei LEDs auf dem Board und wollte auch das darstellen.
> Aber das wird auch nicht dargestellt.
Wie würdest du das erwarten? Zeig mal einen Screenshot. Siehst du 
nichtmal die LEDs togglen? Oder die LEDs nicht im ILA? Oder wo 
darstellen? Und wie darstellen?


> Der Core ist zwar auf idle aber es scheint gar nichts zu kommen.
Auf Idle und es kommt nichts? Der Core muss getriggered werden, entweder 
direkt per klick (in realem Debug unnütz, nur um eben mal zu sehen ob 
Signale angezeigt werden), oder per Trigger Conditions im ILA Menü 
konfiguriert und dann "scharfgestellet" damit er auslöst und aufzeichnet 
sobald die Bedingung zutrifft.

Irgendwelche relevanten Warnings/CriticalWarnings/Errors von Vivado?

In Ermangelung von Infos mal ein Schuss ins Blaue: Manchmal werden die 
Signale beim "starten" des ILA Fensters nicht richtig in den Waveform 
Viewer geladen. Per "Plus" Button links oben im Waveform Window kannst 
du Signale der Anzeige hinzufügen. Wenn in dem "Plus" Menü keine Signale 
auftauchen hat vielleicht auch Vivado etwas nicht richtig für den ILA 
Core generiert. Müsste dann aber in den Warnings auftauchen.

Versuche nochmal einen Schritt zurückzugehen und uns zu helfen dir zu 
helfen. Vielleicht ein Screenshot des "nichts", vllt die instantiierung 
des ILA Cores, eine genauere Beschreibung wie "nichts" dargestellt wird 
und was du wo erwartet hättest.

von Bliad B. (bliad_b)



Lesenswert?

Cle schrieb:
> "Direkt instanziiert" oder "per debug constraint und automatischt
> instantiiert?

Damit meine ich:
1
PORT (
2
  clk : IN STD_LOGIC;
3
4
5
  probe0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
6
  probe1 : IN STD_LOGIC_VECTOR(1 DOWNTO 0)
7
);
8
END COMPONENT  ;
9
10
11
--- (....)
12
13
 myFirstILACore : ila_0
14
PORT MAP (
15
  clk => sysclk,
16
  probe0 =>  button_internal,
17
  probe1 => debug_leds
18
  
19
);

Cle schrieb:
> Welchen Button?
B18 input. auf dem Bild der weiter innen-liegende.
Das Design kann ich in der Realität testen.

> Wo ist der markiert?
> Wo ist der ILA core? Wo ist das
> Taktsignal für den Core her?
 Aus welcher Taktdomaine kommt das Signal?
Der ILA Core befindet sich dann auch im top lvl design. Das Taktsignal 
kommt von dem 12 MHz Quarz auf dem Board.
Es nennt sich sysclk-

> Ist das Signal getaktet/einsynchronisiert oder der "pure" Button?
habe versucht  den eingang mit einem internen Signal zu verbinden.
1
button_internal(0)<=button1;
2
button_internal(1)<=button1;
1
[Timing 38-436] There are set_bus_skew constraint(s) in this design. Please run report_bus_skew to ensure that bus skew requirements are met.

Cle schrieb:
> Der Core muss getriggered werden,
Ich drücke dafür auf den blauen Pfeil,
Habe wie bei der Simulation auch die Signal zuerst hinzugefügt.


Hab das gerade auch noch mal durch set up debug gemacht- also durch 
rechtsklick auf die "Net"s die ich debuggen möchte...
Dann Set Up Debug geklickt.

Aber es verhält sich genauso :(
1
[DRC RTSTAT-10] No routable loads: 25 net(s) have no routable loads. The problem bus(es) and/or net(s) are dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD6_RD/U_RD_FIFO/SUBCORE_FIFO.xsdbm_v3_0_0_rdfifo_inst/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gl0.rd/gr1.gr1_int.rfwft/aempty_fwft_i, dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD7_CTL/ctl_reg[2:0], dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD1/ctl_reg_en_2[1], dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD7_CTL/ctl_reg_en_2[1], dbg_hub/inst/BSCANID.u_xsdbm_id/SWITCH_N_EXT_BSCAN.bscan_switch/m_bscan_capture[0], dbg_hub/inst/BSCANID.u_xsdbm_id/SWITCH_N_EXT_BSCAN.bscan_switch/m_bscan_drck[0], dbg_hub/inst/BSCANID.u_xsdbm_id/SWITCH_N_EXT_BSCAN.bscan_switch/m_bscan_runtest[0], dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD6_RD/U_RD_FIFO/SUBCORE_FIFO.xsdbm_v3_0_0_rdfifo_inst/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gl0.wr/gwhf.whf/overflow, dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD6_WR/U_WR_FIFO/SUBCORE_FIFO.xsdbm_v3_0_0_wrfifo_inst/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gl0.wr/gwhf.whf/overflow, dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD6_RD/U_RD_FIFO/SUBCORE_FIFO.xsdbm_v3_0_0_rdfifo_inst/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gl0.rd/gras.rsts/ram_empty_i, dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD6_WR/U_WR_FIFO/SUBCORE_FIFO.xsdbm_v3_0_0_wrfifo_inst/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gl0.wr/gwas.wsts/ram_full_i, dbg_hub/inst/BSCANID.u_xsdbm_id/CORE_XSDB.UUT_MASTER/U_ICON_INTERFACE/U_CMD6_WR/U_WR_FIFO/SUBCORE_FIFO.xsdbm_v3_0_0_wrfifo_inst/inst_fifo_gen/gconvfifo.rf/grf.rf/rstblk/rd_rst_reg[0], dbg_hub/inst/BSCANID.u_xsdbm_id/SWITCH_N_EXT_BSCAN.bscan_inst/s_bscan_tms, u_ila_0/inst/ila_core_inst/u_ila_regs/U_XSDB_SLAVE/s_daddr_o[13], u_ila_0/inst/ila_core_inst/u_ila_regs/U_XSDB_SLAVE/s_daddr_o[14]... and (the first 15 of 23 listed).
1
[DRC CFGBVS-1] Missing CFGBVS and CONFIG_VOLTAGE Design Properties: Neither the CFGBVS nor CONFIG_VOLTAGE voltage property is set in the current_design.  Configuration bank voltage select (CFGBVS) must be set to VCCO or GND, and CONFIG_VOLTAGE must be set to the correct configuration voltage, in order to determine the I/O voltage support for the pins in bank 0.  It is suggested to specify these either using the 'Edit Device Properties' function in the GUI or directly in the XDC file using the following syntax:
2
3
 set_property CFGBVS value1 [current_design]
4
 #where value1 is either VCCO or GND
5
6
 set_property CONFIG_VOLTAGE value2 [current_design]
7
 #where value2 is the voltage provided to configuration bank 0
8
9
Refer to the device configuration user guide for more information.

von Cle (Gast)


Lesenswert?

Bliad B. schrieb:
>> Der Core muss getriggered werden,
> Ich drücke dafür auf den blauen Pfeil,
> Habe wie bei der Simulation auch die Signal zuerst hinzugefügt.

Also den "scharfstellen" Pfeil?
Damit wartet er auf das Trigger Ereignis. Dort sehe ich im Screenshot 
viele Signale. Sind die richtig eingestellt und können auch eintreten? 
Kannst du die vereinfachen?

Kannst du mal den anderen Pfeil daneben drücken und schauen ob einfach 
"direkt" getriggert wird und du Waveform siehst?

von Bliad B. (bliad_b)


Lesenswert?

Cle schrieb:
> Also den "scharfstellen" Pfeil?

habe alle Pfeile angeklickt die ich gesehen habe

Cle schrieb:
> Damit wartet er auf das Trigger Ereignis.

ok kann natürlich sein, dass nie eins gekommen ist!


Cle schrieb:
> Dort sehe ich im Screenshot
> viele Signale. Sind die richtig eingestellt und können auch eintreten?

button-Druck generell ja, sehe ich daran, dass meine blaue LED ausgeht, 
wenn ich diesen Taster drücke.

Habe dabei Netlist Signal verwendet. Und das war das nächste an dem 
button Eingang. Der Button selber ist nicht zulässig zum Debuggen. Muss 
nach dem Buffer verbunden werden.

Habe noch einen größeren FPGA.
Werde das auch mal damit testen

von Jtagclock (Gast)


Lesenswert?

Die Systemclock muss mindestens das 2,5fache der Jtagclock haben.

von Cle (Gast)


Lesenswert?

Bliad B. schrieb:
> Cle schrieb:
>> Also den "scharfstellen" Pfeil?
>
> habe alle Pfeile angeklickt die ich gesehen habe
Nicht alle, nur den "Immediate Trigger" und den "Armed Trigger"?
Was passiert da konkret? Siehst du bei Immediate Trigger direkt 
irgendwelche Waveforms erscheinen oder bleibt es IMMER so wie in dem 
Screenshot?

>
> Cle schrieb:
>> Damit wartet er auf das Trigger Ereignis.
>
> ok kann natürlich sein, dass nie eins gekommen ist!
>
> Cle schrieb:
>> Dort sehe ich im Screenshot
>> viele Signale. Sind die richtig eingestellt und können auch eintreten?
>
> button-Druck generell ja, sehe ich daran, dass meine blaue LED ausgeht,
> wenn ich diesen Taster drücke.
Nein das meine ich nicht, kannst du nochmal einen großen Screenshot mit 
dem Trigger Fenster rechts unten schicken?

Standardmäßig verundet (siehst du an dem kleinen Button mit dem AND 
gate) er alle diese "Bedingungen". Dort sehe ich am Rande 4 direkte 
Vergleiche, die müssen ALLE GLEICHZEITIG zutreffen damit der ILA core 
auslösst. Das du nur "idle" siehst spricht dafür das du den Core 
"scharfstellst" aber er nicht ausgelöst wird.

>
> Habe dabei Netlist Signal verwendet. Und das war das nächste an dem
> button Eingang. Der Button selber ist nicht zulässig zum Debuggen. Muss
> nach dem Buffer verbunden werden.
>
> Habe noch einen größeren FPGA.
> Werde das auch mal damit testen
Was erwartest du denn wenn du das ganze Setup direkt veränderst?
Ich glaube das ist nur ein Bedienungsproblem.

von Bliad B. (bliad_b)


Lesenswert?

Jtagclock schrieb:
> Die Systemclock muss mindestens das 2,5fache der Jtagclock haben.

Mit dem anderen FPGA gehts.
Ein status-vector wird dort angezeigt. Denke der Wert macht Sinn.
Kommt auch direkt wenn ich auf den Pfeil klicke.
:D
Unglaublich

Ja vielen Dank.
-----

Es >kann< sein, dass die 12 MHz nicht ausreichen. JTAG hat ca. 10 MHz.
Man benötigt also 25 MHz.



-------

Wenigstens läuft es da wo es laufen soll!


Werde für meine weitergehende Fragen dann die Unterlagen lesen müssen:

* Höchste Frequenz die man debuggen kann
* kann ich auch eine CLK einfach teilen und dann mit dem ILA anzeigen?
* Welche Signale sind gar nicht geeignet?
  * denke da an meine beiden Takteingänge
  * habe aber gesehen, dass man da Taktdomänen einstellen kann


Besten Dank für deine Hilfe :D

von Jtagclock (Gast)


Lesenswert?

Habe das blöd ausgedrückt. Du schreibst, dass Du ein 12 MHz Clocksignal 
hast. Deine JTAG-Clock darf somit nicht über 12MHz / 2.5 sein.
Siehe: https://support.xilinx.com/s/article/63292?language=en_US

von Bliad B. (bliad_b)


Lesenswert?

Jtagclock schrieb:
> Habe das blöd ausgedrückt. Du schreibst, dass Du ein 12 MHz
> Clocksignal
> hast. Deine JTAG-Clock darf somit nicht über 12MHz / 2.5 sein.
> Siehe: https://support.xilinx.com/s/article/63292?language=en_US

Vielen Dank :)
Kein Problem!

von Messtechniker (Gast)


Lesenswert?

Jtagclock schrieb:
> Die Systemclock muss mindestens das 2,5fache der Jtagclock haben.

Wieso denn das?

>Signale werden nicht dargestellt
Kannst du sie nicht finden oder nicht einbauen lassen? Wenn sie schon 
bei der Auswahl nicht zu sehen sind, dann rein in die synthetisierte 
Netzliste (die vorher nicht optimiert werden darf), und dort als "mark 
debug" anweisen. Später bei der Definition des ILA werden sie in der 
Auswahl angezeigt.

von Bliad B. (bliad_b)


Lesenswert?

die waren wie tot die signale bei meinem kleine A7 - cpg 15T board.

habe zuerst auf synthetisieren geklickt und dann Signale mit mark zum 
debuggen hinzugefügt.
set up debug muss man dann glaube ich noch klicken.
Und dann Implementieren geklickt.


..
als ich das bei meinem großen 200t Board gemacht habe konnte ich bei 
meinem markierten Signal einen passenden Verlauf sehen.

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.