首页/新闻资讯/正文详情

Design Compiler:Milkyway库的创建与使用

发布时间:2026/9/24 14:08:24 来源:云帆数科 栏目:资讯中心
Design Compiler:Milkyway库的创建与使用
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482目录Milkyway参考库技术文件高阶RC模型文件和映射文件Milkyway设计库写在最后DC Ultra在2005版本推出了拓扑模式在综合时会对标准单元进行粗布局(Coarse Placement)并使用虚拟布线(Virtual Routing)技术计算互联延迟关于拓扑技术的更详细介绍可以参考下面的博客。Design Compiler什么是拓扑技术(Topographical)https://chenzhang.blog.csdn.net/article/details/145748306由于拓扑模式需要使用物理信息即除了逻辑库之外还需要使用物理库它可以是Milkyway库 DC Ultra、DC Graphical、DC NXT与IC Compiler支持或者NDM库DC NXT与IC Compiler II支持物理库中包括了标准单元、IP单元、宏单元的视图(View)。注意老版的.pdb格式的物理库已经被抛弃了。Milkyway库是Synopsys Galaxy设计平台包括Design Compiler、IC Compiler、Custom Designer、Formality、PrimeTime、PrimeRail、StarRC、IC Validator的统一设计存储格式。该数据库提供持久化数据存储将Galaxy平台工具相互连接从而避免使用大型的中间交换文件并防止使用其他数据交换格式时可能发生的设计意图丢失。插个题外话Galaxy设计平台是Synopsys在2002年收购了Avant!后推出的在这次收购前Avant!和Cadence有过长达六年多的法律与商业纠葛除了Milkyway格式Avant!当时的产品有Apollo、Astro、Jupiter、StarRC、Saturn、Mars、Hercules、HSPICE等不得不说Avant!是真爱天文学这次收购大大加强了Synopsys在后端物理实现领域的实力并直接催生出了2005年IC Compiler(ICC)的诞生该工具由Synopsys自己的Physical Compiler和Astro整合而来并在之后又吸收了Jupiter的布图规划能力。本文就将介绍Milkyway库创建与使用。Milkyway参考库Milkyway参考库以目录的形式存在这与逻辑库不同不同类别的单元以不同的目录表示例如标准单元、IP单元、宏单元每个目录包含几个子目录CEL、FRAM等分别代表不同的视图这些视图通常由其他格式的源文件通过Milkyway工具生成例如GDSII、OASIS、LEF文件。下面的例子展示了Milkyway参考库的结构。physical_libs/ ├── IP_lib/ │ ├── CEL/ │ └── FRAM/ │ ├── Std_Cell_lib/ │ ├── CEL/ │ │ ├── and2a1:1 │ │ ├── and2a2:1 │ │ └── xor3a27:1 │ └── FRAM/ │ ├── and2a1:1 │ ├── and2a2:1 │ └── xor3a27:1 │ └── Macro_lib/ ├── CEL/ └── FRAM/CEL目录下包含了单元的完整布局视图会在布局布线(PR)完成后被IC Compiler使用当设计准备好tape out时该视图用于将设计的完整布局表示导出为标准格式的GDSII文件。这个文件必须包含设计的所有物理数据而不仅仅是PR阶段所用的抽象数据。图1展示了一个在IC Compiler中打开的两输入或门的CEL视图。FRAM目录下包含了单元的抽象视图会在布局布线(PR)阶段被IC Compiler使用以及在综合阶段被Design Compiler使用。图2展示了一个在IC Compiler中打开的两输入或门的FRAM视图。图1 FRAM视图在旧版本的Milkyway参考库中还存在包含了单元的逻辑视图的LM目录包含时序视图的TIM目录和包含功耗视图的PWR目录但现在这些信息通常用Milkyway数据库外部的Synopsys数据库文件.db文件中单独维护而.db文件通过Library Compiler工具由Liberty文件.lib文件生成。技术文件技术文件是针对每种工艺技术唯一的描述文件为所有工艺层定义参数包括层名、层编号、显示用的颜色和图案、设计规则如线宽(defaultWidth)、间距(pitch)等、通孔接触定义包括上下金属层、金属包围等、Tile(Site)定义、默认通孔阵列规则、区域定义等信息。Design Compiler可以利用技术文件建立简单的RC模型用于计算互连的RC参数。下面的例子展示了技术文件的内容。Technology { name cb1314 dielectric 3.73e-05 unitTimeName ns timePrecision 1000 unitLengthName micron ... } Layer METAL1 { layerNumber 14 maskName metal1 pitch 0.41 defaultWidth 0.16 minWidth 0.16 ... }更多详细信息可以参考Synopsys Technology File and Routing Rules Reference Manual。高阶RC模型文件和映射文件TLUPlus文件用于存储高阶RC查找表主要用于建模超深亚微米工艺效应如包覆介电层、金属填充、浅沟槽隔离、铜凹陷包括密度分析和宽度/间距、梯形导体等。TLUPlus文件本身是二进制格式但它可以通过将ASCII格式的ITF文件通过StarRC编译而来通过grdgxenxo程序。下面的例子展示了TLUPlus文件头部的注释这也是来自ITF文件。# TECHNOLOGY1314max # CONDUCTOR cm4 { THICKNESS0.90 WMIN0.44 SMIN0.46 RPSQ0.060 } # CONDUCTOR cm3 { THICKNESS0.35 WMIN0.20 SMIN0.21 RPSQ0.081 } # CONDUCTOR cm2 { THICKNESS0.35 WMIN0.20 SMIN0.21 RPSQ0.081 } # CONDUCTOR cm1 { THICKNESS0.26 WMIN0.16 SMIN0.18 RPSQ0.109 } # CONDUCTOR poly { THICKNESS0.18 WMIN0.13 SMIN0.20 RPSQ10.965 } ... # DIELECTRIC cm4_extra1 { THICKNESS0.23 ER3.7 } # DIELECTRIC cm4_extra2 { THICKNESS0.03 ER8.1 } # DIELECTRIC cm4_extra3 { THICKNESS0.09 ER3.7 } ...除了使用TLUPlus文件还可以使用nxtgrd文件也可以通过grdgxenxo程序编译而来它是比TLUPlus文件还准确的RC模型文件StarRC工具用该文件进行寄生参数提取但是对于Design Compiler而言使用的依然是其中的TLUPlus数据因此结果是一致的该功能由2017版本引入。映射文件用于将RC模型文件中的层名与技术文件中的层名进行映射如图3所示。如果RC模型文件中的层名与技术文件中的层名完全一致则可以不指定映射文件如果两者不一致且未指定映射文件流程后期将报错。图3 映射文件Milkyway设计库要使用物理库用户必须创建一个Milkyway设计库它充当一个容器存储了技术文件和Milkyway参考库的路径注意不是参考库本身且路径可以是绝对路径或相对路径相对路径指的是相对Milkyway设计库而不是当前工作目录如果用户选择将设计以CEL视图保存在Milkyway设计库中Milkyway设计库中还有设计相关的信息和TLUPlus数据但很遗憾Design Compiler中没有open_mw_cel命令所以并不能重新读取保存为CEL视图的设计因此将设计保存为ddc格式可能更好。使用create_mw_lib命令创建Milkyway设计库同时必须使用-technology选项指定技术文件可以使用-mw_reference_library选项指定Milkyway参考库也可以选择之后指定但必须在综合前指定如下所示。对于Milkyway库而言无论是技术文件、Milkyway参考库还是Milkyway设计库的路径都只能使用绝对路径或相对路径而不会考虑search_path变量这点与NDM库、目标库、链接库有区别。dcnxt_shell-topo create_mw_lib *** -technology *** -mw_reference_library *** // 需要注意对于-mw_reference_library选项而言如果使用相对路径则该相对路径是相对Milkyway设计库而不是当前工作目录需要注意的是Milkyway设计库的创建需要在未打开Milkyway设计库时进行因为Milkyway设计库的创建涉及到短暂打开库并关闭的过程。如果在已打开Milkyway设计库的情况下创建Milkyway设计库会出现下面的错误。Error: Fail to create library. Only one library can be opened for editing. (MWUI-290)建议在读取设计前创建或打开Milkyway设计库这对于NDM库是强制要求的。如果Milkyway参考库的位置改变了或者需要重新指定Milkyway设计库的参考库可以使用set_mw_lib_reference命令如下所示。dcnxt_shell-topo set_mw_lib_reference *** -mw_reference_library *** // 需要注意对于-mw_reference_library选项而言如果使用相对路径则该相对路径是相对Milkyway设计库而不是当前工作目录需要注意的是set_mw_lib_reference命令也只能在未打开Milkyway设计库时进行即使设置的设计库就是被打开的那个否则会出现下面的错误。Error: Fail to set mw reference libraries for *** (MW-215)可以使用set_mw_technology_file命令重新指定Milkyway设计库的技术文件如下所示。dcnxt_shell-topo set_mw_technology_file *** -technology ***需要注意的是set_mw_technology_file命令也只能在未打开Milkyway设计库时进行除非设置的设计库就是被打开的那个否则会出现下面的错误。ERROR : Fail to open library *** for write使用open_mw_lib命令可以打开一个Milkyway设计库但无法打开其中的CEL视图如果在之前保存了的话如下所示。使用current_mw_lib命令可以查询打开的Milkyway设计库。dcnxt_shell-topo open_mw_lib ***如果在打开了Milkyway设计库的情况下再次尝试打开其他设计库则会出现下面的错误。Error: only one library can be opened as main library. (MWUI-209)使用report_mw_lib -mw_reference_library命令可以查看Milkyway设计库中保存的的参考库路径可以是绝对路径或相对路径如下所示。dcnxt_shell-topo report_mw_lib -mw_reference_library想要查看Milkyway设计库中保存的技术文件信息比较麻烦需要使用write_mw_lib_files命令将其输出为文件后再查看如下所示。dcnxt_shell-topo write_mw_lib_files *** -technology -output ***.tf使用set_tlu_plus_files命令可以指定RC模型文件和映射文件如下所示。dcnxt_shell-topo set_tlu_plus_files -max_tluplus *** -min_tluplus *** -tech2itf_map ***需要注意的是如果选择将设计保存为CEL视图则TLUPlus数据是跟随设计一起保存的但又无法被Design Compiler重新读取因此在使用之前保存了CEL视图的Milkyway设计库时需要重新使用set_tlu_plus_files命令。使用write_milkyway命令Design Compiler特有命令可以将设计以CEL视图保存为mw_design_library变量指定的Milkyway设计库如下所示。该变量通常无需用户设置因为open_mw_lib命令会自动将其设置为将打开的Milkyway设计库设置该变量甚至可以完成将一个设计保存到另一个完全不相关的Milkyway设计库中。dcnxt_shell-topo write_milkyway -output ***上面的-output选项指定了设计文件名最好和设计名一致。设计文件会保存在mw_design_library变量指定的Milkyway设计库中的CEL目录下还会有类似:1形式的后缀这在Milkyway参考库中也存在在最后会进行说明这表示设计文件的版本如果以同一个名字多次保存设计版本号则会自动递增除非使用-overwrite选项指定覆盖最新版本的设计文件。需要注意的是在将设计保存为CEL视图之前需要保证设计是已映射的且唯一化的关于唯一化的更详细介绍可以参考下面的博客。SDC命令详解使用uniquify命令进行唯一化https://blog.csdn.net/weixin_45791458/article/details/148564739?ops_request_misc%257B%2522request%255Fid%2522%253A%25227917092785529b70a6fce5a75c531564%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id7917092785529b70a6fce5a75c531564biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-148564739-null-null.nonecaseutm_term%E5%94%AF%E4%B8%80%E5%8C%96spm1018.2226.3001.4450使用close_mw_lib命令可以关闭一个Milkyway设计库需要注意的是这也会导致设计被移除如下所示。dcnxt_shell-topo close_mw_lib ***在将设计保存为Milkyway设计库中的CEL视图时读者是否会疑惑这不是与Milkyway参考库目录下的CEL子目录很相似吗是的实际上参考库的概念不是绝对的而是相对的换句话说一个Milkyway库是设计库还是参考库取决于它的使用方式而不是严格定义的。对于包含了标准单元、IP单元、宏单元的Milkyway库而言它们只能作为Milkyway参考库供Milkyway设计库使用当然也可以用open_mw_lib命令打开这些Milkyway库此时它们就成为了Milkyway设计库但一般不会这么做而对于包含了设计的Milkyway库而言它即可以使用其他Milkyway参考库也可以作为Milkyway参考库被其他Milkyway设计库使用这通常用于层次化设计如图4所示。图4 参考库和设计库的关系1在图2中mw_lib_B库是mw_lib_A库的参考库同时也是设计库它的参考库是mw_lib_C库。需要注意的是mw_lib_C库中的单元并不能直接在mw_lib_A库中使用也就是说参考关系不能传递除非将mw_lib_C库也设置为mw_lib_A库的参考库如图5所示。图5 参考库和设计库的关系2写在最后虽然Milkyway库已略显过时被最新的NDM库DC NXT与IC Compiler II支持代替但对于那些因为种种原因还在使用DC Ultra、Design Compiler Graphical或IC Compiler的用户来说它依然是一个重要的概念这也是本文存在的意义。部分Milkyway库和NDM库相关命令的对应关系如图6所示。图6 物理库相关命令部分关于Milkyway库的更多详细信息可以参考Milkyway Database Application Note关于NDM库的更多详细信息可以参考Library Manager User Guide。

