Altium Designer 16原理图与PCB协同设计故障诊断指南
1. 这不是“报错清单”而是一份Altium Designer 16原理图与PCB协同设计的故障诊断手册你打开Altium Designer 16画完一张四层STM32F103C8T6最小系统原理图导入PCB后突然弹出“Error: Duplicate Net Name ‘GND’”或者刚布完DDR4走线DRC检查直接飘红37处“Clearance Constraint Violation”又或者导出Gerber时提示“Failed to generate output job – No PCB document found”可明明PCB文件就开着……这些不是软件Bug而是AD16在用它特有的、略带固执的方式告诉你你的设计逻辑、数据链路或工程配置某处出现了隐性断裂。我从2013年开始用AD做嘉立创打样项目经手过200款量产板卡从51单片机小模块到工业级ARMFPGA异构系统。AD16虽是2016年发布的版本比AD20早四年但它仍是当前中小批量研发团队的主力工具——稳定、资源占用低、对老硬件兼容好且大量企业库、封装标准、公司模板都基于此版本构建。但正因如此它的报错机制更“原始”不提供智能修复建议不自动跳转错误位置甚至同一错误在不同操作路径下会呈现完全不同的提示语。比如“orcap-11010:有2张或以上原理图页面,page number都设成了1”这根本不是AD16原生报错而是你混用了OrCAD Capture绘制的原理图并试图用AD16导入——AD16根本不认识OrCAD的页码管理逻辑它只看到两个Sheet都标着Page 1于是判定“页码冲突”进而拒绝建立正确的交叉引用关系。这篇内容不罗列报错代码不堆砌截图而是按真实工作流拆解从原理图编辑阶段的隐性陷阱如网络标号作用域混乱、未分配器件位号、到原理图→PCB数据同步时的核心断点如Room定义缺失导致封装丢失、差异对比误判、再到PCB布局布线中的规则类误报如“PCB走线要求”未被正确加载为设计规则、最后到输出制造文件时的工程级失效如Gerber层映射错位、钻孔文件缺失。每一个报错背后都对应一个可验证的设计决策链。你将看到为什么把所有页码设为1会导致网络无法连通为什么AD16中“PCB板铜皮挖空”操作会触发“Polygon Connect Style”规则冲突为什么“ddr4原理图”里一个看似普通的电源去耦电容摆放位置会在PCB阶段引发“Un-Routed Net”警告——而这个警告90%的工程师会误以为是飞线没连实则是原理图中该电容的引脚类型被错误设为“Passive”而非“Power”。适合谁看如果你正在用AD16完成毕业设计、公司样机开发、或是接手一份老旧但仍在维护的AD16工程这篇就是你的实时排障地图。它不假设你熟悉高级脚本或定制化规则所有解决方案均基于AD16原生界面操作所有参数设置均标注具体路径如“Design → Rules → Electrical → Clearance → Edit Rule…”所有避坑点均来自我踩过的、返工三次以上的现场记录。现在我们进入第一层诊断原理图阶段那些“看起来正常实则埋雷”的设计动作。2. 原理图阶段的隐形地雷从页码重复到网络标号作用域2.1 页码重复不只是格式问题而是跨页连接的逻辑崩塌“orcap-11010:有2张或以上原理图页面,page number都设成了1”这个报错表面看是页码设置错误实则是AD16对“多页原理图”数据结构的根本性认知冲突。AD16的原理图引擎要求每张图纸必须有唯一标识这个标识由两部分组成图纸编号Document Number和页码Page Number。其中页码用于生成导航器Navigator和交叉引用Cross Reference报表而图纸编号才是实际参与网络连接的逻辑ID。当你把两张图纸的Page Number都设为1时AD16在生成交叉引用表时会发现Net GND 在 Sheet1-Page1 和 Sheet2-Page1 中同时出现但系统无法判断这是同一网络的两个分支还是两个独立网络的命名冲突。于是它强制中断网络拓扑分析抛出orcap-11010错误——注意这个错误代码本身是OrCAD的AD16在导入OrCAD网表时复用了其错误体系这恰恰说明问题根源在数据交换层。提示AD16原生创建的多页原理图默认使用“Auto Page Numbering”即每张图纸的Page Number自动递增1,2,3…且Document Number默认为空。但很多工程师为图省事在“Properties”面板中手动将Page Number全改为1并认为“反正都是第一页”。这种操作在单页设计中无害一旦涉及跨页网络如主控芯片的地址总线分布在Sheet1和Sheet2就会导致网络无法贯通。实操验证步骤新建一个两页原理图工程Sheet1放置MCUSheet2放置SDRAM在Sheet1中放置网络标号“ADDR[0..15]”在Sheet2中放置同名网络标号将Sheet2的Page Number手动改为1与Sheet1相同执行“Project → Compile PCB Project”观察Messages面板错误显示“Warning: Net ADDR[0] has no driving source”——因为AD16认为Sheet1和Sheet2是同一张图纸的两个副本拒绝合并网络。解决方案只有两个且必须二选一方案A推荐严格遵循AD16原生逻辑保持Page Number自动递增1,2,3…Document Number留空。若需统一文档编号如“SCH-REV2”在每张图纸的“Properties → Document Options → Document Number”中填写此字段不影响网络连接仅用于BOM和图纸管理。方案B启用“Flat Design”模式在“Project Options → Options”中勾选“Compile using Flat Design”此时AD16忽略页码将所有图纸视为同一平面。但此模式下无法使用层次化设计Hierarchical Design且交叉引用报表失效仅适用于极简单板。注意嘉立创EDA等国产工具常默认采用Flat Design这导致工程师切换到AD16时极易踩坑。我的经验是只要工程超过3张图纸必须用Auto Page Numbering这是AD生态的铁律。2.2 网络标号作用域全局与局部的边界在哪里另一个高频报错是“Net is not fully connected”尤其在使用“Port”和“Off-Sheet Connector”时。例如你在Sheet1中用Port引出“SPI_MOSI”在Sheet2中用Off-Sheet Connector接收编译后却提示该网络悬空。问题往往不出在连线本身而出在网络标号的作用域设置上。AD16中网络标号有三种作用域ScopeAutomatic默认AD16根据上下文自动判断通常为“Sheet Level”Global该网络标号在整个工程内有效无视图纸边界Sheet Symbol仅在当前图纸符号Sheet Symbol内部有效。当Port与Off-Sheet Connector配合使用时Port默认作用域为Global而Off-Sheet Connector默认为Sheet Level。这就造成Port声明的“SPI_MOSI”是全局网络但Off-Sheet Connector只在本图纸内创建了一个局部网络两者无法匹配。验证方法放置Port双击打开属性在“Scope”下拉菜单中确认为“Global”放置Off-Sheet Connector双击属性发现“Scope”为“Sheet Level”编译后Messages中出现“Warning: Off-sheet connector ‘SPI_MOSI’ does not match any port”。解决方法极其简单但90%的教程不会提统一作用域将Off-Sheet Connector的Scope也设为“Global”或反之将Port设为“Sheet Level”不推荐会破坏层次化设计禁用自动作用域在“Tools → Preferences → Schematic → General”中取消勾选“Automatically set net label scope”强制手动指定避免AD16的“智能判断”出错。实操心得我在做STM32H7系列高速设计时曾因一个“USB_DP”网络标号作用域错配导致USB PHY无法识别。排查耗时两天最终发现是AD16在导入旧版库时将Port的Scope重置为Automatic而新放置的Off-Sheet Connector继承了旧设置。从此我养成了一个习惯每次放置关键信号Port后立即右键→Properties→Scope→Global并在图纸空白处添加文本注释“// SPI_MOSI: Global Scope”。2.3 器件位号Designator未分配DRC检查前的致命盲区“Error: Component has no designator”这个报错常出现在导入第三方库或复制粘贴元件后。表面看是位号缺失深层原因是AD16的BOM生成与PCB器件定位强依赖Designator字段。没有位号的元件在PCB中无法被识别为独立对象导致后续所有操作失效。但更隐蔽的问题是AD16允许未分配位号的元件通过原理图编译。这意味着你可能在原理图阶段完全察觉不到异常直到导入PCB时才爆出“Failed to import components: 12 components missing designators”。原因在于AD16的编译检查Compile只验证语法和基本连接不校验BOM完整性。而PCB导入Update PCB则调用完整的工程解析器强制要求每个元件具备唯一Designator。验证步骤从网上下载一个STM32F103C8T6核心板原理图常见于嘉立创开源项目复制其中的USB接口电路粘贴到新图纸检查粘贴后的USB_B、USB_ID等元件发现Designator字段为空显示为“?”编译原理图无任何错误执行“Design → Update PCB Document”弹出红色错误框。解决方案分三步批量分配选中所有“?”元件右键→“Annotate Components”在对话框中选择“Reset All”再点击“Annotate”规则固化在“Tools → Preferences → Schematic → Graphical Editing”中勾选“Automatically assign designators when placing components”从此新放元件自动带编号源头拦截在“Project → Options → Options”中勾选“Validate duplicate designators”此选项会在编译时主动检查重复位号而非等到PCB阶段。注意很多工程师用“Annotate Components”后发现位号乱序如U1、U10、U11这是因为AD16默认按放置顺序编号。要获得逻辑序号如U1~U5为电源U10~U15为MCU需在Annotate对话框中点击“Advanced”→“Group by Designator”再按类别排序。这是我给新人的硬性要求每次Annotate前先按“U”、“R”、“C”分组再分别编号。3. 原理图→PCB数据同步Room、Class与网络映射的三大断点3.1 Room缺失为什么封装导入后“消失”在PCB中“PCB导入后器件不见了”是AD16最令人抓狂的报错之一。你确认原理图已编译Update PCB按钮也点了但PCB画布上空空如也。打开“PCB → Panels → PCB”面板发现“Components”列表里一个器件都没有。问题根源几乎100%是原理图中未为器件分配Room房间。Room是AD16实现“原理图→PCB”双向映射的核心容器。它不是一个视觉元素而是一个逻辑分组标签。当执行Update PCB时AD16会扫描原理图中所有器件查找其所属的Room。如果某个器件未被任何Room包含AD16会将其标记为“Unplaced”并拒绝导入PCB——因为它无法确定该器件应放在PCB的哪个物理区域。验证方法在原理图中选中任意一个MCU右键→“Find Similar Objects”在弹出窗口中勾选“Room”→“Same”点击OK若无任何对象被选中说明该MCU未被Room包围查看Messages面板会出现“Warning: Component U1 has no room assignment”。Room的创建有严格规范必须在原理图中创建不能在PCB中反向生成必须包裹完整器件Room边框需完全覆盖器件主体包括引脚不能只框住一部分名称需唯一且有意义如“MCU_Room”、“POWER_Room”不可用“Room1”等无意义名称。实操步骤在原理图工具栏选择“Place → Room”在MCU周围拖出矩形框确保所有引脚和器件本体在框内双击Room将Name改为“MCU_Room”重复此操作为电源、接口、存储等模块分别创建Room再次执行Update PCB器件将按Room名称分组导入PCB。提示Room名称会直接映射为PCB中的“Component Class”。例如所有在“MCU_Room”内的器件在PCB的“PCB → Panels → PCB”面板中其“Class”字段显示为“MCU_Room”。这为后续的PCB布局如将MCU_Room整体移动和DRC规则如为MCU_Room设置专属间距规则提供了基础。我曾见过一个项目因所有Room命名为“Room1”导致PCB中200个器件全部归入同一ClassDRC检查时电源网络与信号网络间距被强制统一为8mil最终造成EMI超标。3.2 Net Class与PCB规则的错位为什么“PCB走线要求”总被忽略“PCB走线要求”是工程师最常提及的需求如DDR4的差分对需50Ω阻抗、时钟线需等长、电源线宽需≥20mil。但在AD16中这些要求不会自动生效必须通过“Net Class”与“PCB Design Rules”两级绑定。典型错误场景你在原理图中为DDR_CLK网络添加了“DDR_CLK”网络标号期望PCB中该网络走线宽度为12mil。但Update PCB后该网络仍使用默认规则10mil。报错虽不直接显示但DRC检查会飘红“Width Constraint Violation”。原因在于网络标号Net Label本身不携带电气属性它只是网络名称的标签。要赋予网络特定规则必须先将其加入Net Class再将Net Class关联到PCB规则。完整绑定流程原理图端创建Net Class“Design → Netlist → Configure Physical Nets”点击“Add Class”输入名称如“DDR_Signal”在“Members”列表中点击“Add”→“Net”输入“DDR_CLK”、“DDR_DQ[0..15]”等网络名点击OK保存。PCB端关联规则切换到PCB编辑器“Design → Rules”展开“Routing”→“Width”双击“Width”规则在“Full Query”中将“Object Kind”设为“Net Class”在“Value”中选择“DDR_Signal”设置Min/Max/Preferred Width为12mil。验证绑定在PCB中按CtrlH调出“PCB Filter”输入InNetClass(DDR_Signal)回车所有属于该Class的网络将高亮显示确认无遗漏。注意Net Class名称区分大小写且不能含空格或特殊字符。我曾因将Class命名为“DDR Signal”含空格导致PCB规则中无法找到该Class调试半小时才发现是命名规范问题。从此我的Class命名规则固定为全大写下划线如“POWER_3V3”、“HS_Clock”。3.3 差分对Differential Pairs未定义为什么DRC不报“Matched Length”错误“adc/dac 电路设计:规避时钟抖动与电源噪声的3个pcb布局要点”中强调时钟走线等长但在AD16中即使你手动将两条时钟线画得一样长DRC也不会检查其长度匹配度——除非你显式定义它们为差分对。差分对在AD16中是一个独立对象需在原理图中用专用符号创建而非简单放置两个网络标号。常见错误是用“CLK_P”和“CLK_N”两个独立网络标号代替差分对结果PCB中无法启用“Matched Length”规则。正确做法在原理图中使用“Place → Directives → Differential Pair”指令在CLK_P和CLK_N网络上分别点击AD16自动生成差分对对象并在属性中显示“Pair Name”如“CLK_DIFF”编译原理图该差分对将作为独立网络实体导入PCB在PCB中“Design → Rules → Routing → Differential Pairs Routing”设置“Matched Length”容差如±5mil。验证是否成功在PCB中按CtrlH输入IsDifferentialPair所有差分对将高亮执行“Tools → Interactive Length Tuning”可对差分对进行蛇形线等长调整DRC检查将报告“Differential Pair Length Mismatch”而非泛泛的“Un-Routed Net”。实操心得在做STM32F407的USB FS设计时我最初用两个独立网络标号“USB_DP”和“USB_DM”结果PCB布线后USB无法枚举。用示波器测得DP/DM相位差达3ns。改用Differential Pair重新定义后Length Tuning功能自动将两线长度差控制在0.5ns内问题解决。AD16的差分对引擎不是摆设它是高速信号可靠性的底层保障。4. PCB布局布线阶段的规则迷宫从DRC误报到铜皮挖空陷阱4.1 DRC检查的“幽灵错误”为什么明明没布线却报“Clearance Violation”“ad20 pcb drc 检查”常被拿来对比但AD16的DRC引擎更“敏感”。一个典型现象是PCB刚新建尚未放置任何器件执行“Tools → Design Rule Check”却报告数十处“Clearance Constraint Violation”。错误位置指向“Board Outline”与“Keep-Out Layer”交界处。原因在于AD16的默认板框Board Outline是用“Keep-Out Layer”绘制的而DRC规则中“Clearance”约束默认应用于所有层。当板框线Keep-Out与自身发生“自检”时AD16会将其判定为“两个对象间距为0”从而触发违规。这不是Bug而是设计意图的误读。Keep-Out Layer的本质是“禁止布线/铺铜区域”它本身不应参与电气间距检查。解决方案是修改DRC规则范围“Design → Rules → Electrical → Clearance”双击现有规则进入“Constraints”页在“Where the First Object Matches”中将“Object Kind”设为“Net”而非“All Objects”在“Where the Second Object Matches”中同样设为“Net”点击“OK”保存。这样DRC只检查网络Net之间的间距忽略板框、丝印、机械层等非电气对象。此设置可消除90%的“幽灵错误”。提示若需检查“焊盘与板边距离”应单独创建“Manufacturing → Silkscreen Over Component”或“Placement → Component Clearance”规则而非滥用Electrical Clearance。我见过一个项目因未修改此设置DRC报告200处“Clearance”错误工程师逐条审核浪费8小时实则全是板框自检。4.2 铜皮挖空Copper Cutout为什么“ad20中pcb板铜皮挖空”在AD16中会失败“ad20中pcb板铜皮挖空”是AD20新增的交互式功能但AD16不支持。许多工程师尝试在AD16中用“Place → Solid Region”绘制挖空区域结果发现铺铜Polygon Pour后该区域仍被铜覆盖。问题在于Solid Region默认不具有“挖空”属性它只是一个图形对象。AD16中实现铜皮挖空的唯一正确方法是使用“Keep-Out Layer”绘制禁止铺铜区域。操作步骤切换到“Keep-Out Layer”快捷键L→K使用“Place → Line”或“Place → Arc”绘制挖空轮廓如围绕散热焊盘的圆形区域确保轮廓闭合首尾点重合执行“Design → Polygon Pour → Repour All”铺铜将自动避开Keep-Out区域。验证方法在PCB中按ShiftB打开“Board Insight”面板选择“Polygon Pours”查看挖空区域是否显示为“Excluded”若仍被覆盖检查Keep-Out线是否在“Top Layer”或“Bottom Layer”上绘制——必须在“Keep-Out Layer”。注意Keep-Out Layer上的图形不仅禁止铺铜还禁止布线、放置焊盘。若只需禁止铺铜而允许布线需使用“Polygon Pour Cutout”在铺铜对象上右键→“Polygon Actions → Define Cutout”但这要求铺铜已存在。我的经验是对于散热焊盘、高压隔离区等关键挖空一律用Keep-Out Layer一劳永逸。4.3 高低压隔离的PCB层叠陷阱为什么“高低压隔离pcb”设计后仍被安规拒收“高低压隔离pcb”是医疗、工业电源的硬性要求AD16本身不提供安规检查但其层叠设置Layer Stack直接影响隔离效果。一个典型错误是在“Design → Layer Stack Manager”中将高压区与低压区的信号层设为同一铜层仅靠走线间距隔离。AD16的层叠管理器中每个Layer都有“Electrical Thickness”和“Dielectric Constant”参数。若未正确设置DRC的“Creepage”爬电距离和“Clearance”电气间隙规则将基于错误的介质厚度计算导致实际隔离距离不足。正确设置步骤“Design → Layer Stack Manager”选中高压区所在层如Top Layer在右侧“Properties”中设置“Electrical Thickness”: 输入实际PP/FR4厚度如1.6mm板信号层间介质厚0.2mm“Dielectric Constant”: 输入板材参数FR4为4.2~4.5为高压区与低压区之间添加“Internal Plane”层并设置其为“Split/Mixed”在该层上用“Line”绘制隔离槽Slot槽宽需满足安规如IEC60601要求≥8mm在“Design → Rules → Electrical → Clearance”中为高压Net Class如“HV_300V”单独设置规则Min Clearance设为8mm。实操心得我曾为一款医用监护仪设计隔离电源AD16 DRC显示所有间距合格但第三方安规测试时在PCB边缘发生闪络。溯源发现层叠管理器中未设置“Internal Plane”的Dielectric ConstantDRC按空气ε1计算爬电距离而实际FR4板材ε4.5导致计算值偏大。从此我的层叠设置必做三件事实测板材参数、在层叠管理器中精确录入、用“Measure Distance”工具手动验证关键隔离距离。5. 输出制造文件的终极考验Gerber、钻孔与PDF的三重关卡5.1 Gerber导出失败“ad导入gerber转pcb”为何是伪命题“ad导入gerber转pcb”是一个危险误区。AD16的Gerber导入功能File → Import → Gerber仅用于逆向工程参考它生成的是“Graphic”对象而非可编辑的PCB对象。你无法对导入的Gerber线段进行DRC检查、无法修改网络、无法添加过孔——它只是一张“图片”。真正需要的是从AD16原理图/PCB正向导出Gerber。但导出过程常报错“Failed to generate output job – No PCB document found”原因有三Output Job未关联PCB“File → Fabrication Outputs → Gerber Files”会创建临时Job但未保存正确路径“File → Setup Output Job”在左侧“PCB Documents”中拖拽PCB文件到右侧“Outputs”区域再添加“Gerber X2”输出。层映射错位在Gerber设置中“Layers”页签下必须将AD16的“Top Layer”映射到Gerber的“GTL”“Bottom Layer”映射到“GBL”若误将“Mechanical1”映射到“GTL”导出后顶层线路将缺失。钻孔文件未生成Gerber文件只含线路钻孔需单独导出“NC Drill”若未在Output Job中添加“NC Drill”嘉立创等厂商会拒收报错“Missing drill file”。验证导出完整性导出文件夹中应有GTL、GBL、GTS、GBS、GTO、GBO、GNP、GTL.drl、GBL.drl用Gerber Viewer如GC-Prevue打开GTL和GTL.drl确认钻孔与焊盘中心重合用“Report → Board Information”检查PCB尺寸与Gerber中“Mechanical Layer”一致。提示嘉立创要求Gerber为RS-274X格式非X1且钻孔单位为“inch”。在Gerber设置的“General”页签中务必勾选“Use Gerber X2 Format”在“Drill”页签中将“Units”设为“Inch”“Precision”设为“2:4”整数2位小数4位。5.2 PDF导出残缺“ad20导出原理图pdf只有部分区域”在AD16中的真相“ad20导出原理图pdf只有部分区域”在AD16中更普遍根源是AD16的PDF导出器对图纸尺寸的硬编码限制。当原理图尺寸超过A3420×297mmAD16默认只导出左上角A3区域。解决方案不是缩放图纸而是修改导出配置“File → Smart PDF”在向导中取消勾选“Fit content to page size”在“Page Setup”中将“Paper Size”设为“A0”或“Custom”输入实际图纸尺寸如840×594mm勾选“Print all sheets”确保多页原理图全部导出。注意若原理图中使用了“Embedded Fonts”PDF可能显示为方块字。应在“Tools → Preferences → Schematic → Print”中将“Font Substitution”设为“TrueType”并确保系统已安装所需字体如微软雅黑。5.3 DRC报告与制造反馈的鸿沟如何读懂嘉立创的“pcb 0.3mm能过多少电流”“pcb 0.3mm能过多少电流”不是AD16报错却是制造环节的致命疑问。AD16的DRC不计算载流能力它只检查几何规则。而嘉立创等厂商的DFMDesign for Manufacture系统会基于铜厚、温升、线宽自动计算电流承载力。AD16中可间接验证的方法线宽与铜厚映射在“Design → Layer Stack Manager”中设置“Copper Thickness”如1oz35μm在“Design → Rules → Routing → Width”中为电源Net Class设置Min Width如0.3mm对应1A10℃温升。热仿真替代使用“Reports → Board Information”获取各网络长度、宽度手动套用IPC-2221公式I k × ΔT^0.44 × A^0.725其中k0.048外层ΔT温升℃A截面积mil²0.3mm线宽×35μm铜厚≈416 mil²代入得I≈1.2AΔT10℃。实操心得我为一款LED驱动板设计0.5mm电源线AD16 DRC全绿但嘉立创DFM报告提示“Current capacity insufficient for 2A load”。经查AD16未设置铜厚DRC按默认1oz计算而实际生产用2oz铜。从此我的Layer Stack Manager中铜厚参数必填且与嘉立创下单时选择的铜厚一致。6. 经验沉淀那些教科书不会写的AD16生存法则6.1 “缓存污染”为什么重启AD16能解决70%的玄学报错AD16的工程缓存Project Cache是其性能优化的核心但也最易污染。典型症状原理图中已删除的元件PCB中仍显示为“Un-Routed”或DRC规则修改后不生效。这不是软件崩溃而是缓存未刷新。强制清理缓存的三步法关闭所有AD16窗口进入工程文件夹删除所有以“.Cache”、“.Index”、“.Log”结尾的隐藏文件重新打开工程执行“Project → Re-compile PCB Project”。注意不要删除“.PrjPcb”文件它是工程索引。我的桌面有一个批处理脚本CleanAD16Cache.bat内容仅为del /s /q *.Cache *.Index *.Log双击即可执行。这招救过我无数次从“网络无法连通”到“DRC规则失效”根源都是缓存。6.2 “版本幻影”为什么AD16打开AD20工程会报错AD20工程文件.PrjPcb的内部结构与AD16不兼容。强行用AD16打开会报错“Invalid project file format”。但工程师常误以为“另存为AD16格式”即可实则AD20的库路径、规则语法已升级AD16无法解析。正确降级流程在AD20中打开工程“File → Save Copy As”选择“Altium Designer 16”格式AD20会自动转换库路径、简化规则生成兼容文件在AD16中打开转换后的文件。提示嘉立创EDA等工具导出的AD格式文件常带有私有扩展AD16无法识别。此时需在嘉立创中导出为“Standard AD Format”而非“JiLiChuang AD Format”。6.3 “规则优先级”为什么设置了10条规则DRC只认最后一条AD16的规则引擎按“优先级Priority”执行数值越小优先级越高。若你为“POWER”Net Class设置了Width规则Priority100又为“All Nets”设置了全局Width规则Priority99则全局规则会覆盖专用规则。查看与调整优先级“Design → Rules”在规则列表中右键→“Properties”“Priority”字段可手动输入建议专用规则如DDRPriority1~10电源规则Priority11~20全局规则Priority100。最后分享一个小技巧在PCB中按CtrlShiftH调出“PCB Filter”输入InNetClass(DDR_Signal) and IsVia可快速筛选出所有DDR网络上的过孔检查其尺寸是否符合阻抗要求。这比翻规则列表快十倍。我用AD16完成了从51单片机到Zynq UltraScale的全部项目它的报错不是障碍而是设计意图的校验器。每一次“Error”弹窗都在提醒你原理图的页码是否唯一网络标号的作用域是否清晰Room是否包裹了所有器件铜皮挖空是否用了正确的层这些细节正是从实验室样机走向量产产品的分水岭。现在你可以关掉这篇文字打开AD16挑一个困扰已久的报错按文中路径走一遍——你会发现那些曾让你深夜抓狂的红色文字不过是AD16在用它的方式教你成为一名更严谨的硬件工程师。