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: 
Adventurer
Adventurer
1,715 Views
Registered: ‎01-10-2011

how to prevent Vivado debug from splitting buses into several ports

In Vivado 2017.4 I created a debug core using the "set up debug" wizard containing a port with a vector of signals. The "connect_debug_port" seems to be created correctly inn the resulting xdc file, but when I open the ILA in vivado, the vector is split into several probes. How can I prevent Vivado from doing this?

I saw a post in the forum that suggested the syntax "lsort -dictionary", but when I tried to modify the xdc file accordingly, Vivado gives a critical warning about lsort not being supported in xdc files.

The command in the xdc file looks something like this:

 

connect_debug_port u_ila_0/probe0 [get_nets [list {signal[0]} {signal[1]} ..... {signal[80]}]]

 

and the probes in  the resulting ILA seem to split something like this:

probe_0[11:0]

probe_1[60:12]

probe_2[80:61]

0 Kudos
6 Replies
Moderator
Moderator
1,679 Views
Registered: ‎10-19-2011

Re: how to prevent Vivado debug from splitting buses into several ports

You might try using the mark_debug property on the nets you want preserved. Are you using Synplify/3rd party synth tool, or Vivado's?

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Adventurer
Adventurer
1,620 Views
Registered: ‎01-10-2011

Re: how to prevent Vivado debug from splitting buses into several ports

Maybe I didn't describe the problem correctly. Of course, the signals are already marked as debug in the design. This is happening when I set up the debug cores after the synthesis, where I assign the (marked debug) signals to ports on an ILA debug core. Even though I connect them to an appropriately sized port (meaning the same width of the port as the size of the vector), the implemented debug core seems to want to split some of the vectors into different ports with slices of the vector.

0 Kudos
Highlighted
Moderator
Moderator
1,609 Views
Registered: ‎10-19-2011

Re: how to prevent Vivado debug from splitting buses into several ports

Do all the signals make it to the debug core, or are you seeing some signals missing? Are you able to reconstruct the bus in HW manager, you could use that as a possible work around?
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Moderator
Moderator
1,596 Views
Registered: ‎10-19-2011

Re: how to prevent Vivado debug from splitting buses into several ports

One of my colleagues ran into a similar issue, re-generating the ltx from the implemented design fixed their problem. In the auto generated LTX, are the buses split already/missing?
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Visitor mgulotta
Visitor
995 Views
Registered: ‎07-11-2018

Re: how to prevent Vivado debug from splitting buses into several ports

I have this problem now with latest Vivado 2018.2. Is there a solution? How do you re-generating the ltx from the implemented design?

Timely responses appreciated. Thanks!
0 Kudos
Moderator
Moderator
987 Views
Registered: ‎02-09-2017

Re: how to prevent Vivado debug from splitting buses into several ports

You can regenerate the LTX fie using the TCL command write_debug_probes <your_location>/debug_probes.ltx

 

If just that doesn't work, another workaround would be to  apply a DONT_TOUCH to the parent nets of the net segments marked for debug:

set_property DONT_TOUCH 1 [get_nets [get_property PARENT <net marked for debug> ] ]

 

This should prevent the nets from getting split or optimized. After that, you would need to run opt_design again, followed by the write_debug_probes command to generate the new LTX

 

Thanks.

Andre Guerrero

Product Applications Engineer

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos