Cadence OrCAD原理图设计规范:信号连接、封装管理与DRC检查 1. 原理图设计中的信号连接从“能用”到“规范”在Cadence OrCAD Capture CIS里画原理图尤其是面对一个动辄几十上百页的复杂项目时信号怎么连绝对是个技术活。很多刚入行的朋友包括我自己刚开始用的时候都容易犯一个错误觉得网络标号Net Alias、层次端口Hierarchical Port和页间连接器Off-Page Connector这三个东西功能上好像差不多随便抓一个就用。结果就是原理图画的时候看着没问题一生成网表或者导入PCB工具各种“Net has multiple drivers”或者“Unconnected port”的报错就冒出来了排查起来能让人头大。这里面的核心区别其实在于设计架构。Capture CIS支持两种主流的设计方式平坦式设计Flat Design和层次式设计Hierarchical Design。简单来说平坦式设计就像一本很厚的书所有内容都按章节Page平铺开来而层次式设计则像一本书的目录顶层是一个框图Block每个框图点进去才是具体的电路页Schematic Page可以层层嵌套。网络标号Net Alias这是最基础的“本地”连接工具。它只在当前这一页原理图Page内有效。你在这一页的某个网络上放一个叫“CLK”的标号同一页内所有叫“CLK”的网络就自动连在一起了。但它跨不了页你在第二页再放一个“CLK”标号系统会认为这是两个完全不相干的网络。所以它只适用于单页内的信号整理和命名让图纸更清晰。页间连接器Off-Page Connector这是为平坦式设计量身定做的“跨页桥梁”。当你把一个设计拆分成多个平行的Page时比如把电源部分放Page 1MCU核心放Page 2外设放Page 3那么“3.3V”这个电源网络就需要在所有页面都存在。这时你在每个页面的“3.3V”网络末端放一个向左和向右的“Off-Page Connector”符号通常是个带方向的小方块Capture CIS就知道这些是同一条网络会在电气上把它们连接起来。它的关键特点是“无类型”只认名字不管方向。层次端口Hierarchical Port这是层次式设计的“对外接口”。想象一下你设计了一个“电源管理模块”并把它做成了一个层次块Hierarchical Block。这个块需要对外提供“12V_IN”输入和“3.3V_OUT”输出。那么你在这个块的内部原理图上就需要用“Hierarchical Port”来定义这些输入输出端口。在顶层框图里你看到的这个块上就会长出对应名称的引脚。它的核心特点是有明确的信号方向Input, Output, Bidirectional这是进行层次间电气规则检查ERC的基础。我踩过的一个典型坑就是混用。曾经在一个平坦式设计里因为觉得Hierarchical Port的符号样式更顺眼就用它来连接不同Page的同一个信号。比如Page 1里“RESET”信号我放了一个Output类型的端口Page 2里同一个“RESET”网络我顺手放了一个Input类型的端口。画图时一切正常但运行DRC检查时工具就会报错提示“Output pin connected to Input pin”因为它严格按照端口的电气类型去检查了。而如果两边都用了Output类型虽然不报错了但这在电气逻辑上本身就是错误的。如果用Off-Page Connector就完全没有这个烦恼因为它不携带方向属性只负责把同名网络连通。所以我的第一条血泪经验就是严格遵循工具的设计范式。做平坦式设计跨页信号一律用Off-Page Connector做层次式设计模块的对外接口用Hierarchical Port。这不是死板而是为了避免后期潜在的、难以排查的电气错误。1.1 平坦式 vs. 层次式如何根据项目选择设计架构理解了连接工具我们再来看看怎么选择设计架构。这其实取决于项目的复杂度和团队协作模式。对于中小型项目比如一个简单的单片机控制板元件数量在几百个以内功能模块清晰且相对独立我强烈推荐使用平坦式设计。把所有电源电路放在前几页MCU及时钟配置一页各类通信接口UART, I2C, SPI各一页模拟采集一页等等。这样做的好处是直观任何人打开原理图就像看一本书的目录能快速定位到具体功能电路。管理上也简单所有元件都在同一个层次BOM生成、全局查找替换都很方便。这时候Off-Page Connector就是你的好帮手确保电源、地、关键控制信号在所有页面正确连通。而对于大型复杂系统比如一块集成了多个FPGA、高速接口、模拟前端的板卡或者需要模块复用的情况层次式设计的优势就无可替代了。你可以把“DDR4内存接口”、“PCIe Gen3接口”、“千兆以太网PHY电路”分别设计成独立的层次块。在顶层你只需要用几个方块图加上连线就能勾勒出系统的骨架非常清晰。更重要的是这些成熟的模块Block可以保存为库文件在未来的项目中直接调用极大地提升了设计效率和质量一致性。这时Hierarchical Port就是定义模块“黑盒子”接口的唯一标准方式。我个人的习惯是即使项目不大如果某个电路比如一个经典的LDO电源电路或RS-232电平转换电路我觉得以后可能会复用我也会把它单独做成一个层次块来画。虽然前期多花几分钟定义端口但长远来看积累自己的原理图模块库是提升效率的利器。2. 原理图的可读性与管理让图纸自己说话画原理图不仅仅是把线连对更重要的是要让图纸具备良好的可读性和可维护性。尤其是团队协作时你画的图别人要能快速看懂几个月后自己回头维护也不能抓瞎。这里分享几个我实践中觉得非常实用的技巧。2.1 页间标识符大型设计中的导航灯塔上文提到的“显示页间标识符”Intersheet References功能是一个被很多人忽略的“神器”。它的作用是在每个网络标号或Off-Page Connector旁边自动标注出这个信号在其他哪些页面也被使用。标注的格式可以是页码比如[1, 3, 5]表示该信号在第1、3、5页都有连接。这个功能在排查信号连接问题、进行设计审查时尤其有用。你不需要再用“查找”功能一个一个去搜这个信号在哪里出现过一眼就能看到它的“足迹”。具体操作在上文已有简述这里补充几个实操细节何时运行建议在原理图设计的中后期当页面和信号结构相对稳定后再运行此功能。如果频繁增删页面或信号每次更新后都需要重新运行注释Annotate来刷新标识符。格式选择在“Intersheet References”设置窗口中Format选项很重要。{Page:Number}会显示为[1]{Page:Name}会显示页面的名称如果你给页面重命名了。我通常选择{Page:Number}因为更简洁。你也可以自定义格式比如加上括号或其它分隔符。偏移量OffsetX Offset和Y Offset决定了标识符相对于网络名称的显示位置。需要根据原理图图纸的拥挤程度来调整。默认值可能重叠我通常设X Offset为10-15Y Offset为0让标识符显示在名称的右侧。选择性标注你可以通过Scope选项选择是标注整个设计Update entire design还是只标注选中的部分Update selection。对于局部修改后者可以节省时间。设置好后点击OK图纸上所有跨页信号旁边都会出现清晰的页码标识整个设计的信号流向一目了然极大提升了图纸的专业性和易用性。2.2 元件属性显示管理整洁与信息的平衡原理图上元件属性太多如Part Reference, Value, PCB Footprint, Manufacturer Part Number等会显得非常杂乱属性太少又可能丢失关键信息。如何管理Capture CIS的属性显示控制非常灵活。除了上文提到的通过元件属性窗口Property Editor的Display按钮控制单个属性的显示/隐藏外还有两个更高效的方法全局显示过滤器Global Display Filters在原理图页面空白处右键选择Properties或者点击菜单Options-Preferences在Schematic-Grid Display标签页旁有对整个设计页面的显示设置。但更常用的是针对特定属性的批量管理。你可以选中多个同类元件如所有电阻右键打开属性编辑器在底部选择Apply to-Selected objects然后批量修改它们的某个属性如Value的显示状态。这比一个一个改快得多。使用Capture CIS的“CIS”功能可选组件如果安装了Capture CISComponent Information System那管理能力就上了一个台阶。CIS可以连接公司内部的元器件数据库不仅可以直接调用带有完整属性料号、价格、库存、Datasheet链接的元件还能通过配置视图View来统一控制原理图上显示哪些属性。例如你可以创建一个“用于评审”的视图只显示Reference,Value,Footprint创建另一个“用于生产”的视图额外显示Manufacturer Part Number和Supplier。这样同一份原理图根据不同用途切换视图就能呈现最合适的信息保持图纸整洁。对于常规使用我的建议是固定显示Reference和Value这是阅读电路的基础。PCB Footprint强烈建议显示这是原理图和PCB之间最重要的桥梁能早期发现封装错误。其他如料号、描述等可以隐藏通过BOM报表来查看。保持图纸清晰是高效设计的第一步。3. 封装Footprint管理连接原理图与PCB的生死线如果说网络连接是原理图的灵魂那么元件封装Footprint就是连接原理图与PCB实体的桥梁。这个环节一旦出错所有设计工作都可能归零。在Capture CIS中封装信息通常存储在元件属性里的PCB Footprint一栏。3.1 如何正确分配与检查封装手动填写对于从标准库调用的元件封装可能已预填。但务必双击确认。比如一个0805封装的10k电阻其PCB Footprint属性值应该是类似RESC0805这样的名称这个名称必须与你PCB设计软件如Allegro的封装库名称严格一致包括大小写。批量关联对于分立元件电阻、电容、电感可以使用Capture的“Update Cache”功能或通过CIS数据库来批量关联封装。在CIS中你可以在数据库里为每个元件型号预定义好对应的封装调用时自动带入。关键检查点是否有遗漏生成网表Netlist或直接导入PCB之前必须进行全局检查。使用Tools-Export Netlist流程在生成网表的对话框中仔细查看警告和错误信息。常见的错误就是“PCB Footprint not found”。封装名一致性确保原理图中的封装名在PCB库中真实存在。一个简单的检查方法是在Capture中生成一个“BOM with Footprint”的报表快速浏览一遍所有使用的封装名称。引脚数核对特别关注IC类器件。原理图符号的引脚数如一个20pin的芯片必须与PCB封装的焊盘数完全一致。引脚顺序的映射Pin Number也必须在制作原理图符号时就确保正确。这是最容易导致PCB无法布线或芯片无法焊接的致命错误。注意永远不要相信默认值或记忆。对于每一个新项目尤其是使用了新器件或自己创建了符号/封装时封装分配必须作为一个独立的检查环节。我曾因为一个QFN芯片的原理图符号引脚顺序画反导致整版PCB报废教训惨痛。3.2 异构封装与多个PCB封装的管理有些元件同一个原理图符号可能对应不同的物理封装。例如一个运算放大器可能有DIP-8、SOIC-8、MSOP-8等多种封装选项。在Capture中有几种处理方法属性直接指定最直接的方法就是在PCB Footprint属性里填写当前设计要用的那个具体封装名。这是最常用、最不易出错的方式。使用Alternate属性Capture支持为元件设置Alternate封装属性。你可以在属性编辑器里添加一个Alternate Footprint属性把可能的封装都填进去用逗号分隔。但在最终输出时仍然需要确保PCB Footprint属性指向其中一个。这个方法更多是用于文档记录。通过CIS实现封装优选在CIS环境中你可以在数据库中将一个元件关联多个封装。在调用元件到原理图时可以在弹出的CIS窗口中选择本次设计需要的具体封装。这是最专业、最不易出错的管理方式特别适合企业级应用。对于个人或小团队我推荐坚持使用第一种方法一图一封装清晰明确。在原理图标题栏或单独的设计文档中可以记录关键器件的可选封装但在当前项目的原理图文件中每个元件的PCB Footprint属性必须是唯一的、确定的。4. 设计规则检查DRC交付前的自我体检在完成所有原理图绘制、封装分配后在生成网表送给PCB同事或导入Allegro之前必须进行严格的设计规则检查Design Rule Check, DRC。这是发现并纠正电气和绘图错误的最后一道也是最重要的一道关卡。Capture CIS的DRC功能位于Tools-Design Rules Check。弹出的对话框中有多个标签页需要根据项目需求仔细配置。4.1 关键DRC检查项解析ERC Matrix电气规则检查矩阵这是DRC的核心。它定义了什么类型的引脚输入Input、输出Output、电源Power等连接在一起时会被认为是错误Error还是警告Warning。例如两个输出引脚短路这通常是严重错误意味着信号冲突。矩阵中Output行与Output列的交点应设置为Error。输入引脚悬空这可能是一个错误未连接信号也可能是设计允许的如上拉电阻默认不接。这取决于你的设计规范可以设置为Warning以提示检查。电源引脚连接通常Power引脚之间的连接是允许的Power连接Passive无源引脚如电阻端也是允许的。你需要根据常识和公司规范来配置这个矩阵。不要轻易使用默认设置一定要理解每一项的含义。Physical Rules物理规则检查未连接的网络勾选此项会报告所有只有一个连接点即悬空的网络。对于确实不需要连接的测试点或保留引脚可以放置一个No ERC标记Place - Directive - No ERC来避免警告。检查重复的网络名确保没有意外的网络名冲突。检查离页连接符的一致性这是针对Off-Page Connector的专项检查确保平坦设计中跨页连接的信号名完全一致强烈建议勾选。Schematics Rules原理图规则检查重复的元件位号确保没有两个元件拥有相同的“U1”或“R1”。检查总线入口格式确保总线Bus和单根信号线的连接符合规范。4.2 DRC流程与错误排查心得运行DRC后所有错误和警告会列在一个报告文件.drc中并同时在原理图上以红色或绿色的标记Markers显示。我的排查流程是先看报告摘要了解错误和警告的总数。定位第一个错误在报告文件中双击错误描述软件会自动跳转到原理图上出错的位置。分类处理真正的电气错误如电源短路、输出冲突必须修改原理图。绘图或规范问题如悬空输入引脚、单个引脚网络根据设计意图决定。如果是故意的如NC引脚放置No ERC标记如果是遗漏则补上连接。警告信息不要忽略警告。每一个警告都要过一遍确认其是否可接受。很多隐蔽的问题最初都是以警告形式出现的。修正后重新运行DRC直到错误数量为0并且所有警告都已审阅并确认无误。一个常见的难点是处理层次式设计中的端口连接错误。例如顶层框图的一个输入端口连接到下层模块的输入端口这在ERC矩阵中可能被视为两个输入相连规则上可能允许也可能报错。你需要根据信号流的方向仔细检查层次端口的类型Input/Output/Bidirectional设置是否正确。层次设计的DRC一定要在顶层和底层分别运行并确保端口类型匹配信号的实际流向。5. 网表生成与数据交付通向PCB的最后一公里DRC清零后就可以生成网表Netlist了。网表是原理图所有电气连接信息和元件封装信息的文本化描述是PCB设计工具的输入文件。OrCAD Capture可以生成多种格式的网表最常用的是用于Cadence自家PCB EditorAllegro的allegro格式。5.1 生成Allegro网表的详细步骤与配置点击Tools-Create Netlist。在弹出的对话框中选择PCB Editor标签页这对应Allegro网表。在Netlist Files目录下选择输出网表的路径。建议为每个项目建立一个独立的、路径中不含中文和空格的文件夹例如D:\Project\XXX_Project\Netlist。关键配置Options标签页确保“Create PCB Editor Netlist”被选中。在“Netlist Files”框里你会看到即将生成的pstxnet.dat,pstxprt.dat等文件。Setup按钮点击后进入更详细的设置。在这里你需要指定PCB Footprint属性名。默认就是PCB Footprint如果你的封装属性用的是其他名字比如Footprint必须在这里修改一致否则Allegro会找不到封装。View Output生成后立即查看日志文件确认没有报错。点击“确定”生成网表。生成成功后你会在目标文件夹看到一系列.dat文件。将这些文件连同你的原理图设计文件.dsn一起打包交付给PCB设计工程师或者用于自己导入Allegro。5.2 交付清单与版本管理作为一个良好的工程习惯原理图交付不应只是一个网表文件。我建议形成一个简单的交付包包含最新版本的原理图项目文件.opj和.dsn。生成的网表文件整个Netlist文件夹。DRC报告.drc文件证明你已经做过检查。元件清单BOM初稿通过Tools-Bill of Materials生成格式可以是Excel或文本。这有助于PCB工程师和采购早期介入。PDF格式的原理图用于评审和存档。通过File-Print或Plot功能生成注意选择所有页面并设置好打印比例。自述文件Readme.txt简要说明项目名称、版本号、关键设计变更、待定事项如“C1容值待定”、以及封装库的特殊说明如“使用了自己创建的封装库XXX”。版本管理强烈建议对原理图文件使用版本控制工具如Git SVN或至少建立规范的文件命名规则如ProjectName_Schematic_V1.2_20231027.dsn。每次重大修改后递增版本号并保存副本。清晰的版本历史能在出现问题时快速回溯。6. 高效使用技巧与常见问题排查掌握了核心流程一些技巧和“坑”的规避能让你事半功倍。6.1 提升效率的实用技巧快捷键自定义Capture支持自定义快捷键。将常用的操作如放置元件Place Part、放置网络标号Place Net Alias、放置连线Place Wire设置成顺手的快捷键能极大提升绘图速度。路径在Options-Preferences-Shortcuts。使用Design Cache当你从库中放置一个元件后它的信息会被存入当前项目的Design Cache。下次再放置相同元件时可以直接从Cache里找速度更快。但要注意如果库中的原件更新了你需要Update Cache来同步否则用的还是旧版本。分屏与窗口管理在大型设计中可以同时打开原理图目录Project Manager和多个原理图页面窗口。利用Window菜单下的平铺Tile功能可以方便地对照查看不同页面的电路。全局查找与替换CtrlF不只是查找文本在原理图中它可以查找元件位号、网络名、属性值等。CtrlH可以进行替换比如批量修改某个电阻的阻值属性。6.2 常见问题与解决方案速查表问题现象可能原因排查步骤与解决方案生成网表时提示“PCB Footprint not found”1. 元件PCB Footprint属性为空或填写错误。2. 属性名不匹配如属性名为Footprint但网表配置中查找的是PCB Footprint。3. 封装名在PCB库中确实不存在。1. 检查报错元件的属性补全或修正封装名。2. 在Create Netlist-Setup中检查“PCB Footprint”属性名是否匹配。3. 确认PCB封装库路径已正确配置且封装名拼写无误。DRC报告“Multiple outputs connected”两个或多个输出类型的引脚如两个芯片的输出引脚、一个输出引脚与一个电源引脚错误设置为输出类型直接连在了一起。1. 定位到报错点检查连接在一起的引脚电气类型。2. 如果是设计错误如总线竞争修改电路。3. 如果连接正确如线与逻辑可能需要修改ERC矩阵中该类型连接的规则为不报错但需谨慎。层次设计中底层修改后顶层不更新层次块Block的接口引脚发生了变化增删或改名但顶层符号未同步更新。1. 在顶层设计窗口中选中该层次块符号。2. 右键选择Synchronize Up或Synchronize Down使框图符号与底层原理图端口保持一致。放置元件时找不到库1. 所需库文件未添加到当前项目的库列表。2. 库文件路径错误或移动。1. 在Place Part界面点击Add Library添加正确的库文件.olb。2. 在Options-Preferences-Design Template-Library中检查全局库路径。交叉参考Cross Reference报告不准确未运行或未正确运行生成交叉参考的操作。1. 确保所有图纸已保存。2. 点击Tools-Annotate在Action中选择Update Occurrence Properties或Update Instance Properties然后生成报告。打印PDF时图纸不完整或比例不对打印设置中的页面尺寸、缩放比例或居中选项未配置好。1.File-Print Setup选择正确的打印机如Adobe PDF。2. 在Scaling中选择 “Fit to page” 或自定义比例。3. 勾选“Center horizontally”和“Center vertically”。4. 在Print对话框中选择 “All pages” 和 “Current design”。最后关于元件属性隐藏后的显示问题上文已经给出了标准操作。这里再补充一个场景有时你可能会遇到属性被误删除了而不仅仅是隐藏。这时在属性编辑器Property Editor里该属性可能根本不存在。你需要点击编辑器下方的“New Property”按钮手动添加这个属性例如Value并为其赋值然后再控制其显示状态。记住属性编辑器是一个强大的工具不仅可以查看修改属性还能以表格形式批量编辑多个元件的属性善用它能让你的设计管理更加高效。