UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
354 Views
Registered: ‎06-08-2017

Add ila to tcl flow (non-project mode)

Jump to solution

I've got a non-project mode flow using tcl scripts (from UG946 hierarchical design flow). Is it possible to add ila probes to this type of design?

I used the IP wizard to make the ila. Now I've got a directory with a bunch of files included the synthesized design checkpoint.

Any advice on how to actually get the debug probe into my design would be appreciated.

Thank you,

Daniel

0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
342 Views
Registered: ‎02-09-2017

Re: Add ila to tcl flow (non-project mode)

Jump to solution

Hi @dschussheim,

 

Yes, it is possible to add the ILA via TCL scripts. You would need to continue the TCL process the way you are doing, and once you have ran the synthesis, you can run the TCL commands for inserting the ILA.

Here's one example of the commands to create an ILA debug core and connect the probes:

create_debug_core u_ila_0 ila
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
set_property port_width 1 [get_debug_ports u_ila_0/clk]
connect_debug_port u_ila_0/clk [get_nets [list clk_BUFG]]
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
set_property port_width 2 [get_debug_ports u_ila_0/probe0]
connect_debug_port u_ila_0/probe0 [get_nets [list {counter_reg__0[0]} {counter_reg__0[1]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
set_property port_width 1 [get_debug_ports u_ila_0/probe1]
connect_debug_port u_ila_0/probe1 [get_nets [list dac_out_i_1_n_0]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe2]
set_property port_width 1 [get_debug_ports u_ila_0/probe2]
connect_debug_port u_ila_0/probe2 [get_nets [list dac_out_OBUF]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe3]
set_property port_width 1 [get_debug_ports u_ila_0/probe3]
connect_debug_port u_ila_0/probe3 [get_nets [list rst_IBUF]]
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets clk_BUFG]
save_constraints

In this example, I create an ILA and four debug probes. You will need to know the names of the nets you want to connect to, as well as the name of the clock for that logic.

One tip, even using non-project mode, you can open the synthesized design in the GUI and visually create the ILA and connect probes via the "Setup Debug Wizard". Once you are done, it will show all the commands in the TCL console and also include them in your XDC file. Then you can copy it and save in a .tcl file. Then next time, instead of opening the GUI again, just run that TCL script (and modify it as you wish).

Please let us know if you have any questions.

Thanks,

 

Andre Guerrero

Product Applications Engineer

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
2 Replies
Moderator
Moderator
343 Views
Registered: ‎02-09-2017

Re: Add ila to tcl flow (non-project mode)

Jump to solution

Hi @dschussheim,

 

Yes, it is possible to add the ILA via TCL scripts. You would need to continue the TCL process the way you are doing, and once you have ran the synthesis, you can run the TCL commands for inserting the ILA.

Here's one example of the commands to create an ILA debug core and connect the probes:

create_debug_core u_ila_0 ila
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
set_property port_width 1 [get_debug_ports u_ila_0/clk]
connect_debug_port u_ila_0/clk [get_nets [list clk_BUFG]]
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
set_property port_width 2 [get_debug_ports u_ila_0/probe0]
connect_debug_port u_ila_0/probe0 [get_nets [list {counter_reg__0[0]} {counter_reg__0[1]}]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
set_property port_width 1 [get_debug_ports u_ila_0/probe1]
connect_debug_port u_ila_0/probe1 [get_nets [list dac_out_i_1_n_0]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe2]
set_property port_width 1 [get_debug_ports u_ila_0/probe2]
connect_debug_port u_ila_0/probe2 [get_nets [list dac_out_OBUF]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe3]
set_property port_width 1 [get_debug_ports u_ila_0/probe3]
connect_debug_port u_ila_0/probe3 [get_nets [list rst_IBUF]]
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets clk_BUFG]
save_constraints

In this example, I create an ILA and four debug probes. You will need to know the names of the nets you want to connect to, as well as the name of the clock for that logic.

One tip, even using non-project mode, you can open the synthesized design in the GUI and visually create the ILA and connect probes via the "Setup Debug Wizard". Once you are done, it will show all the commands in the TCL console and also include them in your XDC file. Then you can copy it and save in a .tcl file. Then next time, instead of opening the GUI again, just run that TCL script (and modify it as you wish).

Please let us know if you have any questions.

Thanks,

 

Andre Guerrero

Product Applications Engineer

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Explorer
Explorer
328 Views
Registered: ‎06-08-2017

Re: Add ila to tcl flow (non-project mode)

Jump to solution
Thank you, this is exaclty what I was looking for.
0 Kudos