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: 
Observer nilnullzip
Observer
1,217 Views
Registered: ‎09-19-2018

Consistent congestion in one area

I have been having difficulty placing and routing this one design. No matter what I do, it always seems to have congestion in the indicated area. Vertical routing congestion is around 1.5. (Don't worry about the bottom right area. That's a prerouted area that I have no control over. It is not a problem.) The design uses most of the SLLs. I am using AltSpreadLogic_high directive in placement. Two questions:

1) Why is this particular area such a hotspot? Is the via where *all* the SLL pass through?

2) Any suggestions to place and avoid this hotspot?

3) Any suggestions fo route successfully despite this hotspot?

Thanks for any pointers!

-Juan

 

Screen Shot 2019-01-17 at 7.43.46 PM.jpg

0 Kudos
10 Replies
Xilinx Employee
Xilinx Employee
1,179 Views
Registered: ‎05-08-2012

Re: Consistent congestion in one area

Hi @nilnullzip

I would first try the "report_qor_suggestions -file RQS.rpt -output_dir ." command to see if there are any helpful suggestions concerning the congestion. The log file might also detail the reason for the congestion.

If not it would be helpful to select and analyze the logic in this region. The report_design_analysis -congestion command from the GUI will show selectable rectangles that are seen from the Device window. https://www.xilinx.com/support/answers/66698.html might help to determine if there are high fanout nets in the region.

 

There could be other reasons for the congestion UG949 would be good to review

http://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug949-vivado-design-methodology.pdf

as well as the following AR is dedicated to congestion issues.

https://www.xilinx.com/support/answers/66314.html


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



---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------
Observer nilnullzip
Observer
1,171 Views
Registered: ‎09-19-2018

Re: Consistent congestion in one area

Thanks for the reply!

This is the error I see in the router: "Router failed to resolve global congestion". The diagnostics are not helpful. I feel like this "global congestion" is code for something. What exactly is global congestion? It must be different than the local hotspot congestion you get indicated by red in the congestion maps.

 

Phase 3.1.2.2 GR - Reset GR
Phase 3.1.2.2 GR - Reset GR | Checksum: 243ad4620

Time (s): cpu = 08:03:35 ; elapsed = 04:18:38 . Memory (MB): peak = 21807.062 ; gain = 1895.691 ; free physical = 96089 ; free virtual = 136235
ERROR: [Route 35-368] Router failed to resolve global congestion
Phase 3.1.2 Run Global Routing | Checksum: 243ad4620

Time (s): cpu = 08:03:57 ; elapsed = 04:19:00 . Memory (MB): peak = 21807.062 ; gain = 1895.691 ; free physical = 96089 ; free virtual = 136236
Phase 3.1 Global Routing | Checksum: 269e88a5f

Time (s): cpu = 08:04:27 ; elapsed = 04:19:30 . Memory (MB): peak = 21807.062 ; gain = 1895.691 ; free physical = 99456 ; free virtual = 139603
Phase 3 Initial Routing | Checksum: 269e88a5f

Time (s): cpu = 08:04:50 ; elapsed = 04:19:53 . Memory (MB): peak = 21807.062 ; gain = 1895.691 ; free physical = 99456 ; free virtual = 139603

Router Utilization Summary
Global Vertical Routing Utilization = 0.00212646 %
Global Horizontal Routing Utilization = 0.000572276 %
Routable Net Status*
*Does not include unroutable nets such as driverless and loadless.
Run report_route_status for detailed report.
Number of Failed Nets = 641425
Number of Unrouted Nets = 567695
Number of Partially Routed Nets = 73730
Number of Node Overlaps = 3

Congestion Report
North Dir 1x1 Area, Max Cong = 1.87793%, No Congested Regions.
South Dir 1x1 Area, Max Cong = 17.0616%, No Congested Regions.
East Dir 1x1 Area, Max Cong = 3.84615%, No Congested Regions.
West Dir 1x1 Area, Max Cong = 11.5385%, No Congested Regions.

------------------------------
Reporting congestion hotspots
------------------------------
Direction: North
----------------
Congested clusters found at Level 0
Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0
Direction: South
----------------
Congested clusters found at Level 0
Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0
Direction: East
----------------
Congested clusters found at Level 0
Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0
Direction: West
----------------
Congested clusters found at Level 0
Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0

 

0 Kudos
Observer nilnullzip
Observer
1,133 Views
Registered: ‎09-19-2018

Re: Consistent congestion in one area

Hi Marc,

I have made a bit of progress. I found one route_design that succeeded when I mis-sized a PBlock so some components were excluded from the LAGUNA area. And upon further study I believe the consistent congestion that I see is always next to LAGUNA sites. I gather those are the vias by which SLL connections are made between SLRs? And perhaps the global congestion the router is complaining about is related to SLL. My design by necessity has a high SLL utilization, 8500.

I note that the LAGUNA areas have highs have utilization. However there is no need for that density as the SLRs have completely unused space available. I'm thinking perhaps the placement algorithm is not so good at estimating requirements in the LAGUNA areas and is over-utilizing them? Actually I have very loose timing constraints with 10's of ns of margin, so it shouldn't be cramming that area for timing purposes.

