Hold time occurs if this condition is violated
(Tcombo + tcq ) >> Thold.
If this condition is violated, it implies tht the combo delay is less than the hold time of the flop. So the data from the launch flop reaches faster to the D pin of the Capture flop ( evn b4 the clock can arrive), hence the data will be captured in the same clk cycle rather than the nxt one ... this is "hold" time violation !
fixing hold time viol :
1. Endpoint fixing : Putting a Buffer @the D pin of the "capture" flop
2. Start point fixing : Putting a Buffer @the D pin of the "launch" flop
3. intermediate fixing: trail and error method of Putting a Buffer in the combo logic to fix the violation
most violations get fixed by step 1 itself or else within step2 !!
Step 1 fixes of the hold viol for multiple start points which have one endpoint
Step 2 fixes of the hold viol for one starting point paths which have multiple endpoint