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.
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.