Alain Zeyu Lou
Alain Zeyu Lou

Reputation: 59

Vivado routing metrics

I'm trying to gather metrics to measure routing utilization on a set of different designs. Any pointers would help a lot!

  1. In the Router Utilization Summary, what does "Global Vertical/Horizontal Routing Utilization" measure?
Global Vertical Routing Utilization = 15.3424 %
Global Horizontal Routing Utilization = 16.3981 %
Routable Net Status*
*Does not include unroutable nets such as driverless and loadless.
Run report_route_status for detailed report.
Number of Failed Nets = 0
Number of Unrouted Nets = 0
Number of Partially Routed Nets = 0
Number of Node Overlaps = 0
  1. Is there any way to access the per CLB metrics mentioned here (especially the "Horizontal/Vertical routing congestion per CLB") through tcl? I've searched far and wide to no avail.

Upvotes: 2

Views: 373

Answers (1)

Fra93
Fra93

Reputation: 2082

Routing report

Since CLBs in an FPGA are connected through configurable switches to redirect traffic, as shown in this source:

enter image description here

Also quoting it:

A vertical (horizontal) channel is defined as a set of tracks between two consecutive columns (rows) of CLBs; wire segments connecting CLB pins are aligned into tracks running in the channel.

So it seems that the Vivado report means how much the switches are used in vertical and horizontal configuration. I don't know how much this information could be useful to the end user, maybe a big disproportion of these percentages might indicate that some particular hard IPs are overutilized and all the connections follow one direction, but other than that I would expect the percentages to be quite similar, and together an indication of how "crowded" your design is.

Metrics

For the second question, I believe you can't access the metrics because the link you have shown is just a heat map over the device, that is drawn by Vivado.

You can however access to the underlying data used to generate the map, for instance by running the time report

report_timing_summary -delay_type min_max -report_unconstrained -check_timing_verbose -max_paths 10 -input_pins -routable_nets -name timing_1

You can access to the Min Slack per placed BEL.

Upvotes: 2

Related Questions