在模拟/混合信号项目中,团队经常会拿到 fab 提供的一组标准单元(stdcell)交付物:
- 网表类:CDL、Verilog、SPICE 视图
- 物理类:GDS 或 OA layout
- 时序类:Liberty
- 抽象类:LEF、abstract、symbol
很多团队第一反应是:
- 我要不要把 CDL 和 GDS 都导进 Virtuoso?
- 是不是必须都导,LVS 才能跑?
- 模拟团队到底该用到哪一步?
这篇文章给一个实战导向答案。
说明:文中与混合 LVS、CDL/GDS 分工、Layout XL 标签连通相关的结论,均可在 Cadence Support 对应文档中交叉验证,文末提供原始链接。[1][2][3][4][5][6][7]
结论先说
1) CDL 和 GDS 不是二选一,而是职责不同
- CDL 负责“电气语义”,用于网表比对、子电路定义、黑盒接口
- GDS 负责“几何语义”,用于版图几何、DRC/LVS 物理侧输入、PEX
它们在 signoff 阶段通常都需要,但不一定都要手工导入到同一个 OA 库中。[1][2][3][4]
2) 是否分别导入,取决于你拿到的 PDK 交付形态
- 如果 fab/内部 CAD 已提供完整 OA 库(含 symbol/schematic/layout/abstract)
- 通常不需要你再手工分别导入 CDL 和 GDS
- 直接按库视图规则使用即可
- 如果只给了文件包(例如 cdl + gds + map)
- 就需要分别接入:CDL 进网表链路,GDS 进物理链路
3) 模拟团队常见做法是“按阶段最小使用”
- 前仿阶段:重点是行为和接口,通常先用网表模型
- 集成阶段:把数字块作为 hard macro 或 blackbox 接入
- signoff 阶段:用混合输入做 LVS,必要时做 PEX/后仿
模拟团队典型流程(推荐)
阶段 A:前仿与架构验证
目标:快速验证功能和接口,不追求版图细节。
- 优先使用:Verilog/Spectre/CDL 对应模型
- 对 stdcell 数字子模块:可作为黑盒或行为块接入 AMS 仿真
- 通常不需要 GDS
适用场景:
- AoT(Analog on Top)早期验证
- 控制逻辑占比不大,重点在模拟性能
阶段 B:版图集成
目标:把数字块安全放进模拟顶层版图。
- 如果已有 OA layout:直接实例化使用
- 如果只有 GDS:通过 stream-in 导入目标库
- 保证 layer map、pin text、单位和 hierarchy 一致
注意:
- 不要一上来 flatten 全部 stdcell
- 先保层级,便于定位 LVS 和 PEX 问题
阶段 C:LVS Signoff(关键)
目标:电路语义与物理实现一致。
常见输入组合:
- Schematic side:DFII schematic + 下层 CDL/Verilog(混合)
- Layout side:OA layout 或 GDS
- 数字块:blackbox 或指定展开策略
上面的 mixed 输入组合与 blackbox 思路,可参考 PVS/Pegasus 的 mixed DFII/Verilog/CDL 文档与对应 troubleshooting 文章。[1][2][3][4]
实践建议:
- 对纯数字 stdcell 宏,优先黑盒策略,明确 pin 对应
- 对模拟敏感边界(电源、偏置、ESD、衬底连接)做重点展开与检查
- 保持端口命名、bus 命名规则统一
阶段 D:PEX 与后仿
目标:得到可信的寄生影响评估。
- 从版图侧抽取 RC
- 对大规模 stdcell 区域可做受控抽取(边界优先、关键网优先)
- 与模拟关键路径联合回标,做收敛仿真
什么时候必须“分别导入” CDL 与 GDS?
一般是以下场景:
- 你没有可直接使用的 OA 库
- fab 仅交付了 cdl/gds 文件包
- 需要在本地搭建独立可追溯的 LVS/PEX 环境
- 现有库视图不完整,无法满足混合 LVS 输入要求
如果以上都不是,优先复用现成 OA 环境,减少重复导入与维护成本。
导入案例(可直接参考)
下面给两个模拟团队最常见的导入案例,分别对应“只拿到文件包”和“已有 OA 库”两种情况。
案例 1:fab 只给 cdl + gds + layermap
场景:
- 项目为 AoT,模拟顶层在 Virtuoso,数字控制块由另一团队交付
- 交付物只有
stdcell.cdl、digital_macro.gds、stream layer map
目标:
- 完成混合 LVS,可在顶层把数字块当 blackbox 使用
实施步骤:
- 先导入 GDS 到专用库(例如
DIG_GDS_LIB) - 检查 cell 名、pin 文本层、层映射是否正确
- 在顶层 schematic/config 中,把该数字块配置为 blackbox 路径
- 在 LVS runset 中加入 CDL include(指向
stdcell.cdl) - 跑一次“黑盒优先”的 LVS;若边界失败,再局部展开关键单元
验收标准:
- LVS 能识别到数字块端口,不再出现大面积 unmatched instance
- 供电/地网络在顶层连通,边界 pin 一一对应
- 报告中数字宏以 blackbox 或受控展开方式出现,结果可追溯
这个案例的关键点:
- GDS 负责几何,CDL 负责电气语义
- 两者分别接入,但在 LVS 阶段合并验证
对应来源:mixed DFII/Verilog/CDL LVS 文档、auCdl/netlisting 资料、以及 XStream 相关资料。[1][2][3][4][6][7]
案例 2:PDK 已提供完整 OA stdcell 库
场景:
- CAD 团队已发布可用的 OA 库(symbol/schematic/layout/abstract)
- 模拟团队只需要在顶层调用数字宏并完成 signoff
目标:
- 不重复导入,直接复用现成库,降低维护和版本漂移风险
实施步骤:
- 在
cds.lib中引用 CAD 发布的 OA 库路径 - 用统一的 view list(例如优先 symbol/schematic/layout)进行实例化
- LVS 输入采用“顶层 DFII + 下层 OA/CDL(按公司规范)”
- 若规则要求额外网表,再由统一 netlist 流程生成,不单独手工维护
验收标准:
- 无需手工 stream-in,库视图可直接解析
- 同一个 cell 在 schematic 与 layout 命名一致
- 版本升级时仅替换库版本,不需要重复修补 map 和 pin 规则
这个案例的关键点:
- 优先复用 OA,避免重复导入带来的命名偏差和维护成本
- 只有当交付不完整时,才回退到“CDL/GDS 分别接入”策略
对应来源:mixed LVS 输入文档与 stdcell flow 文档(用于说明标准单元流程与环境变量配置)。[3][4][5]
案例对比:什么时候选哪条路
- 只拿到文件包:选案例 1(分别接入 CDL/GDS)
- 已有标准 OA 库:选案例 2(直接复用 OA)
- 项目临近 signoff 且频繁改版:优先选择维护成本更低、可追溯性更好的路径
操作清单(落地版)
入库前检查
- 版本一致:PDK 版本、rule deck 版本、tool 版本
- 命名一致:cell 名、pin 名、bus 规则
- 单位一致:database unit、precision
- map 一致:layer map、text namespace
LVS 前检查
- blackbox 列表是否正确
- CDL include 路径是否可解析
- 供电网络命名是否统一(例如 VDD/VSS/AVDD/DVDD)
- 顶层 config 视图是否正确绑定下层视图
PEX 前检查
- 提取边界是否明确
- 关键网是否启用高精度设置
- 数字块抽取策略是否与仿真目标一致
常见误区
- 误区:只要有 GDS 就能做完整 LVS
- 纠正:还需要电路语义来源(CDL/Verilog/DFII)做网表侧比对
- 误区:所有 stdcell 都必须展开到晶体管级
- 纠正:模拟团队通常按黑盒策略处理大部分数字逻辑,只在边界或关键区域精细化
- 误区:前仿阶段就要把 GDS 流程跑全
- 纠正:前仿应以速度优先,GDS/PEX 放在后期收敛阶段
总结
- CDL 解决“电路是什么”,GDS 解决“几何长什么样”
- 模拟团队并不总是需要在前期同时深度使用两者
- 到 signoff 阶段,网表语义与物理几何通常都要具备
- 最优策略是分阶段、最小化接入、在关键节点做混合验证
如果你的项目是 AoT 或混合信号 SoC,建议先定义一份团队统一的 stdcell 接入规范:
- blackbox 策略
- mixed-LVS 输入规则
- PEX 边界与关键网策略
这样可以显著减少后期“能跑但不收敛”的反复迭代。
参考来源(Cadence Support)
注:以下链接大多需要 Cadence Support 账号登录后查看全文。
- LVS flow setup for mixed Verilog/CDL/DFII and blackbox/DFII
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w000009xxB3EAI&pageName=ArticleContent - LVS flow setup for mixed verilog/CDL/DFII and blackbox/DFII(历史条目)
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nV1XEAU&pageName=ArticleContent - Cadence Physical Verification User Guide – Run LVS with Mixed DFII/Verilog/CDL Netlists
https://support.cadence.com/apex/techpubDocViewerPage?xmlName=pvsuser.xml&title=Cadence%20Physical%20Verification%20User%20Guide%20–%20Run%20LVS%20with%20Mixed%20DFII/Verilog/CDL%20Netlists%20-%20Run%20LVS%20with%20Mixed%20DFII/Verilog/CDL%20Netlists&hash=pgfId-189022&c_version=25.10&path=pvsuser/pvsuser25.10/runLVS_ct_Run_LVS_with_Mixed_DFII_Verilog_CDL_Netlists.html#pgfId-189022 - Cadence Pegasus User Guide – Run LVS with Mixed DFII/Verilog/CDL Netlists
https://support.cadence.com/apex/techpubDocViewerPage?xmlName=pegasususer.xml&title=Cadence%20Pegasus%20User%20Guide%20–%20Run%20LVS%20with%20Mixed%20DFII/Verilog/CDL%20Netlists%20-%20Run%20LVS%20with%20Mixed%20DFII/Verilog/CDL%20Netlists&hash=pgfId-189022&c_version=25.12&path=pegasususer/pegasususer25.12/runLVS_ct_Run_LVS_with_Mixed_DFII_Verilog_CDL_Netlists.html#pgfId-189022 - Virtuoso Automated Standard Cell Placement and Routing Flow Guide(IC25.1)
https://support.cadence.com/apex/techpubDocViewerPage?xmlName=stdcellrouting.xml&title=Virtuoso%20Automated%20Standard%20Cell%20Placement%20and%20Routing%20Flow%20Guide%20–%20fixAllPreroutes%20-%20fixAllPreroutes&hash=&c_version=IC25.1&path=stdcellRouting/stdcellRoutingIC25.1/fixAllPreroutes.html - auCdl netlisting of schematic: Quick reference to basics and frequently referred solutions
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nXDrEAM&pageName=ArticleContent - Virtuoso XStream Out and In: Quick Reference to Basic Concepts and Most Referred Solutions
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w00000AEJrqEAH&pageName=ArticleContent - VXL: How to do connectivity extraction based on labels in layout like LVS tool PVS
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nYkpEAE&pageName=ArticleContent