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: 
Highlighted
Observer awoz92gmu
Observer
215 Views
Registered: ‎11-26-2018

Congestion Reports: Is "Router Maximum" more concerning than "Placed Maximum" ?

Jump to solution

I'm new to interpreting congestion reports and I'm trying to build some intuition.

After generating a Congestion Report in Vivado from the "Design Analysis" tool under the Reports tab, I'm curious of how to best analyze the results.

It seems that the results under "Placed Maximum" sometimes are more or less resolved by the time they are routed, or at least aren't as bad in the "Router Maximum" report. Is high congestion more concerning before or after routing?

I'd like to know which report is better for pinpointing problems/areas of concern regarding congestion, the "Placed Maximum" or "Router Maximum" reports.  Also what are some things that can be done to alleviate congestion?

 

Thanks, 

0 Kudos
1 Solution

Accepted Solutions
Scholar drjohnsmith
Scholar
194 Views
Registered: ‎07-09-2009

Re: Congestion Reports: Is "Router Maximum" more concerning than "Placed Maximum" ?

Jump to solution
post routing, the too,s have tried to make the design fit and meet speed, and have probably done a lot of replication / push back / forward of registers, and optimisation,

if you have congestion before P&R , then its going to take the tools more struggle to try to un congest.

You need to re think your code is the answer.

If you think of the inside as a conveyor belt made of buckets, then if the buckets all feed one other bucket, and get input from one bucket, then you can wrap that into a wiggle to fit inside the square fpga.

Bu if some buckets need input from more than one bucket, and some feed multiple buckets, you have more of a mesh, much harder to fold into the square shape.

Aim for your algorithms to be the same,
if you have to get a signal from one part of the chip to another, it needs to be placed close by by the tools. If you put a bunch or delay registers in this path, the tools have much more time to get the signals across the chip.

The other thing we see, is people with a C background, coding up RTL without any thought of what the logic is ,

an example, I ahve been working with some code that did not fit,
they had bunches of mutlipliers ,mutliplying by 7 and others by 15 in a quiet complex configuration.

A quick translation of the algorithm into a tree lattic, and replacement of the * 7 multipliers by multiply by 8 and subtract 1 , and the 15 by * 16 and subtract 1 , meant they did not have to use as many multipliers, and they have more pipe line, it fits in less area, and runs faster.

Good luck

BTW:
If you above about 75 % utilisation, your pain will increase.

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
2 Replies
Scholar drjohnsmith
Scholar
195 Views
Registered: ‎07-09-2009

Re: Congestion Reports: Is "Router Maximum" more concerning than "Placed Maximum" ?

Jump to solution
post routing, the too,s have tried to make the design fit and meet speed, and have probably done a lot of replication / push back / forward of registers, and optimisation,

if you have congestion before P&R , then its going to take the tools more struggle to try to un congest.

You need to re think your code is the answer.

If you think of the inside as a conveyor belt made of buckets, then if the buckets all feed one other bucket, and get input from one bucket, then you can wrap that into a wiggle to fit inside the square fpga.

Bu if some buckets need input from more than one bucket, and some feed multiple buckets, you have more of a mesh, much harder to fold into the square shape.

Aim for your algorithms to be the same,
if you have to get a signal from one part of the chip to another, it needs to be placed close by by the tools. If you put a bunch or delay registers in this path, the tools have much more time to get the signals across the chip.

The other thing we see, is people with a C background, coding up RTL without any thought of what the logic is ,

an example, I ahve been working with some code that did not fit,
they had bunches of mutlipliers ,mutliplying by 7 and others by 15 in a quiet complex configuration.

A quick translation of the algorithm into a tree lattic, and replacement of the * 7 multipliers by multiply by 8 and subtract 1 , and the 15 by * 16 and subtract 1 , meant they did not have to use as many multipliers, and they have more pipe line, it fits in less area, and runs faster.

Good luck

BTW:
If you above about 75 % utilisation, your pain will increase.

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Observer awoz92gmu
Observer
185 Views
Registered: ‎11-26-2018

Re: Congestion Reports: Is "Router Maximum" more concerning than "Placed Maximum" ?

Jump to solution

@drjohnsmith Thanks for the answer and useful insights.