ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Cadence OrCAD Capture CIS原理图连线与跨页连接实战避坑指南

Cadence OrCAD Capture CIS原理图连线与跨页连接实战避坑指南 1. 为什么原理图连线这件事值得单独拿出来讲画原理图这件事刚上手的时候总觉得没什么技术含量——不就是拿线把引脚连起来吗但真正做过几个项目的人都知道原理图连线是硬件设计里最容易埋雷的环节之一。尤其是用 Cadence OrCAD Capture CIS 这套工具功能强大归强大可它的连线逻辑和 Altium Designer、嘉立创 EDA 那套完全不是一回事。很多从 AD 转过来的朋友第一次用 Capture CIS 画图画完觉得挺顺结果一跑 DRC 傻眼了网络没连上、跨页信号丢了、电源网络莫名其妙短路。我自己带过几个新人也帮朋友排查过不少原理图问题发现一个规律单页原理图出问题的概率其实不高真正翻车的基本都在跨页连接和网络命名上。单页图里你眼睛能看到线连没连上一目了然但一旦项目规模上去一个工程拆成十几页甚至几十页信号靠端口和网络标号传递这时候如果命名规则不统一、端口类型搞错、层次结构没理清楚问题就会像滚雪球一样越滚越大。这篇内容就是围绕Cadence OrCAD Capture CIS 的原理图连线展开的重点讲单页网络怎么连、跨页连接怎么做、DRC 报错怎么排查。适合刚接触 Cadence 的硬件新手也适合从其他 EDA 工具转过来、被 Capture CIS 的连线逻辑坑过的朋友。我会尽量把每个操作背后的原因讲清楚不只是告诉你点哪里而是告诉你为什么这么点、不这么点会出什么事。提示本文基于 OrCAD Capture CIS 17.4 版本编写16.6 版本在菜单布局上略有差异但核心逻辑一致。2. 单页原理图连线看似简单坑都在细节里2.1 连线的基本操作与常见误区在 Capture CIS 里画线快捷键是W或者点工具栏上的 Place Wire。这个操作本身没什么好说的但有几个细节新手特别容易忽略。第一个是连线端点必须落在引脚上。Capture CIS 有一个吸附机制当你把鼠标移到引脚末端时会出现一个小圆圈或者小方块这时候点击才能确保线连上了。如果你只是目测对齐了就点下去看起来线是碰到了引脚实际上网络并没有建立连接。这个问题在 DRC 里表现为 Net has no driving source 或者干脆网络名对不上。第二个是避免出现 T 型交叉但没加连接点。在 Capture CIS 里两条线十字交叉默认是不连接的只有出现实心圆点才表示连接。T 型交叉的时候如果你从一条线的中间起头画另一条线Capture CIS 通常会自动加一个连接点Junction但有时候因为网格没对齐这个连接点不会生成。我的习惯是画完线之后按J手动补连接点或者用 Place Junction 命令确认一下。第三个是网格设置。Capture CIS 默认网格是 0.1 英寸这个精度对于大多数原理图是够的。但如果你从库里拖出来的符号引脚间距不是标准网格就会出现线连不上或者连歪的情况。我一般会把网格设成 0.05 英寸来画线画完之后再切回 0.1 英寸检查整体布局。2.2 网络标号的使用与命名规范单页原理图里除了直接画线另一种常用的连接方式是网络标号Net Alias。快捷键是N或者 Place Net Alias。它的作用是把一根线或者一个引脚赋予一个名字同名网络在同一个页面内自动连接。这里有一个非常重要的原则网络标号是区分大小写的。VCC_3V3和vcc_3v3在 Capture CIS 里是两个完全不同的网络。我见过一个项目电源网络一半写的大写一半写的小写结果 DRC 跑出来一堆 No driving source查了半天才发现是大小写不一致。命名规范这块我建议在项目开始之前就定好一套规则比如网络类型命名前缀示例电源正VCC_ / VDD_ / VCC_3V3, VDD_1V8电源负/地GND / AGND / DGNDGND, AGND时钟信号CLK_CLK_25M复位信号RST_ / RESET_RST_N差分对_P / _N 后缀USB_DP, USB_DN低有效信号_N / _L 后缀CS_N, OE_L这套规则看起来简单但能省掉后面大量的排查时间。尤其是差分对如果你命名的时候不按_P/_N的规则来后面做 PCB 的时候差分对识别会出问题。2.3 总线与总线入口的正确画法总线Bus在 Capture CIS 里是一个容易让人迷惑的东西。很多人以为画一条粗线就是总线其实不是。Capture CIS 里的总线分为两种普通总线和总线入口Bus Entry。普通总线就是一条粗线快捷键B它本身不传递任何信号只是一个视觉上的集合。真正让信号进出总线的是总线入口快捷键E它是一条 45 度的斜线把总线上的信号引到引脚或者网络上。这里的关键点是总线入口连接的线必须要有网络标号而且网络标号的命名要符合总线的命名规则。比如你定义了一条总线叫DATA[7:0]那么从总线入口引出来的线网络标号必须是DATA0到DATA7这样的格式。如果你写成DATA_0或者data0Capture CIS 就不会把它识别为总线成员。注意总线入口的 45 度斜线方向不影响电气连接但为了图纸整洁建议统一方向。我一般是从总线往引脚方向画斜线朝右下。3. 跨页连接项目规模上去之后的核心技能3.1 跨页连接的三种方式与选型逻辑单页原理图再复杂也有限真正做项目的时候一个工程拆成十几页是常态。这时候信号怎么从一页传到另一页Capture CIS 提供了三种方式第一种是全局网络标号Global Net Alias。在 Place Net Alias 的时候勾选 Global 选项这个网络标号就会在整个工程范围内生效。优点是简单直接不需要额外的端口符号缺点是如果项目很大全局网络太多会很难管理而且容易和其他页面的网络意外重名。第二种是离页连接器Off-Page Connector。快捷键是O或者 Place Off-Page Connector。它看起来像一个带箭头的标签放在页面的边缘表示这个信号要传到其他页面。离页连接器需要配合网络标号使用而且它的类型输入、输出、双向要和实际信号方向匹配。第三种是层次块Hierarchical Block和层次端口Hierarchical Port。这是最正规的做法适合大型项目。你把一个功能模块做成一个层次块块内部的信号通过层次端口和上层连接。这种方式结构清晰但前期搭建的工作量比较大。我的建议是小项目5 页以内用全局网络标号中等项目5-20 页用离页连接器大项目20 页以上用层次块。当然这不是绝对的如果你一开始就规划好了层次结构哪怕是小项目也可以用层次块后面扩展起来更方便。3.2 离页连接器的类型匹配与常见错误离页连接器的类型有四种Input、Output、Bidirectional、Passive。很多新手随便选一个结果 DRC 报一堆警告。其实这个类型是有实际意义的Input信号从其他页面流入本页Output信号从本页流出到其他页面Bidirectional双向信号比如 I2C 的 SDAPassive无源信号比如电阻分压出来的参考电压如果你把一个 Output 类型的离页连接器放在信号流入的位置DRC 会报 Output connected to Output 或者类似的冲突警告。这不是致命错误但说明你的信号方向定义有问题后面做仿真或者信号完整性分析的时候会出麻烦。我一般的做法是在画图之前先列一个信号清单标明每个信号的流向然后画图的时候严格按照清单来选类型。这个清单不用很正式在草稿纸上写几行就行但能省掉后面大量的 DRC 排查时间。3.3 跨页网络的命名一致性检查跨页连接最容易出的问题是网络名不一致。比如你在第一页写的是SPI_CLK在第三页写成了SPI_SCK这两个网络在 Capture CIS 看来是完全不同的信号DRC 会报 Net has no driving source 或者 Net has no load。这个问题在项目规模小的时候不容易发现因为你可以肉眼扫一遍。但到了几十页的项目靠肉眼检查基本不可能。我的做法是用 Capture CIS 的 Cross Reference 功能在 Project 窗口里选中工程然后 Tools → Cross Reference它会生成一个报告列出每个网络在哪些页面出现。如果某个网络只在一页出现但你觉得它应该是跨页的那就说明命名有问题。另一个技巧是用 Excel 管理网络名。在项目开始之前把所有跨页信号的名字列在 Excel 里画图的时候直接复制粘贴避免手打出错。这个方法看起来笨但实测下来非常有效尤其是团队协作的时候。4. DRC 报错排查从懵圈到精准定位4.1 DRC 检查项的配置与理解Capture CIS 的 DRCDesign Rule Check功能在 Tools → Design Rules Check。打开之后会看到一个配置界面里面有很多检查项。新手最容易犯的错误是全选所有检查项然后跑出来几百个警告根本不知道从哪看起。我的建议是分阶段跑 DRC第一阶段只检查电气规则也就是 Electrical Rules 里面的那几个核心项Check for single node nets单节点网络Check for no driving source无驱动源Check for no load无负载Check for output conflicts输出冲突第二阶段检查物理规则比如引脚类型冲突、电源引脚未连接等。第三阶段检查命名规则比如网络名重复、非法字符等。这样分阶段跑每次只关注一类问题排查效率会高很多。4.2 常见 DRC 报错与解决方法下面这张表是我整理的最常见的 DRC 报错和对应的解决方法报错信息含义常见原因解决方法Net has no driving source网络没有驱动源信号只连到了输入引脚没有输出引脚检查是否有离页连接器类型选错或者输出引脚漏连Net has no load网络没有负载信号只连到了输出引脚没有输入引脚检查是否有输入引脚漏连或者网络名写错Output connected to Output两个输出引脚连在一起两个输出信号意外短接检查网络标号是否重复或者总线入口接错Single node net单节点网络网络只有一个连接点检查是否有线没连上或者网络标号孤立Pin type conflict引脚类型冲突电源引脚接到了信号网络检查电源符号是否正确放置这里重点说一下Net has no driving source这个报错。它出现的原因通常有三种一是信号确实没有驱动源比如你从一个连接器引入信号但连接器的引脚类型是 Passive二是离页连接器的类型选错了比如信号从其他页面流入但你选的是 Output三是网络名写错了导致本页的网络和其他页面的网络没有连上。排查的时候我一般先用 Cross Reference 确认这个网络在哪些页面出现然后逐个页面检查离页连接器的类型和网络标号的拼写。4.3 利用 Report 文件精准定位问题DRC 跑完之后Capture CIS 会生成一个报告文件默认是.rpt格式。很多人跑完 DRC 只看弹窗里的摘要不去看报告文件这是很浪费的。报告文件里会详细列出每个报错的位置、涉及的元件和引脚甚至会给出行号。我的习惯是把报告文件用文本编辑器打开然后用搜索功能定位到具体的报错。比如搜索 no driving source就能看到所有相关的网络名和页面位置。这比在 Capture CIS 里一个个点要快得多。另外报告文件里的Net 部分会列出所有网络的连接情况包括每个网络连接了哪些引脚、在哪些页面出现。这个信息对于排查跨页连接问题非常有用。5. 实操心得与避坑经验5.1 项目开始前的准备工作我做了这么多项目最大的体会是原理图的质量在画第一根线之前就已经决定了。项目开始前的准备工作包括第一统一网格和单位。整个项目用同一个网格精度不要一会儿 0.1 英寸一会儿 0.05 英寸。单位统一用 mil 或者 mm不要混用。第二建立元件库。不要直接从别人的工程里复制元件因为不同工程的元件库可能不兼容。我一般会为每个项目单独建一个库文件把用到的元件都放进去确保引脚定义和封装信息一致。第三制定命名规范。前面提到的网络命名规则、元件位号规则、页面命名规则都在项目开始前定好。这个工作看起来繁琐但能省掉后面大量的返工时间。第四规划页面结构。哪个功能放哪一页信号怎么跨页传递在画图之前先想清楚。我一般会画一个简单的框图标明每个页面的功能和主要信号流向。5.2 画图过程中的自检习惯画图过程中我养成了几个自检习惯分享给大家每画完一页跑一次 DRC。不要等整个工程画完再跑那时候报错太多根本看不过来。每页画完就跑一次问题当场解决。用颜色区分网络类型。Capture CIS 支持给网络设置颜色我一般把电源网络设成红色地网络设成黑色时钟信号设成蓝色复位信号设成绿色。这样一眼就能看出网络类型排查问题的时候也方便。定期保存和备份。Capture CIS 偶尔会崩溃尤其是工程比较大的时候。我一般设置自动保存间隔为 10 分钟另外每天下班前手动备份一次工程文件。用 Annotation 功能检查位号。Capture CIS 的 Annotation 功能可以自动分配元件位号但有时候会分配重复或者跳号。我一般画完图之后跑一次 Annotation然后检查一下位号是否连续、是否有重复。5.3 团队协作中的注意事项如果是团队协作画原理图有几个额外的注意事项第一统一工具版本。不同版本的 Capture CIS 文件格式不完全兼容如果团队里有人用 17.4 有人用 16.6可能会出现打不开或者显示异常的问题。我一般要求团队统一用同一个版本。第二使用版本控制。原理图文件是二进制格式不能像代码那样做 diff。但可以用 Git 或者 SVN 做版本控制至少能追踪每次修改的时间和内容。我一般会在每次重大修改之后打一个 tag方便回滚。第三分工明确。谁画哪一页谁负责哪个模块在项目开始前就分好。跨页信号的命名和类型由一个人统一负责避免多人修改导致不一致。第四定期合并和检查。如果是多人同时画不同的页面定期合并工程文件然后跑一次全工程的 DRC。不要等到最后才合并那时候问题会集中爆发。5.4 从原理图到 PCB 的衔接要点原理图画完之后下一步就是导出网表给 PCB 工具。Capture CIS 支持导出多种格式的网表包括 Allegro、PADS、Altium 等。导出的时候有几个注意点第一确认封装信息完整。每个元件都要有对应的 PCB Footprint 属性否则导出网表的时候会报错。我一般会在画原理图的时候就把封装信息填好不要等到导出的时候再补。第二检查网表的一致性。导出网表之后用文本编辑器打开看一下确认网络数量和原理图里的一致。如果网表里的网络数量明显偏少说明有网络没连上。第三注意电源和地网络的命名。不同的 PCB 工具对电源和地网络的命名要求不一样比如 Allegro 要求地网络叫 GNDPADS 可能要求叫 GND 或者 0。导出之前确认一下目标工具的要求。第四保留原理图的 PDF 版本。导出网表的同时也导出一份 PDF 格式的原理图方便后面调试的时候查阅。Capture CIS 支持直接导出 PDF在 File → Export → PDF。6. 几个真实踩坑案例的复盘6.1 案例一电源网络大小写不一致导致 DRC 报错这个案例是我刚用 Capture CIS 的时候遇到的。项目是一个 STM32 最小系统板电源网络我一会儿写VCC_3V3一会儿写vcc_3v3画的时候没注意跑 DRC 的时候报了一堆 Net has no driving source。查了半天才发现是大小写不一致。教训网络命名一定要统一大小写规则。我现在的习惯是所有网络名统一用大写包括电源、地、信号全部大写。这样就不会出现大小写不一致的问题。6.2 案例二离页连接器类型选错导致信号方向混乱这个案例是一个 SPI 接口的项目。SPI 的 MOSI 信号从主设备到从设备我在主设备页面把离页连接器设成了 Output在从设备页面也设成了 Output。结果 DRC 报 Output connected to Output而且后面做信号完整性分析的时候信号方向完全乱了。教训离页连接器的类型要严格按照信号流向设置。主设备的输出对应从设备的输入不要两边都设成 Output。我现在的做法是在信号清单里标明每个信号的流向画图的时候严格按照清单来选类型。6.3 案例三总线入口命名不规范导致网络丢失这个案例是一个 DDR3 内存接口的项目。数据总线我定义成DQ[15:0]从总线入口引出来的线我写成了DQ_0到DQ_15。结果 DRC 跑出来发现这些网络全部是单节点网络根本没有连到总线上。教训总线成员的命名必须符合总线的命名规则。DQ[15:0]对应的成员是DQ0到DQ15不能加下划线也不能用其他分隔符。我现在的做法是定义总线的时候就把成员命名规则写清楚画图的时候直接复制粘贴避免手打出错。6.4 案例四网格未对齐导致连线看似连上实际断开这个案例是一个音频功放的项目。有一根信号线从运放输出到功放输入画的时候看起来连上了但 DRC 报 Net has no load。查了半天才发现是运放的输出引脚和功放的输入引脚不在同一个网格上线虽然画过去了但端点没有落在引脚上。教训画线的时候一定要确认端点落在引脚上。我现在的习惯是画完线之后按 F5 刷新一下看看有没有出现连接点。另外把网格设成 0.05 英寸来画线画完之后再切回 0.1 英寸检查整体布局这样能有效避免网格未对齐的问题。7. 一些提高效率的小技巧7.1 快捷键与自定义配置Capture CIS 的默认快捷键不算多但有几个特别常用快捷键功能使用场景W画线最常用画原理图的主力操作N放置网络标号给网络命名J放置连接点补 T 型交叉的连接点B画总线画数据总线E放置总线入口从总线引出信号O放置离页连接器跨页信号连接F5刷新检查连线状态CtrlS保存定期保存除了默认快捷键Capture CIS 还支持自定义快捷键。在 Options → Customize → Keyboard 里可以设置。我一般会把常用的几个操作设成左手能按到的键比如把 Place Wire 设成 W把 Place Net Alias 设成 N这样画图的时候左手按快捷键右手握鼠标效率会高很多。7.2 利用 CIS 数据库管理元件Capture CIS 的 CIS 部分Component Information System是一个元件数据库可以管理元件的各种属性包括位号、封装、供应商、价格等。如果你的项目用到了 CIS 数据库有几个技巧第一定期更新数据库。元件的信息会变化比如供应商停产了某个型号或者封装更新了。定期更新数据库确保原理图里引用的元件信息是最新的。第二用数据库的搜索功能。CIS 数据库支持按属性搜索比如搜索 10k 电阻 0603 封装就能快速找到对应的元件。这比手动在库里翻要快得多。第三导出 BOM 的时候用数据库的信息。CIS 数据库里的元件信息可以直接导出到 BOM包括供应商、价格、库存等。这对于采购和成本核算非常有用。7.3 原理图的美化与可读性原理图不只是给自己看的还要给同事看、给调试的人看、给后面维护的人看。所以可读性很重要。我一般会做以下几件事第一对齐元件。用 Capture CIS 的对齐功能Edit → Align把元件对齐不要东一个西一个。我一般会把同一功能的元件放在一起用框线框起来。第二标注功能块。在原理图上用 Text 工具标注每个功能块的名字比如 电源部分、MCU 部分、接口部分。这样别人看的时候能快速理解图纸结构。第三用颜色区分网络。前面提到过给不同类型的网络设置不同的颜色能大幅提高可读性。第四保持页面整洁。不要在一页上塞太多东西如果一页画不下就拆成两页。我一般一页最多放 50 个元件超过就拆页。7.4 导出与归档的规范项目做完之后导出和归档也有讲究第一导出 PDF 原理图。PDF 方便查阅不需要安装 Capture CIS 就能看。导出的时候选择 Export PDF可以设置页面大小和分辨率。第二导出 BOM。BOM 是采购和生产的依据导出的时候要确认元件信息完整包括位号、型号、封装、数量、供应商等。第三导出网表。网表是给 PCB 工具用的导出的时候要确认格式和目标 PCB 工具匹配。第四归档工程文件。把原理图文件、库文件、BOM、网表、PDF 打包归档标注项目名称和日期。我一般会按项目名称建文件夹里面再按日期建子文件夹方便追溯。8. 关于跨页连接的一些进阶思考跨页连接这件事表面上是技术问题实际上是项目管理问题。一个项目的信号怎么组织、怎么命名、怎么传递反映的是设计者对系统架构的理解。我见过一些项目原理图画得很漂亮但跨页信号乱七八糟同一个信号在不同页面有不同的名字离页连接器的类型也随意设置。这种项目后面做 PCB 的时候会非常痛苦因为网表里的网络和原理图对不上排查起来极其耗时。反过来我也见过一些项目原理图看起来平平无奇但跨页信号组织得井井有条每个信号的名字、类型、流向都清清楚楚。这种项目后面做 PCB 的时候非常顺畅网表一次导出成功DRC 一次通过。所以我的建议是在画原理图之前先花时间规划信号架构。这个时间投入是值得的后面会省掉几倍的排查时间。具体来说我会做以下几件事第一画一个系统框图。标明每个功能模块和它们之间的信号连接。这个框图不用很正式在草稿纸上画就行但能帮你理清思路。第二列一个信号清单。把所有跨页信号列出来标明信号名、流向、类型、涉及的页面。这个清单可以用 Excel 管理画图的时候直接参考。第三定义命名规范。前面提到的网络命名规则在项目开始前就定好并且严格执行。第四定期检查一致性。每画完几页就用 Cross Reference 检查一下跨页信号的一致性发现问题及时修正。这套方法看起来繁琐但实测下来非常有效。我带的新人用这套方法之后原理图的 DRC 通过率明显提高后面做 PCB 的时候也少了很多返工。最后再分享一个小技巧如果你不确定某个跨页信号该怎么连就先画一个简单的测试工程。比如你不确定离页连接器的类型该怎么选就建一个两页的测试工程画一个简单的信号从第一页传到第二页跑一下 DRC 看看报什么错。这种小实验花不了几分钟但能帮你快速理解 Capture CIS 的连线逻辑。
返回列表