为什么setup检查下一个沿而hold检查当前沿

做数字电路设计的可能都见过图一所示的setup和hold时间检查,从图中可以明显看出,setup time检查下一个沿,而hold time检查同一个沿。那么这是为什么呢 ?
图1
数字电路的工作原理
以数字电路设计常见的状态机为例,下一个状态的值总是由当前状态加一些判断条件决定。为了保证下一个状态值的正确,新的状态值要在下一个时钟沿被正确采样,同时不能被当前时钟沿采样。
因此,setup time 的检查是为了保证数据在下一个时钟沿被正确采样,而 hold time 的检查是保证数据不被当前沿采样或破坏,满足了这两点,数字电路便能正常工作。
hold time violation
考虑一个两级移位寄存器,其launch clock 和 capture clock如图2所示。可以看到clock skew非常大,大于半个时钟周期。假设数据的延迟小于半个时钟周期,那么 hold time 的检查公式必然不满足, 即 tcq + tcomb < tclk_skew + thold。
对于这个两级移位寄存器,我们希望的值是 00(cycle0), 01(cycle1), 10(cycle2),00(cycle3)。但是由于第二级寄存器有hold time violation,数据在当前沿就被采样,那么我们实际看到的值为 00(cycle0),11(cycle1),00(cycle2),00(cycle3),完全是错误的结果。
图2
时序违反一定会有亚稳态发生吗
不一定。寄存器进入亚稳态有两个前提条件,一是数据要发生变化,二是数据的变化要发生在setup time和hold time限制的范围内。以上述图2为例,假设数据的变化没有出现在setup和hold time限制的范围内,尽管是有hold time violation,也是没有亚稳态发生的。


Microchip为流媒体音频新增蓝牙模块RN52
PWM与可控硅调光孰好孰坏?比比就知道
螺栓松动原因分析
基于Zigbee技术的LED灯光控制器的设计及应用
联想Z5 Pro GT 855版延期发售 苹果AirPower细节曝光
为什么setup检查下一个沿而hold检查当前沿
利用无人机数据服务加速数字化落地
华为荣耀magic发布会现场真机上手:网传黑科技都成现实 元芳你怎么看?
一文看懂钛酸锂电池技术在国内外的发展状况及发展方向
RFID技术在变电设备巡检中的应用
阻抗继电器引入第三相电压的目的
三星S8真机曝光:这才是你们想要的三星S8!
激光打标机的分类_激光打标机的特点
芯片封装工艺流程介绍
CS5211代替CH7511 eDP转LVDS芯片的方案
NI推出最新高性能软件和硬件组件,构建完整的测试系统
如何使用ThreadLocal来避免内存泄漏
在线修复选粉机动密封轴径磨损的详细教学
苹果投屏软件怎么使用
神经网络如何助力人工智能算法