3. 原理图设计入门:Virtuoso Schematic Editor 基本操作、器件调用与连线
好,咱们正式开始画原理图了。
很多新手拿到 Virtuoso,第一反应是「这界面怎么这么老?」。嗯,确实,它不像现代 EDA 工具那么花哨。但你别小看它,这工具稳得很。我做了十几年设计,最怕的就是工具出幺蛾子,Virtuoso 在这方面从来没掉过链子。
3.1 启动 Schematic Editor
在 Library Manager 里找到你要用的库,右键点击 Cell,选择 Open → Schematic。或者直接双击 Cell 名字,也能进去。
进去之后你会看到一个网格背景的画布。这个网格不是装饰,它是有格点(Grid)的。我个人习惯把格点设成 0.1μm,这样画出来的器件位置整齐,后边做版图时能省不少事。
3.2 器件调用:从库到画布
画原理图的第一步,就是把器件放上去。Virtuoso 里调器件有几种方式,我一般用快捷键 I。
- 按 I 键,弹出 Add Instance 窗口。
- 在 Library 栏里选
analogLib(这是最常用的基础库)。 - 在 Cell 栏里选你要的器件,比如
nmos4(四端 NMOS)。 - 在 View 栏里保持
symbol,点 OK。 - 鼠标回到画布,点一下左键,器件就放上去了。
放完之后别急着关窗口。你可以连续放多个同类型器件,点一下放一个,放完按 Esc 退出。
analogLib— 基础器件(MOS、电阻、电容、电感、电源、地)basic— 数字门电路、IO Pad- 你自建的
myLib— 自己封装好的子电路
我记得刚入行那会儿,有个同事调了一个 nmos4,结果仿真一直报错。查了半天才发现,他用的 nmos 是三端模型,没有衬底端。LNA 设计里衬底偏置很关键,千万别搞混了。
3.3 器件参数设置
器件放上去之后,你得给它设参数。双击器件,弹出 Edit Object Properties 窗口。
以 NMOS 为例,你需要设的参数有:
| 参数名 | 说明 | 典型值(LNA 输入管) |
|---|---|---|
Width |
沟道宽度 | 200μm |
Length |
沟道长度 | 0.18μm(工艺最小) |
Multiplier |
并联倍数 | 4 |
Fingers |
叉指数量 | 8 |
这里有个坑:Multiplier 和 Fingers 不是一回事。Multiplier 是复制整个器件,Fingers 是把一个器件拆成多个叉指。后仿真的寄生参数对这两个参数很敏感,我建议你一开始就按最终版图的结构来设,省得后边来回改。
3.4 连线:把器件串起来
器件放好了,参数设完了,接下来就是连线。按 W 键进入连线模式。
- 鼠标左键点击起点(比如漏极)。
- 移动鼠标,线会自动跟着走。想拐弯就点一下左键。
- 到达终点(比如电源),再点一下左键,线就画好了。
- 按 Esc 退出连线模式。
连线的时候注意几点:
- 不要跨过器件。线必须从器件的 pin 上引出,不能从器件中间穿过去。
- 线不能重叠。两条线交叉时,Virtuoso 会自动加一个节点(一个小圆点)。如果你不想让它们连通,就绕开。
- 电源和地。从
analogLib里调vdd和gnd符号,用线连到电路上。
你想想看,如果线画得乱七八糟,后边做版图时你根本找不到对应关系。我一般习惯把信号线画成水平或垂直,拐弯用 45 度角,看着清爽,也方便后边做 LVS 比对。
3.5 添加 Pin 和 Label
原理图不能只有内部连线,你还得告诉工具哪些端口是输入、输出、电源和地。按 P 键添加 Pin。
- Input:方向选
input,比如RF_IN。 - Output:方向选
output,比如RF_OUT。 - Power:方向选
inputOutput,名字叫VDD。 - Ground:方向选
inputOutput,名字叫GND。
Pin 放好之后,别忘了加 Label。Label 就是给线起个名字,方便仿真时看波形。按 L 键,点一下线,输入名字就行。
3.6 保存与检查
画完之后,按 Ctrl+S 保存。然后点菜单栏 Check → Check and Save。工具会帮你检查有没有悬空的 pin、没连上的线、重复的 Label 等问题。
如果检查通过,CIW 窗口会显示 Check completed with no errors。如果有错误,它会告诉你具体位置,双击错误信息就能跳过去。
3.7 知识体系总览
下面这张图把原理图设计的核心流程串起来了。你可以把它当成一个检查清单,每次画完原理图都过一遍。
这张图把从启动到保存的六个步骤串起来了。你每次画完原理图,按这个流程过一遍,基本不会漏东西。
3.8 小结
原理图设计看着简单,但细节决定成败。器件参数设错了,后边仿真全白跑;线没连对,LVS 报错能让你改到崩溃。我建议你从一开始就养成好习惯:每放一个器件就设参数,每连一条线就加 Label,画完一定 Check & Save。