相关推荐

十人锁步,一人拖累全场
十人锁步,一人拖累全场

内部测试第 4 天,QA 提了一个 P0。 标题只有七个字:“一个人卡,全场卡。” 复现步骤更简单: 1. 开一局 5v5 2. 把其中【任意一台】测试机的网络设为 400ms 延迟 3. 观察其余 9 台结果: 被限速的那台 : 逻辑帧率 3.2 … · 2026/9/24 14:08:17

PyMuPDF 可选内容(OCG / OCMD)完全指南:在 PDF 中实现图层显示与隐藏的编程控制
PyMuPDF 可选内容(OCG / OCMD)完全指南:在 PDF 中实现图层显示与隐藏的编程控制

图像处理 【免费下载链接】PyMuPDF PyMuPDF is a high performance Python library for data extraction, analysis, conversion & manipulation of PDF (and other) documents. 项目地址: https://gitcode.com/gh_mirrors/py/PyMuPDF 点击查看 免费下载 本篇指… · 2026/9/24 14:08:17

BP神经网络自适应PID控制器设计与嵌入式实现
BP神经网络自适应PID控制器设计与嵌入式实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:08:11

Formily 响应式核心 @formily/reactive 深度指南:安装、快速开始与源码级原理
Formily 响应式核心 @formily/reactive 深度指南:安装、快速开始与源码级原理

