Cadence Allegro 17.4 在硬件设计圈的使用率这两年一直在涨,尤其是做高速板、多层板、服务器背板的项目,几乎绕不开它。很多从 Altium Designer 转过来的工程师,第一道坎往往不在原理图也不在布线,而是最基础的"画板框"。新建一个 PCB 不难,可要让板框画得尺寸精确、层面对、后期不闹鬼,各种单位、格点、命令细节能把人折腾到怀疑人生。这篇就以 Cadence Allegro 17.4 为例,从新建 PCB 开始,一步步走到板框绘制完成,并把我在实际项目中踩过的坑全部列出来。不管你是完全没碰过 Allegro 的新人,还是从 AD 转过来的老手,这篇文章都能帮你少走几个月的弯路。
1. 从AD切到Allegro,很多人第一步就卡在"不知道在哪画板框"
1.1 Allegro的"层"概念和AD完全不是一回事
在 Altium Designer 里画板框,大家习惯在 Keepout 层画一条闭合线,或者直接用板框形状生成。Keepout 层把"机械边界"和"禁止布线区"揉在一起,理解成本很低。Allegro 不是这个思路,它把物理外形和布线禁区拆成了两个完全独立的对象:板框是一组画在Board Geometry/OUTLINE子层下的线条,而禁止布线区域是Route Keepin、Package Keepin这类 shape 区域对象。两者位置可以重合,但本质上是两种不同的数据。
很多 AD 转过来的同事,第一次打开 Allegro 都会下意识找 Keepout 层,找到之后画了个矩形,结果后面出光绘、铺铜、做 DRP 校验,全都不对劲。根源在于执行Add Line命令时,右侧 Options 面板里的 Active Class 还是ETCH或者BOARD GEOMETRY/OTHER,没有切到BOARD GEOMETRY/OUTLINE。Allegro 的图层体系是"Class + Subclass"二维结构,你不仅要把 Class 选对,Subclass 也要精确到 OUTLINE。这个习惯如果第一周不建立起来,后面改板框会让你改到崩溃。
另外补充一个常见误区:有人以为在 Allegro 里只要画了 Route Keepin 就算板框了,这种想法很危险。结构工程师要的是物理外形,线路板厂做外形冲切也要靠板框数据,Route Keepin 只是给 Layout 自己用的约束区域。只有Board Geometry/OUTLINE里的闭合线条才是板厂认可的板框,两者不能互相替代。
1.2 新建板子之前,先把三件事想清楚
新建 PCB 之前不急着双击图标,有几个设计参数必须先定下来,否则后面改起来代价极大。
第一是单位。Allegro 支持 Mils、Millimeter、Micron、Inch 等。如果结构工程师给的是 mm 的图纸,那设计单位直接选 Millimeter,这样导入 DXF 后比例不会乱;如果产品是常规消费类小板,很多人习惯用 Mils 画图。最忌讳的是画到一半才切换单位,坐标重新换算后,圆弧和多段线会非常容易产生舍入误差,线宽的显示也可能变得很奇怪。
第二是原点。我习惯把板框左下角放到 (0,0),所有器件坐标都基于这个原点排布。后面给贴片厂发坐标文件、给结构工程师对位时,双方都省心。你如果把原点放在板子正中心或者某个随机位置,后期出坐标文件、钢网文件时,对位会很痛苦。
第三是大概尺寸和层数。这个直接决定你要不要提前设置层叠结构。四层板、六层板建议在建板框之前就把 Cross Section 配好,否则后面做单点接地、平面分割时又得回头调整,相当于返工。
2. 新建PCB工程的标准动作:单位、格点、层叠一次做到位
2.1 新建Board File的入口和工程目录规划
Allegro 17.4 启动后的首页(Start Page)会显示最近项目,也可以直接新建。比较常规的路径是File -> New -> Board,在弹出的 New Board 对话框中输入文件名并选择保存路径。这里有一个很重要的实操细节:路径和文件名尽量不要带中文、空格、特殊符号。Allegro 对中文路径的支持一直不算好,我以前吃过亏,一个工程保存在"项目文件_2024"这种目录下,结果每次打开都报一堆资源找不到的错,后来改成纯英文目录才消停。
新建工程的时候我习惯先搭好目录结构。比如:
ProjectName/ ├── brd/ # PCB 源文件 ├── art/ # Gerber 光绘输出 ├── drc/ # DRC 报告 ├── lib/ # 封装库和原理图库 ├── pdf/ # 图纸和 PDF 文档 └── misc/ # 结构文件、BOM 等这样做的好处是后期一次导出光绘、归档交付时,不用满硬盘找文件。尤其做产品迭代时,brd目录下还要按版本命名,比如project_v1_0.brd、project_v1_1.brd。这在多人协作项目里非常重要,后面我会专门说版本保存的习惯。
2.2 单位(Units)和格点(Grids)设置,避免39.37倍缩放噩梦
新建板子后第一件事不是画线,而是设置单位。在命令行输入un(或者Setup -> Design Parameter Editor),打开 Design Parameter Editor 对话框,在 Design 标签页里把 User Units 改成你需要的单位。这里有个细节:单位切换会影响坐标显示、格点定义、DXF 导入比例,所以必须在一开始定好。
格点设置走grid命令(或Setup -> Grids),弹出 Grid Display 对话框。这里注意有两个标签页:Non-Etch和Etch。画板框属于非电气对象,要改的是 Non-Etch 页签下的 X、Y Spacing。画板框阶段我通常会设成 5mil 或者 0.1mm,这样鼠标捕捉足够精细,又不会因为格点太密导致误点。Etch 页签是布线时用的,可以后面再说。
有人会问:我板框用坐标输入,不靠鼠标捕捉,是不是不用设置格点?还是建议设。因为画板框的时候经常要连接不同对象,比如捕捉圆弧端点和直线端点,格点太粗会限制捕捉精度,反而容易留下微小缝隙。另外,板框绘制过程中经常要用x 100 0这类坐标命令,准确设置格点能让显示和输入逻辑一致,减少后期修改次数。
单位换算这块是重灾区,尤其是 mm 和 mil 的混合使用。下面这个表格建议收藏一下:
| 单位 | 换算关系 | 典型场景 |
|---|---|---|
| 1 mil | 0.0254 mm | 常规 PCB 线宽、间距 |
| 1 mm | 39.37 mil | 结构尺寸、板框 |
| 1 inch | 25.4 mm | 板卡尺寸(如 ATX 主板) |
| 1 mm | 1000 um | 微观结构、HDI 设计 |
结构工程师给 100mm 板宽,你手里是 mil 单位,输入坐标时就得换算成 3937mil。这个换算经常出问题,后面 DXF 导入章节会专门讲怎么避免。
2.3 层叠(Cross Section)阶段先搭好
层叠设置入口是Setup -> Cross Section(或命令xsection)。新建板子默认一般是两层,TOP 和 BOTTOM。如果做四层板,就要在这里插入 GND 和 POWER 层,并设置对应的材料厚度和介质厚度。虽然画板框阶段电气属性还没那么重要,但层叠定下来之后,后续创建 Route Keepin、铺铜、做阻抗计算时就不用折返。
做板框阶段层叠配置可以不用太严格,但层名和铜厚最好先填上。我有一个经验:把层叠里的 Top/Bottom 铜厚设为 1oz 或按实际需求设,介质厚度按板厂常规值填写,这样后面在 Cross Section 里看阻抗参考层时不会因为厚度为空导致一堆警告。Allegro 17.4 的 Cross Section 窗口比旧版更直观,可以右键添加层、拖拽排序,操作起来很方便。
3. 板框绘制的三种主流方式:手绘、Create Outline、DXF导入
3.1 手绘板框:用Add Line精确输入坐标
如果板框形状比较简单,比如矩形或者 L 形,最干净的方式是手绘。命令是Add Line,或者直接执行add line。画之前确认 Options 面板里的Active Class为BOARD GEOMETRY,Active Subclass为OUTLINE。Line Width 可以先用 0,因为板框线宽的特殊坑后面会单独说。
画 100mm × 80mm 的矩形,做法是在命令行坐标输入:
Command > x 0 0 Command > x 100 0 Command > x 100 80 Command > x 0 80 Command > x 0 0注意最后一定要回到起点,这样线才闭合。很多人画到第四个点就直接右键 Done,结果板框是个开口多边形,后面 Z-Copy、铺铜全都会出问题。闭合才是终点,这个习惯必须养成。
如果板框带角度,可以在 Options 里设置 Line Lock 为 45 或 90,这样画线时会自动锁定角度,方便画斜角轮廓。若需要自由角度,就把 Line Lock 设为 Off。坐标输入法本身不限角度,但锁定角度能有效防止手抖画歪。
3.2 规则板框的最快方式:Manufacturing -> Outline
如果板框就是矩形,或者只是在矩形基础上切角、倒圆角,不要手绘,用 Allegro 的 Outline 自动生成命令,入口在Manufacturing -> Outline(等价命令outline)。在 Options 面板里可以设置生成哪种形状:Rectangle 矩形、Round 圆形、Open 开放式等。同时支持 Corner 类型,比如直角、斜切角(Chamfer)、圆角(Round)都能直接预设。
选择 Rectangle 后,直接在设计区点两个对角点,一个闭合板框自动生成。它会自动放在BOARD GEOMETRY/OUTLINE层。所以如果你做的产品就是一个规则的方形板,用这个方法十秒钟搞定,不用手绘再闭合。实际项目中,很多消费类板子虽然大体是矩形,但四角要做圆角,用 Outline 命令直接在 Angle/Corner 里设好圆角半径就行,效率比手动画四段圆弧高得多。
这个命令生成的是闭合轮廓线,而且自带"角点处理"。生成的线宽根据你 Options 里的设置来,建议线宽先设为 0。如果设计过程中发现要改尺寸,直接执行Toolbox里的 Move Vertex 或 Shape Edit 也能微调,但整体上这种规则的板子尽量不要在最后阶段手动拖顶点,很容易破环闭合属性。
3.3 复杂异形板框:DXF导入结构图的完整操作
异形板框,比如带复杂圆弧、多段样条曲线的外壳轮廓,最可靠的方式是让结构工程师提供 DXF 文件,然后导入 Allegro。注意,这里说的是 DXF(Drawing Exchange Format),用 DWG 的话效率会低一些,很多公司结构图习惯直接出 DWG,你可以让结构工程师另存为 DXF 再给你,双方都省事。
导入路径是File -> Import -> DXF。弹窗里几个关键选项:
- DXF file:选择结构文件。
- Incremental addition:如果是导入到新板子,选 No;如果已有内容,选 Yes 会增加叠加导入。
- DXF units:这里极度重要!必须和结构图的原始单位一致。结构图常见是 mm,如果你在下拉菜单里选成了 mils,那导入后整体尺寸会变小 39.37 倍,这是国内工程师最常栽的坑。
- Edit -> Layers Mapping:这里要把结构图的各图层映射到 Allegro 的层。一般做法是把
OUTLINE相关图层映射到BOARD GEOMETRY/OUTLINE,把尺寸标注、文字、辅助线映射到一个临时层(比如BOARD GEOMETRY/OTHER),方便后面删掉。
导入之后不要直接拿导入线就当板框用。结构图里通常有一堆尺寸标注、中心线、孔位线,画面上看起来很杂。正确做法是:新建一个空层或者清理掉无关对象,只保留最外圈轮廓;然后用 Show Element 检查一下关键坐标,确认尺寸没问题;如果轮廓是由多段细碎线段组成的,在允许的情况下重新描一遍干净线段。这个"重新描一遍"看起来很笨,但可以帮你把结构图中的冗余顶点全部清掉,后面的 DRC、Z-Copy 会顺利很多。
4. 圆弧板框、倒角与Z-Copy:让板框从"能看"变成"能用"
4.1 圆弧板框的画法和方向控制
手绘圆弧板框时,还是在Add Line命令下,把 Options 面板里的 Line Lock 从 Line 切成 Arc。此时可以设置 90 度弧、45 度弧或者自由弧。比较常用的做法是先画几段直线确定边界,然后在需要圆弧的地方切换到 Arc 模式,用点选圆弧端点完成绘制。
画圆弧时方向控制是最大的坑。Allegro 中圆弧生成方向与鼠标移动方向有关,很多新手第一次画圆弧总是"凸"的方向不对,比如想要外凸却画成内凹。解决办法:画弧时按住 Ctrl 键,可以切换圆弧的方向;如果已经画完,也可以选中弧线后用右键菜单里的相关命令翻转方向。实际项目里圆弧板框非常常见,比如充电宝主板、智能穿戴主板,这些板子外形都是异形圆润的。我自己的习惯是:先画一条参考直线,再切换到 Arc 模式,用"起点 + 半径 + 终点"的方式输入。Options 面板里如果支持直接输入半径,比如输入r 5,就表示半径为 5 个当前单位。这样做出来的圆弧尺寸更可控。
圆弧与直线拼接的地方要特别注意连接关系。单独画出来的圆弧可能和直线没有交点,或者只差一点点。放大看时肉眼可能看不出来,但 Z-Copy 和 Compose Shape 时就会立刻报错。所以每画完一段弧,我建议用Zoom到最后连接处看一遍,确认顶点重合。
4.2 倒圆角和切角:用Drafting里的Fillet/Chamfer
对于已经画好直线段板框的设计,如果最后想在角上加圆角或者切角,不需要删掉重画。Allegro 提供了一个很实用的工具组:Manufacturing -> Drafting -> Fillet和Chamfer。Fillet 用于在两条相交直线间插入一段圆弧倒角,Chamfer 用于切斜角。
操作逻辑很简单:
- 执行 Fillet,在 Options 里输入圆角半径,然后依次点击两条相交的线段,Allegro 会自动生成一段圆弧并把多余部分修剪掉。注意两条线必须有交点,如果没相交到一点,命令可能失败。
- 执行 Chamfer,输入两个斜角边长,同样选择两条边,它会生成斜角。
这两个命令在日常板框绘制里用得很频繁。之前我一直以为倒圆角只能在 DXF 结构图里做好再导入,后来发现 Allegro 自己就能直接处理,省了不少来回沟通的时间。如果哪一次 Fillet 生成了多余的辅助线,记得检查一下,它有时会在原来的顶点处留下短线段,手动删除即可。
4.3 用Z-Copy生成Route Keepin和Package Keepin
板框画完,下一步通常就是生成布线约束区域。这个动作在 Allegro 里叫 Z-Copy,命令是zcopy copy。它的作用是把已经存在的轮廓(比如板框线)复制/偏移成另一类对象,比如 Route Keepin 或 Package Keepin。
具体操作:执行zcopy copy,在 Options 面板里选择:
- Class:Route Keepin(布线区)
- New Subclass:All
- Offset:偏移值。负值表示向内收缩,比如
-1mm表示从板框边缘向内偏移 1mm;正值表示向外扩展。 - Copy Direction:根据提示点击板框内部或外部来确定方向。
然后点击板框线,Allegro 会自动沿板框生成一个闭合的 Route Keepin 区域。
Z-Copy 最好用的地方在于,它不用你手动去描边界,板框线一选,区域就有了。但它的前提条件是板框必须闭合,而且必须是连续的线段连接。如果你板框有极小缝隙,Z-Copy 就会报错或者说找不到闭合边界。我经常用 Z-Copy 当作板框闭合性的一个"试金石"——如果这一步能顺利生成区域,板框大概率是真正闭合的。
同理,Package Keepin 也是这样做。两个区域生成后,在布局阶段就能看到哪些地方不能放元件、哪些地方不能走线,非常直观。
5. 板框绘制避坑实录:这些坑我每个都踩过
5.1 板框画错层,光绘导出时找不到外形
这是新手最高频的坑,没有之一。画板框时如果 Options 面板的 Active Subclass 不是OUTLINE,而是画到了TOP层或者BOARD GEOMETRY/OTHER,后面出光绘时板厂根本看不到外形,会回来问你要板框文件。
先别急着删掉重画,Allegro 提供了一个批量换层功能:选中画错的线段,然后右键选择Change(或执行change命令),在 Options 面板里把 New Subclass 改成BOARD GEOMETRY/OUTLINE。确认后整组线就能切到正确层。如果板框线分散在不同的层上,你也可以用 Find 面板筛选 Line,然后全选统一处理。这种"批量 Change"技巧在后期调整标注层、丝印层时也同样好用,值得记下来。
5.2 线宽不是0,板框实际尺寸偏大
很多人画板框时不看 Line Width,默认是 0 还好,一旦不小心设成了 6mil 或者 12mil,后面板厂做外形冲切时,是按照光绘里线条的外边界来切的。也就是说,你画了一个 100mm × 80mm 的矩形,线宽 6mil(约 0.1524mm),实际上做出来的外形是 100.152mm × 80.152mm,比设计值大了。虽然 0.15mm 的误差不至于让板子直接报废,但对于高精度装配的产品,这个误差不可接受。
所以板框线的 Line Width 一律设 0。检查方法:执行show element,点选任意一段板框线,弹出的报告里会列出 Line width 参数。如果发现不是 0,执行change命令,把 New Line Width 改成 0,然后点选所有板框线确认修改。这个动作建议在每块板子画完板框后都做一次,形成肌肉记忆。
5.3 板框没闭合,Z-Copy和铺铜全部报错
板框没有闭合的问题处理起来最想骂人。因为肉眼看起来已经闭合了,放大 1000 倍才发现某两个点之间差了 0.0001mm。这种微缝一般发生在:
- 最后一段线没有回到起点,右键 Done 直接结束;
- 圆弧和直线端点没有捕捉到同一坐标;
- 坐标输入时四舍五入导致端点位置有偏差。
检查方法有三种。第一种,执行zcopy copy,如果能成功生成 Route Keepin,大概率闭合了。第二种,使用Shape -> Compose Shape,选中板框线条,看能不能组成 Shape;如果不能,它会提示有几个断开的路径。第三种,在执行dbdoctor时关注是否有Open shape相关警告。
如果发现确实有缝隙,修复方法是在Add Line模式下开启Snap to Segment或Snap Intersection,把断点补齐。注意补线时 Options 面板的层仍要是BOARD GEOMETRY/OUTLINE,线条线宽仍然设 0,不然又会引入新问题。
5.4 DXF导入后单位不对,尺寸差了25.4倍
DXF 单位选错是导入板框时最典型的翻车现场。症状就一句话:板子画好后尺寸和结构图对不上,要么特别大要么特别小。常见情况是原本 100mm 宽的板子,导入后变成 3.937mm——明显小了很多;或者反过来,变成 2540mm 这种离谱尺寸。
如果发现单位错了,不要尝试用 scale 命令去缩放,那样会把圆弧曲率、线宽全部搞乱。正确做法是:删掉当前导入的所有对象(Find 面板里选 Lines、Arcs、Text、Shapes 等,全选 Delete),然后重新执行File -> Import -> DXF,在 DXF units 里选对单位。重新导入后,再用 Show Element 核对关键尺寸。这里我建议把板框左下角或某个固定点对齐到 (0,0),方便后续按原点出坐标。
5.5 17.4版本界面改版后,几个容易走丢的入口
Allegro 17.4 界面相比 16.6 变化不小,最明显的是启动后的 Start Page 会占用很大一块区域,默认显示最近项目和在线内容。如果电脑配置一般,可以在 User Preferences 里关闭一些自动加载项,能明显加快启动速度。
另外,17.4 把导入菜单统一到了File -> Import下面,很多从 16.6 转过来的工程师会习惯性去找File -> Import -> DXF之外的其他入口,结果找不到。还有一个常见的问题是快捷键设置:17.4 里你可以通过Tools -> Utilities -> Keyboard Shortcuts打开快捷键设置界面,把常用命令比如add line、zcopy copy、show element绑定成自己顺手的方式。默认的快捷键其实够用,但把grid、un、xsection这几个命令绑上快捷键,画板框效率会高很多。
6. 板框画完后必须做的三步验证
6.1 用DBDoctor给数据库做个体检
板框画完先别急着往下走,跑一遍数据库检查。入口是Tools -> Database Check(或命令dbdoctor)。在弹出的窗口里勾选 All 或者特定检查项,执行后会输出检查报告。如果出现Open Shape、Broken Line、Start Point这类相关警告,优先解决,因为这些会直接影响后续铺铜和 DRC。
DBDoctor 是个很实用的工具,它不仅能查板框,还能查出一些隐藏问题,比如断掉的网络、异常的多边形等。我一般在板框阶段就跑一次,画完每一版大改后也跑一次。别等到整个布局布线完成后再发现数据库有损,那时候返工成本就高了。
6.2 用Show Element核对坐标和尺寸
跑完 DBDoctor,再用 Show Element(命令show element)点选板框线,查看报告中的顶点坐标和线段长度。这时候重点核对几个关键参数:
- 起点和终点是否都是 (0,0) 或预期位置;
- 每一段直线的长度和设计值是否一致;
- 圆弧段的半径是否和结构图一致;
- Class/Subclass 是否为
BOARD GEOMETRY/OUTLINE; - Line width 是否为 0。
如果这些都没问题,板框几何层面就算过关了。这一步看着繁琐,但确实能拦住一大批低级错误。尤其是接结构图做对位时,坐标有一点点偏差,后面整个板子装不进外壳,这种问题在贴片阶段才暴露的话,损失是惊人的。
6.3 光绘输出时,Outline层一定要勾选
板框本身设计得再好,如果输出光绘文件时没有把板框层放进去,板厂一样拿不到外形数据。输出路径是Manufacture -> Artwork(或命令artwork),在 Film Control 里找到你用的光绘层配置。如果是自己新建的,一定要确保BOARD GEOMETRY下面的OUTLINE子层被勾选,同时把Manufacturing下的OUTLINE子层也检查一遍,因为有些板厂偏好用 Manufacturing/OUTLINE 作为外形层。
如果你在设计中用了多个公共层,可以在 Artwork 里的底片勾选项里统一管理。Allegro 的底片(Film)可以理解为输出 Gerber 的层组合,如果你不确定哪些层该勾选,一个稳妥原则是:把和板框相关的层全部放到同一种底片里,命名简单清楚,比如outline_mech。这样生产文件发给板厂后,对方在 CAM 软件里一眼就能找到外形层。
画完板框后还有一个我坚持了很多年的习惯:立刻把文件另存为带版本号的名称,比如xxxx_v1_0.brd,然后手动复制一份到备份目录。因为板框是后续一切工作的基础,如果后面调板框调乱了,或者误操作破坏了轮廓,你就可以快速回退到刚画完板框的这份干净版本,重新再来,而不是从头重建文件。Allegro 的 AutoSave 功能默认是开着的,但自动保存文件有时会覆盖掉你不想丢的阶段,所以手动保存版本才是最稳妥的保险。这个习惯看起来简单,关键时刻真的能救你一次。