【数字IC设计-时序分析与约束(一)】

数字IC设计-时序分析与约束(一)

1、时序的关键词

经典的时序分析模型,如图所示(摘自网络):
在这里插入图片描述

图1 时序分析模型

在图1中,表示了由寄存器a到寄存器b的时序模型,首先需要明确的是:

  1. launch edge :(发送沿)表示发送数据的寄存器的源时钟处于边沿时的状态
  2. capture edge:(捕获沿)表示捕获数据的寄存器的目标时钟源处于边沿状态
  3. source clock:(源时钟)也成为发送时钟launch clock
  4. destination clock: =capture clock 捕获时钟
  5. setup requirement: 建立时间要求 约束发送沿与捕获沿之间的时间关系要求
  6. setup relationship : 表示经过时序分析工具验证的建立时间检查
  7. hold requirement:定义保持约束的发送沿与捕获沿之间的关系
  8. hold relationship:保持时间关系,表示经历时序分析工具验证的保持时间检查

2、时序的路径

为了更清楚的分析时序路径,如下图所示:
在这里插入图片描述

图2 时序分析路径

根据上图,主要的时序路径主要分为以下四种主要路径:

1. 输入端口到内部时序单元的路径
在从输入端口到到时序单元的路径中,数据:
9. 在器件外部由开发板上的时钟发送
10. 经延迟后到达器件端口,此延迟为输入延迟(Synopsys 设计约束 (SDC) 定义)
11. 通过器件内部逻辑传输后到达由目标时钟进行时钟设置的时序单元

2. 从时序单元到时序单元的内部路径
从时序单元到时序单元的内部路径中,数据:

  1. 在器件内部由时序单元发送,该时钟单元的时钟由源时钟进行设置
  2. 通过部分内部逻辑传输后到达由目标时钟设置的时序单元。

3. 从内部时序单元到输出端口的路径
在从内部时序单元到输出端口的路径中,数据:

  1. 在器件内部由时序单元发送,该时钟单元的时钟由源时钟进行设置。
  2. 传输穿过部分内部逻辑,然后到达输出端口。
  3. 经过称为输出延迟(SDC 定义)的附加延迟后,由板上时钟捕获。

4. 从输入端口到输出端口的路径

  1. 在从输入端口到输出端口的路径中,数据无需锁存即可遍历整个器件。此类路径通常也称为输入到输出路径 (in-to-out
    path)。输入和输出延迟参考时钟可能是虚拟时钟,也可能是设计时钟。

在图2中,CLK0作为DIN输入和DOUT输出延迟约束的开发板时钟。

3、“Timing Path”的组成部分

在这里插入图片描述

图3 Timing Path

每一条时序路径均由三个部分组成:

1. 源时钟路径
源时钟路径是源时钟从源点(通常为输入端口)到发送时序单元的时钟管脚的路径。对于始于输入端口的时序路径,不
存在源时钟路径。

2. 数据路径
数据路径表示在其中传输数据的时序路径(介于路径起点与路径端点之间)。适用如下定义:
(1) 路径起点为时序单元时钟管脚或数据输入端口;
(2) 路径端点为时序单元数据输入管脚或数据输出端口。

3. 目标时钟路径
目标时钟路径表示目标时钟从源点(通常为输入端口)到捕获时序单元的时钟管脚的路径。对于终止于输出端口的时序
路径,不存在目标时钟路径。

发送沿和捕获沿
在时序单元或端口之间进行传输时,数据:
• 从源时钟的其中一个时钟沿(称为发送沿)发送。
• 由目标时钟的其中一个时钟沿(称为捕获沿)捕获。
在典型的时序路径中,数据在单一时钟周期内的 2 个时序单元之间进行传输。在此情况下:
(1) 发送沿发生于 0 ns;
(2) 捕获沿发生于 1 个周期后。

4、时序分析的关键概念

1. 最大和最小延迟分析
时序分析属静态验证,旨在验证在硬件上加载并运行设计后,其时序行为的可预测性。它会将各种制造和环境变化因素
组合到延迟模型中并按时序角及其变化量加以分组,将所有这些要素一并纳入考量范围。针对所有建议的时序角分析时
序即可,针对每个角,按最消极的条件执行所有检查。例如,以 AMD FPGA 为目标的设计必须通过以下 4 项分析:

• 慢速角 (Slow Corner) 中的最大延迟分析
• 慢速角 (Slow Corner) 中的最小延迟分析
• 快速角 (Fast Corner) 中的最大延迟分析
• 快速角 (Fast Corner) 中的最小延迟分析

2. 含建立时间和恢复时间检查的最大延迟
3. 保持和移除检查的最小延迟
4. 建立/恢复(最大延迟分析)
5. 建立/恢复(最小延迟分析)
6. 建立/恢复关系
仅对 2 个时钟之间最消极的建立关系执行建立时间检查。默认情况下,此项检查对应于发送沿与捕获沿之间最小正增
量。以 2 个触发器之间的路径为例,这 2 个触发器易受其各自时钟的上升沿影响。此路径的发送沿和捕获沿均仅为时
钟上升沿。
在这里插入图片描述

