Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Why do we fix set up violations in pre CTS stage and hold violations after post CTS?

Status
Not open for further replies.

biju4u90

Full Member level 3
Joined
Dec 10, 2014
Messages
172
Helped
3
Reputation
6
Reaction score
3
Trophy points
18
Activity points
1,437
Why do we fix set up violations in pre CTS stage and hold violations after CTS?

Why do we fix set up violations in pre CTS stage and hold violations after CTS?
 

Setup violations are sometimes fixed by making changes to the logic. This can only be done preCTS. Hold violations are fixed by adding buffers to the data path. This is usually done postCTS. CTS itself leads to many hold violations.
 
Changes in logic may fix hold violations too, right?
Suppose we have hold violations prior to the CTS stage itself. Then when should we try to fix it? After CTS or before CTS?
 

Logic changes cannot fix hold violations.(But logic changes can solve setup violations e.g. pipelining..)
You will get a true status of hold results only after CTS. So it is better we complete CTS and then look at hold results.
 
Logic changes cannot fix hold violations.(But logic changes can solve setup violations e.g. pipelining..)
You will get a true status of hold results only after CTS. So it is better we complete CTS and then look at hold results.

but there is chances for postCTS hold fix to violate setup, right?
what we do for such situation?
 
Usually we never come across such a situation. But we may use different cells to overcome it.
 
@sharath: I didn't get why logic changes cannot fix hold violations, but set up violations!! Can you explain in detail please?

The set up time equation is expressed as
Tclk>Tcq+Tcomb+Tsetup+Tskew

whereas the hold time equation is expressed as
Thold+Tskew<Tcq+Tcomb

So, if logic changes make any effect on set up time, it should make some effect on hold time too, right??
 

Ok. Assume u have setup violations in your design. You have to resolve it by reducing Tcomb. So 2 options available to u are pipelining and say retiming. Pipelining involves logic changes where you add registers to your RTL (logic changes)
Asume Tskew is 0 for simplicity..
If you have hold violations it means you have to push your data further ahead. You can do that by increasing TComb. The easiest way to do that is to add buffers in the data path. With this you can get incremental and precise control over the delay. If you want to do logic changes to solve this problem, what logic will you add in the data path. Any logic changes proposed will only complicate your problems.
 
That was a wonderful explanation. Thanks Sharath. :)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top