3、原理图绘制入门:实例化器件、连接线、节点、Pin与Label

好,咱们正式开始动手画原理图了。说实话,很多新手觉得这步就是拖拖拽拽,没什么技术含量。但我跟你说,原理图的质量直接决定了后仿真的效率,甚至影响流片成败。我见过太多人因为原理图画得乱七八糟,结果后仿真查错查到崩溃。

这一章,咱们就踏踏实实把基本功练扎实。你跟着我走一遍,保证以后画图又快又稳。

3.1 实例化器件:把元件请进画布

打开Virtuoso,新建一个原理图视图后,你会看到一个空白的画布。第一步就是往里面放器件。

按快捷键 i,或者点菜单栏 Create → Instance,会弹出一个对话框。这里就是你的元件库入口。

常用器件库路径(以TSMC 180nm为例):

  • nmostsmc18rf → nch → nch_1v8(普通阈值)或 nch_lvt(低阈值)
  • pmostsmc18rf → pch → pch_1v8
  • resistortsmc18rf → res → rppoly(多晶硅电阻)或 rnwell(阱电阻)
  • capacitortsmc18rf → cap → mim(MIM电容)或 mom(MOM电容)

我个人习惯,每次选完器件后,先别急着关对话框。把 “Rotate”“Mirror” 的快捷键记一下:R 是旋转,M 是镜像。画差分对的时候,这两个键能帮你省一半时间。

我的小技巧: 实例化时,按住 Ctrl 键再点鼠标左键,可以连续放置同一个器件。画阵列时特别爽,不用每次都按 i

3.2 连接线(Wire)与节点(Net)

器件放好了,接下来就是连线。按 w 键进入连线模式。这时候鼠标会变成十字光标,点一下起点,再点一下终点,一条线就画好了。

但这里有个坑,我当年刚入行时踩过。你想想看,如果两条线只是交叉,但没有在交叉点打上节点(Net),那它们其实是 不连通 的。Virtuoso默认不会自动识别交叉点为连接。

注意: 需要连接的地方,一定要打上节点。快捷键是 Shift + N,或者点菜单 Create → Wire → Wire Node。节点是一个小圆点,没有它,两条线就是各走各的。

连线时还有几个实用技巧:

  • 自动走线:按 w 后,按住 Shift 再点两个端点,Virtuoso会自动帮你绕开障碍物。不过说实话,自动走线有时候绕得挺丑的,我一般只在简单连接时用。
  • 改变线宽:在连线模式下,按 F3 可以调出属性面板,里面可以设置线宽。电源线和地线我习惯用宽线,比如 0.5μm1μm,信号线用默认的 0.1μm 就行。
  • 删除连线:按 Delete 键,或者用 Stretch 模式(快捷键 s)拖动端点来调整。

节点(Net)的名字也很重要。Virtuoso会自动给每个节点分配一个名字,比如 net0123。但说实话,这种名字在后仿真查波形时根本记不住。所以我建议你养成习惯,关键节点一定要手动命名。

3.3 添加Pin与Label

原理图最终是要生成网表的,而网表的输入输出接口就是Pin。没有Pin,后仿真都不知道从哪里灌激励。

p 键打开添加Pin的对话框。这里要填几个东西:

参数 说明 我的建议
Pin Name 引脚名称,比如 VDDGNDINOUT 用大写字母,不要用中文,不要有空格
Direction 输入、输出、输入输出、电源/地 电源和地选 inputOutputpower
Usage 模拟信号、数字信号、时钟等 模拟电路一般选 analog

Pin放好后,记得给关键节点加Label。按 l 键,或者点 Create → Label。Label的作用是给节点一个可读的名字,方便你后续看波形时一眼认出来。

我曾经犯过的错: 有一次画一个带隙基准,我把 VREF 这个节点的Label拼写成了 VREFF。结果后仿真时,我盯着波形看了半天,怎么都找不到 VREF 这个节点。最后发现是拼写错误。所以,Label的名字一定要和Pin名、网表里的名字完全一致,大小写都不能错。

3.4 保存与Check

画完图,千万别直接关。先保存,再Check。

保存的快捷键是 Ctrl + S,或者点 File → Save。Virtuoso会生成一个 .oa 文件,里面包含了你的原理图信息。

Check是Virtuoso自带的电路规则检查。点 Check → Check Current Cell View,或者按快捷键 Shift + C。它会检查:

  • 有没有悬空的引脚
  • 有没有短路
  • 有没有未连接的节点
  • 器件参数是否合理

注意: Check通过后,CIW窗口会显示 Check completed with 0 errors, 0 warnings。如果有错误,它会告诉你具体位置和原因。别偷懒,一定要把错误全部清零再往下走。我见过有人带着几十个warning跑后仿真,结果仿真器报错,查了半天才发现是原理图里有个器件没接地。

Check通过后,我建议你再做一步:生成网表。点 Launch → ADE L,然后在ADE L窗口里点 Simulation → Netlist → Create。看看生成的网表里,器件名字、节点名字、连接关系对不对。这一步能提前发现很多隐藏问题。

我的习惯: 每次画完原理图,我都会在CIW窗口里输入 dbCheckAllCells() 这个命令。它会做一次更全面的检查,包括器件参数范围、连接完整性等。虽然慢一点,但心里踏实。

好了,这一章的内容就这些。你跟着操作一遍,把nmos、pmos、电阻、电容都实例化出来,连上线,加上Pin和Label,然后保存、Check。做完这些,你就已经掌握了Virtuoso原理图绘制的核心操作。下一章咱们开始讲怎么设置仿真环境,跑第一个DC仿真。