很多从16.6时代一路用过来的工程师,第一次双击打开Cadence 17.4里的OrCAD Capture时,大概率会愣一下——这界面怎么长得完全不是印象里的样子?紧接着去论坛搜索,输入频率最高的一个问题就是“capture cis开关在哪”。其实启动界面右下角就藏着答案,只是大部分人没仔细看。这篇文章不从下载安装那套老生常谈说起,直接从17.4和旧版本差别最大的几个地方入手:CIS怎么调出来、画图流程和旧版有哪些不同、位号怎么改才能不被Annotate打乱、DRC怎么设才能既严格又不误报,以及导出PDF后位号无法搜索这种问题的真正解法。最后聊聊Capture和Allegro、PADS的关联与同步,把原理图从“画得出来”推进到“能过评审、能出网表”。内容偏向实际操作,适合正在从旧版本迁移到17.4、或者刚入门想少走弯路的硬件工程师看。
1. 装完17.4后的第一件事:找到Capture CIS并确认启动模式
1.1 为什么你的Capture和别人截图里长得不一样
Cadence在17.4这一代把OrCAD和Allegro的界面做了整合,启动器里出现了两个选项:OrCAD X Professional和Capture Classic。如果新建工程时选了OrCAD X Design,进入的是X Professional界面,菜单结构、工具栏图标都和16.6时代的Capture CIS完全不同,老用户一时间找不到自己的CIS菜单项,非常正常。
明确说一下切换方法:如果已经进了X Professional界面,在File->Change Design Environment里可以切回Capture Classic;也可以打开Options->Preferences,在Design Environment一栏里把默认启动模式改掉,下次打开直接进Classic。我建议画原理图阶段老老实实选Classic界面。X界面虽然看起来现代,但它对第三方Skill脚本、老版本的.olb库、公司内部CIS数据库的兼容性都还需要时间磨合。我亲眼见过有人在X界面下连Database Part查询结果都刷新不出来,切回Classic一切正常。
1.2 装上CIS组件但没装全,才是“开关找不到”的真相
不少朋友的软件里确实有“OrCAD Capture CIS”这个图标,但打开后Place菜单下面却光秃秃的,没有Database Part这一项。这个问题的原因不是没有开关,而是安装时漏了组件。
检查与修复步骤:打开Windows控制面板,找到已安装的Cadence相关产品,选择更改,在功能列表里找到Capture CIS Option,确认勾选后重新安装。装完再打开Capture,Options菜单下应该会出现CIS Configuration。
CIS的真正“开关”就在Options->CIS Configuration,选择.dbc配置文件后,Place->Database Part(快捷键Z)才会生效。Capture的配置文件在C:\Users\用户名\AppData\Roaming\OrCAD\Capture.ini。17.4的CIS配置、窗口布局、最近打开项目全记在这个文件里。我每次给新同事配CIS,都会先把这份ini备份一份,遇到CIS打开但查不到元件,八成是.dbc里的数据库连不上。
提示:17.4的.dbc配置除了连接Access和SQL Server,还支持直接连Excel表格。小公司临时用Excel做元器件库的方法:新建一个.xlsx,列好Part Number、Value、PCB Footprint、Description、BOM类型这些字段,然后在CIS Configuration里把数据源指到这张表。配置完之后,放元件就是查询数据库而不是从.olb库里翻,这才是CIS对标普通Capture的最大价值。
2. 从建工程到画完一页原理图:主流程里的关键操作
2.1 新建工程时Type选错,后面的仿真和网表全跟着受牵连
新建工程的入口在File->New->Project,麻烦在于17.4的New Project对话框里会出现好几个Type选项。我的建议是:如果只是画原理图和出PCB网表,选Schematic;如果后面要用Pspice做仿真,在一开始就选Analog or Mixed A/D,工程会专门带上仿真库和仿真属性;如果目标是做PCB,不要在New Project里选PCBSchematic,这个类型会引入额外规则约束,在原理图阶段就会多出不少检查项。至于OrCAD X Design的选项,除非确认要用X Professional工作流,否则都先回到传统逻辑。
接下来是图纸参数设置。Options->Design Template可以统一设置字体、标题栏、图纸边界、网格样式。做设计规范时,建议把栅格设为Snap to grid,线宽用默认细线。这些设置会跟着器件和导线属性进入后续网表,有些PCB工程师对线宽和栅格特别敏感,原理图画得漂亮但栅格歪歪扭扭,导入Allegro后那些off-grid的引脚够你喝一壶的。
17.4里对每一页图纸也可以右键页面->Schematic Page Properties单独调整尺寸。设计里既有模拟部分又有数字部分时,我习惯用不同的图纸尺寸区分:模拟部分用A4便于打印评审,数字部分用A3放下总线,多人协作时这个习惯尤其有用。从Altium转过来的工程师还习惯按功能模块拆Sheet,Capture同样可以通过Off-Page Connector和Hierarchical Block实现分区域管理,17.4在这块的操作比16.6要顺手不少。
2.2 放元件之前先把库挂好:从.olb到CIS数据库的两种做法
原理图绘制最忌讳边画边找库,一页图画完发现少了几个封装,再回头补库,位号、网络全牵连。开工前先做两件事:
- 在Project Manager左侧的Library文件夹上右键,把公司元器件库(.olb文件)加进去。Capture搜索元件时按库文件顺序遍历,如果两个库里有同名元件,它会用先加载的那个。这个顺序问题容易踩,建议把最常用的库放在最上面。
- 如果用CIS放件,先确认CIS Configuration已激活,并检查DBC连接的数据库能正常查询数据。别等放了一堆件才发现查询结果空白,回头查配置费时又费神。
17.4读取老版本.olb基本没压力,我从16.2时代攒下来的库在17.4里照常能用。但注意:在X Professional界面下,老库有时会出现符号部分属性丢失,最稳妥的办法还是Classic界面下用。
这里单独说说“source part和package有差异”这个很多人遇到的问题。CIS数据库里存的元件记录经常包含两条关键信息:Source Part指逻辑符号,就是原理图上画的那个方块和引脚;Package指PCB封装。很多新人在放置CIS元件后,只看原理图符号是有的,导网表时才发现PCB Footprint属性是空的,或者指向了一个不存在的封装名。
解决思路:在Edit Properties里检查每个元件至少要有PCB Footprint、Value两个核心属性;CIS查询时也不要只看图形对不对,先看封装名在不在库里。养成“放件看封装,连线看net”的习惯后,原理图导入Allegro时基本一次过。
2.3 连线和标号阶段最常见的三类低级失误
第一类是Net Alias命名不规范。有的工程师喜欢用“RXD#2”或者“1.8V_EN”这种名字,在Capture里画图时不报错,但导出网表到Allegro或PADS时,空格、小数点、斜杠、井号都可能被替换成下划线甚至直接报错。我的习惯是网络名统一用大写字母、数字和下划线,不以数字开头。别小看这条规矩,我统计过公司网表导入失败的原因里,三分之一都是网络名非法字符引起的。
第二类是总线命名格式不一致。Capture支持“BUS[0..7]”和“BUS[0:7]”两种写法,但一个设计里不要混用。我们遇到过原理图里两种写法都有,结果PADS导入后总线里的信号错位,简直是灾难。建议在Design Template里把Net Name格式约定统一,团队协作时写进设计规范。
第三类是Off-Page Connector的成对问题。跨页信号必须通过Off-Page Connector连接,而且要保证两页的连接器名字完全一致,包括大小写。Capture不提供跨页同名检测的默认DRC选项,我曾经因为一个页面的off-page叫USB_D+,另一个叫usb_d+,检查半天没发现,最后网表里出现两个孤立网络。这种难题的处理技巧在下面讲DRC时一起说。
3. 位号操作的三个“不能乱来”:修改、锁定、防重排
3.1 手动改完位号,一Annotate就被打回原形,原因在于Action选项
原理图里直接双击位号文本改成你想要的编号,是最直观的修改方式。问题出在很多人改完位号后习惯性跑一遍Tools->Annotate清理其他未编号元件,结果Annotate对话框里的Action默认是Unconditional Reference Update,这个动作会把所有元件按图纸上的扫描顺序重新编号,不管你之前怎么手动改的,全部推倒重来。
正确的操作是:如果只是手动调整了几个位号,后续还想让新增元件接着编号,Annotate对话框里做两处设置:
- Scope选择Only unannotated parts,让工具只处理没有位号的元件。
- Action选择Incremental reference update,让工具在现有位号基础上增量编号。
这两个选项配合使用,已有位号一个都不会动,新放的元件自动延续编号。这是解决“我改好的位号别动它”的最核心方法。
另外,如果希望某些位号被彻底锁死,任何人跑Annotate都改不了,可以通过给元件增加Can_Change_Reference属性并设为FALSE来实现。具体操作:选中元件,右键->Edit Properties,在Filter里选择Current Properties,添加一行Can_Change_Reference=FALSE。加了这行后,即使别人用Unconditional模式跑Annotate,这个元件也会被跳过。这个技巧非常适合固定芯片的位号管理,比如MCU、DDR、Flash这些关键器件在位号上往往和结构图、测试工装绑定,不能乱动。
3.2 批量重排后,位号不连续和同号问题怎么收拾
当图纸是几个人分模块画的,合并后位号一定会乱。这时候可以跑一次全局Unconditional Reference Update,让所有元件从U1、R1、C1开始重新排。这里注意Capture位号重排是分器件类型进行的,不同类型互不影响。
重排后经常出现两类问题:
第一类是跳号。比如R1到R10之间少了R3、R4,因为那两个电阻被删了。如果公司成品BOM要求连续编号,可以在Annotate里通过Reset reference designators步骤把编号压缩。注意这个动作要谨慎,一旦位号连续化,旧位号会全部失效,和原理图变更记录对不上。
第二类是同号,常见于从别的工程整页复制的场景。复制进来的页面如果原来就有R5,当前设计也有R5,Capture的Annotate默认会发现冲突并给出提示。但如果你把Only unannotated parts打开,这个冲突就会被漏过,两个R5同时存在于原理图里,直到导网表时才炸。所以每次跨工程拷贝页面后,先跑一次Unconditional Reference Update的全局重排,最稳。
批量修改位号也有更高效的方式:如果要把一批电容的位号统一加前缀,或者按网络名重排位号,选中目标元件后打开Edit Properties表格,在表格里直接对Reference列做编辑比一个个点快得多。表格编辑时支持Excel式拖拽填充,用熟了效率翻倍。
3.3 一个逻辑符号拆多个封装时,位号怎么保证不冲突
这类问题在排阻、排容、多路运放上尤其突出。CIS库里一个排阻的逻辑符号可能对应8路独立封装,逻辑上它叫RN1,但在物理封装里可能是一个整体SIP8,也可能要拆成好几个分立电阻。如果Annotate里的Physical Packaging选项没有设置,导网表后PCB里会出现一个器件对应多个位号,或者位号缺失。
操作路径:Tools->Annotate对话框里有一栏Physical Packaging,需要指定Parts per Pkg(每个封装包含多少个逻辑单元)。比如一个4路排阻,在原理图里是一个符号4个引脚单元,但PCB封装是一个整体,那就把Parts per Pkg设为1,让Capture知道这4个单元共享同一个位号。反过来,如果4路要拆成4个独立电阻,就要把Parts per Pkg设为4,物理封装名也要对应到独立电阻封装。
这个设置和CIS数据库里“source part和package有差异”的报错经常同时出现:数据库里source part是4路排阻,但package字段写的是独立电阻封装。处理方式是在Edit Properties里把多个逻辑单元改成不同的位号后缀,比如RN1A、RN1B,或者统一让它们归属一个物理封装。我的结论是:设计规范里最好明确“排阻排容一律按整体封装处理,不拆散标注”,可以省掉这类问题的大部分麻烦。
4. DRC自检与可搜索PDF导出:原理图发布前的质量关卡
4.1 DRC不是跑得越多越好:项目里真正该开的检查项
Tools->Design Rules Check是画完图之后必须过的一关。但在17.4里DRC默认打开了很多电气检查项,直接跑会报出一堆警告,新手看到上千条红色的错误信息当场崩溃。
我的设定方案是:Electrical Rules选项卡勾选Single node net、No driving source、Output pin connected to Output pin这类硬错误,因为这些通常意味着设计有问题。Duplicate nets和Unconnected pins这类项可以按需开,比如末级空闲的输入引脚悬空就会报warning,在MCU系统里这类warning如果太多,反而淹没了真正需要关注的错误。
17.4还在Physical Rules里提供了check off-grid、check pin to pin distance等选项,建议全部打开。尤其是多人分页合作时,这些规则能查出粘贴图纸时对齐错位的问题。DRC跑完后,错误列表在底部的Design Rules Check窗口,双击条目可以直接跳到原理图对应位置。排查顺序建议先处理Single node net,再处理因为网络名非法字符导致的意外孤立网络,这两类排除后,剩下的多半就只是警告。
4.2 Smart PDF导出后位号搜不出来,不是PDF阅读器的事
关于“OrCAD X Professional导出的PDF文件无法搜索里面的位号”,我已经不止一次回答过这个问题。根因在于X Professional的PDF导出功能为了兼容字体缺失问题,默认把文字转成了曲线或轮廓,特别是把Reference位号这类小字号文本一并矢量化。变成曲线之后,PDF阅读器拿到的只是图形,自然搜不到文字内容。
如果一定要导出可搜索的PDF,推荐用Capture Classic界面下的传统Smart PDF:
- 在Classic界面,File->Export->PDF,打开Smart PDF向导。
- 在PDF选项页面里找到Embed TrueType Fonts这类字体嵌入选项并勾选,让文字以真实文本形式保留。
- 如果版本里找不到字体嵌入选项,用虚拟打印机方式导出:File->Print,打印机选择Adobe PDF或Microsoft Print to PDF。虚拟打印机是先把页面渲染成打印命令再转PDF,所以导出的PDF文字是文本图层,位号都能搜。缺点是会丢失Smart PDF自带的书签和超链接,但可搜索性比书签重要得多。
另一个更省事的办法:如果你手里只有X Professional,不想切回Classic,导出后在Acrobat里对PDF执行一次OCR识别。但OCR对原理图这种密集小字文本经常识别出错,效果不如重新导出一次。所以我的建议始终是:公司规范里明确要求用到PDF位号搜索的图纸,统一走Capture Classic的Smart PDF,并勾选字体嵌入。
4.3 三种最常见的DRC错误实例和排查思路
我整理了实际项目里遇到最多的三类DRC问题,配合排查思路给出来:
| DRC错误类型 | 典型触发原因 | 处理建议 |
|---|---|---|
| Single node net | 网络标号打字错误或连线只连了一个引脚 | 双击跳转,检查Net Alias和连接关系,删除多余网络 |
| Output pin connected to Output pin | 两个三态输出直接短接,缺少隔离或总线逻辑 | 确认是否设计如此,否则加缓冲器或分开网络 |
| No driving source | 输入引脚没有来源,常发生在分页图纸遗漏连线 | 检查Off-Page Connector和电源符号是否遗漏 |
第一类Single node net最常见:一条网络只有一个引脚连接。这种多半是画图时线没连上,或Net Alias末尾多了个空格。17.4里网络标号不允许有尾部空格,但很多人从Excel里复制名字,肉眼根本看不出来区别。排查技巧:在Net Alias编辑框里把文本全选,看末尾有没有多余空格,有就删掉。
第二类Output pin问题,常见于原理图里把多个芯片的输出直接连到同一个节点。如果这是总线架构,需要确保这些输出是三态类型并在同一时刻只有一个有效,DRC仍然会判违规。处理方式是给引脚属性改成Passive,或者忽略该条检查,不过要在项目评审里说明原因。
第三类No driving source多半发生在接口电路图里,比如连接器输入直接进芯片内部,却没有上拉或端接网络。这种报错不一定都是问题,但值得逐个确认,尤其是高速信号,没有完整回流路径时后续PCB走线会很痛苦。
5. 原理图不能只活在Capture里:与Allegro关联和同步PADS
5.1 Capture和Allegro关联失败,八成出在四个地方
“orcad和allegro不能关联”这个问题,几乎每个用Cadence套装的人都碰到过。标准流程其实很清晰:Capture里Tools->Create Netlist,选择PCB Editor选项卡导出网表;Allegro里File->Import->Logic,Logic type选Capture,指定.dsn文件。
这里最常见的失败原因按概率排序:
- 位号重复或未Annotate。Capture导网表时遇到没有完整编号的元件可能静默处理,Allegro导入时直接失败。解决办法是回原理图跑一次完整的Unconditional Reference Update。
- PCB Footprint和Allegro封装库匹配不上。Capture里元件的PCB Footprint属性只是一个字符串,Allegro导入时要用这个名字在封装路径里找.pad和.dra文件。最常见的是大小写不一致,比如Capture里写LQFP48,Allegro库文件叫Lqfp48,结果就是找不到。处理方式:在Allegro的Setup->User Preferences里把封装搜索路径配置对,并且把Capture的封装名逐一和库文件名核对。
- 网络名里有非法字符。前面说过,Capture能画的网络名未必能被Allegro接受,空格、斜杠、中文都是重灾区。Allegro导入时报Syntax error的时候,回Capture检查网络名,把非法字符改成下划线。
- 文件路径和用户名带中文。Allegro的Import Logic会在log里写临时文件,如果工程路径位于中文目录下,或者Windows用户名是中文,Allegro可能报Can't read file。这类问题最无奈也最好解决:统一使用英文路径,工程根目录不要带空格。
如果上面都检查过了还是不能关联,还有一个大杀器:把Capture工程用File->Export->Legacy导出成旧版本格式,再用Allegro的Import Logic导入旧格式。这个方法对付版本跨度大时的兼容问题非常管用,我遇到过Capture 17.4配Allegro 16.6的尴尬场景,就是用Legacy导出绕过去的。
5.2 对接PADS的正确姿势:第三方网表导出与格式选择
公司里不是人人都用Cadence全家桶,很多中小团队还是原理图用OrCAD,PCB用PADS。Capture和PADS之间没有原生关联,标准做法是导出第三方网表再导入。
步骤:在Capture里Tools->Create Netlist,切换到Other选项卡,格式选择器里选PADS2K.DLL,生成.asc文件,然后在PADS Layout里File->Import导入。
常见坑有两个:
第一,PADS的封装名和Capture里PCB Footprint属性不统一。Capture里可能习惯写0805C,而PADS库里叫C0805,导入后一片红色的未匹配封装。处理方式:在Capture导网表之前,先做一个封装名映射表,或者在CIS数据库里直接统一成PADS的封装命名规范。
第二,.asc网表导入PADS后,网络名里的非法字符会被替换成下划线,但元件位号不变。所以导入后一定要先对比网络数量是否和Capture一致。我一般会导出一份Capture的Netlist Report,和PADS导入后的网络表在Excel里做一次差集比对,多几个网络或者少几个网络都能立刻发现。
另外,PADS Logic不支持直接读取Capture的.dsn文件,所以还是得走第三方网表再到Layout这一步。我在实际工作中发现,原理图跨工具最大的问题不是导不进去,而是导进去以后没人核对。很多工程师导完就以为万事大吉,直到PCB Layout做到一半发现封装对不上才回头查原理图。所以不管你对接到Allegro还是PADS,导完网表后花十分钟核对位号、网络数、封装名这三个维度,能省下后面几天返工时间。
说到最后,还是想多唠叨一句。OrCAD Capture CIS 17.4这套工具,功能本身并不复杂,真正让人头大的是版本迁移和工作流衔接带来的各种隐性坑。我自己从16.6迁到17.4,前前后后踩过CIS组件缺失、Annotate位号被重排、PDF位号不能搜索、Allegro关联失败这些坎,后来把处理流程固化成了上面的习惯:装完先确认CIS组件和.dbc,画图前先配库和模板,位号操作前想清楚Annotate的Action,导出PDF统一走Smart PDF,跨工具同步前先把封装名和网络名规范一遍。这些习惯看起来琐碎,但每一条都是在真实项目里被坑过才总结出来的。如果你也在用17.4,希望这篇能帮你少走几趟弯路,把更多时间留到设计本身上去。