简介:这份资源是面向集成电路设计初学者的模拟电路入门学习资料,依托西安交通大学国家集成电路人才培养基地的培训内容整理,重点解决零基础读者不熟悉 Cadence Virtuoso 平台、难以独立完成原理图输入与仿真验证的问题。压缩包内共 1 个 doc 文档,约 1.44MB,内容按章节组织,涵盖 Cadence 概述、运行环境配置、Composer 原理图输入、Symbol 创建、ADE 电路仿真与版图设计等模块,并配有目录便于按流程检索。已有 6175 人学习,说明其在入门群体中具有一定参考价值。读者可借助这份教材理清从建库、搭电路到仿真的完整设计链路,掌握器件放置、连线、参数设置与端口定义等基本操作,为后续深入学习模拟集成电路设计打下基础。
1. 模拟 IC 设计全流程:一张从原理图到后仿真的知识地图
很多人第一次打开 Virtuoso,会被满屏的窗口劝退:CIW、Library Manager、Composer、ADE、Layout Editor、Assura,每个都像独立软件,其实它们是一条流水线上的不同工位。模拟集成电路设计在 Cadence 平台上的主线非常清晰:画原理图 → 建 Symbol → 前仿真 → 画版图 → DRC → LVS → 寄生提取 → 后仿真,最终产出 GDSII 文件。这条链路里,前仿真验证的是"电路逻辑对不对",后仿真验证的是"物理实现之后还对不对",中间夹着的 DRC、LVS、RCX 三道关卡,就是原理图世界和版图世界之间的翻译与校对。
这份入门资料的价值,在于它用一个小得不能再小的电路——CMOS 反相器和缓冲器——把整条链路完整走了一遍。对正在系统学模拟 IC 的人来说,它是一张能按图索骥的流程地图;对复习备考的人来说,它是一份可以逐项对照的操作清单。下面按模块拆开梳理,重点标出每一步"为什么做"和"最容易在哪翻车"。
2. 环境与库管理:启动 Cadence 前的四件事
2.1 工作目录与四个配置文件
多人共用的工作站上,第一件事是建个人工作目录,避免文件互相覆盖。终端里mkdir建目录、cd进入,这是所有后续操作的地基。真正决定软件能不能正常跑起来的,是四个配置文件:
| 文件 | 作用 | 缺失后果 |
|---|---|---|
.cshrc | 环境变量、软件路径、license 配置 | 软件根本起不来 |
.cdsenv | 各工具的初始设置 | 工具默认行为异常 |
cds.lib | 库的管理文件,首次运行自动生成 | 找不到库 |
.cdsinit | 初始化设置与快捷键绑定 | 快捷键全部失效 |
机房环境通常已经写好配置脚本,执行一次cds.setup即可完成设置。但如果你发现快捷键按了没反应,八成是.cdsinit没被加载——把它从安装目录拷到自己的工作目录下即可。这一步是典型的"不报错但功能残缺",复习时要特别记住:快捷键失效优先查.cdsinit。
2.2 技术文件:TF 与 display.drf
技术文件一般由 Foundry 提供,入门阶段需要拷两个:
- TF 文件(Technology File):定义版图图层信息、符号化器件、工具规则,以及版图转 GDSII 时的层号定义。没有它,版图设计无从谈起。
- display.drf:控制版图的显示样式,图层用什么颜色、什么填充。
这两个文件要拷到个人工作目录下,建库时 TF 文件的路径要填对。梳理下来会发现,TF 文件是"库"和"工艺"之间的绑定契约——建库时选了哪个 TF,这个库里的版图就遵循哪套工艺规则,后面 DRC 检查的依据也来自这里。
2.3 建库:Cadence 的组织方式
Cadence 以"库(Library)"组织文件,一个库对应工作目录下的一个同名目录。建库路径是 Library Manager 里File -> New -> Library,输入库名后进入 Technology File 设置窗口。如果只做原理图不做版图,可以不挂 TF;要做版图就选Compile a new techfile并填入 TF 路径。建库完成后,库名、Cell 名、View 名这三层结构要建立起来:库是项目,Cell 是电路模块,View 是同一模块的不同表现形式(schematic 是原理图,symbol 是符号,layout 是版图)。理解这三层,后面所有"打开哪个 view"的操作都不会迷路。
2.4 启动与 CIW 窗口
终端输入icfb&启动,弹出 CIW(Command Interpreter Window)。这是整个集成环境的主控窗口:菜单栏开工具,中间输出区显示命令结果和报错,下方命令行可以敲命令。初学者最该养成的习惯是盯输出区——很多操作"看起来没反应",答案都写在 CIW 的输出里。启动时还会弹一个 What's New 窗口,直接关掉即可。
3. 原理图输入:Composer 的六个动作与参数陷阱
3.1 新建原理图与命令的"粘性"
从 CIW 走File -> New -> CellView,选库、填 Cell 名、Tool 选 Composer-Schematic,View 自动变为 schematic。进入 Composer 后要记住一个反直觉的行为:多数命令会一直保持激活,直到你调用别的命令或按 Esc。这意味着画完线不按 Esc,下一次点击可能还在画线;更危险的是 delete 命令,忘了退出就可能误删。另外 Undo 默认只能撤一次(可在Option -> User Preferences改到最多 10 次),所以"每完成一个动作按 Esc"不是洁癖,是保命习惯。快捷键f自动缩放适配,大写S保存,这两个要形成肌肉记忆。
3.2 添加器件与库浏览器
添加器件三种方式等价:菜单Add -> Instance、快捷键i、工具栏按钮。弹窗里点 Browse 打开库浏览器,勾选 Show Categories 可以按分类找器件。反相器需要四个:analogLib里的pmos4、nmos4、vdd、gnd。选中后 Library/Cell/View 自动填好,点 Hide 隐藏窗口,鼠标上就挂着器件符号,按r旋转,左键放置,放完按 Esc 退出。
这里有个必须澄清的概念:vdd 和 gnd 只是全局电源/地标识,不是电源器件,vdd 本身不提供电压。仿真时必须有 gnd,否则仿真不收敛——这是新手最常见的"电路画得没问题但仿真跑不动"的原因之一。
3.3 连线、命名与参数设置
连线用w(wire narrow,普通导线),总线用大写W(wire wide)。起点终点各点一次左键,画完按 Esc。导线可以用l命名,命名后端口连接和调试都更清晰。
参数设置是这一章的技术核心。选中器件按q打开属性框,需要填三项:model name、栅长、栅宽。以 0.18μm 工艺为例:
PMOS: model = p18, 栅长 = 0.18u, 栅宽 = pPar("wp") NMOS: model = n18, 栅长 = 0.18u, 栅宽 = pPar("wn")pPar("wp")是参数传递函数,把 wp 作为这个 Cell 的对外参数,上层电路调用时赋值即可改变栅宽。这是层次化设计的关键手法:底层模块用参数表达尺寸,顶层实例化时再定具体值。模型名 p18/n18 里的 18 对应 1.8V 电源电压,同工艺还有 p33/n33 对应 3.3V 器件,选错模型仿真结果会完全失真。
参数写法有两个坑:一是不要自己加单位,系统会自动换算,写0.18uM是错的;二是如果非要写单位,数值和单位之间必须留空格,否则M会被当成变量。这类细节不写进笔记,复习时很容易二次踩坑。
3.4 端口、检查与保存
端口用p放置,Pin Names 填名字,Direction 选 input 或 output,反相器就是 Vin 进、Vout 出。全部画完后按大写X执行 Check and Save,检查结果在 CIW 输出区看:有错改错,无错则提示成功。检查通过是进入仿真的前提,跳过这步直接仿真,报错信息往往指向不明。
4. 从 Symbol 到前仿真:ADE 的变量与输出管理
4.1 创建 Symbol 的意义与编辑
原理图画完,下一步是Design -> Create CellView -> From Cellview生成 Symbol。工具会自动识别原理图的输入输出端口,默认输入在左、输出在右。生成的 Symbol 是一个绿色矩形加引脚,红色矩形框是"点选区域"——鼠标只有点进这个范围才能选中该 Symbol。
默认矩形不好看也不符合习惯,反相器通常画成三角形加小圆圈。做法是删掉绿色矩形,用Add -> Shape -> Polygon重画,再调整引脚位置。Symbol 的图形纯属表达习惯,不影响电气连接,但引脚方向和名称必须和原理图一致,否则上层连线会连错。
4.2 搭建仿真电路与 ADE 启动
前仿真不是直接仿反相器,而是搭一个测试电路:新建一个 Cell,把反相器 Symbol 实例化进来,加上输入激励源和电源。这就是"创建缓冲器原理图和 Symbol → 创建仿真电路"两步的实际含义——被测电路和测试平台分离,是仿真工程化的基本做法。
仿真环境从原理图窗口Tools -> Analog Design Environment打开 ADE。ADE 的核心概念是"设计变量":前面用pPar定义的 wp、wn 在这里以变量形式出现,可以统一赋值。仿真设置包括分析类型(瞬态、DC、AC 等)、参数扫描、激励源配置。
4.3 输出选择、保存与结果查看
仿真前要显式选择输出信号(节点电压、支路电流),并把当前整套仿真设置保存下来。保存的意义在于可复现:同一套设置下次直接调用,不用重新配一遍。跑完仿真在波形窗口看结果,瞬态看时域波形,DC 看直流工作点,AC 看频响。
这一章的重点难点在于:变量赋值和模型文件路径是两回事。原理图里填的 p18/n18 只是模型名,真正的 SPICE 模型参数在模型文件里,仿真时必须把模型文件路径配进 ADE,否则报"找不到模型"。复习时把"模型名 → 模型文件 → ADE 路径配置"这条链记住,比背菜单有用得多。
5. 版图、验证与后仿真:物理实现的四道关
5.1 版图绘制:从晶体管开始
版图从Layoutview 新建,进入 Virtuoso Layout Editing。动手前必须先读设计规则手册(Design Rule Manual),所有尺寸约束都在里面。LSW(Layer Selection Window)控制哪些层可见、哪些层可编辑,画之前先把可见层设好,否则会出现"画了但看不见"的玄学现象。
反相器版图的顺序是:画 NMOS → 画 PMOS → 连信号线 → 连电源地 → 做衬底接触。每个晶体管由扩散区、多晶硅栅、接触孔组成,栅长栅宽要和原理图参数对应。衬底接触(substrate contact)是容易被忽略的一步——没有衬底接触,器件衬底电位悬浮,LVS 和后续仿真都会出问题。画完第一个反相器,再画第二个,最后拼成缓冲器版图。
5.2 DRC:设计规则检查
DRC 用 Assura 跑,检查版图是否违反工艺规则:最小线宽、最小间距、包围关系等。跑完看错误列表,逐条定位修改。Assura 提供几个高级功能值得记住:
- 屏蔽器件:对特定器件跳过检查;
- 屏蔽错误:把已确认无害的错误屏蔽掉;
- 屏蔽项作为运行参数:把屏蔽列表存成参数,下次运行直接带上。
屏蔽不是逃避,而是把"已评估过的例外"显式记录下来,避免每次重跑都被同一批误报淹没。这是工程化验证的常规操作。
5.3 LVS:版图与原理图一致性
LVS 检查版图提取出的网表与原理图网表是否一致:器件数量、尺寸、连接关系。跑之前要准备好规则文件和相关配置。报错通常分两类:器件不匹配(多画/少画/尺寸错)和网络不匹配(连错线、少接触孔)。定位方法是从错误报告里的节点名反查版图位置,逐个消除。LVS 干净是通过后仿真验证的门票。
5.4 RCX 与后仿真
寄生参数提取(RCX)从版图提取电阻电容,生成带寄生的网表。流程是:跑 RCX 前的准备 → 设置并运行 → 查看结果。后仿真(Post Simulation)分两步走:先对不带寄生的原理图仿真作为基准,再对带寄生的网表仿真,两者对比才能看出寄生效应的影响。后仿真波形和前仿真有偏差是正常的,偏差大小才是判断版图质量的关键指标。
6. 易错点清单:五个最容易翻车的地方
易漏点一:命令没退出就继续操作。为什么漏:Composer 的命令有粘性,界面没有明显提示当前处于什么命令状态。怎么补:养成"每个动作结束按 Esc"的固定节奏,删除操作前先确认状态栏。
易漏点二:参数单位写错。为什么漏:系统自动换算单位,写对了没感觉,写错了也不一定立刻报错。怎么补:数值只写数字加u/n这类后缀,不加M;需要空格的地方留空格;参数写完用q回看确认。
易漏点三:忘了 gnd 或衬底接触。为什么漏:原理图上 gnd 只是个符号,版图上衬底接触是独立一步,两者都不影响"画得对不对"的直观判断。怎么补:原理图检查时确认 gnd 存在;版图完成后专门过一遍衬底接触;仿真不收敛先查地。
易漏点四:模型名与模型文件脱节。为什么漏:原理图填 p18 看起来完成了,ADE 里没配模型文件路径,仿真才报错。怎么补:把"模型名 → 模型文件 → ADE 路径"作为一条链检查,仿真前逐项确认。
易漏点五:跳过 DRC/LVS 直接后仿真。为什么漏:急着看结果,觉得版图"看起来没问题"。怎么补:把 DRC 干净、LVS 通过设为后仿真的硬性前置条件,顺序不能颠倒。
7. 复习路线:按流程走一遍,比按章节背十遍管用
这份资料的章节顺序本身就是一条可执行的复习路线,但复习和初学的走法应该不同:初学是"跟着做",复习是"合上资料自己复述流程"。我的建议是把整条链路压缩成一张检查表,每复习一个模块,就在表上勾一项并口述关键动作:
| 阶段 | 关键动作 | 通过标准 |
|---|---|---|
| 环境 | 建目录、跑配置、拷 TF 与 drf | 快捷键可用、库能建 |
| 原理图 | 放器件、连线、设参数、放端口 | Check and Save 无错 |
| Symbol | From Cellview 生成、改图形 | 引脚与原理图一致 |
| 前仿真 | 搭测试电路、设变量、选输出、存设置 | 波形符合预期 |
| 版图 | 画器件、连线、衬底接触 | 图层显示正常 |
| DRC | 跑检查、改错误、必要时屏蔽 | 无未处理错误 |
| LVS | 跑检查、按节点定位 | 网表一致 |
| RCX | 提取寄生、查看结果 | 网表生成成功 |
| 后仿真 | 对比带/不带寄生结果 | 偏差可解释 |
具体复习时,我习惯用"反向提问法":不看资料,先问自己"如果 DRC 报了一堆错,我从哪查起""如果仿真不收敛,先怀疑什么""如果 LVS 说器件数量不对,最可能漏了什么"。答不上来的地方,就是回去翻对应章节的地方。这套方法比从头到尾重读一遍效率高得多,因为它逼你把知识从"看过"变成"能调用"。
还有一个具体技巧:把每个模块的快捷键单独抄在一张纸上,原理图阶段是i、w、q、p、X、f、S,版图阶段是各层的显示切换。快捷键不是背出来的,是用出来的,复习时对着空原理图把反相器盲画一遍,画不出来的步骤就是薄弱点。
从那以后我每次复习这套流程,都强制自己先合上资料把九步链路默写一遍,再打开资料逐项核对,错一处就在检查表上标红。默写比阅读痛苦,但痛苦的地方才是记住的地方。希望这份梳理能帮到你,把这条从原理图到 GDSII 的路走顺。
本文还有配套的精品资源,点击获取