在模拟/混合信号项目中,团队经常会拿到 fab 提供的一组标准单元(stdcell)交付物:

  • 网表类:CDL、Verilog、SPICE 视图
  • 物理类:GDS 或 OA layout
  • 时序类:Liberty
  • 抽象类:LEF、abstract、symbol

很多团队第一反应是:

  1. 我要不要把 CDL 和 GDS 都导进 Virtuoso?
  2. 是不是必须都导,LVS 才能跑?
  3. 模拟团队到底该用到哪一步?

这篇文章给一个实战导向答案。

说明:文中与混合 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?

一般是以下场景:

  1. 你没有可直接使用的 OA 库
  2. fab 仅交付了 cdl/gds 文件包
  3. 需要在本地搭建独立可追溯的 LVS/PEX 环境
  4. 现有库视图不完整,无法满足混合 LVS 输入要求

如果以上都不是,优先复用现成 OA 环境,减少重复导入与维护成本。

导入案例(可直接参考)

下面给两个模拟团队最常见的导入案例,分别对应“只拿到文件包”和“已有 OA 库”两种情况。

案例 1:fab 只给 cdl + gds + layermap

场景:

  • 项目为 AoT,模拟顶层在 Virtuoso,数字控制块由另一团队交付
  • 交付物只有 stdcell.cdldigital_macro.gdsstream layer map

目标:

  • 完成混合 LVS,可在顶层把数字块当 blackbox 使用

实施步骤:

  1. 先导入 GDS 到专用库(例如 DIG_GDS_LIB
  2. 检查 cell 名、pin 文本层、层映射是否正确
  3. 在顶层 schematic/config 中,把该数字块配置为 blackbox 路径
  4. 在 LVS runset 中加入 CDL include(指向 stdcell.cdl
  5. 跑一次“黑盒优先”的 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

目标:

  • 不重复导入,直接复用现成库,降低维护和版本漂移风险

实施步骤:

  1. cds.lib 中引用 CAD 发布的 OA 库路径
  2. 用统一的 view list(例如优先 symbol/schematic/layout)进行实例化
  3. LVS 输入采用“顶层 DFII + 下层 OA/CDL(按公司规范)”
  4. 若规则要求额外网表,再由统一 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 前检查

  • 提取边界是否明确
  • 关键网是否启用高精度设置
  • 数字块抽取策略是否与仿真目标一致

常见误区

  1. 误区:只要有 GDS 就能做完整 LVS
  • 纠正:还需要电路语义来源(CDL/Verilog/DFII)做网表侧比对
  1. 误区:所有 stdcell 都必须展开到晶体管级
  • 纠正:模拟团队通常按黑盒策略处理大部分数字逻辑,只在边界或关键区域精细化
  1. 误区:前仿阶段就要把 GDS 流程跑全
  • 纠正:前仿应以速度优先,GDS/PEX 放在后期收敛阶段

总结

  • CDL 解决“电路是什么”,GDS 解决“几何长什么样”
  • 模拟团队并不总是需要在前期同时深度使用两者
  • 到 signoff 阶段,网表语义与物理几何通常都要具备
  • 最优策略是分阶段、最小化接入、在关键节点做混合验证

如果你的项目是 AoT 或混合信号 SoC,建议先定义一份团队统一的 stdcell 接入规范:

  • blackbox 策略
  • mixed-LVS 输入规则
  • PEX 边界与关键网策略

这样可以显著减少后期“能跑但不收敛”的反复迭代。

参考来源(Cadence Support)

注:以下链接大多需要 Cadence Support 账号登录后查看全文。

  1. LVS flow setup for mixed Verilog/CDL/DFII and blackbox/DFII
    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w000009xxB3EAI&pageName=ArticleContent
  2. LVS flow setup for mixed verilog/CDL/DFII and blackbox/DFII(历史条目)
    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nV1XEAU&pageName=ArticleContent
  3. 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
  4. 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
  5. 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
  6. auCdl netlisting of schematic: Quick reference to basics and frequently referred solutions
    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nXDrEAM&pageName=ArticleContent
  7. Virtuoso XStream Out and In: Quick Reference to Basic Concepts and Most Referred Solutions
    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w00000AEJrqEAH&pageName=ArticleContent
  8. 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