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