时序预算计算(Calculating Timing Budgets)

Innovus时序预算计算方法

Innovus 依据路径段的长度比例为分区分配时序预算,对于时序裕量为正(positive slack)和负(negative slack)的路径,计算方式略有不同。以下是具体说明:

一、核心参数定义
  • SD(Segment Delay):路径段延迟(如模块内部或顶层网络的延迟)。
  • TD(Total Delay):路径总延迟(所有路径段延迟之和)。
  • AT(Available Time):总可用时间(如时钟周期减去固定延迟,或多周期路径的周期数)。
  • HT(Hold Time):保持时间(信号不允许变化的时间)。
  • BB(Baseline Budget):基准预算(分配给各路径段的时序目标)。
  • PS(Positive Slack):正时序裕量(路径实际延迟小于可用时间的差值)。
二、负时序裕量路径(Negative Slack)的预算计算

当路径时序违规(实际延迟 > 可用时间)时,预算按比例分配以优先满足关键路径。

1. 建立时间检查(Setup Check,max budgeting)

公式:
BB(neg) = (SD / TD) × AT

示例

  • 路径包含模块 A(3ns)、模块 B(2ns)、顶层网络 C(1ns),总延迟 TD = 3 + 2 + 1 = 6ns,可用时间 AT = 5ns
  • 模块 A 的预算:3/6 × 5 = 2.5ns
  • 模块 B 的预算:2/6 × 5 ≈ 1.67ns
  • 顶层网络 C 的预算:1/6 × 5 ≈ 0.83ns
  • 衍生约束:
    • 模块 A 的输出延迟 = 模块 B 预算 + 网络 C 预算 = 1.67 + 0.83 = 2.5ns
    • 模块 B 的输入延迟 = 模块 A 预算 + 网络 C 预算 = 2.5 + 0.83 ≈ 3.33ns
2. 保持时间检查(Hold Check,min budgeting)

公式:
BB(neg) = (SD / TD) × (AT + HT)

  • 若 AT + HT < 0,则不使用比例值,直接采用时序分析中的输入 / 输出延迟。
三、正时序裕量路径(Positive Slack)的预算计算

当路径时序有冗余(实际延迟 < 可用时间)时,预算会分配部分裕量以平衡各路径段。

1. 建立时间检查(Setup Check,max budgeting)

公式:
BB(pos) = SD + (SD / TD) × PS

示例

  • 路径包含模块 A(1ns)、模块 B(1ns)、顶层网络 C(1ns),总延迟 TD = 3ns,可用时间 AT = 5ns,正裕量 PS = 5 - 3 = 2ns
  • 各路径段预算:1 + (1/3) × 2 ≈ 1.66ns
2. 保持时间检查(Hold Check,min budgeting)

公式:
BB(pos) = SD - (SD / TD) × PS

四、特殊规则
  1. 虚拟缓冲延迟
    正裕量路径会添加虚拟缓冲延迟(通常 3 个),以预留优化空间。邻接设计(abutted designs)添加 2 个,穿通路径(feedthrough paths)则将 3 个缓冲延迟分配到所有路径段。
  2. 保持时间特性
    保持时间不同于建立时间,它代表信号不允许变化的时间,计算时需结合可用时间和路径段比例。
总结

时序预算计算通过比例分配机制,确保负裕量路径优先满足关键时序要求,正裕量路径合理分配冗余以平衡设计。这种方式既保证了时序收敛的可行性,又为后续优化预留了空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值