4、OrCAD Capture高级技巧:层次化原理图设计、差分对与总线绘制、Off-page连接器使用、生成网表(Netlist)

各位同学,咱们今天聊点硬核的。前面几章我们把OrCAD Capture的基本操作过了一遍,画个电阻电容、连个网络标号,这些都不在话下。但真正到了复杂项目,比如一块几百个元件的板子,或者一个FPGA加多路电源的系统,你还在一张图纸上画到底?那可就太累了。

这一章,我带你掌握几个高级技巧。说白了,就是让你从「能画图」变成「会画图」。层次化设计、差分对、总线、Off-page连接器,还有最后的网表生成——这些才是专业工程师的日常。

4.1 层次化原理图设计:把复杂系统拆成积木

先说说层次化设计。我个人习惯,只要项目超过5页原理图,我肯定用层次化。为什么?因为好管理,也好复用。

你想想看,一个电源模块,可能在不同项目里反复用。你每次重新画一遍?浪费时间。层次化设计就是让你把某个功能模块封装成一个「黑盒子」,顶层只看到接口,底层去实现细节。

4.1.1 创建层次化模块

操作其实不复杂。在OrCAD Capture里,你选中菜单 PlaceHierarchical Block,然后画一个矩形框。系统会问你:这个模块叫什么名字?对应哪个原理图文件?

举个例子,我做一个电源板,顶层有「DC-DC模块」、「LDO模块」、「保护电路模块」。每个模块我单独画一张子图,顶层只放三个方块,用线连起来。清爽得很。

我的小技巧: 模块命名尽量用英文,别用中文。有些老版本的Cadence对中文支持不太好,容易出乱码。我曾经吃过这个亏,导网表时报错,查了半天发现是中文路径的问题。

4.1.2 层次化端口与连接

模块画好了,怎么跟外部通信?靠的是 Hierarchical Port。你在子图里放一个端口,比如叫 VIN,顶层模块上就会自动出现一个对应的引脚。

这里有个坑:端口名字必须完全一致,大小写都算。我见过有人顶层写 VIN,子图写 Vin,结果连不上。嗯,这种低级错误,检查起来特别费时间。

4.1.3 复用与实例化

层次化还有一个好处:复用。比如你有4个相同的运放电路,你只需要画一张子图,然后在顶层放4个同样的模块实例。每个实例可以有不同的属性,比如不同的电阻值。

操作上,用 PlaceHierarchical Block,然后选择已有的原理图文件。系统会问你是「引用」还是「复制」。我建议选「引用」,这样改一个地方,所有实例都跟着变。

4.2 差分对与总线绘制:高速信号的画法

接下来聊差分对。做高速设计,USB、HDMI、以太网,这些信号都是差分对。在原理图里怎么画?

4.2.1 差分对的定义

OrCAD Capture里,差分对不是随便画两根线就完事的。你需要给网络命名时加上后缀。比如正端叫 USB_DP,负端就叫 USB_DN。然后在 PlaceDifferential Pair 里把它们配对。

配对之后,这两根线在原理图上会用一条带箭头的虚线连起来,表示它们是一对。这个在Layout时特别有用,Allegro会自动识别并做等长处理。

注意: 差分对的命名规则一定要统一。我习惯用 _P_N 结尾。别今天用 _P/_N,明天用 _POS/_NEG,不然导网表时你会疯的。

4.2.2 总线的绘制

总线,说白了就是把一堆信号捆在一起画。比如一个16位的数据总线,你一根一根画?那得画到猴年马月。

在OrCAD里,用 PlaceBus 画一条粗线,然后给总线命名,比如 DATA[0:15]。接着,把每个信号通过 Bus Entry 连到总线上。

这里有个细节:总线上的信号名必须跟总线名匹配。比如总线叫 DATA[0:15],那连上去的信号就得叫 DATA0DATA1……或者 DATA[0]DATA[1]。格式要统一。

4.3 Off-page连接器:跨页信号的桥梁

原理图一多页,信号怎么跨页传递?靠Off-page连接器。

操作很简单:在 PlaceOff-Page Connector 里选一个样式。我一般用箭头朝右的,表示信号「流出」本页。在另一页,放一个同名的Off-page连接器,箭头朝左,表示「流入」。

名字必须完全一致。这个跟层次化端口一样,大小写敏感。

避坑指南: 我曾经在一个项目里,用了两种不同样式的Off-page连接器。结果导网表时,系统认为它们是不同的器件,报了一大堆未连接警告。后来我统一用一种样式,再也没出过问题。

4.4 生成网表(Netlist):从原理图到PCB的桥梁

好了,原理图画完了,怎么交给Allegro去布局布线?靠网表。

网表,说白了就是一份文本文件,里面记录了所有元件、引脚、网络的连接关系。Allegro读了这个文件,才知道你画了个什么东西。

4.4.1 网表格式的选择

OrCAD Capture支持多种网表格式。我们做Allegro PCB设计,一般选 Allegro PCB Editor 格式。操作路径:ToolsCreate Netlist,然后在对话框里选 Allegro PCB Editor 选项卡。

这里有个选项叫 Create PCB Editor Netlist,勾上。然后点确定,系统就会生成一个 .net 文件和一个 .dat 文件。

4.4.2 网表检查与常见错误

生成网表时,系统会自动做电气规则检查(ERC)。常见的错误有:

  • 单端网络:某个网络只连了一个引脚。比如一个电阻的一端悬空了。
  • 重复的参考编号:两个元件用了同一个位号,比如两个 R1
  • 未连接的电源引脚:比如某个芯片的VCC没接。

遇到这些错误,别慌。双击错误信息,系统会自动跳转到问题位置。改完再重新生成网表。

重要提醒: 每次修改原理图后,一定要重新生成网表。我见过有人改完原理图忘了导网表,结果PCB还是老版本,白干了一整天。

4.4.3 网表导入Allegro

网表生成后,打开Allegro PCB Editor,用 FileImportLogic,选择刚才生成的 .net 文件。系统会提示你导入成功,然后你就可以看到所有元件和网络了。

嗯,这一步其实很简单,但很多人容易忽略一个细节:导入前,确保你的封装库路径设置正确。不然Allegro找不到封装,会报一堆错。

4.5 本章小结

这一章的内容,说白了就是让你从「画图工」变成「设计师」。层次化设计帮你管理复杂系统,差分对和总线帮你处理高速信号,Off-page连接器让跨页连接变得清晰,网表生成则是原理图到PCB的必经之路。

我个人觉得,这些技巧里最值得花时间练的是层次化设计。因为它不仅影响画图效率,还影响团队协作。你想想看,一个项目多人协作,每个人负责一个模块,最后在顶层拼起来——这才是专业团队的做法。

下一章,我们开始进入Allegro PCB Editor,真正开始布局布线。到时候你会发现,原理图画得好,PCB设计就成功了一半。