PrimeTime生成.lib竟暗藏PG添加Bug

在primeTime里生成lib,如何能带上相关的pg信息?

这是一位群友的发问,就这个问题总结了下可能的原因和解决步骤:

概念

PrimeTime是Synopsys的静态时序分析工具,通常用于在设计的各个阶段进行时序验证。

1)库文件(.lib)指时序库,通常包含单元延迟、功耗等信息。

2)PG信息指电源和地网络的连接情况,这在物理设计中和功耗分析中非常重要。

在生成lib的时候包含PG信息,也就是说,在生成的时序库中需要包含电源和地引脚的相关信息。这是因为在低功耗设计中,需要明确每个单元的电源和地连接,以便进行电压域分析、功耗计算或者电迁移检查等。

标准库文件(.lib)的结构

Liberty格式的库文件中,每个单元(cell)会定义其输入输出引脚、时序弧、功耗信息等。电源和地引脚通常在库中通过pg_pin或related_power_pin等属性来定义。例如,一个标准单元的VDD和VSS引脚会被声明为pg_pin,并关联到对应的电压值。

那么问题来了,当使用PrimeTime生成.lib文件时,默认情况下是否包含这些PG信息?如果用户发现生成的库缺少这些信息,需要命令或选项来启用。

检查步骤

  1. 确保在PrimeTime的环境中,已经正确读入了包含PG信息的网表或物理信息。比如,如果库的源数据中没有PG引脚的定义,生成的时候自然也不会包含。

确保输入给PrimeTime的库文件(如.db或.lib)已正确定义了电源和地引脚。在Liberty格式中,PG引脚应使用pg_pin声明,例如:

复制代码
cell (AND2) {         pg_pin (VDD) {                 pg_type : primary_power;                 voltage_name : "VDD";         }         pg_pin (VSS) {                 pg_type : primary_ground;                 voltage_name : "VSS";         }         pin (A) { ... }         pin (B) { ... }         pin (Y) { ... } }
  1. 检查PrimeTime的文档,特别是关于生成.lib的命令,例如write_lib。查看是否有相关的选项来包含PG引脚信息。

使用write_lib命令导出库时包含PG信息

在PrimeTime中,使用write_lib命令并添加-include_pg_pins选项以保留PG引脚信息:

复制代码
write_lib -output my_library.lib -include_pg_pins current_library
    • -include_pg_pins:确保导出的.lib文件包含所有pg_pin定义。

    • 替换current_library为实际处理的库名称。

  1. 可能需要使用特定的命令属性,在write_lib时指定包含pg_pin或者电源信息。

可能的解决方案是,在生成库时使用write_lib命令,并设置相关参数,如-include_pg_pins或者类似的选项。例如:

复制代码
write_lib -output mylib.lib -include_pg_pins my_cell_library

另外,需要确保在库的原始定义中,已经正确标注了pg_pin。例如,在库的Liberty文件中,每个单元的电源和地引脚应该被声明为pg_type,如:

复制代码
pg_pin (VDD) {pg_type : primary_power;voltage_name : "VDD";}pg_pin (VSS) {pg_type : primary_ground;voltage_name : "VSS";}
  1. 验证生成的.lib文件

检查输出文件(如my_library.lib)是否包含pg_pin部分,例如:

复制代码
library (my_library) {     ...          cell (AND2) {                  pg_pin (VDD) {                    ...          }                  pg_pin (VSS) {                    ...          }     ...          } }

如果生成库的过程没有自动包含这些信息,可能需要手动确保这些定义被包含进去。或者,在PrimeTime中是否有命令可以在生成库时保留或添加这些属性。

另外,需要考虑库的来源。如果是来自综合或布局布线工具生成的库,可能需要确保上游工具在生成库时已经正确处理了PG信息。如果PrimeTime只是用于提取时序信息,可能还需要物理信息,比如通过读取DEF文件或物理库(如 Milkyway库)来获取PG连接。

有可能的错误情况是用户没有正确设置库的电源信息,导致生成的.lib文件中缺少pg_pin部分。因此,在生成之前,需要检查现有的库是否已经正确配置了电源和地引脚,或者在生成过程中是否需要明确指定这些信息。

总结解决步骤

  1. 确认原始库中是否包含PG引脚的定义。

  2. 查阅PrimeTime的write_lib命令文档,寻找相关选项。

  3. 在生成库时使用正确的选项,例如-include_pg_pins或类似参数。

  4. 验证生成的.lib文件是否包含pg_pin部分。

注意事项:

1)若PG信息未正确导出,请确认原始库是否包含完整的PG定义。

2)对于物理连接信息(如布局中的电源网络),可能需要结合DEF文件或物理库(如Milkyway)来补充PG连接关系。

通过以上步骤,生成的.lib文件将包含必要的电源地信息,支持后续的低功耗设计和时序验证。

最后的原因:

相关推荐
神膘护体小月半4 小时前
bug 记录 - 使用 el-dialog 的 before-close 的坑
前端·javascript·bug
顽强d石头9 小时前
bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))
前端·bug
阿松のblog1 天前
opencv使用经典bug
人工智能·opencv·bug
学习啷个办1 天前
centos挂载目录满但实际未满引发系统宕机
bug
我们的五年3 天前
【Qt】Bug:findChildren找不到控件
开发语言·qt·bug
seiyaaa3 天前
Claude Opus solved my white whale bug today that I couldn‘t find in 4 years
bug
六天测试工程师3 天前
做好 4个基本动作,拦住性能优化改坏原功能的bug
服务器·性能优化·bug
良辰美景好时光3 天前
keepalived定制日志bug
linux·运维·bug
CYRUS STUDIO4 天前
FART 自动化脱壳框架一些 bug 修复记录
android·bug·逆向·fart·脱壳
布谷歌6 天前
一个Mybatisplus组件扫描不当引起的bug:弄巧成拙,认真的锅,自我怀疑
java·开发语言·bug