cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
1,808 Views
Registered: ‎11-06-2017

Decrease Run time

Hi,

 

I have a design, the implementation run is taking 9 to 10 hours. I want to reduce the run time of the design. In synthesis and implementation strategies i find RUNTIMEOPTIMIZED option, will it be helpful and lunch runs also i selected max 40 runs, still the run time has been not reducing. Is there any way to do this?

 

Please let me know.

 

Thanks in advance.

0 Kudos
7 Replies
Highlighted
Moderator
Moderator
1,797 Views
Registered: ‎01-16-2013

Re: Decrease Run time

ranjithanih@gmail.com

 

The following factors affect the runtime during implementation: 

> Bad constraints. 

> very high device utilization

> congestion 

 

Check AR#50199 to find which particular process in implementation is taking longer runtime from log file.

 

 

Strategy:

Flow_Quick : If the goal is to check utilization estimation, use Flow_Quick implementation strategy which is non-timing driven and gives the fastest possible runtime. 

Flow_RuntimeOptimized: This is timing driven with faster runtime but trades design performance.

 

Constraints:

You must provide clean timing constraints, along with timing exceptions, where applicable. Bad constraints result in long runtime, performance issues, and hardware failures.

 

Querying the large list of nets or pins can be a time-consuming process, so saving the results can speed the design flow when accessing the information repeatedly. Check if you can avoid using wild cards (*) which are querying very large list.

 

Caching objects in variables can save runtime by reducing the number of queries to the design database. See "Caching Objects" in UG894

 

Tip: For timing constraint use -filter IS_SEQUENTIAL with get_cells command to target only sequential elements.

 

Run DRC report (report_drc) and Methodology report (report_methodology) with the clocking, timing and XDC ruledecks , these should identify runtime intensive constraint constructs that target too many endpoints.

 

Routing:

Congestion in design will impact on runtime. Check AR#66314 to resolve congestion

Use -ultrathreads option with route_design command to reduce runtime at expense of repeatability. 

 

Incremental Compile: 

If you have an existing routed dcp and you would like to make a minor modification in the design then Incremental compile design flow can be used which uses the existing routed dcp as a reference design to speed up place and route runtime. 
Check Vivado implementation user guide (UG904) which has a section on Incremental compile. 

 

--Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
Highlighted
Moderator
Moderator
1,782 Views
Registered: ‎03-16-2017

Re: Decrease Run time

Hi ranjithanih@gmail.com,

 

Adding further. 

 

Do you see number of node overlaps messages in your implementation stage? It will be visible in implementation log. If the values of it are in millions than it is one of the root cause of your high runtime. Please check and let us know.

 

Regards,

hemangd

Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.
0 Kudos
Highlighted
1,729 Views
Registered: ‎11-06-2017

Re: Decrease Run time

Hi Syed,

 

Thank you for the reply.

0 Kudos
Highlighted
1,726 Views
Registered: ‎11-06-2017

Re: Decrease Run time

Hi Hemangd,

 

Thank you for reply.

 

Yes, the number of node overlaps are in million.

0 Kudos
Highlighted
Moderator
Moderator
1,716 Views
Registered: ‎03-16-2017

Re: Decrease Run time

Hi ranjithanih@gmail.com,

 

High number of node overlaps (in millions) is one of the reason of your high impl. runtime.

 

Node overlaps value is due to these multiple reasons:

          Factors which determines node overlap values are

               1. Routing Congestion in your design

               2. Proper Floor planning of your design

               3.  Clock planning/networking

  • Node overlaps means that you have multiple nets fighting for the same routing resource. If that number is high in millions, this indicates some overall congestion problem, and there may be further clues in the Placer log.  If you have the placed checkpoint, you can view the congestion map (estimated based on placement) from Window -> Metrics -> Vertical/Horizontal routing congestion. That may indicate which regions are giving problems and it may help develop a floorplan.
  • The router provides helpful messages when it struggles to meet timing goals due to congestion or excessive hold violation fixing. The router commonly exhibits these symptoms when it struggles: one of it is – Large number of overlaps reported, in the hundreds or thousands.
  • Make proper floorplannig on your design to reduce the values of number of nodes with overlaps.
Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.
0 Kudos
Highlighted
1,685 Views
Registered: ‎11-06-2017

Re: Decrease Run time

Hi Hemangd,

 

Thanks for the reply again,

 

I can see some Routing Convergence in the log file and timing also not meeting and utilization also more than 75 %. How to reduce this congestion ?

 

As you said what does the meaning of Proper Floor planning of your design ? How to do that ?

 

Thanks

0 Kudos
Highlighted
Moderator
Moderator
1,675 Views
Registered: ‎03-16-2017

Re: Decrease Run time

Hi ranjithanih@gmail.com,

 

If you are using Vivado 2018.2 - you can run a command report_qor_suggestions after implementation completes. It will show the suggestions to overcome congestion and timing related issues. 

 

For congestion , go through this AR. https://www.xilinx.com/support/answers/66314.html

 

For timing violation, - it may possible that router is taking more time to fix the hold violation If this is the case you can find the warnings/critical warnings related to it in implementation log file. - For that you need to check the timing reports prior to route_design and work according to it. 

 

To check what is proper floorplanning and how to do that in your design. For that there are number of checks and suggestions which are mentioned in the UG 906, Page  264 onwards. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_2/ug906-vivado-design-analysis.pdf 

 

Regards,

hemangd

 

 

 

Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.