☰
Cadence Virtuoso 入门实战:从反相器到版图全流程
2026/11/4 8:28:43 网站建设 项目流程

简介:这份PDF教程面向初次接触集成电路版图设计的初学者,尤其适合需要完成课程设计或首次尝试流片的用户,帮助其快速上手Cadence Virtuoso这一常用IC设计工具。内容以最简单的反相器为例,完整走通从启动软件、管理Library/Cell/View树状结构、新建工程与链接tsmc18rf工艺库,到绘制原理图、设置元件参数、进行瞬态仿真及后续画版图与后仿真的全流程,并穿插i、w、q、x等常用快捷键说明,步骤详细、语言浅显,便于按图操作。资源包共1个PDF文件,约2.32MB,单文件即涵盖入门所需的完整操作脉络。目前已有2872人学习,适合作为零基础读者系统练习与查漏补缺的实操参考。

1. 从一条icfb &命令说起:这套教程到底能带你走多远

很多同学第一次打开 Cadence Virtuoso 时,面对的是一个空荡荡的终端和一堆不知道从哪点起的菜单。课程设计催着要交版图,工艺库的路径还没搞明白,仿真波形跑不出来,DRC 报了一屏错——这时候最需要的不是一本六百页的手册,而是一条能从头走到尾的完整路径。这份教程的价值就在这里:它用最基础的反相器做载体,把原理图创建、瞬态仿真、symbol 封装、测试电路搭建、版图绘制这条链路串成了一条线,每一步都给了可照着敲的操作和参数。适合刚接触集成电路设计的初学者,也适合工作里偶尔要碰 virtuoso、但每次都被环境配置和快捷键劝退的从业者。下面我按自己复现时的顺序拆一遍,把教程里没展开的参数边界和踩坑点补上。

2. 环境启动与库结构:先搞懂 Library、Cell、View 三层树

2.1 启动命令与目录约定

教程给的启动方式是终端里进入工作目录后执行icfb &,注意icfb和&之间有一个空格,&表示把进程放到后台,终端不被占住。这一步看着简单,翻车率却不低。常见做法是先在 home 下建一个专门的项目目录,所有 Library 都建在这个目录里,避免路径里带中文或空格。

# 进入自己的工作目录,路径按实际改,不要带中文和空格 cd ~/ic_projects/inv_lab # 启动 virtuoso 主界面,& 放后台,注意中间的空格 icfb &

命令执行后如果终端没有任何回显、图形界面也没弹出来,先看两件事:一是icfb是否在 PATH 里(which icfb验证),二是当前 shell 的显示变量是否指向了可用的图形环境。这两项任何一项不满足,软件都不会给你任何有意义的报错,只会静默失败,这是新手最容易卡住的地方。

2.2 Library / Cell / View 的树状关系

Library Manager 里看到的结构是三层:Library 相当于一个工程文件夹,Cell 是一个单元(比如一个 MOS 管、一个反相器),View 是同一个 Cell 的不同表现形式——schematic 是原理图,symbol 是封装符号,layout 是版图,还有 spectre、hspice 这类参数模型视图。一个 Cell 下挂多个 View,彼此通过 cellview 关联,改原理图不会自动同步到 symbol 和 layout,这一点后面会反复咬人。

建 Library 时教程选了Attach to an existing techfile,工艺库选tsmc18rf。这个选择直接决定了后面能不能画版图:不挂 techfile 的库只能做原理图仿真,画版图时图层、设计规则全是空的。所以只要课程设计涉及版图,建库这一步就必须挂工艺库,没有回头路,建错了只能删库重建。

层级类比本例中的实例注意点
Library工程文件夹inv一个工程一个库,别混用
Cell单元sche原理图、版图、symbol 同属一个 Cell
View表现形式schematic / symbol / layout改一个不会自动同步另一个

建 Cell 时 Cell Name 填sche,View Name 填schematic,Tool 选 Composer-Schematic。这里有个习惯值得养成:Cell 名用有意义的前缀,比如inv_sche,因为后面测试电路还要建一个 Cell,名字太泛容易在 Library Manager 里点错。

3. 原理图绘制:快捷键、器件放置与参数单位

3.1 必须刻进肌肉的快捷键

教程列了一串快捷键,我按使用频率重排一下,前六个是每天要按上百次的:i添加 instance、w连线、q看/改属性、x检查并保存、f合适显示全部、Esc退出当前命令。Esc单独拎出来说,因为 virtuoso 的命令是粘滞的——你按了w进入连线模式,不按Esc就会一直处在连线状态,点哪儿都在拉线,很多人以为软件卡了,其实是没退命令。e进 symbol 内部、Ctrl+e退回、r旋转、r后按F3选镜像,这几个在搭测试电路时用得多。

