返回文章列表
veriflowPrimeTime时序签核STASynopsys

PrimeTime 时序签核流程

2024-06-1812 min

概述

PrimeTime(PT)是 Synopsys 的静态时序分析工具,用于数字设计的时序签核(Sign-off)。本文基于实际项目脚本,详解各阶段分析流程。

完整流程阶段

1. GCA 检查(Global Clock Analysis)

# 10.gca.tcl
source 10.gca.tcl

# 初始化时钟分析环境
initialize_timing_environment

# 全局时钟检查
report_clock -skew -gca

2. DMSA 预 CTS 检查

# 11.dmsa_prects.tcl
source 11.dmsa_prects.tcl

# 预时钟树分析
set_analysis_type -setup -hold

# 检查时钟定义
verify_clock -type primary

3. DMSA 预时序分析

# 13.dmsa_pretm.tcl
source 13.dmsa_pretm.tcl

# 时序路径分析
report_timing -max_paths 10
report_constraint -all

4. DMSA 初始化检查

# 15.dmsa_initcheck.tcl
source 15.dmsa_initcheck.tcl

# 设计规则检查
check_timing

# 异步域检查
report_clock_domain_crossing

5. HiEDA 分析

# 16.hida.tcl
source 16.hida.tcl

# HiEDA 功耗分析
report_power -hier -format html

6. PRESTA 分析

# 17.presta.tcl
source 17.presta.tcl

# SI 和时序综合分析
presta_analysis -si_enable

7. 时钟树综合后分析

7.1 子模块分析

# 30.sub.tcl
source 30.sub.tcl

# 各子模块时序分析
foreach block $sub_blocks {
    current_design $block
    report_timing -max_paths 5
}

7.2 时钟树时钟域交叉

# 31.dmsa_clksi.tcl
source 31.dmsa_clksi.tcl

# CDC 检查
verify_clock_domain_crossing -filter {is_no_change}

7.3 VT Swap 优化

# 33.dmsa_vtswap.tcl
source 33.dmsa_vtswap.tcl

# 电压阈值交换
setvt_optimize -setup -hold

7.4 时序驱动优化

# 34.dmsa_timdrv.tcl
source 34.dmsa_timdrv.tcl

# 时序优化
optimize_timing -effort high

7.5 Setup 修复

# 35.dmsa_setup.tcl
source 35.dmsa_setup.tcl

# Setup 违例修复
fix_setup -effort high

7.6 时序修复

# 37.dmsa_timfix.tcl
source 37.dmsa_timfix.tcl

# 剩余违例修复
repair_timing -setup -hold

8. XTOP 分析

# 38.dmsa_xtop.tcl
source 38.dmsa_xtop.tcl

# 顶层时序分析
current_design $top_module
report_timing -max_paths 20

9. 签核分析

# 39.dmsa_signoff.tcl
source 39.dmsa_signoff.tcl

# 最终签核时序分析
set_analysis_type -setup -hold
report_timing -signoff
report_constraint -signoff -all

10. STA 分析

# 41.sta.tcl
source 41.sta.tcl

# 静态时序分析
report_timing -format text

11. Context 分析

# 42.dmsa_context.tcl
source 42.dmsa_context.tcl

# context 时序分析
report_timing -context 2

12. 动态时序分析

# 43.dmsa_postetm.tcl
source 43.dmsa_postetm.tcl

# ETM 分析
report_timing -etm

13. Hyperlux 功耗分析

# 44.dmsa_hyperscale.tcl
source 44.dmsa_hyperscale.tcl

# 功耗分析
report_power -hier

14. 后 STA 分析

# 45.poststa.tcl
source 45.poststa.tcl

# 额外时序检查
report_timing -net -max_transition
report_flying_wire

15. SDF 生成

# 46.sdf.tcl
source 46.sdf.tcl

# 生成 SDF 文件
write_sdf -version 2.1 -module $top_module

16. Voltus 功耗分析

# 47.4voltus.tcl
source 47.4voltus.tcl

# 功耗分析
report_power -format html -file power_report.html

17. RedHawk 热分析

# 48.4redhawk.tcl
source 48.4redhawk.tcl

# EM/热分析
report_electromigration

关键分析命令

Setup 检查

set_analysis_type -setup
report_timing -max_paths 10 -setup

Hold 检查

set_analysis_type -hold
report_timing -max_paths 10 -hold

时钟域交叉

report_clock_domain_crossing -filter {is_violating}

常见问题与解决方案

| 问题 | 原因 | 解决方案 | |------|------|----------| | Setup 违例 | 路径过长 | 流水线化,物理优化 | | Hold 违例 | 时钟树不平衡 | 添加 buffer,调整延迟 | | CDC 违例 | 异步路径 | 添加同步器 | | SI 干扰 | 耦合电容 | 添加 shielding | | 功耗过高 | 切换频繁 | 使用 MTCMOS |

签核标准

# 时序签核标准
set timing_s恶 格 [list \
    max_setup_slack   0.0 \
    max_hold_slack     0.0 \
    max_transition     0.1 \
    max_capacitance    0.2 \
]

输出报告

| 报告类型 | 命令 | 用途 | |----------|------|------| | 时序报告 | report_timing | 路径分析 | | 约束报告 | report_constraint | 约束满足度 | | 功耗报告 | report_power | 功耗分析 | | 时钟报告 | report_clock | 时钟树信息 | | CDC 报告 | report_clock_domain_crossing | 异步路径 |

最佳实践

  1. 多角分析:覆盖所有 PVT 角
  2. SI 感知:关键路径考虑 SI 影响
  3. 签字确认:每个阶段有明确责任人
  4. 版本控制:保存完整分析环境

总结

PrimeTime 时序签核是芯片设计的关键环节,需要全面的分析和严格的检查流程确保时序正确性。