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: 
Visitor u0805426
Visitor
13,812 Views
Registered: ‎03-12-2014

get_net_delays not returning delay values

Hello,

 

When I look to extract the routing delays associated with a net from a post-implementation design in Vivado, rather than getting the delays I just get information regarding the net.

When I run the cmmand:

get_net_delay -of_objects [ get_nets register_file_inst/reg_array_reg[3][3]]

 

The output I get is:

register_file_inst/reg_array_reg[3][3]_to_register_file_inst/pipeline_reg_out[41]_i_3/I1 register_file_inst/reg_array_reg[3][3]_to_register_file_inst/pipeline_reg_out[8]_i_3/I1

 

While the above is a concatenation of the driver and the multiple desinations of the net, there is really no information presented regard the actual routing delay. I have tried multiple options and have struggled to extract the needed value. I am able to load net properties, and in the "connectivity" tab, use the "Load Net Delays" to use the GUI to get the delays, but still unable to get delays for the same net using the command line.

 

Any help would be appreciated

0 Kudos
9 Replies
Scholar austin
Scholar
13,808 Views
Registered: ‎02-27-2008

Re: get_net_delays not returning delay values

u,


You note it is placed, has has it succesfully routed?

 

Until it has been both placed and routed, delays are not 'known'.

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Highlighted
Historian
Historian
13,799 Views
Registered: ‎01-23-2009

Re: get_net_delays not returning delay values

The get_net_delays command returns a list of the net delay objects (just like the get_nets command returns net objects). What you see returned from the command is merely the list of names of the net delays.

 

To get the actual values of the net delays, you need to query the properties of each object. You can see the objects using the report_properties command:

 

 

report_property [lindex [get_net_delays -of_objects [get_nets sel0[0]]] 0]
Property   Type    Read-only  Value
CLASS      string  true       net_delay
ESTIMATED  bool    true       0
FAST_MAX   int     true       179
FAST_MIN   int     true       151
NAME       string  true       sel0[0]_to_resp_gen_i0/char_cnt[0]_i_1/I0
NET        string  true       sel0[0]
SLOW_MAX   int     true       285
SLOW_MIN   int     true       244
TO_PIN     string  true       resp_gen_i0/char_cnt[0]_i_1/I0

 

 

[this reports the property of the first item (lindex <list> 0) in the list of objects returned from the get_net_delays command]

 

You can see that each net delay object returned by the get_net_delays command has properties for the delay on the four different process corners. If you wanted the "slowest" one (SLOW_MAX) you could use

 

 

get_property SLOW_MAX [lindex [get_net_delays -of_objects [get_nets sel0[0]]] 0]
285

Avrum

 

Visitor u0805426
Visitor
13,770 Views
Registered: ‎03-12-2014

Re: get_net_delays not returning delay values

Thank you. I think I understand it now and was able to extract it. Is all of this covered in the TCL reference manual?

0 Kudos
Historian
Historian
13,764 Views
Registered: ‎01-23-2009

Re: get_net_delays not returning delay values

Is all of this covered in the TCL reference manual?

 

It is all covered "somewhere". The concept of objects and their properties are fundamental to how Vivado works, so information on how to work with them is scattered throughout much of the documentation.

 

So, yes, you get some hints about this in the "Tcl Guide" (UG853), but also in the "Properties Reference Guide" (UG912) and other places..

 

It is also covered in the Xilinx class Vivado Design Suite Advanced XDC and Static Timing Analysis for ISE Software Users.

 

Avrum

0 Kudos
Moderator
Moderator
12,123 Views
Registered: ‎01-16-2013

Re: get_net_delays not returning delay values

Hi,

Also refer Vivado scripting user guide for more detailed information and usage of customized commands.
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_4/ug894-vivado-tcl-scripting.pdf

Thanks,
Yash
0 Kudos
Voyager
Voyager
3,289 Views
Registered: ‎10-12-2016

Re: get_net_delays not returning delay values

Hi Friend, How do i find net delay between two specific pins (so many levels of combination logic between these pins ).
-Sampath
0 Kudos
Moderator
Moderator
3,283 Views
Registered: ‎01-16-2013

Re: get_net_delays not returning delay values

Hi @ssampath,

Always create new thread for new query. Sometimes due to old date of the thread experts doesn't look into this discussion.

BTW from your info looks like you want to find out the delay between two pins and there are combinational logic blocks between those two pins. If my understanding is correct, you cannot extract the delay using get_ner_delays command.

You can generate timing report and the can find the delay of each combination block and the routed nets (which is connecting the pins and blocks).

Thanks,
Yash
0 Kudos
Voyager
Voyager
3,278 Views
Registered: ‎10-12-2016

Re: get_net_delays not returning delay values


Thank you .
while doing report timing analysis, i am gettting sa empty timing report.

i did it on input port to internal cell pin.
-Sampath
0 Kudos
Historian
Historian
3,267 Views
Registered: ‎01-23-2009

Re: get_net_delays not returning delay values

Without having the actual syntax of what you are doing, we can't tell you what you are doing wrong.

 

However, in Vivado, the definition of a path is pretty specific, if you don't get it right, you won't get a report. A path:

  - Starts at a start point. This can be:

     - a clock

     - a clocked cell

     - the clock pin of a clocked cell

     - an input (or inout) port of the design

  - ends at an end point. This can be

     - a clock

     - a clocked cell

     - the data pin (or one of the data pins) of a clocked cell

        - note most clocked cells have multiple data input pins; for example a flip-flop has D, CE and R

     - an output port (or input port of the design)

 

Everything else it passes through is a through point

    - nets

    - pins of combinatorial cells

    - combinatorial cells

    - pins of hierarchical blocks

    - the Q output of flip-flops (this is not a startpoint)

 

You have to make sure that your -from contains only startpoints, the -to contains only endpoints and a -through (or multiple -through options) contain all the things you want to go through.

 

Avrum

Tags (2)
0 Kudos