Skip to content

Latest commit

 

History

History
45 lines (35 loc) · 2.86 KB

内核的时序优化.md

File metadata and controls

45 lines (35 loc) · 2.86 KB

内核的时序优化-优化到233MHz的秘密

什么是时序问题

理想的数字逻辑设计

在理想的数字逻辑设计模型中,器件表现出以下特性:

  • 触发器输出无延迟
  • 组合逻辑单元无延迟
  • 线网信号传输无延迟
  • 触发器在有效时钟沿的前一瞬间(0-)采样,在有效时钟沿的后一瞬间(0+)输出 触发器和反相器
    以一个触发器和一个反相器为例,触发器的输入输出不断翻转,电路的理想波形如下所示:
    触发器和反相器的理想波形
    由于是理想元件,所有的延迟Txx都无限趋向于0,建立时间/保持时间根本不存在,不会发生任何的时序问题。

现实的数字逻辑设计

理想的数字逻辑设计模型只是一种抽象的问题分析工具,现实的数字电路需要考虑更多“模拟”的问题:

  • 触发器输出存在延迟Tc2q
  • 组合逻辑单元存在延迟Tcomb
  • 线网信号传输存在延迟Twd1,Twd2
  • 触发器采样需要满足建立时间Ts和保持时间Th的要求

同样是一个触发器和一个反相器的电路,实际波形会呈现更加真实的特性:
触发器和反相器的现实波形
其中,Q1为触发器的输出端Q,Q2为反相器的输入端,D1为反相器的输出端,D2为触发器的输入端D。
如图所示,D2信号经过了线网和组合逻辑,相对于CLK的触发沿已经延迟了1/3个周期,这是理想元件无法产生的现象。
这不禁让人思考:如果触发沿到D2的延迟继续扩大,接近甚至超过一个周期,电路是否还能正常工作?

建立/保持时间

聪明的同学应该可以看出,如果触发沿到D2的延迟超过一个周期,电路无法工作。
那么,是不是只要延迟小于一个周期,就能正常工作了?
也不是哦,还需要考虑建立时间和保持时间。

  • 建立时间:时钟触发沿之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。
  • 保持时间:时钟触发沿之后,数据需要保持稳定的最小时间,以便数据能够被电路准确的传输。
  • 通俗解释:时钟触发沿前后,数据需要在一小段时间内保持不变,这个时间窗口就是建立时间和保持时间。

建立时间与保持时间是相互制约的。

时序逻辑设计,电路必须满足建立/保持时间的要求。
静态时序分析(STA),检查电路是否满足建立/保持时间。
如果电路不满足建立/保持时间的要求,那么就有概率产生亚稳态现象,导致数字系统无法稳定运行。

解决时序问题的方法