Timing analysis and CDC
To fix a hold violation, delay buffers are inserted in the data path. What is the most important thing to check when doing this?
- AThat the same amount of delay is also added to the capturing flip-flop's clock to keep the skew at zero
- BThat the added delay does not leave the same path short of setup slack
- CThat high-drive buffers are inserted to keep the delay as small as possible
Show answer and explanation
Answer: B. That the added delay does not leave the same path short of setup slack
A hold violation means the data arrives too early, so delay is added to the data path to make it arrive later. However, the added delay also delays the arrival time for setup. A buffer that improves hold by 0.05 ns at the fast corner can add 0.1 ns or more of delay at the slow corner, so buffers must be inserted only within the available setup margin. Adding the same delay to the capture clock cancels out the improvement, and raising the drive strength to reduce delay defeats the purpose.