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

Design Compiler:逻辑库名与逻辑库文件名及其指定方式

相关阅读

Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482


逻辑库的定义

        逻辑库由半导体供应商维护和分发,包含每个单元的特性和功能信息,例如单元名称、引脚名称、面积、时序弧和引脚负载。它们还定义了设计规则约束(如线网的最大转换时间)等条件。此外,逻辑库还指定特定工艺技术的工作条件和线负载模型(只用于线负载模式)。

        Design Compiler支持使用非线性延迟模型(NLDM)和复合电流源模型(CCS),或同时使用两者。Design Compiler会根据逻辑库的内容自动选择使用的时序模型。如果库同时包含NLDM和CCS模型,Design Compiler会使用CCS模型。在逻辑综合和预布线优化期间,工具可能不会使用所有的CCS数据以节省运行时间。

        Design Compiler需要逻辑库是.db格式。通常情况下,半导体供应商会提供.db格式的逻辑库。如果只有逻辑库的源代码(例如.lib格式),则需要首先使用Library Compiler(以前集成在Design Compiler中,后脱离变成单独的工具)将其编译为.db格式。

逻辑库的读取

        逻辑库可以使用两种方式读取,第一种方式是自动读取,第二种是显式读取,下面将分别介绍这两种方式。

自动读取

        使用target_library和link_library变量可以指定目标库和链接库,该变量中可以包含逻辑库文件名的绝对路径、相对路径或简单路径(相对search_path变量的路径),如下所示,这些逻辑库会在必要时(如显式/隐式链接、综合)自动读取。

dc_shell> set_app_var link_library /home/zhangchen/topo/slow.db       // 使用绝对路径
dc_shell> set_app_var link_library ./slow.db                          // 使用相对路径dc_shell> set search_path /home/zhangchen
dc_shell> set_app_var link_library topo/slow.db                       // 使用简单路径

        Design Compiler会记录被读取的逻辑库名及其所属的逻辑库文件名的绝对路径,如下所示。

dc_shell> list_libs
Logical Libraries:
-------------------------------------------------------------------------
Library		    File			  Path
-------		    ----			  ----gtech		    gtech.db		  /opt/Synopsys/syn/W-2024.09-SP2/libraries/synstandard.sldb	standard.sldb     /opt/Synopsys/syn/W-2024.09-SP2/libraries/synslow		    slow.db			  /home/zhangchen/topo

        记录逻辑库文件名的绝对路径可以避免自动读取时出现覆盖,如果发现逻辑库文件之前已读取则不会重复读取,即使逻辑库文件的内容更改,或target_library和link_library变量修改了(例如用绝对路径和相对路径描述同一个逻辑库文件)。

        尽管逻辑库文件名和逻辑库名一般相同,但这不是强制性的,如下所示。

dc_shell> list_libs
Logical Libraries:
-------------------------------------------------------------------------
Library		    File			  Path
-------		    ----			  ----gtech		    gtech.db		  /opt/Synopsys/syn/W-2024.09-SP2/libraries/synstandard.sldb	standard.sldb     /opt/Synopsys/syn/W-2024.09-SP2/libraries/synslow1		    slow.db			  /home/zhangchen/topo

显式读取

        使用read_db命令可以显式读取逻辑库,直接指定绝对路径、相对路径或简单路径(相对search_path变量的路径)形式的逻辑库文件名即可,如下所示。

dc_shell> read_db ./slow.db

        Design Compiler会记录被读取的逻辑库名及其所属的逻辑库文件名的绝对路径,如果强行重复读取则会出现覆盖,Design Compiler需要保证内存中的逻辑库文件名的绝对路径唯一,即使它们中的逻辑库名不同。

逻辑库的指定

        逻辑库可以使用两种方式指定,第一种方式是间接指定(即通过逻辑库文件名间接指定逻辑库),第二种是直接指定(即指定逻辑库名),下面将分别介绍这两种方式。

间接指定

        最常见的间接指定的方式就是用target_library和link_library变量指定目标库和链接库,目标库会在综合时使用,而链接库则会在显式/隐式链接、默认约束选择(例如默认线负载模型和默认工作环境等)或某些命令不添加库选项时使用(例如set_wire_load_model命令和set_operating_condition命令)。

直接指定

        最常见的直接指定的方式是使用某些命令时添加库选项指定逻辑库名(例如set_wire_load_model命令和set_operating_condition命令),如下所示。

