FEATURED · 精选文章

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

发布时间 / 2026/8/1 22:54:08
来源 / 创域科博编辑部
栏目 / 资讯中心
Design Compiler:逻辑库名与逻辑库文件名及其指定方式 相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482逻辑库的定义逻辑库由半导体供应商维护和分发包含每个单元的特性和功能信息例如单元名称、引脚名称、面积、时序弧和引脚负载。它们还定义了设计规则约束如线网的最大转换时间等条件。此外逻辑库还指定特定工艺技术的工作条件和线负载模型只用于线负载模式。Design Compiler支持使用非线性延迟模型(Non-Linear Delay Model, NLDM)和复合电流源模型(Composite Current Source Timing Model, CCST)或同时使用两者。Design Compiler会根据逻辑库的内容自动选择使用的时序模型。如果库同时包含NLDM和CCST模型Design Compiler会使用CCST模型。在逻辑综合和预布线优化期间工具可能不会使用所有的CCST数据以节省运行时间。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/syn standard.sldb standard.sldb /opt/Synopsys/syn/W-2024.09-SP2/libraries/syn slow 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/syn standard.sldb standard.sldb /opt/Synopsys/syn/W-2024.09-SP2/libraries/syn slow1 slow.db /home/zhangchen/topo显式读取使用read_db命令可以显式读取逻辑库直接指定绝对路径、相对路径或简单路径相对search_path变量的路径形式的逻辑库文件名即可如下所示。dc_shell read_db ./slow.dbDesign 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 doesnt specify a unique library Please 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 doesnt specify a unique library Please 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
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