建立时间和保持时间约束

文章详细解释了数字电路中建立时间和保持时间的基本概念,它们是确保数据正确采样和传输的关键。建立时间是指数据在时钟触发前需稳定的时间,而保持时间则是时钟触发后数据需保持稳定的时间。这两个时间参数与组合逻辑延迟、时钟周期和时钟偏移密切相关,若不满足约束可能导致亚稳态和传输错误。文章还讨论了解决方法和优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

建立时间就是时钟触发事件来临之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。

保持时间就是时钟触发事件来临之后,数据需要保持稳定的最小时间,以便数据能够被电路准确的传输。

建立时间和保持时间的由来:

G1~G4 与非门是维持阻塞电路,G5~G6 组成 RS 触发器。

时钟直接作用在 G2/G3 门上,时钟为低时 G2/G3 通道关闭,为高时通道打开,进行数据的采样传输。

但数据传输到 G2/G3 门之前,会经过 G4/G1 与非门,将引入时间延迟。引入建立时间的概念,就是为了补偿数据在 G4/G1 门上的延迟。即时钟到来之前,G2/G3 端的输入数据需要准备好,以便数据能够被正确的采样。

数据被时钟采样完毕后,传输到 RS 触发器进行锁存之前,也需要经过 G2/G3 门,也会引入延迟。保持时间就是为了补偿数据在 G2/G3 门上的延迟。即时钟到来之后,要保证数据能够正确的传输到 G6/G5 与非门输入端。

如果数据在传输中不满足建立时间或保持时间,则会处于亚稳态,导致传输出错。

约束条件

建立时间约束条件

下图是一个典型的触发器到触发器之间的数据传输示意图。其中 “Comb” 代表组合逻辑延迟,“Clock Skew” 表示时钟偏移,数据均在时钟上升沿触发。

时钟到来之前,数据需要提前准备好,才能被时钟正确采样,要求数据路径 (data path) 比时钟路径 (clock path)更快,即数据到达时间(data arrival time)小于数据要求时间(data required time)。则建立时间需要满足的表达式为:

Tcq + Tcomb + Tsu <= Tclk + Tskew

各个时间参数说明如下:

  • Tcq: 寄存器 clock 端到 Q 端的延迟;
  • Tcomb: data path 中的组合逻辑延迟;
  • Tsu: 建立时间;
  • Tclk: 时钟周期;
  • Tskew: 时钟偏移。

对上式进行变换,则理论上电路能够承载的最小时钟周期和最快时钟频率分别为:

最小时钟周期 = Tcq + Tcomb + Tsu - Tskew
最快时钟频率 = 1 / (Tcq + Tcomb + Tsu - Tskew)

保持时间约束条件

时钟到来之后,数据还要稳定一段时间,这就要求前一级的数据延迟(data delay time)不要大于触发器的保持时间,以免数据被冲刷掉。则保持时间需要满足的表达式为:

Tcq + Tcomb >= Thd + Tskew

各个时间参数说明如下:

  • Tcq: 寄存器 clock 端到 Q 端的延迟;
  • Tcomb: data path 中的组合逻辑延迟;
  • Thd: 保持时间;
  • Tskew: 时钟偏移。

余量与解决办法

建立时间余量: T + Tskew - Tsetup - Tco - Tcomb > 0

措施:

  • T:降低频率
  • Tskew:布局布线
  • Tcomb :减小组合逻辑延迟,代码优化
  • Tsetup、 Tco:厂家决定

保持时间余量: Tco + Tcomb - Tskew - Thold > 0

措施:

  • T:与频率无关
  • Tcomb :增加组合逻辑延迟
  • Tskew:布局布线
  • Thold、 Tco:厂家决定

此例是一个触发器自身到自身的反馈,一定要分析好数据路径和时钟路径,下面再看一道此类型的扩展例题。

例4:

  • (1)以下电路固有的建立时间和保持时间?
  • (2)该电路最高的工作频率?

解:

该电路数据路径和时钟路径上均有延迟,为达到与触发器相同建立时间和保持时间的条件约束,则触发器 D 端和时钟端 CK,以及等效的数据端 Data 和时钟端 Clock 时序图如下(_):

(1) 由图可知:

该电路固有的建立时间为:2.1 + 2 - 1.2 = 2.9ns

固有的保持时间为:1.2 + 1.5 - 2.1 = 0.6ns

由此可知,数据路径的延迟会增加电路固有的建立时间,但是会减少电路固有的保持时间。而时钟偏移会减少电路固有的建立时间,增加电路固有的保持时间。

(2) 此电路仍然是自身到自身的反馈电路。所以没有时钟偏移,也无需考虑 T1= 0.9ns 的延迟。所以最高工作频率为: 1 / (1.8 + 1.2 + 2)ns = 200MHz

推荐一个文章
静态时序分析——Time Borrowing浅析

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值