2. Virtuoso设计环境搭建与工程管理

在开始画第一根管子之前,先把“地基”打好,是模拟版图与电路设计里最容易被低估、却最影响后续效率的一步。本节以一颗典型的 LDO(低压差线性稳压器)为例,走完从创建库到工程目录落地的完整初始化过程。目标不是把环境配得花哨,而是让后续的电路图、符号、版图、仿真状态和版本历史都能被稳定地找到、复用和回溯。

一、先想清楚工程要装什么

LDO 工程通常包含几类对象:顶层电路(如 LDO_top)、子模块(误差放大器 EA、功率管驱动 PassDrv、反馈分压 FB、基准与偏置 Bias)、符号视图、版图视图、仿真测试平台(testbench)以及工艺库。它们分属不同库(Library),但共享同一套工艺设计套件(PDK)与技术文件。因此初始化的核心是:库结构 + PDK 绑定 + 技术文件 + 变量与参数化单元 + 目录与版本约定。

建议在动手前先确定命名规范,例如库名统一用 LDO_ 前缀,单元名用下划线分隔功能层级。命名一旦定下,后续所有引用都依赖它,改名的代价远高于一开始多想两分钟。

二、创建库与挂接 PDK

在 Virtuoso 的 CIW(Command Interpreter Window)中,通过 File → New → Library 创建库。关键一步是“Attach to an existing techfile”:新建库时必须选择目标工艺的技术文件,否则该库内的版图视图没有层信息,后续 LVS/DRC 无法进行。典型做法是:

Library Name : LDO_TOP
Attach to    : smic180_techfile   (示例工艺,实际以项目 PDK 为准)

PDK 导入一般由工艺厂提供安装脚本或压缩包,解压后需在 .cdsinit 或 .cdsenv 中设置库搜索路径,使 Virtuoso 启动时能自动识别 PDK 库。常见做法是在 cds.lib 中登记:

DEFINE smic180  /project/pdk/smic180
DEFINE LDO_TOP  /project/ldo/LDO_TOP
INCLUDE smic180/models/cds.lib

技术文件(techfile)决定了层定义、显示优先级、器件参数默认值等。若同一工程需要多工艺,应通过不同库分别绑定,而不是在一个库里混用,否则版图层号冲突会非常难排查。

三、设计变量与参数化单元

LDO 的性能对器件尺寸敏感,因此把关键参数抽成设计变量(Design Variables)是必要的。例如在 LDO_top 的 ADE 状态中定义:

W_pass   = 2000u   ; 功率管宽度
L_pass   = 0.5u    ; 功率管长度
I_bias   = 10u     ; 偏置电流
R_fb1    = 100k    ; 反馈上分压
R_fb2    = 100k    ; 反馈下分压
C_out    = 1u      ; 输出电容

参数化单元(pcell)则用于把“尺寸可变”的器件封装成可复用模块。例如把误差放大器的输入对管做成 pcell,通过参数 nf(指状数)、m(并联数)控制,调用时只需改参数而不必重画。这样在后续做 corner 扫描或尺寸优化时,只需改变量值,电路自动更新。

LDO 工程初始化结构关系 PDK 工艺库 smic180 / techfile cds.lib 库路径登记 LDO_TOP 库 LDO_top(顶层) EA / PassDrv / FB Bias / 符号视图 版图视图 layout testbench 测试平台 设计变量 W_pass / L_pass / I_bias 参数化单元 pcell nf / m / 尺寸可调 项目目录与版本控制 ldo_project/ ├─ schematic/ 电路与符号 ├─ layout/ 版图 ├─ simulation/ ADE 状态与结果 └─ doc/ 设计说明与变更记录

四、版本控制与目录结构

Virtuoso 的库本质上是目录树,直接对库目录做版本控制是可行的,但要注意:cdslck 锁文件、仿真产生的临时数据不应入库。推荐把工程根目录纳入 Git,并在 .gitignore 中排除锁文件与仿真缓存:

*.cdslck
simulation/*/psf/
*.log

目录结构建议按“设计对象”而非“文件类型”划分,便于定位。例如 schematic/ 放电路与符号,layout/ 放版图,simulation/ 放 ADE 状态与结果,doc/ 放设计说明与变更记录。每次提交前用 git status 确认没有把临时文件带进去,提交信息写清“改了什么、为什么改”,例如“调整 PassDrv 偏置电流,改善轻载稳定性”。

五、初始化后的自检

环境搭好后,不要急着画电路,先做一次最小闭环验证:新建一个空单元,调用一个 PDK 器件,检查其参数是否可编辑、层是否正常显示;再打开 ADE,确认设计变量能被识别、仿真器能启动。若这一步通过,说明库、PDK、技术文件、变量四条链路都已打通。反之,若器件参数灰显或层缺失,多半是 techfile 未正确挂接或 cds.lib 路径有误,应优先排查这两处。

初始化阶段多花十分钟确认 PDK 挂接与目录规范,往往能省下后续数小时的“找不到库、层不对、仿真起不来”的排查时间。

至此,LDO 工程的“空壳”已经具备可扩展性:库结构清晰、PDK 绑定正确、变量与 pcell 可复用、目录与版本约定明确。接下来就可以在这个基础上,正式进入 LDO 核心电路的搭建与仿真。