前端UI组件 【免费下载链接】formily 📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目地址: https://gitcode.com/gh_mirrors… · 2026/9/24 14:46:55

Mosquitto 1.1.3 发布解析:mosquitto_passwd 临时文件与备份机制的缺陷修复
Mosquitto 1.1.3 发布解析:mosquitto_passwd 临时文件与备份机制的缺陷修复

后端消息队列消息路由 【免费下载链接】mosquitto Eclipse Mosquitto - An open source MQTT broker 项目地址: https://gitcode.com/gh_mirrors/mos/mosquitto 点击查看 免费下载 导读 本文基于 Eclipse Mosquitto 仓库中的 1.1.3 版本发布公告,深入剖… · 2026/9/24 14:46:55

电子课本PDF批量下载指南:3步把智慧教育平台的课本存到本地
电子课本PDF批量下载指南:3步把智慧教育平台的课本存到本地

电子课本PDF批量下载指南:3步把智慧教育平台的课本存到本地 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目… · 2026/9/24 14:46:53

Semi Design Lottie 组件实战:在 React 项目中渲染与精细控制 Lottie 动画
Semi Design Lottie 组件实战:在 React 项目中渲染与精细控制 Lottie 动画

前端UI组件设计系统 【免费下载链接】semi-design 🚀A modern, comprehensive, flexible design system and React UI library, AI-friendly built-in.🎨Provide 3000 Design Tokens, easy to build your design system. Make Semi Design to Any Design… · 2026/9/24 14:46:38

ESPnet2 语音增强(ENH)预训练模型卡模板解析:从模型打包到 Hugging Face 发布全流程实战
ESPnet2 语音增强(ENH)预训练模型卡模板解析:从模型打包到 Hugging Face 发布全流程实战

人工智能语音音频深度学习NLP 【免费下载链接】espnet End-to-End Speech Processing Toolkit 项目地址: https://gitcode.com/gh_mirrors/es/espnet 点击查看 免费下载 导读 本篇技术指南围绕 ESPnet2 语音增强/语音分离(ENH)预训练模型的… · 2026/9/24 14:46:38

AI生成的模型三角面很多,为什么还是一改就皱?先查这5类拓扑流问题
AI生成的模型三角面很多,为什么还是一改就皱?先查这5类拓扑流问题

AI 生成的 3D 模型面数很多,不等于模型适合继续编辑。真正决定模型好不好改的,是边线是否顺着形体组织、极点是否避开关键区域、面密度是否匹配曲率,以及鞋口、鞋底、接缝等功能边界是否清楚。 如果一只 AI 生成的鞋形模型出现鞋头一拉就起皱… · 2026/9/24 14:46:32

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码