SETUP HOLD STEP BY STEP
there are different ways that we can follow to fix setup.
1) reduce freq
2) reduce comb delay
3) reduce clk-q delay
4) play with skew
(A)
if your design is not operating at the required frequency whats the use. it should be the last option. atleast one should not think of this option and try to fix (see below) setup violations even early stages of the design cycle.
(B)
"reduce comb delay" - one should think of this option first. but should not effect the functionality. logic restructuring, logic duplicating, critical path optimization techniques etc
(C)
"reduce clk-q delay" --- this is fixed for a specific library cell. we cannot change the delay of it. all we can do is to select another cell of same type from the lib that has eevn better timing characterstics to meet your timing. its simply upsizing/downsizing of the cells. just u play with it.
one can avail either of (B),(C) options.
(D) last comes, playing with skew. this is last cos, it might effect the hold time.
i dont consider "reduce freq" is a valid option to fix setup. ofcourse it will fix but at the cost of reducing the frequecy. not at all suggestable.
regards,
Sunil Budumuru