原理图绘制基础:Schematic Editor界面详解、元器件调用与放置、Wire与Bus连线技巧、Label与Pin设置
好,咱们今天聊聊原理图绘制。说实话,很多新手觉得画原理图就是拖拖元器件、连几根线,没什么技术含量。但我跟你说,这个想法可不对。我见过太多因为原理图画得不规范,导致后端版图工程师跑来吵架的案例了。嗯,咱们今天就把这块基础打扎实。
Schematic Editor界面,你得先摸熟它
打开Virtuoso,进入Schematic Editor,你第一眼看到的是什么?一个灰白色的画布,周围全是工具栏。我刚开始用的时候,也觉得眼花缭乱。但说白了,你只需要记住几个核心区域。
- 菜单栏:最上面那一排。我平时用得最多的是
Create和Edit菜单。元器件调用、连线、打Label,全在这里。 - 工具栏:菜单栏下面那一排图标。我个人习惯把常用的几个拖到显眼位置,比如
Instance(调用器件)、Wire(连线)、Pin(打引脚)。 - 画布区:中间最大的区域。右键可以调出快捷菜单,这个很实用。
- 状态栏:最底下。这里会提示你当前的操作模式,比如“正在连线”还是“正在选择”。
F键可以全屏显示画布,按Ctrl+Z可以撤销。这两个快捷键我一天能用上百次。
元器件调用与放置,别小看这一步
调用元器件,快捷键是I。按下后,会弹出一个窗口让你搜索器件库。比如你要放一个NMOS管,直接搜nmos就行。
我记得有一次,一个同事调了半天没找到电阻,急得满头大汗。我过去一看,他搜的是resistor,但库里用的是res。所以啊,库里的命名规则你得先搞清楚。
放置的时候,我建议你养成好习惯:
- 器件放正,不要歪歪扭扭。按
R键可以旋转,按M键可以镜像。 - 留出足够的间距。别挤在一起,后面连线你会哭的。
- 电源和地,我习惯放在画布的上方和下方,这样信号流向清晰。
schematic视图,而不是symbol视图。我曾经犯过这个错,结果画了半天发现调出来的是个黑盒子,根本看不到内部结构。
Wire与Bus连线技巧,信号通路要清爽
连线用Wire工具,快捷键W。点一下起点,再点一下终点,线就画好了。但这里有几个坑,我得跟你说道说道。
第一,线要直。 别画成蛇形。按住Shift键可以强制走直角,这个很实用。
第二,Bus线怎么画? Bus就是一组信号线,比如data[7:0]。画Bus的时候,先画一根粗线,然后打上Label,比如data<7:0>。注意,Virtuoso里Bus的尖括号是<>,不是[]。
我遇到过一个问题:Bus线连好了,但仿真报错说信号没连上。查了半天,发现是Label的格式写错了。嗯,这里要特别小心。
第三,连线时别交叉。 如果必须交叉,用stub(短截线)或者跳线的方式。我个人的习惯是,能避免交叉就尽量避免,实在避免不了,就在交叉点打个pin标记清楚。
Label与Pin设置,名字起好了事半功倍
Label就是给线起名字。快捷键L。点一下线,输入名字,比如clk、rst_n。注意,名字要见名知意,别用net1、net2这种。
Pin的设置稍微复杂一点。Pin是芯片的对外接口,比如输入、输出、电源、地。设置Pin的时候,要指定方向:
| Pin类型 | 方向 | 示例 |
|---|---|---|
| 输入 | input | clk, rst_n |
| 输出 | output | vout, data_out |
| 双向 | inout | data_bus |
| 电源 | supply | VDD, VSS |
我曾经犯过一个低级错误:把输出Pin设成了input方向,结果后仿真一直报驱动冲突。查了两天才发现是Pin的方向设反了。所以啊,设置Pin的时候,多看一眼属性框。
clk,那对应的Pin也要叫clk。大小写也要统一,Virtuoso是区分大小写的。
好了,原理图绘制的基础就这些。你想想看,其实并不复杂,但细节很多。我建议你每画完一个模块,就做一次Check and Save(快捷键X),让工具帮你检查一下有没有悬空的线、没连上的Pin。这个小习惯,能帮你省下大把的调试时间。