当前位置: 首页 > news >正文

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

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

最后的原因:

图片

相关文章:

  • JavaScript模板字符串:
  • ​​解锁 JavaScript DOM:节点操作的核心方法与最佳实践
  • CSS之盒子模型
  • 数据库----单表、多表
  • 【QT5 多线程示例】条件变量
  • WPF TemplateBinding与TemplatedParent区别
  • CSS3:现代Web设计的魔法卷轴
  • 【深度学习总结】多模态推理分割:LISA代码详解
  • JVM中的垃圾回收算法
  • 模拟电子技术-基本放大电路
  • 前端调试技巧:console输出被禁时,用DOM输出调试信息
  • 洛谷 P10463 Interval GCD Solution
  • uniapp利用第三方(阿里云)实现双人视频/音频通话功能(附完整的项目代码)
  • uniapp开发中store的基本用法和模块化详解
  • CSS 中grid - template - areas属性的作用,如何使用它创建复杂的网格布局?
  • 探索 Vue 中的多语言切换:<lang-radio /> 组件详解!!!
  • 01 相机标定与相机模型介绍
  • wps 怎么显示隐藏文字
  • FFmpeg —— 中标麒麟系统下使用FFmpeg内核+Qt界面,制作完整功能音视频播放器(附:源码)
  • CI/CD基础知识
  • 网站备案的影响/广告公司网站制作
  • 钦州建设网站/百度竞价ocpc
  • 北京优化网站公司/百度产品优化排名软件
  • 哪个网站可以做链接/seo网络优化招聘
  • 微网站开发平台 开源/域名停靠网页推广大全2023
  • 网站建设论文选题背景/郑州seo外包顾问