dc_shell> set_wire_load_model -name wl20 -library slow

        有些情况下,仅仅指定逻辑库名不足以唯一确定逻辑库,这时就要求使用其所属的逻辑库文件名的基本名(注意这与简单路径不同)作为前缀,如果还是不能唯一确定(即基本名相同),则需使用其所属的逻辑库文件名的绝对路径或相对路径作为前缀,如下所示。

dc_shell> set_wire_load_model -name wl20 -library slow // 不使用前缀
Error: 'slow' doesn't specify a unique libraryPlease use complete specification: full_file_name:library_name (UID-15)dc_shell> set_wire_load_model -name wl20 -library slow.db:slow   // 使用基本名前缀
Error: 'slow.db:slow' doesn't specify a unique libraryPlease use complete specification: full_file_name:library_name (UID-15)dc_shell> set_wire_load_model -name wl20 -library /home/zhangchen/topo/slow.db:slow // 使用绝对路径前缀
dc_shell> set_wire_load_model -name wl20 -library ./slow.db:slow // 使用相对路径前缀

逻辑库的保存

        如果将设计保存为ASCII格式的网表,则逻辑库信息会丢失,这依赖用户在之后进行额外设置;如果将设计保存为二进制格式(例如ddc)的网表,其中会包含所有SDC约束,某些SDC约束需要使用逻辑库信息(例如set_wire_load_model命令和set_operating_condition命令),因此其中还会包含逻辑库名(并以基本名作为前缀)。

        当用户之后再次读取保存为二进制格式的网表时,会基于search_path变量和基本名自动读取逻辑库并恢复SDC约束。

写在最后

        需要注意的是,逻辑库的读取和指定是两个不同的步骤,因此可以混合使用,但自动读取的使用情况较多,如下所示。

// 自动读取、直接指定
dc_shell> set_app_var link_library ./slow.db
dc_shell> set_wire_load_model -name wl20 -library slow // 该命令会导致自动读取
// 自动读取、间接指定
dc_shell> set_app_var target_library ./slow.db
dc_shell> compile_ultra  // 该命令会导致自动读取
// 显式读取、间接指定
dc_shell> read_db ./slow.db
dc_shell> set_app_var target_library ./slow.db
dc_shell> compile_ultra // 自动读取不会进行,因为已读取
// 显式读取、直接指定
dc_shell> read_db ./slow.db
dc_shell> set_wire_load_model -name wl20 -library slow
http://www.xdnf.cn/news/1341073.html

相关文章:

  • 交易高光时刻-01
  • langgraph快速搭建agent后端和react前端
  • springboot 启动后get请求任意接口地址会跳到登录页
  • 【TrOCR】模型预训练权重各个文件解读
  • 【Java集合】List,Map,Set-详细讲解
  • ODDR实现多bit单边沿采样数据转为多bit双沿采样数据
  • 效率跃迁 ,亚数TrustAsia 加速证书管理迈向 CaaS 新阶段
  • 意象驱动的深层语义:感知认知统一对自然语言处理与知识图谱的影响
  • 活性数据处理与标准化
  • 在互联网大厂的Java面试:谢飞机的搞笑历险记
  • 学习 k 均值聚类算法的心得
  • 2025-08-21 Python进阶8——命名空间作用域
  • gRPC 与 HTTP 性能对比分析
  • 微算法科技(NASDAQ:MLGO)构建去中性化区块链预言机,实现跨链信息互通
  • 使用 X11 转发服务器界面
  • 整体设计 之定稿 “凝聚式中心点”原型 --整除:智能合约和DBMS的在表层挂接 能/所 依据的深层套接 之2
  • 迅为R3568开发板OpeHarmony学习开发手册-配置远程访问环境
  • Typescript入门-函数讲解
  • 面试后的跟进策略:如何提高录用几率并留下专业印象
  • Shell 变量全解析:从基础到高级技巧
  • C语言基础习题——01
  • mac的m3芯片安装JDK8、JDK17
  • QWidget/QMainWindow与QLayout的布局
  • 家里Windows,公司Linux?通过cpolar,WSL开发环境无缝切换
  • 【STM32】HAL库中的实现(九):SPI(串行外设接口)
  • 智能求职推荐系统演示说明
  • 封装FTPSClient连接ftps服务器
  • 27、设备状态监测与维护管理 (模拟电机振动) - /安全与维护组件/device-condition-monitoring
  • 【用户管理】修改文件权限
  • DeepSeek V3.1正式发布,专为下代国产芯设计