在模拟/混合信号 IC 设计中,将已验证的原理图从一个 Fab(代工厂)的工艺节点迁移到另一个 Fab 或另一个节点,是一项高频但复杂的工程任务。Cadence 提供的 Wicked(全称 Virtuoso Custom Design Migrate — Schematic Migration,在工程团队中常被简称为 “Wicked”)正是解决这一问题的核心工具。
本文从工程实践角度出发,详细介绍 Wicked 的适用场景、操作流程、映射文件编写、常见问题及团队 SOP 最佳实践。
1. 背景:为什么需要跨工艺原理图迁移?
| 典型场景 | 问题 | 解决思路 |
|---|---|---|
| Fab-A 180nm → Fab-B 180nm | 同节点换厂,器件名称和参数体系完全不同 | 建立器件映射,自动替换并重连 |
| TSMC 28nm → TSMC 16nm FinFET | 同厂升级节点,器件模型结构变化大 | 映射 + 参数换算 + 手动微调 |
| 多项目复用 IP | 一套 Bandgap/LDO IP 要部署到 3 个不同工艺 | 批量迁移 + 参数化映射 |
| 旧工艺 EOL(End-of-Life) | 代工厂停产,强制迁移 | 全库批量迁移,最大化自动化 |
手动逐个修改原理图中的器件实例,不仅耗时,而且极易遗漏或引入错误。Wicked 的自动化流程可将迁移周期从数周压缩到数天。
2. Wicked 是什么?
2.1 工具定位
Wicked 是 Cadence Virtuoso Custom Design Migrate 工具套件中的原理图迁移引擎。它集成在 Virtuoso 的 Migrate 菜单下(从 IC6.1.8 / ICADVM20.1 / IC23.1 及更高版本均可用),支持:
- 器件映射(Device Mapping):将源工艺的器件单元一对一或多对一地映射到目标工艺的等效器件
- 参数映射(Parameter Mapping):处理源/目标 PDK 之间 CDF 参数名称和值的差异(例如
w→wf、单位换算) - 拓扑保留(Topology Preservation):迁移后保持原始的电路连接关系(网络拓扑),自动重新布线(Rewire)
- 层次化迁移(Hierarchical Migration):支持从顶层 Cell 递归迁移所有子模块
2.2 名称由来与产品历史
WiCkeD 的名字源自其核心算法 Worst Case Distance(最坏情况距离)—— 在工艺角与器件失配的统计空间中,寻找规格违例点距离标称点的”最短距离”,并据此进行高 sigma 良率分析、电路 sizing 与鲁棒性优化。
需要特别澄清的一点是:WiCkeD 并非 Cadence 自研工具,而是德国慕尼黑(Unterhaching)公司 MunEDA GmbH 的旗舰产品套件。早在 2010 年前后,WiCkeD 就以第三方插件形式深度整合进 Cadence Virtuoso(同时也支持 Synopsys Custom Designer),是模拟设计圈内处理 sizing、yield optimization、IP porting 的事实标准工具之一。
[!NOTE] 收购里程碑:Cadence 于 2024 年 5 月 16 日 完成对 MunEDA 的收购(Add-on 收购,是 Cadence 在德国的首笔交易、半导体板块第 11 笔交易)。收购后,WiCkeD 整套技术原生整合进 Virtuoso Studio,与 Cadence 自有的 Virtuoso Custom Design Migrate(即本文重点介绍的 Schematic / Layout Migration 流程)形成互补:前者负责”在新工艺下重新优化 sizing 与良率”,后者负责”把网表与版图机械地迁移到新工艺”,两者配合构成跨工艺 IP 复用的完整闭环。
因此本文中所谓的”Wicked 流程”,在工程团队口语中常常指代 Virtuoso 里包含 MunEDA WiCkeD 优化能力 + Custom Design Migrate 迁移引擎的整体能力组合。在 Cadence 正式文档中,原理图迁移操作路径对应 Virtuoso Custom Design Migrate User Guide 的 Schematic Design Migration Flow 章节;而 WiCkeD 的 sizing / yield 优化能力则在 Virtuoso Studio 相关手册中描述。
3. 端到端操作流程(6 步)
Wicked 的原理图迁移流程在 Virtuoso 的 Migrate 菜单中完成,核心为 6 个步骤:
Step 0:前置准备
在开始迁移前,确保以下条件就绪:
- 源工艺库和目标工艺库均已在 Library Manager 中正确挂载
- 目标 PDK 的 CDF(Component Description Format)信息已加载
- 源原理图在当前版本 Virtuoso 中可正常打开且无 DM/CDS 错误
- 已在
cds.lib中注册好目标输出库(通常新建一个空库)
Step 1:收集源原理图信息
1
Migrate → Schematic → Utilities → Gather Source Information
此步骤会扫描源原理图中的所有实例,提取:
- 使用的器件名称(Library / Cell / View)
- 每个实例的 CDF 参数及当前值
- 非默认的自定义参数
输出为一份 CSV 或文本报告,作为下一步建立映射文件的依据。
Step 2:创建器件映射文件(Device Mapping File)
1
Migrate → Schematic → Utilities → Mapping File Editor
映射文件是 Wicked 的核心输入,它定义了源器件和目标器件的对应关系。文件格式为 CSV,典型结构如下:
# Source Library, Source Cell, Target Library, Target Cell, Parameter Mapping
fab_a_pdk, nmos_3p3, fab_b_pdk, nch_33, w=w;l=l;nf=nf;m=m
fab_a_pdk, pmos_3p3, fab_b_pdk, pch_33, w=w;l=l;nf=nf;m=m
fab_a_pdk, nmos_1p8, fab_b_pdk, nch_18, w=w;l=l;nf=fingers;m=multi
fab_a_pdk, rpoly_h, fab_b_pdk, rnpoly, w=w;l=l;r=PLACEHOLDER
fab_a_pdk, cap_mim, fab_b_pdk, cmim, w=w;l=l
映射文件编写要点:
| 列 | 说明 |
|---|---|
| Source Library / Cell | 源 PDK 器件的 Library 和 Cell 名称 |
| Target Library / Cell | 目标 PDK 中对应器件的 Library 和 Cell 名称 |
| Parameter Mapping | 源参数名=目标参数名 对,分号分隔;值不变时仅映射名称 |
[!IMPORTANT] 参数映射中特别注意以下常见差异:
- 单位不同:某些 PDK 用
um,另一些用m(SI 标准),需在映射中加入换算因子- 参数名不同:例如
nf(number of fingers)在目标 PDK 中可能叫fingers或nfin- 参数缺失:目标 PDK 可能新增了源 PDK 中不存在的必填参数(如 FinFET 的
nfin),需设置合理默认值- 一对多映射:一个源器件在目标工艺中可能拆分为多个变体(如 core / IO 两种 MOSFET)
Step 3:配置迁移设置
1
Migrate → Schematic → Mapping → Settings
在设置界面中指定:
- 工作目录(Run Directory):迁移中间文件和日志存放路径
- 映射文件路径:指向 Step 2 创建的 CSV 文件
- 源工艺库和目标工艺库
- View 过滤:通常迁移
schematicview,也可选择包含symbolview
Step 4:保存源原理图数据
1
Migrate → Schematic → Mapping → Step 1: Save Source Schematic Data
指定需要迁移的库、Cell 列表(或整库)、目标 Cell 命名规则(如加前缀/后缀:_migrated),以及映射文件。
此步骤会:
- 遍历源原理图层次结构
- 提取所有器件实例的完整信息(包含参数、坐标、连接关系)
- 将映射关系存入中间数据文件
Step 5:生成目标原理图
1
Migrate → Schematic → Mapping → Step 2: Generate Target Schematic
Virtuoso 根据 Step 4 的数据,自动:
- 在目标库中创建新的 Cellview
- 放置目标工艺的器件实例,替代源工艺器件
- 映射参数值(根据映射文件规则)
- 自动重新布线(Rewire):保持与源原理图相同的网络拓扑
Step 6:审核迁移结果
1
Migrate → Schematic → Results Browser
Results Browser 会显示:
| 状态 | 含义 | 处理 |
|---|---|---|
| ✅ Mapped | 成功映射 | 人工抽检参数值 |
| ⚠️ Partially Mapped | 器件已替换,但部分参数需手动补全 | 打开目标原理图逐一补全 |
| ❌ Unmapped | 映射文件中未定义该器件 | 补充映射文件后重跑,或手动替换 |
| 🔄 Rewired | 连线已自动重建 | 目视检查关键节点 |
[!WARNING] 迁移完成后必须做 Check & Save。打开每个迁移后的原理图,执行
Check → Rules → All,确保无悬空连线(dangling wire)、未连接 Pin 或 CDF 错误。某些复杂参数表达式(如含变量的W=W0*nf)可能不会被自动翻译。
4. 进阶技巧
4.1 批量迁移整个库
对于 IP 复用场景(如将整个 Analog IP 库从 28nm 迁移到 16nm),可以在 Step 4 中选择 Entire Library 而非逐个 Cell 操作。Wicked 会自动递归处理所有层次化引用。
4.2 处理 Symbol View
默认情况下 Wicked 只迁移 schematic view。如果目标 PDK 的 symbol 外形有变化(如 Pin 数量不同),需要额外处理:
- 若目标 PDK 器件有兼容的 symbol → 自动关联即可
- 若 Pin 数目或名称变化 → 需手动更新 symbol 或使用
Migrate → Schematic → Utilities → Symbol Migration(需验证:该功能在部分版本中可能为 beta)
4.3 使用 SKILL 脚本增强
对于映射文件中难以表达的复杂参数转换逻辑(如条件判断、公式计算),可以编写 SKILL 脚本作为迁移后的 Post-processing 步骤:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
;; 示例:迁移后批量调整 FinFET nfin 参数
procedure( fixNfin( cellViewId )
foreach( inst cellViewId~>instances
when( inst~>cellName == "nch_16ff"
let( ( wVal nfinVal )
wVal = cdfFindParamByName( inst "w" )~>value
;; 根据宽度自动计算 nfin(需验证:具体公式取决于 PDK)
nfinVal = ceiling( atof(wVal) / 0.007 )
dbReplaceProp( inst "nfin" "string" sprintf(nil "%d" nfinVal) )
)
)
)
dbSave( cellViewId )
)
4.4 与版图迁移(Layout MXL)联动
Wicked 完成原理图迁移后,可以无缝衔接 Layout MXL 进行版图迁移。两者共享相同的映射文件基础结构,但版图迁移需要额外定义层映射(Layer Mapping)。完整流程参见 Virtuoso Custom Design Migrate 使用指南。
5. 常见问题与排查
Q1:映射后某些器件参数值变为 0 或空白
根因:映射文件中的参数名拼写与目标 PDK CDF 定义不一致(区分大小写)。
排查:在目标 PDK 中用 Edit → Component → CDF 查看目标器件的参数名称列表,与映射文件逐一比对。
Q2:迁移后原理图中出现 “Instance of undefined cell” 红色标记
根因:映射文件中指定的目标 Cell 在目标 PDK 库中不存在(Cell 名拼写错误或 PDK 版本不匹配)。
排查:
- 在 Library Manager 中确认目标 PDK 库包含该 Cell
- 检查
cds.lib中的库路径是否正确 - 确认 PDK 版本——某些器件在特定 PDK 发布中才引入
Q3:迁移后连线断开(Dangling Wires)
根因:源器件和目标器件的 Pin 名称不同(如 D vs drain、G vs gate),Wicked 无法自动对应。
解决:在映射文件中增加 Pin Mapping 列(需验证:具体语法取决于 Virtuoso 版本),或在迁移后手动重连。
Q4:FinFET 迁移时缺少 nfin 参数
根因:传统 Planar MOSFET 不存在 nfin 参数;迁移到 FinFET 工艺时必须新增。
解决:
- 在映射文件的参数映射中添加
nfin=<默认值>或nfin=PLACEHOLDER - 迁移后使用 SKILL 脚本批量计算并填入正确的 nfin 值(基于目标工艺的 fin pitch 和有效宽度)
Q5:迁移日志中大量 “WARNING: CDF parameter not found” 告警
根因:源 PDK 中器件含有自定义 CDF 参数,在目标 PDK 中不存在对应项。
处理:
- 如果该参数在目标工艺无意义 → 在映射文件中标记为忽略(不映射)
- 如果该参数名称变化 → 更新映射关系
- 迁移完成后在 Results Browser 中确认 “Partially Mapped” 项并逐一处理
6. 团队 SOP 与最佳实践
6.1 映射文件版本化管理
1
2
3
4
5
6
7
project_root/
├── migration/
│ ├── mapping_fab_a_to_fab_b.csv # 版本化存储在 Git/SVN
│ ├── mapping_28nm_to_16nm.csv
│ ├── README.md # 记录每次映射的修改理由
│ └── scripts/
│ └── post_migrate_fixup.il # SKILL 后处理脚本
- 映射文件必须纳入版本控制(Git/SVN)
- 每次修改附带 commit message 说明变更原因
- 多项目复用时,创建通用映射 + 项目差异叠加层
6.2 迁移验证清单
| 阶段 | 验证项 | 工具/方法 |
|---|---|---|
| 迁移完成后 | Check & Save 无错误 | Virtuoso Check → Rules → All |
| 迁移完成后 | 所有实例均为 Mapped 状态 | Results Browser |
| 迁移完成后 | CDF 参数值合理(无 0、无空白、无 PLACEHOLDER) | SKILL 脚本批量扫描 |
| 仿真验证 | 标称仿真结果与源工艺对比 | Spectre DC/AC/Tran |
| 仿真验证 | Monte Carlo 良率达标 | ADE MC(参考 MC 仿真指南) |
| LVS 验证 | 迁移后原理图 vs 手动 Reference 一致 | Calibre / PVS CDL Netlist Diff |
6.3 回滚策略
- 在迁移前使用
dmXtool或手动备份源库 - 如果使用 SOS / SVN 管理设计数据,迁移前打 Tag,便于一键回退
- 建议迁移输出到独立的目标库,不要覆写源库
6.4 多人协作
- 指定一名 Migration Owner 负责映射文件维护
- 大型 IP 库可按 Block 分工:各 Block Owner 验证各自区域的迁移结果
- 使用统一的映射文件版本,避免各自维护导致不一致
7. 与 Virtuoso Custom Design Migrate 的关系
| 术语 | 含义 |
|---|---|
| Wicked | 工程团队对 Schematic Migration 引擎的常用代号 |
| Virtuoso Custom Design Migrate | 官方工具名称,涵盖原理图迁移和版图迁移 |
| Schematic Migration | Custom Design Migrate 中的原理图迁移子流程(即 Wicked) |
| Layout MXL | Custom Design Migrate 中的版图迁移子流程 |
| Mapping File Editor | 用于创建/编辑 CSV 映射文件的内置 GUI 工具 |
[!NOTE] 从 IC23.1 / IC25.1 开始,Cadence 对 Custom Design Migrate 的 GUI 和流程做了显著增强,包括更友好的 Mapping File Editor 和改进的 Results Browser。建议使用最新版本以获得最佳体验。
8. WiCkeD 的源头:MunEDA 收购始末
理解 WiCkeD 的来龙去脉,对于设置正确的工程预期很有帮助。
8.1 MunEDA:一家”低调”的德国 EDA 公司
| 项目 | 内容 |
|---|---|
| 公司名 | MunEDA GmbH |
| 总部 | 德国慕尼黑近郊 Unterhaching(前身可追溯到由 ChipMD 销售的早期版本) |
| 旗舰产品 | WiCkeD —— Worst Case Distance 工具套件 |
| 客户 | 德系/日系车规模拟厂商、存储 IDM、欧洲学术机构等 |
| 与 Cadence 的关系 | 在被收购之前,WiCkeD 长期作为 第三方插件 整合进 Cadence Virtuoso 与 Synopsys Custom Designer |
8.2 收购事件:2024 年 5 月
- 收购日期:2024 年 5 月 16 日
- 收购方式:Add-on 收购(金额未公开披露)
- 战略意义:
- Cadence 在德国的 首笔 收购交易
- Cadence 在半导体行业的 第 11 笔 收购
- 媒体形容这次交易为”quietly acquired”(低调收购),Cadence 没有发布大规模新闻稿
8.3 收购后的产品整合
收购完成后,MunEDA 团队与技术被并入 Cadence Custom IC Design 业务部门,WiCkeD 套件做了如下整合:
- 原生进入 Virtuoso Studio:从外挂插件升级为 Cadence 官方组件,license 与安装流程统一管理
- AI 化升级:Cadence 在 WiCkeD 基础上叠加机器学习驱动的设计空间搜索算法,替代蛮力 Monte Carlo(参见 Monte Carlo 仿真指南),在高 sigma(如 6σ 存储单元)场景下显著加速
- Pre-layout 到 Post-layout 闭环:WiCkeD 被定位为 “transistor tweaker”,在 Virtuoso Studio 中支持从前端 sizing 到后端 sign-off 的全流程优化
- 重点应用市场:先进工艺节点(FinFET、GAAFET)、车规模拟、存储(高 sigma 良率)、通信等高可靠性应用
8.4 与本文 Schematic Migration 流程的协同
在跨 Fab / 跨节点的实际工程实践中,WiCkeD 的能力与 Virtuoso Custom Design Migrate 是 互补关系,典型流程:
- 第 1 阶段:机械迁移 —— 用 Custom Design Migrate(即本文 §3 的 6 步流程)把原理图从源工艺迁移到目标工艺,完成器件替换、参数映射、网表重连
- 第 2 阶段:重新 sizing —— 在目标工艺下,由于器件特性、设计规则、Vt/Idsat 都已变化,原始 sizing 通常无法满足规格。此时使用 WiCkeD 的 DNO(Design Nominal Optimization) 与 Sizing 工具,自动调整 W/L/nf/nfin 等参数以重新满足标称规格
- 第 3 阶段:鲁棒性与良率验证 —— 使用 WiCkeD 的 Robustness Verification Flow 与高 sigma 分析,在新工艺的工艺角与失配空间中验证电路是否仍满足良率指标
[!IMPORTANT] 在很多团队的口语里,”用 Wicked 做工艺移植”这句话其实包含了上述 三个阶段 的合集。如果只做了 Custom Design Migrate 的机械迁移而没有做 WiCkeD 的重新 sizing,迁移后的电路在新工艺下大概率无法满足原始规格 —— 这是跨工艺 IP 复用最常见的”踩坑点”之一。
8.5 Evatronix 等案例:WiCkeD IP Porting Flow
收购前,MunEDA 已经与多家 IP 公司建立了基于 WiCkeD 的 IP porting 方法学。例如波兰 IP 厂商 Evatronix SA 公开宣布采用 WiCkeD IP Porting and Verification Flow,将其模拟 IP 库快速移植到新工艺并完成鲁棒性验证。这类案例验证了 WiCkeD 在跨工艺迁移中的实战价值,也是 Cadence 看中并最终收购 MunEDA 的重要原因之一。
参考资料
-
Virtuoso Custom Design Migrate User Guide (IC25.1, 2026年2月)
Cadence 官方手册,涵盖 Schematic Migration Flow 与 Layout Migration Workflow 全流程。
(需登录 support.cadence.com 查看) -
Schematic Design Migration Flow — Virtuoso Custom Design Migrate User Guide
详细描述 6 步骤的原理图迁移操作路径、映射文件格式和 Results Browser 用法。
(需登录查看) -
本站关联文章:Virtuoso Custom Design Migrate 使用指南
概述原理图与版图迁移的整体流程框架(IC25.1)。 -
本站关联文章:Monte Carlo 仿真指南
迁移后验证阶段的统计仿真方法。 -
A Deep Dive into AI-Driven Optimization with WiCkeD — Cadence Community Blog(2025-06-30)
Cadence 官方博客,详述 WiCkeD 的机器学习驱动优化方法、DNO 算法与高 sigma 分析能力。
https://community.cadence.com/cadence_blogs_8/b/cic/posts/a-deep-dive-into-ai-driven-optimization-with-wicked-the-optimization-powerhouse -
Cadence Acquires MunEDA — Mergr(2024-05-16)
Cadence 收购 MunEDA 交易的公开记录与背景信息。
https://mergr.com/transaction/cadence-acquires-muneda -
Evatronix SA Selects MunEDA Tool Suite WiCkeD — Design & Reuse
WiCkeD IP Porting and Verification Flow 在第三方 IP 厂商的实战案例。
https://www.design-reuse.com/news/202522861-evatronix-sa-selects-muneda-tool-suite-wicked/
建议截图(供实际操作时补充)
以下内容建议在实际操作时截图补充:
- Virtuoso 菜单栏
Migrate → Schematic子菜单全貌 - Mapping File Editor 界面:源器件列表与目标器件下拉选择
- Results Browser 界面:Mapped / Unmapped / Partially Mapped 状态展示
- 迁移前后原理图对比(源工艺器件 vs 目标工艺器件高亮标注)
- Check & Save 对话框中的典型迁移后告警信息
本文由 [icinfra.cn] 团队整理。Wicked / Custom Design Migrate 的详细功能请以 Cadence 官方文档为准,部分内容标注”需验证”的地方请结合实际 PDK 和 Virtuoso 版本确认。