3.2 器件从哪来:analogLib 与工艺库的分工

电源、地、信号源这类仿真激励全部来自analogLib:vdd、gnd是全局标号,本身不提供电压电流,只表示同名网络连在一起;vdc是直流源,vpulse是方波源。晶体管来自工艺库tsmc18rf,nmos 用nmos2v,pmos 用pmos2v。放置时按i,点 Browse,选库、选 Cell、View 选 symbol,关掉浏览窗口后器件就挂在鼠标上了,点 Hide 可以隐藏对话框连续放置。

连线用w,注意所有 nmos 的 B 极接地、所有 pmos 的 B 极接电源,这是 0.18μm 工艺体硅器件的衬底接法,漏了 B 极仿真会报收敛错误或者结果完全不对。连完按x检查并保存,它会做简单的连接性检查,比s多一道保险。

3.3 参数设置:单位是软件加的,别自己写

这是教程里最值钱的一句提醒:virtuoso 的参数框里只填数值,单位由软件按工艺默认补。电源电压填1.8,不要填1.8V;时间填10n,不要填10ns。加了单位反而报错,因为解析器把V当成了非法字符。

V0 (vdc) DC voltage = 1.8 V1 (vpulse) voltage1 = 0 voltage2 = 1.8 delay time = 0 rise time = 1n fall time = 1n pulse width = 1n period = 2n

方波的六个参数共同确定波形:voltage1/2 是高低电平,delay 是起始延时,rise/fall 是边沿时间,pulse width 是高电平持续时间,period 是周期。教程里周期设 2n、脉宽 1n,占空比 50%。边沿时间设 1n 是有讲究的——设得太陡(比如 1p)会把 MOS 管栅漏电容的耦合效应放大,输出波形上出现明显的尖峰,初学者容易误以为电路有问题。教程后面观察到的那个耦合跳变,就是边沿太陡导致的,把 rise/fall 放慢到 1n 量级就平缓很多。

4. 瞬态仿真与波形验证:从 Netlist and Run 到结果浏览器

4.1 仿真环境配置

原理图窗口里点 Tools → Analog Environment 打开仿真窗口。分析类型选tran,stop time 填10n,因为信号周期 2n,看 5 个周期足够判断逻辑。精度选conservative,这是最高精度档,课程设计和小电路验证用它没问题,代价是仿真慢,规模大了要换moderate。勾选 enabled 使能该分析,点 OK 后仿真窗口里会出现 tran 的条目。

跑仿真点 Simulation → Netlist and Run。如果工艺库没挂好、模型路径不对,错误全部堆在仿真信息窗口里,不会弹窗提示。常见报错是找不到 model file 或者 undefined model,前者查库的 techfile 链接,后者查器件名是否拼错(nmos2v不是nmos)。

4.2 看波形与网络名标注

仿真结束后点 Tools → Results Browser,双击tran-tran展开结果,里面会列出 net18、net22 这类自动编号的网络。右键选 append 把波形加到图形窗口。如果不知道哪个 net 是输入哪个是输出,点 Results → Annotate → Net Names,原理图上会直接标出网络名,对着标号找就快了。

验证逻辑很简单:输入方波高电平时输出应为低,反之亦然。教程里还观察到输出在输入跳变瞬间有耦合尖峰,这是栅漏电容把输入边沿耦合到输出造成的,属于物理现象不是错误,边沿放慢后尖峰幅度明显下降。这一步的意义在于建立“仿真结果要和电路原理对得上”的习惯,而不是跑出波形就算完。

提示:每次改完原理图,仿真前必须按x检查并保存,只按s保存可能让网表与原理图不一致,波形对不上时先怀疑这一步。

5. 封装 symbol 与测试电路:pin、全局网络与负载电容

5.1 从原理图生成 symbol

要做版图的电路不能把测试激励画进去,所以先把反相器本体做成 symbol。删掉测试用的电源和信号源,按p加 pin:输入 pin 名in、方向 input,输出 pin 名out、方向 output,Attach net expression 选 no。然后 Design → Create Cellview → From Cellview,一路 OK,生成只有接口的 symbol,按q把 instance name 和 partname 改成inv。

这里有个血泪经验:生成 symbol 前必须既按x又按s,只按x的话 symbol 可能不同步,后面在测试电路里调用的还是旧版本,改了半天原理图波形不变,查半天查不出原因。

5.2 测试电路与全局网络gnd!

新建一个 Cell 叫sche_test,View 选 schematic,按i把刚做的invsymbol 放进来,再加vpulse激励和vdc电源,输出挂一个 50fF 的负载电容(f是 10^-15,比 p 小三个数量级)。选中 inv 按e可以进内部看电路,Ctrl+e退回。

