← 问题记录——李锐博恩

推荐答案 测试一下

建立时间和保持时间问题?

问答题 中等 笔试真题问答题

参考答案

建立时间(setup time)是指在时钟有效沿到来之前,数据输入必须保持稳定的最短时间。如果数据在建立时间内发生变化,会导致触发器无法正确捕获数据。同样地,保持时间(hold time)是指在时钟有效沿到来之后,数据必须保持不变的最短时间。若保持时间不满足,数据变化会影响当前采样结果。这两者共同决定了触发器的正确采样窗口。当建立时间或保持时间不满足时,电路会进入亚稳态(metastability),导致输出不确定,甚至在整个系统中传播错误。在静态时序分析(STA)中,通过计算时序路径的data arrival time与clock arrival time的差值来检查建立时间裕量(setup slack = required time - arrival time,需≥0)和保持时间裕量(hold slack = arrival time - required time,需≥0)。常见解决方法包括:对于建立时间违规,可减少组合逻辑级数、插入流水线、调整时钟频率/相位、使用更快的触发器或优化逻辑综合;对于保持时间违规,可插入缓冲器延迟数据路径、增加组合逻辑、或调整时钟偏斜(clock skew)。在FPGA设计中,还需注意时钟抖动、时钟偏斜等非理想因素。面试中常考概念包括:建立与保持时间的定义、亚稳态产生机理与消除方法、时序约束的写法(如set_input_delay, set_output_delay)、以及如何通过EDA工具报告分析时序违规。

涉及知识点

  • 建立时间与保持时间定义
  • 亚稳态产生与消除
  • 静态时序分析(STA)基本概念
  • 建立/保持时间违规的修复方法
  • 时序约束与时钟偏斜影响
← 上一题
登录后反馈错题
下一题 →