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

发布于:2025-03-29 ⋅ 阅读:(23) ⋅ 点赞:(0)

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

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

Weixin Image_20250327102531.jpg

概念

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) { ... } }

2. 检查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为实际处理的库名称。

3. 可能需要使用特定的命令属性,在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";}

4. 验证生成的.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文件将包含必要的电源地信息,支持后续的低功耗设计和时序验证。

最后的原因:

图片


网站公告

今日签到

点亮在社区的每一天
去签到