关键点在网络名:点连接地的线按q,会看到 net name 是gnd!而不是gnd,感叹号表示全局网络,只有带!才能和 symbol 内部的gnd!连上。电源同理是vdd!。如果测试电路里手动画了个叫gnd的网络,仿真时它和内部地是断开的,波形会莫名其妙地飘。这个细节教程专门点出来了,值得记牢。

6. 版图绘制与避坑:图层、DRC 与几个反复咬人的坑

6.1 版图 Cell 的建立方式

版图要和原理图放在同一个 Cell 下,这样 LVS 才能对应上。在 Library Manager 里对sche新建 Cellview,Cell name 保持sche不变,Tool 改成 Virtuoso Layout Suite,View name 会自动变成layout。建完后 Library Manager 里sche下就多了 layout 这个 View,和 schematic、symbol 并列。

画版图的核心操作和原理图类似:i放器件(这次放的是版图视图)、w走线(用金属层)、r旋转、q改属性。反相器的版图无非是 pmos 和 nmos 并排、栅极连输入、漏极连输出、源极分别接电源和地,中间用 contacted poly 和金属 1 连接。真正花时间的是设计规则:最小线宽、最小间距、有源区到阱的距离,这些由 tsmc18rf 的 techfile 约束,画的时候打开 Design Rule 显示,超规则的区域会高亮。

6.2 避坑清单

现象一:仿真报 undefined model,信息窗口一屏红。原因多半是建 Library 时选了Don't need a techfile,或者工艺库路径没配。解决:删库重建,建库时选Attach to an existing techfile并指定tsmc18rf;已经画了东西的库不要删,改用 Tools → Technology File Manager 重新挂接。

现象二:波形一直是平的,输入方波也没显示。原因通常是vpulse参数填了带单位的数值,比如1.8V,解析失败后源输出恒为零。解决:所有参数框只填数字和 SI 前缀(1.8、10n、50f),单位交给软件。

现象三:测试电路波形和单独仿真反相器时不一致。原因是对gnd!和vdd!的理解不到位,测试电路里用了不带感叹号的同名网络,导致地和电源没真正连通。解决:点线按q确认网络名带!,不带就删掉重连。

现象四:改了原理图,symbol 和测试电路没变化。原因是只按了x没按s,或者 symbol 生成后没重新同步。解决:改完原理图先x再s,然后重新执行 From Cellview 覆盖生成 symbol,测试电路里删掉旧 symbol 重新放置。

现象五:版图 DRC 报一堆间距错误,但看起来线没挨着。原因是用了错误的图层画连接,比如该用 Metal1 的地方用了 Poly,或者 contacted poly 的 enclosure 不够。解决:对照工艺的 layer 列表确认每层用途,DRC 报错点双击能定位到具体坐标,逐条看规则名再改。

6.3 从原理图到版图的验证闭环

画完版图不是终点,要跑 DRC 确认无设计规则违反,再跑 LVS 确认版图网表与原理图网表一致。LVS 报 mismatch 时先看是不是电源地网络名不一致(版图里也要用vdd!、gnd!的对应标签),再看器件尺寸是否和原理图对得上。这个闭环走通一次,后面做更复杂的单元就是重复这套流程。

7. 进阶技巧:把一次成功的流程固化成可复用的检查单

复现这套教程最大的收获不是画出一个反相器,而是把“建库挂工艺 → 画原理图 →x检查 → 瞬态仿真 → 封装 symbol → 搭测试电路 → 建 layout → DRC/LVS”这条链路走顺。我自己的习惯是每换一个工艺库,先用最小电路(反相器或缓冲器)把这条链路完整跑一遍,确认环境没问题再上正式设计,这一步能省掉后面大量的玄学排查。

几个能明显提速的做法:一是把常用快捷键写在便签上贴显示器边,i、w、q、x、Esc这五个练到不用想;二是仿真前固定执行x,把它当成肌肉记忆,别信“我刚才保存过了”;三是测试电路单独建 Cell,永远不要把激励和待做版图的本体混在一个 schematic 里;四是版图阶段先画电源地 rail 再放器件,布局会顺很多。

检查项时机不做的后果
Library 挂 techfile建库时无法画版图、仿真找不到模型
参数不带单位填属性时源输出为零、仿真结果全错
x检查并保存每次改原理图后网表与图不一致,波形对不上
s保存生成 symbol 前symbol 不同步,测试电路调旧版
网络名带!搭测试电路时电源地断开,波形异常
DRC + LVS版图完成后流片前才发现规则违反,返工

从那以后我每次开新工程,都强制先跑一遍这个最小反相器链路再动正式电路,环境问题在十分钟内暴露完,比做到一半发现库没挂好要省心得多。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询