资讯详情

Allegro Route Keepout配置详解:PCB局部布线权限精细管控

📅 2026/10/7 3:51:32 | 华诺云谱 👁 阅读
Allegro Route Keepout配置详解:PCB局部布线权限精细管控
做PCB设计的人应该都有过这种经历整板的间距规则、线宽规则都设得清清楚楚等长约束也做得规规矩矩结果拿到评审会上一看还是会被问这块地方为什么走这么多线这排过孔打在安装孔下面后面装配不刮伤吗——问题就出在全局规则管的是整块板子的平均秩序它管不了一个局部区域里到底该不该走线。Allegro里专门解决这类需求的功能叫Route Keepout直译叫布线禁止区但它真正厉害的地方不只是禁止而是能精确控制这块区域对哪些网络开放、对哪些网络关闭。这篇就围绕Route Keepout的配置方法展开说说怎么把它用来做特定区域的布线权限管理希望能帮到正在被局部布线问题困扰的朋友。1. 先弄清楚Route Keepout到底拦的是什么1.1 一条设计规则和一块Keepout的差别很多工程师刚接触Route Keepout时容易把它的作用和DRC规则混在一起觉得我只要把某个区域的间距规则调大走线自然就不会进去了。这个想法方向对但实现起来非常别扭。DRC规则的本质是参数约束它约束的是线宽是多少、间距是多少、等长误差是多少它不会告诉你一块特定区域里究竟能不能有走线。你可以给某个区域单独建一个Routing Region把线宽和间距设得很严格但严格不等于禁止只要满足条件线照样能走进去。而且Routing Region在Constraint Manager里的管理和维护成本不低多几个区域就容易混乱。Route Keepout的定位完全不同。它是在物理空间上划出一个几何禁区直接告诉Allegro这块区域不允许布线对象进入。它不是靠参数去劝退走线而是从对象层面彻底拦截。你甚至可以在一个Keepout里只放行指定的几个网络其他网络一概挡在外面这个能力是普通规则做不到的。1.2 它拦住的不是只有走线Route Keepout的拦截对象大家第一反应是不让走线实际上它同时管着好几类东西。走线Etch信号线、电源线、多边形走线都不能进入Keepout区域。过孔Via不管是通孔、盲孔还是埋孔只要落在Keepout范围内DRC都会报错。这点很重要很多人画完Keepout发现走线被挡住了结果过孔照样被打在禁区里就是因为检查的时候没注意过孔。布线相关的铜箔对象和布线相关的etch铜皮也会受到约束但要注意它和动态铜皮是两回事后面我会单独讲。这里有一个容易忽略的点Route Keepout默认是不区分网络的也就是说它对所有网络一视同仁。如果你希望某个区域禁掉99%的网络但给GND网络网开一面那就需要用到网络放行功能。Allegro在Keepout图形上是支持设置允许网络的这也就是标题里说的精细化布线权限控制。1.3 哪些板子最需要Route Keepout从实际项目来看遇到下面这几种情况Route Keepout基本是绕不开的射频电路区域天线走线附近经常要求净空周围最好不要有其他走线否则会改变阻抗特性、引入干扰。高速DDR或者BGA区域高密器件底下通常有很多扇出走线如果不做约束别的模块的线很容易从DDR下面穿过带来不必要的串扰。连接器、按键、安装孔周围这些地方有机械装配和结构干涉风险线缆、螺钉、泡棉都可能压到走线需要提前划出禁区。高压隔离带和板边区域出于安规要求爬电距离和物理隔离区域往往需要严格禁布。所以Route Keepout不是锦上添花的功能而是直接关系产品能不能稳定量产、能不能过认证的功能。早点学会用后面省下来的都是改板的时间。2. 动手前先选型四种Keepout别再记混2.1 四种Keepout的分工Allegro里叫Keepout的功能不止一个新手最容易弄混。常见的有四类分别是Route Keepout、Package Keepout、Via Keepout和Copper Keepout。它们的拦截对象完全不同用错了轻则没效果重则把板子搞得一堆DRC报错。Keepout类型拦截对象典型应用Route Keepout走线、过孔、布线铜箔划定布线禁区控制特定区域走线Package Keepout元件实体封装、丝印、位号禁止元件摆放防止结构干涉Via Keepout仅过孔只限制过孔位置允许走线通过Copper Keepout铜皮含动态铜皮、静态铜皮、铺铜区禁铺铜常用于天线净空、高压隔离区你可以把Route Keepout理解成这块区域不让走电线把Package Keepout理解成这块区域不让放东西把Via Keepout理解成这块区域不许打孔把Copper Keepout理解成这块区域不许有铜面。四者各有各的职责也可以叠加使用。2.2 为什么大部分场景选Route Keepout从我自己的项目经验看四种Keepout里用频率最高的就是Route Keepout原因很直接大多数局部禁区需求都和走线有关。比如DDR模块下面不希望有别的信号线穿过手段是Route Keepout天线净空区不希望走线干扰手段也是Route Keepout。Package Keepout更偏向结构避让Via Keepout则是在你只想禁过孔、不想限制走线时使用。举个例子芯片底面有很多去耦电容的位置走线可以绕但过孔位置会影响到焊盘避让这时候用Via Keepout比用Route Keepout精准得多。所以说选型不是看哪个功能更高级而是看你要拦的对象到底是什么。如果连走线带过孔都要拦选Route Keepout只要拦过孔选Via Keepout既要拦走线又要拦过孔还要拦铜皮那就把Route Keepout和Copper Keepout叠在一起画。2.3 选层的艺术All不是万能的画Keepout时Options面板里可以选择作用层常见选项是All、Top、Bottom以及各个内层。很多新手图省事直接选All觉得反正全层禁了最保险。但实际项目里全层禁止往往带来很多麻烦。比如DDR走线经常需要完整的参考平面内层通常是GND或者电源平面如果你在Route Keepout上选了All内层平面被割裂回流路径变差反而引出新的信号完整性问题。再比如连接器底下可能只有表层走线需要规避内层完全不受影响没必要把内层也禁掉。我的建议是尽量按实际需求选择层别。表层有禁布需求就在Top上画底层有需求就在Bottom上画不要在不需要的层上扩大禁区范围。除非是安规隔离区或者天线净空区这种明确要求任何层都不能有东西的场景才使用All。3. Route Keepout从绘制到放行网络的完整配置流程3.1 创建Keepout的入口和选项Allegro版本不同菜单入口稍微有点区别。比较老的版本在Add菜单下路径是Add - Keepout - Route新版本一般在Setup菜单下路径是Setup - Areas - Route Keepout。不管哪条路径进入命令后的Options面板设置才是关键。Options面板里需要留意几个地方Active Class选择Route KeepoutSubclass选择All或者你指定的层。绘制方式可以选矩形、圆形、多边形也可以像画普通Shape一样通过下拉框切换。如果是从机械结构图或者DXF里导入的区域可以先画好闭合轮廓再用Shape - Compose Shape把它组合成Keepout图形。实际画的时候我习惯先在Board Geometry层把结构禁布区域画好确认无误后再转成Route Keepout。这样后期结构改版时对比起来很清楚不容易漏改。画完的Keepout默认会显示成带斜线的区域形状颜色可以在Color/Visibility面板里的Route Keepout类目下调整。如果屏幕上看不到先别急着重新画打开Display - Color/Visibility把Route Keepout对应层的勾选打开再确认。3.2 精细权限给Keepout放行指定网络这是Route Keepout配置里的重头戏也是很多老工程师容易忽略的部分。如果Keepout就是一个完全的禁区画完就结束了。但实际项目中我们经常遇到这个区域大部分网络不能走但某个网络必须走的情况。最典型的例子是天线净空区整个区域要求干净但GND回流网络往往必须从附近经过这时候完全禁止明显不合理需要给GND网开一面。Allegro的Route Keepout是支持放行网络的。操作方法是选中刚画好的Keepout图形右键在弹出菜单里找Assign Net或者Allowed Nets。不同版本入口位置略有差异我在17.2和17.4上都用过一个在右键菜单里一个需要通过Edit - Properties进入属性面板查找但逻辑是一样的Keepout图形上维护了一个允许网络列表。点开会弹出一个网络选择框左侧是当前板子上的所有网络右侧是已放行的网络。把要放行的GND或者其他网络加到右侧确认后这个Keepout区域就只对选中的网络开放了。其他网络如果再尝试进入这块区域走线和过孔都会触发DRC错误。这里有一个经验之谈放行网络一定要克制。很多工程师图省事一下子把VCC、GND、复位、时钟全都放进去结果Keepout区域很快就布满了线等于白画。放行网络时应坚持只放必须穿过这个区域的网络原则其余网络一律绕行。3.3 让禁区在光绘里正确显示Keepout画好了DRC也过了但投板后发现厂家根本没按Keepout做这时候十有八九是光绘文件里没有包含Keepout层信息。Allegro出光绘时默认的Artwork设置里并不会自动加上Route Keepout层。你需要到Manufacturing或者对应层设置里把Route Keepout添加到要输出的光绘文件中。具体操作是打开Artwork Control Form选择对应的光绘层在层列表里添加Route Keepout相关Subclass然后重新生成光绘。如果你是用Outstanding OrCAD或者Allegro的Output - Artwork菜单出Gerber记得在每次修改Keepout后重新生成光绘否则板厂拿到的还是旧数据。这一点很多工程师踩过坑Keepout在电脑上明明存在板厂却反馈没有看到禁止区。3.4 用DRC验证Keepout是否真正生效配置完Keepout后一定要跑一遍DRC验证不要凭肉眼判断。Allegro中点击Display - Status进入DRC更新界面或者直接使用Analyze - DRC Update命令选择需要检查的区域让软件重新算一遍。如果Keepout区域里有违规走线DRC标记会以K/O或者Keepout相关错误的形式显示出来。点击标记Cross Probe到具体位置你会看到是哪条走线、哪个过孔越界了。需要注意的是DRC验证必须开启Keepout检查选项。在约束管理器里Spacing约束集下有一类Keepout检查开关如果这个选项被关闭即使你画了KeepoutDRC也不会报错。新版本默认是开启的但如果你是从老版本迁移来的项目建议先确认一下。验证通过后再去看绕线效果。Keepout区域的边界走线通常会被推挤到区域边缘如果绕线太丑可以微调Keepout的边界形状尽量让边界和相邻走线保持平行、平滑过渡这样板子既满足禁布要求又不会显得东躲西藏。4. 三个实战场景把布线权限玩明白4.1 DDR模块区域只允许DDR相关网络进入DDR模块下方通常有大量扇出走线和过孔如果放任不管别的模块的信号线很容易从DDR正下方穿过导致串扰和时序问题。我一般会在DDR器件区域外围画一个Route KeepoutSubclass选择Top和Inner相关的走线层。具体配置时先找到DDR器件所在位置沿着器件外轮廓外扩20到30mil画一个Route Keepout。绘制完成后右键Assign Net把DDR相关的地址线、数据线、时钟线、GND等网络加进去。这样DDR内部和扇出区域的走线不受影响其他模块的线想从DDR下面穿过去DRC立刻拦下。这里有个细节DDR模块下方的过孔通常很多Route Keepout如果直接覆盖整个区域会导致部分过孔违规。所以遇到必须保留的过孔时可以先放行网络再用Shape - Void功能在Keepout上开一个精确的避让窗口这样既能保留下方过孔又能挡住其他走线。4.2 天线净空区只放行GND网络天线附近的净空区是Route Keepout用得最典型的场景。射频工程师通常要求天线投影区域内表层不能有任何走线和铜皮但GND回流网络有时候必须从附近绕过。我的做法是在天线投影区域画一个Route KeepoutSubclass选择Top如果有必要连内层也一起禁掉。画完之后把GND网络加入放行列表。这样即使GND网络需要进入净空区附近也只会在Keepout内部的特定路径上走其他信号网络想进入就会被挡住。特别提醒一下天线净空区通常还要求没有铜皮。Route Keepout只拦走线不拦动态铜皮因此通常需要再叠加一个Copper Keepout否则GND铺铜还是会铺进净空区导致射频性能受影响。两个Keepout边界重合也不麻烦可以用同一个外轮廓生成两次。4.3 连接器腹地限制过孔但不完全封死连接器底下的腹地经常有元件引脚和过孔结构上也容易和外壳干涉。这种区域用Route Keepout往往过于严格因为它把过孔也禁掉了但很多情况下我们只是不想让多余过孔出现在某个机构压合区域。这种场景我推荐用Via Keepout而不是Route Keepout。操作方式完全一样菜单路径是Setup - Areas - Via Keepout画好区域后这个区域里过孔会被禁止但走线仍然可以穿过。如果既要限制过孔又要限制走线再把Route Keepout叠上去。实际项目中连接器腹地的Keepout区域最好不要画成规整矩形因为连接器的引脚排列通常是不规则的。可以先用Copy Geometry把连接器封装外框复制出来再外扩一定距离作为Keepout边界这样既贴合器件外形又不会把可用的布线空间白白浪费掉。5. 踩坑记录Route Keepout常见问题汇总5.1 画了Keepout走线却照样穿过去这个问题出现频率最高原因通常是以下几个Keepout的作用层选错了。比如你只画了Top层的Keepout实际走线在Bottom层那当然不会被拦截。检查Options面板里的Subclass确认是不是自己想限制的层。光绘或者DRC检查没开Keepout选项。CS里Keepout检查被关闭DRC不报错走线自然畅通无阻。Keepout被放行了网络。右键点开Keepout图形确认一下允许网络列表里是不是包含当前走线所在网络如果被放行了那它当然能穿过去。排查时先选中Keepout图形右键查看属性再确认DRC检查状态基本能快速定位。5.2 动态铜皮无视KeepoutRoute Keepout不会限制动态铜皮这个很多人一开始不知道。铺铜照样会把Keepout区域填满看着就像Keepout失效了。解决办法是叠加Copper Keepout。先把Route Keepout复制一份到Copper Keepout层或者直接使用Shape - Import命令复制当前图形类型改成Copper Keepout。这样走线、过孔、铜皮全都被禁掉才算真正的净空区。5.3 Keepout被误删或者移动了位置Keepout图形有时候会和板框、机械符号叠在一起操作时容易误选误删。建议画完Keepout后选中图形右键选择Assign to Group单独建一个名为RKO的Group然后把Group锁上。这样后续做其他编辑操作时不会手滑把Keepout拖走。如果是从别的板子复制模块过来Keepout不会自动跟着封装走因为它不是一个Component对象。需要连同Group一起复制或者用Export/Import Sub-Drawing的方式带过来。5.4 内层Keepout意外割裂参考平面前面提过Route Keepout选All会导致内层也被割裂影响参考平面连续性。如果某个项目确实需要在大部分层禁布但内层要给GND留连续平面那就要把All改成多选指定层或者给内层单独留出走廊空间。检查方法很简单打开Color/Visibility把电源层和地层的高亮打开再叠加显示Keepout区域肉眼就能看出参考平面是否被割断。问题现象可能原因解决思路走线穿过了Keepout作用层不对/网络被放行/DRC未开启检查Subclass、选择网络的Assign Net、打开Keepout DRC动态铜皮铺进KeepoutRoute Keepout不拦截动态铜皮叠加Copper Keepout板厂没看到Keepout光绘中缺少Route Keepout层在Artwork中添加对应层并重新出GerberKeepout误删/移位未锁定/未分组放到Group并锁定内层参考平面断裂Keepout选了All层按实际需要限定具体层过孔仍然存在需要使用Via Keepout用Via Keepout替代或叠加6. 关于Route Keepout的几点个人经验最后分享一点我实际用下来的体会。Route Keepout这东西用得好能让板子布线质量提升一个档次但用得糙也容易添乱。我见过不少工程师画Keepout时很随意随手拉个框就完事结果后面改板时被各种DRC错误追着跑。Keepout本质上也是设计的一部分它的边界位置、作用层、放行网络都应该像走线一样认真对待。我个人习惯是每个Keepout都必须有明确的来源依据要么来自结构图的禁布区要么是射频工程师提的净空要求要么是仿真分析出来的隔离区域。没有任何依据的Keepout我会毫不犹豫地删掉。另一个习惯是Keepout画完必须同步更新光绘文件和DRC设置绝对不留到投板前才检查。如果你也是那种做板子喜欢把细节抠到底的人建议从一个小项目开始单独试试Route Keepout配合网络放行的完整流程。等你习惯了这种先圈地、再放行的思路再去看复杂的射频模块或者DDR布局你会觉得整个板子的布线秩序清晰了不少。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