做了几年Allegro PCB设计,踩过的坑能绕会议室三圈。这篇把最常碰到的几个问题拎出来,每个都带解决办法,存着备查。
坑1:导入网络表一堆封装错误
原理图在Capture里画得好好的,导出网表一进Allegro,封装错误弹一堆。90%的原因是Capture里元件属性没填对。
打开Capture选中元件,看属性里的PCB Footprint那一栏。这里必须填Allegro封装库里对应的.psm文件名。注意:这里说的封装是Layout用的Package Symbol,不是原理图里的Capture Symbol,两个完全不同的东西,新手最容易搞混。
另外新版本对封装内PIN NUMBER的唯一性查得很严。同一个封装里不允许重复的PIN NUMBER,非电源pin的PIN NAME也不能重。老版本凑合能用的封装,新导直接报错。回去改Capture属性,保证一一对应再重新导出网表。
还有一点:别想着在Allegro里手动改连线来绕过网表问题。Cadence的设计逻辑是原理图驱动PCB,你在PCB里改了连接,下次重新导网表全部覆盖回来,白干。正确路径永远是回Capture改原理图。
坑2:DXF导出丢图,Message Window说Translation complete但View Log报错
导出DXF的时候看着好像成功了,客户那边打开一看走线全没了,只剩元件和文字。View Log里翻出来一句ERROR: Invalid program arguments。
原因有两个:一是参数设置里有非法选项,二是Sub-Drawing导出时勾错了选项。Sub-Drawing只是简单的复制粘贴,不带网络连接关系。你想连走线一起拷,必须勾CLINE和VIA,光勾NET没用。
另外一个细节:增加DXF Layer的时候不能随便加Subclass。正确顺序是先在Allegro里打开你要导出的Subclass,再执行File → Export → DXF。顺序反了,导出来的图层就不全。
坑3:Shape敷铜画完不自动填充,一改就消失
画好Shape外框,铜皮就是不填。修改一下参数,Shape直接变成空框框。这是Allegro部分版本的已知BUG。
两个解法:一是打最新的ISR补丁,能根治。不想打补丁的话,每次修改完手动执行一遍Shape → Change Shape Fill,强制重新填充。麻烦但管用。
坑4:花焊盘(Thermal Relief)到底什么时候用
过孔或引脚跟大面积铜箔直连的时候,焊接散热太快会导致虚焊。花焊盘就是用十字形连接代替全连接,减缓散热。另外热胀冷缩时内层铜箔拉扯孔壁,花焊盘也能减少应力对孔连接强度的影响。
在Pad Designer里建Flash Symbol(.fsm),然后在焊盘设计里把Thermal Relief层指向这个flash文件就行。
坑5:Command窗口输坐标报命令找不到
很多人在Command窗口里输入大写的X 100 100,结果提示命令不存在。正确的姿势是小写的 x,回车后会弹坐标对话框。这个坑到现在还有新人在踩。
坑6:约束管理器里几百组差分线怎么批量设规则
板子上200组差分线,每组间距要求大于40mil,一条一条设能设到半夜。用Constraint Manager的Group功能,把同一类约束的网络编进一个Group,一条规则全组生效。
坑7:Log文件不会看等于白做
导入网表或者更新Symbol出问题的时候,别瞎猜原因。File → View Log打开日志文件,所有操作记录、报错信息都在里面。哪个封装出了错,哪个PIN没对应上,翻一下就知道。新手最喜欢跳过这一步直接到处问,其实日志里写得明明白白。
画板踩过的坑
坑8:Capture里改了元件属性,Allegro里Update Schematic没反应?检查是不是原理图和PCB的工程关联路径断了。有时候文件移动过目录,Capture里的Design Cache跟实际库路径对不上,更新就静默失败了。在Capture里重新指定库路径再更新。
坑9:封装库里同名封装多个版本,调用的时候怎么保证用的是对的?建议每个项目单独建一个封装库目录,把项目用到的封装全部拷进去,别直接调用公共库。Allegro的库搜索路径有优先级,公共库里的同名封装会覆盖项目目录的,到时候改了封装没生效你都不知道。
坑10:多版本Allegro共存的时候,开哪个版本都报缺dll文件?改CDSROOT环境变量就行,切版本之前关掉Allegro,改完环境变量再开。别两个版本同时开,License会冲突。
小结
这十个坑覆盖了从网表导入、DXF处理、敷铜异常到封装管理的高频场景。Allegro的逻辑其实不难,就是细节太多,每个细节都能挖个坑出来。把这篇收藏着,碰到报错对照着查,比去论坛翻帖快。










