本帖最后由 atomdust 于 2016-5-5 20:40 编辑
回复 23# dada3
我的理解是,假如你设定的multicycle 是4,就是说两个FF之间的组合逻辑的迟延在大于3个时钟周期小于4个时钟周期,检查hold的原则就是保证你要读取的数据不被下一个发射沿冲掉。0时刻发射一个数据,假设经过3.7个时钟周期到达接收端,setup时序是没问题的。现在关心的是接收端的第4个时钟上升沿时数据不被冲掉。那么离他最近的就是第3个时钟上升沿。你要保证发射端第4个上升沿发射的数据没有冲掉此时正在读取的数据。
在第3个时钟沿检查hold就是要求delay大于3个时钟周期,再算上clk到d端的setup。
=============增加一幅图帮助理解
在FPGA中,最重要的是检查setup time,如果发生hold time violation,多半是因为clock skew引起。比如:
|