图4 建立关系
其时钟具体定义如下:

• clk0 的周期为 6 ns,首个上升沿位于 0 ns,下降沿位于 3 ns。
• clk1 的周期为 4 ns,首个上升沿位于 0 ns,下降沿位于 2 ns。
如下图所示,存在 2 个唯一的建立关系:Setup(1) 和 Setup(2)。
从 clk0 到 clk1 的最小正增量为 2 ns,对应于 Setup(2)。“Common Period”(公共周期)为 12 ns,对应于 2 个时
钟的 2 个同步对齐之间的时间。(表示为12ns的时候两个时钟的上升沿对齐了)。

如果在 2 个时钟的 1000 个周期内找不到公共周期,那么这 1000 个周期的最差建立关系将用于时序分析。对于此类情况,这 2 个时钟即称为不可扩展的时钟,或者不含公共周期的时钟。分析很可能不对应于最消极的场景。您必须审查这些时钟之间的路径,以评估其有效性,判定是否可将其改为作为异步路径来处理。

当路径要求已知后,即可引入时钟不确定性和建立时间以计算裕量。典型裕量公式为:

  1. Data Required Time (setup)(数据必需时间(建立))= capture edge time(捕获沿时间)+destination clock path delay(目标时钟路径延迟)-clock uncertainty(时钟不确定性)- setup time(建立时间)
  2. Data Arrival Time (setup)(数据到达时间(建立))=launch edge time(发送沿时间)+ source clock path delay(源时钟路径延迟)+ datapath delay(数据路径延迟)
  3. Slack (setup)(裕量(建立))=Data Required Time(数据必需时间)- Data Arrival Time(数据到达时间)

如上述公式所示,当数据到达时间早于必需时间时,建立裕量为正值。
恢复检查类似于建立检查,但它适用于异步管脚(如预置或清除)。关系建立方式与建立相同,裕量公式也相同(只是
使用恢复时间取代建立时间)。

7. 保持/移除关系
在这里插入图片描述

图4 保持关系

保持时间检查(也称为保持关系)与建立关系直接相连。虽然建立时间分析可确保在最消极的场景中仍可安全捕获数
据,但保持关系可确保:

  • 由建立发送沿所发送的数据不会被位于建立捕获沿之前的活动沿(下图中分别对应于建立沿 S1 和 S2 的 H1a 和H2a)所捕获。
  • 由位于建立发送沿之后的下一个活动源时钟沿发送的数据不会被建立捕获沿(下图中分别对应于建立沿 S1 和 S2 的
    H2a 和 H2b)所捕获。

保持分析期间,时序引擎仅报告任意 2 个时钟之间最消极的保持关系。最消极的保持关系并非始终与最差建立关系关联。时序引擎必须复查所有可能的建立关系及其对应的保持关系才能识别最消极的保持关系。仍以建立关系示例中的路径为例。存在 2 项唯一的建立关系。
最高保持要求为 0 ns,对应于源时钟和目标时钟的首个上升沿。
当路径要求已知后,即可引入路径延迟、时钟不确定性和保持时间以计算裕量。典型裕量公式为:

  • Data Required Time (hold) = capture edge time + destination clock path delay + clock uncertainty + hold time,
    数据必需时间(保持)= 捕获沿时间 + 目标时钟路径延迟 + 时钟不确定性 + 保持时间
  • Data Arrival Time (hold) = launch edge time + source clock path delay + datapath delay
    数据到达时间(保持)= 发送沿时间 + 源时钟路径延迟 + 数据路径延迟
  • Slack (hold) = Data Arrival Time - Data Required Time
    裕量(保持)= 数据到达时间 -数据必需时间

如上述公式所示,当新数据到达时间晚于必需时间时,保持裕量为正值。
移除检查类似于保持检查,但它适用于异步管脚(如预置或清除)。关系建立方式与保持相同,裕量公式也相同(只是使用移除时间取代保持时间)。
8. 路径要求
路径要求表示时序路径的捕获沿与发送沿之间的差异。
仍以上一节中的路径和时钟为例,存在如下路径要求:

Setup Path Requirement (S1) = 1*T(clk1) - 0*T(clk0) = 4ns
Setup Path Requirement (S2) = 2*T(clk1) - 1*T(clk0) = 2ns
对应的保持时间关系为: 对应于建立时间 S1
Hold Path Requirement (H1a) = (1-1)*T(clk1) - 0*T(clk0) = 0ns
Hold Path Requirement (H1b) = 1*T(clk1) - (0+1)*T(clk0) = -2ns
对应于建立时间 S2
Hold Path Requirement (H2a) = (2-1)*T(clk1) - 1*T(clk0) = -2ns
Hold Path Requirement (H2b) = 2*T(clk1) - (1+1)*T(clk0) = -4ns
执行的时序分析仅采用 2 项最消极的要求。在上例中,这 2 项要求分别为: • 建立时间要求 S2 • 保持时间要求 H1a
  1. 时钟相移
  2. 时钟偏差和不确定性
  3. 脉冲宽度检查

后面还差一点收尾

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值