推荐答案
测试一下
题目
请说明setup/hold time violation ,并画图说明(10 分)
参考答案与知识点
参考答案
建立时间(setup time)是指数据在时钟有效沿到来之前必须保持稳定的最短时间,保持时间(hold time)是指数据在时钟有效沿之后必须保持稳定的最短时间。建立时间违例(setup violation)指数据在时钟沿到来之前未能提前达到稳定,导致无法正确捕获;保持时间违例(hold violation)指数据在时钟沿之后过快变化,导致采样数据出错。
图1:理想时序示意图。时钟clk上升沿,数据D在setup time窗口内稳定,hold time窗口内仍稳定,输出Q正确。
图2:setup violation。数据D在clock上升沿前变化太晚,setup time窗口内不稳定,导致Q可能出现亚稳态或错误值。
图3:hold violation。数据D在clock上升沿后变化太早,hold time窗口内不稳定,同样导致Q出错。
产生违例的原因:setup violation多由组合逻辑路径过长、时钟频率过高、时钟偏斜(skew)过大引起;hold violation多由组合逻辑延迟过短、时钟偏斜过大(如时钟树不平衡)导致数据过快传播。
修复方法:setup violation可通过降低时钟频率、插入流水线、优化组合逻辑、减少路径延迟、减小时钟偏斜等解决;hold violation可通过增加缓冲器延迟、插入延迟单元、调整时钟偏斜(如人为增加数据路径延迟)等解决。
画图说明:需绘制三个时间轴对齐的波形图,标注clock上升沿、setup time窗口、hold time窗口、数据变化边沿。第一个图显示数据边沿在setup window前稳定且持续至hold window后;第二个图显示数据边沿进入setup window内;第三个图显示数据边沿在hold window内变化。
涉及知识点
- 建立时间(setup time)定义
- 保持时间(hold time)定义
- 时序违例原因与修复方法
- 时序图绘制要点