Question: is there a way to reduce the density around the LAGUNA sites? I am already using AltSpreadLogic_high. Or do you have other suggestions for improving this? I could potentially use PBlocks to try to pull logic away from the LAGUNA areas, but I'd rather have a more general solution. I will eventually need to use the DSPs in those areas.

Thanks! -Juan

 

0 Kudos
Xilinx Employee
Xilinx Employee
1,100 Views
Registered: ‎05-08-2012

Re: Consistent congestion in one area

Hi @nilnullzip.

The "failed to resolve global congestion"  message would show that there is a high number of routing expansions detected, which would indicate high congestion/SLL usage.

It looks like you have found this to be related to high SLL usage. In that case, there are a few directives (place_design -directive SSI_*) specifically designed with SLR partitioning in mind. I would start with the SSI_SpreadSLLs and SSI_SpreadLogic_high directives first. The full list and descriptions are available from place_design -help.


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

.

 

 

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------
Observer nilnullzip
Observer
1,086 Views
Registered: ‎09-19-2018

Re: Consistent congestion in one area

Hi @marcb,

Thanks for the suggestions! Some followups:

1) What does "routing expansions" mean?

2) I'm trying to understand what is different between these two options. What is the difference between "Spread logic throughout SSI" and "Partition across SLRs"? These sound like different words for the same thing. What exactly is the difference here?

SSI_SpreadLogic_highSpreads logic throughout the SSI device to avoid creating congested regions..

SSI_SpreadSLLsPartition across SLRs and allocate extra area for regions of higher connectivity.

3) Is there a way to tell which SLLs are used? I tried selecting sites *LAG* and IS_USED set to TRUE. But IS_USED property appears never set.

Thanks! -Juan

0 Kudos
Observer nilnullzip
Observer
1,072 Views
Registered: ‎09-19-2018

Re: Consistent congestion in one area

@marcb,

I'm going to queue this one up in addition to my post yesterday. Not much success following your suggestions. See photos below for SSI_SpreadSLLs and SSI_SpreadLogic_high placement options. Neither route succeeded. I think SSI_SpreadLogic_high is very similar to AltSpreadLogic_high. 

Also see third photo that shows congestion relative to LAGUNA columns. It seems the congestion there is consistently to the left of those columns. Curious. Any idea why? Does that offer any confirmation of or insight to what might be going on?

SSI_SpreadLogic_high placement uses ~8500 SLL, SSI_SpreadSLLs ~8200. I believe right four LAGUNA columns are unavailable because of the prerouted PBlock there. So only 8 columns are available, or 11,500 SLLs.

I strongly suspect that the placer is underutilizing the left two LAGUNA columns. I always see that there is little logic placed there and that there are no yellow congestion around those LAGUNA columns like there is around the others. So perhaps the problem is that the placer is concentrating all the SLL in the middle? Is there any way to tell the utilization of those columns?

Any suggestions? Are there any finer controls that would allow more uniform distribution of SLL to the columns? Any way to get more specific diagnostics here about SLL congestion (beyond report_utilization -slr ?) Or about what nets the router gave up on? I would love to see a list of those nets.

Thanks! -Juan

 

Screen Shot 2019-01-22 at 7.52.02 AM.jpgSSI_SpreadSLLsScreen Shot 2019-01-22 at 7.52.15 AM.jpgSSI_SpreadLogic_high

Screen Shot 2019-01-22 at 9.54.47 AM.jpgCongestion consistently to left of LAGUNA sites

0 Kudos
Xilinx Employee
Xilinx Employee
906 Views
Registered: ‎05-08-2012

Re: Consistent congestion in one area

Hi @nilnullzip.

Is the post-synthesis DCP available? I think it would be helpful to browse through the resources, and check indivudual connections, and the timing related to these.


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

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------
Observer nilnullzip
Observer
763 Views
Registered: ‎09-19-2018

Re: Consistent congestion in one area

Hi @marcb,

A clue: I tried I tried -no_timing_driven option and that allowed global routing to succeed. However the route was useless because hold times were violated.

So I tried directive runtime_optimized. Still failure on global routing.

So I tried directive runtime_optimized combined with doubling the timing constraint times, and success! This yeilds a valid, although slow netlist. (I have not yet tried the doubled timing but without runtime_optimized.)

Failure of global routing due to failing timing constraint seems unexpected. Is this typical Vivado behavior? Is there any other way I could have known that timing constraint was Vivado's problem here? (Sorry, I'm an ASIC designer, new to FPGA.)

Thanks! -Juan

0 Kudos
Xilinx Employee
Xilinx Employee
742 Views
Registered: ‎05-08-2012

Re: Consistent congestion in one area

Hi @nilnullzip.

I think having the full implementation log would give a clearer picture as to what is happening.

Congested designs will need to use many routing detours around congested areas. Relaxing the constraints tells the tools that longer detours would be allowed, since the delay requirement is not as strict. The behavior would make sense from this perspective.


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

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------
0 Kudos
Observer nilnullzip
Observer
720 Views
Registered: ‎09-19-2018

Re: Consistent congestion in one area

@marcb,

I sent you a PM with that log.

Thanks!

 

0 Kudos