尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Altium Designer多通道PCB布局复制:Room复制实操指南

Altium Designer多通道PCB布局复制:Room复制实操指南 1. 为什么说重复模块PCB布局绕不开Room复制一次八通道采集板的教训前一阵帮同事检查一块八通道采集板的PCB发现六个通道的走线长度、过孔位置几乎一致第七个通道却完全不同——后来他说第七路是手工布的走线长度差了不说还多打了几个过孔导致时序裕量直接少了一半。这种问题在带重复模块的板卡里太典型了。多路电源、多通道ADC、多路电机驱动、多路通信接口只要电路结构相同你一定希望布局走线完全一致。纯手工搬元件、手工拉线的做法不仅慢而且很难保证每一路都分毫不差。Altium Designer 16里其实给了一套现成的方案——Room房间机制。网上教程都说“用Room复制布局走线”但大部分人真正上手时会卡在几个地方Room怎么生成、复制选项怎么勾、复制完为什么报错。这篇我把整个流程按实操顺序拆开包含我自己排错过程中的一些教训希望对正在处理多路相同模块的你有帮助。不管你是用AD16还是后来AD17、AD20这些版本核心逻辑基本没变最多是菜单位置有些出入。先说明一下Room复制不是简单地把一堆器件“复制粘贴”到别处而是把整块电路在PCB上的布局、布线、覆铜甚至局部规则作为一个可复用的单元从一个区域完整映射到另一个区域。它解决的不是“把东西拷贝一份”的问题而是“让两块完全相同的电路在PCB上长得一模一样”的工程问题。1.1 手工复制布局走线的工程代价你可能会想我把第一通道的元件手动摆一遍然后照着坐标抄到第二通道不就行了实际上很难。PCB编辑器里手动摆放器件坐标、旋转、镜像、层叠关系全部要靠肉眼对齐稍微偏0.1mm后续信号长度就对不齐。布线更麻烦。手工复制走线意味着你要把源通道的每一条铜箔、每一个过孔、每一段转角在目标通道里重新画一遍。就算你记住拓扑结构网络名也会变第一通道的VIN和第二通道的VIN在物理上是不同的网络你画的线必须归属到目标通道的网络名下这一步极其容易出错。实测下来四路DC-DC手工复制布线要用掉半天而且三路之间总会有一两处差异。差异带来的问题在高速或功率电路里很致命。开关电源的开关节点走线长度不一致可能会造成各路纹波和EMI表现不一样ADC采样的时钟走线长度不一致时序裕量直接被吃掉。所以“让各通道尽量一致”不是强迫症是工程需求。1.2 Room复制的适用与不适用场景用之前先判断清楚你的项目适不适合用Room复制。适合的场景非常明确使用多通道设计Repeat方式创建的工程通道间结构完全相同单板内存在多个功能完全一致的区块比如两个相同的RS485接口、四片相同的运放前端板卡改版时把旧版已验证过的模块整体搬到新版。不适合的场景也要说清楚两个模块网络名完全不同、位号没有对应关系复制布局没问题但复制走线后网络归属需要大量人工修正目标Room相对源Room旋转了任意角度非90度整数倍复制出来的走线很难保持可控原理图元器件位号没有形成“通道前缀命名”的对应关系复制映射会错乱。说白了Room复制最舒服的使用环境就是Altium的多通道设计体系原理图用Repeat建通道PCB端自动生成Room通道间天然存在映射关系。如果当初原理图不是按这个思路画的后面补救会麻烦一些第二章节我会讲补救办法。2. 创建可复用的Room从原理图通道化到PCB Room生成全流程很多人把Room复制当成纯PCB操作直接在PCB文件里手工拉两个矩形框就开始复制。这样不是不行但你会丢掉Room复制最核心的价值——通道映射。我建议第一步先在原理图侧把“通道”这个概念建起来。2.1 原理图端用Repeat语句建立多通道而不是复制原理图页面Altium的多通道设计最标准做法是用Repeat关键字。操作路线是在层次原理图的顶层父图中放置一个Sheet Symbol片元符号指向你要重复的子原理图双击这个Sheet Symbol在Designator属性里填入类似Repeat(CH, 0, 7)的内容其中的CH是通道名前缀0是起始通道号7是结束通道号合起来会生成CH0到CH7共8个通道子原理图里的器件标号自动变为CH0_C1、CH1_C1这种带通道前缀的形式网络也会按通道展开。编译工程Project Compile PCB Project之后多通道信息就进入工程数据了。这里有个关键点不要通过复制多张原理图页面来做重复模块。复制页面得到的器件位号是C101、C201这种通道之间的关系是隐性的Altium没法自动建立通道映射PCB端生成Room之后复制走线时网络归属会很麻烦。用Repeat方法原理图修改一处所有通道同步更新这才是真正的多通道设计。有一点要注意Repeat语句必须写在Sheet Symbol上而且父图必须是层次结构里的顶层图纸。如果你只有一个原理图文件没有父图概念那就没法用Repeat。这种情况下通常需要把电路拆成子图再建顶层父图把子图引用进来。改结构确实有点工作量但比起后面在PCB上手工对几百个网络这点前期投入非常值得。2.2 PCB端导入器件并生成Room原理图编译无误后进入PCB文件执行Design Import Changes导入工程变更。导入时注意工程变更列表里有没有“Add Rooms”或者类似创建Room的条目。如果原理图正确使用了多通道设计导入完成后PCB工作区里会自动出现多个以CH0、CH1命名的Room每个Room对应一个通道的器件集合并且会自动把对应通道的器件包裹在房间边界内。如果你的版本没有自动生成Room或者导入时没有勾选相关选项可以手动补建在PCB中按P、R放置一个矩形Room或者先在PCB里选中某个通道的全部器件然后执行Design Rooms Create Room from selected objectsAltium会用选中器件的包围框直接生成一个Room生成后双击Room对象在属性面板里给它一个明确的名称比如PWR_CH0、PWR_CH1。给Room命名这一步我强烈建议认真做。后面Copy Room Formats对话框里Source Room和Target Room都以下拉列表形式出现如果所有Room都叫Room_1、Room_2选起来极容易选错方向。命名带功能前缀加通道号一眼就能认出来。2.3 没走通道化流程的旧工程怎么补救老工程当初没按Repeat做而是复制器件模块形成了ModuleA和ModuleB这种情况还能不能用Room复制能用而且布局复制完全没问题但你要知道补救的边界在哪里。操作思路是这样的在PCB中分别选中ModuleA的全部器件和ModuleB的全部器件分别执行Design Rooms Create Room from selected objects两个模块各自生成Room右键Room边框选择Place Room Around Components让Room边界自动贴合器件包围框之后就可以用Copy Room Formats命令做复制。这里要泼一盆冷水如果ModuleA的网络叫NET_1、NET_2ModuleB的网络叫NET_101、NET_102两者没有通道映射关系Room复制走线时Altium只会把源模块的走线几何图形照搬过去网络归属仍然指向源模块网络。结果通常是一片DRC错误。所以对独立模块我一般建议布局复制可以用走线复制要谨慎最好先在网上多花点时间把网络名整理成有规律的对应关系或者干脆只复制布局走线手动来。3. 复制布局走线的关键操作Copy Room Formats的逐项解析原理图和PCB的通道结构都准备好了接下来就是核心环节把源Room的布局走线复制到目标Room。我先从最基础的检查讲起再讲对话框里每一项的实际意义。3.1 源Room与目标Room的基础检查直接执行复制命令之前先花两分钟检查三件事能帮你避开大部分翻车现场两个Room内的器件数量是否一致。如果一边是12个器件另一边是11个多半是原理图漏了器件或者封装没同步这时候复制过去布局必然缺件。器件位号是否能一一对应。多通道设计自动生成的CH0_C1对应CH1_C1这是最理想的状态如果是手动创建的Room要确认对应关系合理。Room边界是否完整包围了所有器件。边界只盖住一半器件复制时被挡在外的器件会留在原地复制结果看起来就像器件“飞走”了。确认边界完整最简单的办法右键Room边框选择Place Room Around Components让软件自动把边界调整到刚好包住所有器件。如果之前已经手动调整过Room大小执行这个命令会覆盖你的调整不过对我们复制操作来说这个是好事。3.2 Copy Room Formats的逐项勾选与层映射接下来进入正题。在PCB编辑器中右键点击源Room的边框注意是点击边框线不是点击Room内部空白处在弹出菜单里选择Copy Room Formats...。此时会弹出复制设置对话框。对话框中上半部分选择源RoomSource Room和目标RoomTarget Room下半部分就是复制内容选项。我按常用程度逐个说复制选项作用说明我的建议Component Placement复制器件坐标位置必选这是布局复制的核心Component Orientations复制器件旋转角度必选保证所有通道器件朝向一致Component Sides复制器件所在层顶层/底层必选防止目标通道器件全跑到底层Routing复制走线、过孔、泪滴等布线对象根据需求选择需要走线一致就选Copper Pour复制覆铜区域默认不选除非你确定各通道覆铜策略一致Rules复制Room范围内绑定的设计规则建议勾选线宽/间距规则一起带过去String Text复制丝印文字建议不选容易把源通道名称带到目标通道对话框里通常还有Layer Mapping层映射设置。如果源Room走线全部在顶层而目标Room的器件因为结构原因需要放到底层你需要在层映射表里把TopLayer映射到BottomLayer复制过去之后走线会自动换层。大多数常规项目里源和目标Room都保持同层层映射保持一对一默认即可。设置完成后点击Apply软件会自动执行复制。这里要特别注意两个Room的相对位置关系如果目标Room相对源Room只是平移复制内容不变如果目标Room旋转了90度或180度走线会跟着旋转如果是镜像关系走线也会左右镜像。所以强烈建议各通道Room的方向保持一致默认0度复制结果最可控。3.3 复制之后的收尾动作DRC、覆铜重灌、位号刷新复制完成不等于收工后面这三个动作一个都不能少。第一立刻运行DRC。按快捷键T、D进入Design Rule Check检查间距、短路、未布通网络。多通道设计里复制后的走线网络会自动映射到目标通道的网络名所以DRC能直接筛出绝大多数错误。如果看到成片报错先不要慌对照错误坐标看是器件间距问题还是走线网络归属问题我下一章会展开讲。第二如果复制了覆铜需要重新填充覆铜区域。Room复制只会把覆铜边框复制过去铜皮不会自动重灌。执行Tools Polygon Pour Repour All让所有多边形覆铜重新填充一次。不重灌的话你在PCB上看到的覆铜只是边框线网络归属也没生效。第三丝印文字如果没有复制目标通道的位号还是之前的状态需要重新刷新。多通道设计里位号通常已经带通道前缀这一步主要是确认文字位置没乱。如果你勾选了String Text复制过去后很可能出现CH0_开头的丝印文字出现在CH1里这种状况我建议直接删除目标Room内的丝印字符串然后用批量放置的方式统一刷新别一条条手动删。4. 实测翻车排查实录Room复制失败的四种典型现场用过Room复制的人都知道这个功能在顺的时候非常顺但一旦出错错误现象往往很奇怪。这里是我实际遇到过的四类典型现场每个都附上排查思路你可以直接对照处理。4.1 器件飞出Room边界复制后“丢了”几个元件现象执行复制后目标Room里少了好几个器件或者部分器件跑到Room边界外面很远的地方。根因排查源Room的边界没有完整包住所有器件。对Altium来说只有一个器件在Room内才会被视作这个Room的成员复制操作只处理成员器件。如果源Room边界画小了边界外的器件不会被复制。处理办法第一步右键源Room执行Place Room Around Components让边界自动贴合器件包围框第二步对目标Room做同样操作第三步重新执行Copy Room Formats。如果目标Room本身太小复制过去后器件也会超出边界所以目标Room同样要调整。这类问题在排插、连接器这类长条器件上特别容易发生。连接器本体很长Room边界显示正常但因为旋转方向问题部分引脚超出矩形边界复制时引脚对应的封装就被留在原地。我排查了两次才发现是这个问题。4.2 复制后的走线网络全错DRC一片红现象走线拓扑看起来和源Room一样但DRC检查全是短路和未连接网络放大看每条走线的网络归属还是源通道的网络名。根因排查这种问题几乎都出在“没有通道映射关系”上。Altium复制走线时如果源Room和目标Room的器件位号存在CH0_C1对应CH1_C1这种通道映射关系它会自动把源走线的网络归属替换成目标通道的网络名但如果两个模块之间的关系是松散的比如之前的旧工程补救场景软件只能照搬几何图形网络还是源模块的复制过去当然一片红。处理办法确认原理图是否真正采用多通道设计。如果确认是重新编译工程确保PCB和原理图同步如果工程不是多通道结构那就要么接受“只复制布局、不复制走线”的方案要么先把网络名整理出对应规律。高速差分对也遇到过类似问题差分网络名在通道展开后通常是CH0_D_P和CH0_D_N的格式复制时通常能对上但前提是原理图编译时没有把差分网络拆散。4.3 Room规则没有跟着复制目标通道线宽直接翻车现象源Room里走线用的是10mil线宽复制到目标Room后变成6mil看起来像被压缩过一样。根因排查源Room里有Room约束规则比如InRoom(CH0)范围内的走线宽度限制复制对话框里的Rules选项没有勾选导致目标Room没有获得同等的宽度规则。默认的线宽规则比如6mil覆盖了复制过来的走线线宽全部被拉细。处理办法在Copy Room Formats对话框里勾选Rules选项让Room范围规则一并复制。如果已经完成复制可以手动在PCB Rules and Constraints Editor里给目标Room补一条规则查询语句写成类似 InRoom(CH1) 的形式然后设置正确的线宽和间距。检查规则是否生效直接看目标Room内跑出网络的属性即可。这类问题在多层板里更隐蔽。如果你给某个Room设置了内层平面连接规则或者过孔规则而复制时没带Rules目标Room的过孔可能全部变成默认的12mil和源Room的过孔大小不一致信号阻抗和载流能力都会受影响。4.4 某个器件被Locked复制后位置纹丝不动现象执行复制后其他器件都对齐了唯独某个封装件还停在老位置且不报任何警告。根因排查这个器件被设置了Locked属性。PCB中的器件一旦被锁定普通移动命令不会移动它Room复制同样不会强行拖动它。常见于结构定位孔、螺丝柱、屏蔽罩这些被固定住的元件。处理办法复制前在PCB面板里全选器件检查属性面板里的Locked勾选状态。如果有器件锁定临时取消锁定执行复制后再恢复。如果锁定器件数量很大也可以在选中器件后右键选择Properties批量取消Locked。这个坑提醒我们复制前把工作区里的锁定状态理一遍有时候比复制本身还花时间。我的习惯是给结构件单独建立一个类复制过程中这类器件不参与通道映射从源头上避开问题。5. 让Room复制更好用的进阶做法规则绑定、局部差异和多人协作把基础流程跑通之后你会发现Room复制的潜力不止于“复制粘贴”。把它和规则系统、多人协作结合起来才能真正发挥出多通道设计的效率。5.1 给每个Room绑定独立规则让复制不“串味”多通道设计里每个通道可以绑定自己的一套布局布线规则。在PCB Rules and Constraints Editor里新建一条规则在Where The First Object Matches条件里选择Advanced查询填入类似InRoom(CH0)的表达式然后为这条规则设定线宽、间距、过孔参数。这样CH0通道里所有走线和过孔都会被这条规则覆盖。为什么要这么干因为Room复制走线时走线对应的规则是跟着所处位置走的。源Room里的走线之所以是10mil是因为有InRoom(CH0)这条规则复制到CH1时如果CH1也有InRoom(CH1)且参数相同走线就是10mil。规则和Room绑定复制行为才是最稳定的。否则你只靠全局默认规则各通道线宽很难保持一致。实际操作中我通常把规则复制到目标通道时手动增量修改一下比如源通道规则叫“PWR_CH0_WIDTH”复制后把查询改成InRoom(CH1)名称改成“PWR_CH1_WIDTH”。尽量不让Altium自动法则名称否则规则管理面板里会堆满一堆难认的条目。5.2 复制之后的局部调整避免“改一处全盘乱”多通道复制之后改动是不可避免的。比如第二通道因为空间原因要走线避让或者第三通道是主通道需要加宽敷铜散热。这时候到底改源通道还是改目标通道我的经验是先搞清楚哪个通道是“基准通道”。如果这个板子的前几个通道必须保持完全一致那就选一个通道作为基准其他通道从它复制后续需要做局部调整直接改目标通道源通道保持不动。下次需要全盘改动时从基准通道重新复制覆盖之前所有的局部调整。另一个经验是不要频繁做增量复制。假设CH0复制到CH1然后又手动调整了CH0接着再把CH0复制到CH2——这时候CH1和CH2之间就可能出现细微差异。等你后面检查时往往要花很久才能发现“咦这两个通道怎么差了一个过孔”5.3 Room命名和版本交接多人协作时避免“灾难”多人协作做同一块PCB时Room复制要格外注意交接问题。命名规范是第一道防线。我见过最头疼的情况是A工程师负责电源通道B工程师负责信号通道两边都建了Room名字都叫Room_1。合并文件时两个Room重名复制操作选错对象整个布局被打乱。建议所有Room命名都遵循“功能_通道号”格式比如PWR_CH0、ADC_CH1。如果一块板子上有多个通道组再加组件前缀比如PS_A_CH0和PS_B_CH0。命名规则写进项目文档里比口头交代靠谱得多。版本交接也要注意。Altium的Room数据在不同大版本之间兼容性不算完美AD16工程文件在AD20里打开Room的某些属性可能被重置尤其是Room的规则绑定。理想状态是团队统一用同一个大版本。如果做不到交接时明确告诉对方这些通道已经做过Room复制但地址和规则需要重新确认一遍不要直接把旧版的规则数据带过去。我的个人习惯是每次完成关键的Room复制后立即用Altium的工程快照或者版本管理工具留一个存档。复制操作本身是不可逆的一旦复制完发现走线有问题想恢复原样没有存档就只能手工撤销非常痛苦。而且Room复制偶尔会触发一些非预期的对象移动比如把某些锁定的丝印也带过去这种问题在操作撤销链里很难追溯到。最后分享一个用了很多年的小技巧在Room属性面板里把Room的透明度调低一点让器件和走线在Room边界下清晰可见。很多人第一次用Room复制边界框挡住视线根本看不清器件有没有对齐。透明度调到20%左右既能看到边界范围又不影响观察器件位置。这个小细节能让你复制完的检查效率提高一大截。
返回列表