ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Cadence Allegro 17.4交互式布局与模块化设计实战指南

Cadence Allegro 17.4交互式布局与模块化设计实战指南 Cadence Allegro 17.4这代PCB Editor把交互式布局和模块化设计这两块做得相当顺手但大多数工程师真正上手时还是卡在老问题上原理图里明明选中了一堆器件切到PCB Editor却不知道去哪找、怎么摆碰到DDR、多路电源、同样接口的重复电路还在一个个手动摆放、反复拉线。这篇文章我就把平时做项目时用17.4做交互式布局和模块化设计的完整套路拆开讲从环境联动、颜色层设置、Room分区一直讲到Module复用和常见坑适合刚接触Allegro的Layout工程师也适合用了一段时间但始终觉得布局效率上不去的朋友。我尽量把每个操作都拆成“先做什么、后做什么、为什么这样做”尤其是模块复用.mdd、Room分区、Cross Probing这几个功能用实际项目里的场景来讲你照着走一遍就能用起来。1. 先让原理图和PCB“聊起来”交互式布局的前置环境1.1 网表导入与OrCAD联动别让两个工具各干各的很多朋友问“Cadence和Allegro到底有什么区别”简单说Cadence是厂商和套件名Capture含OrCAD Capture CIS是原理图工具Allegro PCB Editor才是画板子的人每天待的环境。17.4里这两个工具本身就有非常成熟的联动机制问题是你得把网表这条路打通不然原理图上的器件根本进不了PCB。标准操作是这样在Capture里打开工程后选中.dsn工程根节点进Tools → Create Netlist在弹窗里切到Allegro标签页生成网表文件这里会同时生成pstxnet.dat、pstchip.dat等文件它们就是原理图到PCB的“桥梁”。然后切到Allegro PCB Editor执行File → Import → LogicLogic type选Capture告诉它去导入刚才生成的网表。这一步做完原理图里改了什么电路PCB里都能同步更新。新手最容易栽在封装库路径上。网表导入报“Symbol not found”或者“Component could not be found”十有八九是Allegro不知道你的封装库在哪。解决方法是提前在Setup → User Preferences里搜“psmpath”“padpath”把建好的封装库路径加进去。我习惯把库路径做得简单一点放在纯英文目录下避免中文路径或带空格不然有的版本会莫名其妙读不到。1.2 界面层显示设置布局先看清楚再动手原理图网表倒进来之后别急着拖器件。先把显示层调到适合布局的状态否则满屏飞线和绿色块会把眼睛看花。入口是Display → Color/Visibility或者直接按CtrlF5。布局阶段我一般把下面几个类单独打开Ref Des位号、Assembly_Top/Bottom装配层看器件实体大小用、Place_Bound_Top/Bottom占位范围检查干涉很重要、Symbol Outline器件轮廓和Ratsnest飞线连接关系。其余像Silkscreen、Copper层可以先关掉屏幕上干净很多。每次布局前我习惯先All off再手动打开这几个类比在一大堆层里挨个找高效得多。很多人在Color/Visibility面板里看到左侧一堆“Class/Subclass”就晕不知道活动类和子类是什么意思。简单说Class是大的层类别比如ETCH、REF DES、BOARD GEOMETRYSubclass是类别下面的细分比如REF DES下面的Assembly_Top、Silkscreen_Top。右侧的色块和勾选框就是控制“这个子类显示成什么颜色、以及要不要显示”这就是你的显示控制中心。位号显示大小也要顺手调一下。默认RefDes字高经常只有几mil放到大板上跟蚂蚁似的。选中位号文本后右键Edit Text在Text Block里选大一号的字高或者用Edit → Change先在Find面板里勾选Text然后批量改。布局阶段我通常把位号放到30~50mil以上方便眯着眼睛也能找到东西。格点设置非常关键。Setup → Grids里分两类非电气格点Grids On和电气格点Grids On for Ratsnest。布局主要看非电气格点我用公制板子时习惯设0.5mm或1mm的整数倍英制板子用25mil或50mil这样元器件之间能快速对齐旋转后也不别扭。布线前再换成5mil、1mil这种细格点。很多拖不动器件、器件“一步跳太远”的问题八成就是格点设得不合理。1.3 快捷键设置布局快到飞起的基础Allegro不像很多Windows软件有图形化快捷键设置界面它的快捷键核心就是env文件。我们可以在命令行里临时敲alias F2 move alias F3 spin alias F4 mirror这样的命令在当前会话里能直接用但重启软件就没了。要永久生效得去用户目录下的pcbenv文件夹里找到allegro.env把同样的alias语句写进去保存后重启Allegro。我习惯把Move、Spin、Mirror、Angle 90、Show Measure这些高频操作全绑到F键上布局时手不离开键盘效率差得非常明显。还有个容易被忽略的功能在命令栏输入alias不加参数会列出当前所有快捷键绑定。有些人从网上下载别人的env文件覆盖自己的发现一堆命令冲突就靠这个检查。17.4有些新用户会用菜单Tools里的命令搜索功能也可以但老工程师还是更信任直接改env简单直接。2. 交互式布局实战像查地图一样摆元件2.1 核心操作原理图与PCB的Cross ProbingCross Probing交叉探测是17.4交互式布局里最值钱的功能。原理图里选器件PCB里立刻高亮PCB里点器件原理图里也同步回看双向联动。开启条件在Capture的Options → Preferences → Miscellaneous里把“Enable Intertool Communication”勾上Allegro这边不需要特别设置正常打开两个软件就行。实际使用时先回到Capture在原理图页面里框选一组器件或者点选某几个电容电阻切到Allegro这些器件会被高亮出来。这时候执行Move命令在Options面板的勾选里确保Symbol是打开的鼠标就能直接抓起高亮中的任意一个器件。有个非常实用的小技巧Capture里用Edit → Find按Part Number筛选元器件比如筛选所有0.1uF的退耦电容比在原理图里一个一个点方便得多。筛选出来后在Allegro里执行Move右键菜单选“Symbol”光标会自动吸附到被高亮的器件上然后你就能把这批电容挨个放到目标芯片周围。注意一个容易翻车的地方如果Move时Options里的“Stretch”是勾选状态拖动器件可能会把连着它的走线一起拉变形。布局阶段我只勾Symbol不勾Stretch保证每次只移动元件本体。如果你发现“怎么点一下器件旁边一堆走线跟着动”先检查这里。2.2 让分区自动进行Room属性与按房间摆放器件一多布局就乱。我强烈推荐用Room分区让软件替你完成“把哪批元器件放到哪个区域”的工作而不是全靠手拖。画Room很简单菜单Setup → Outlines → Room Outline在板框内拉出一个矩形区域。然后选中一批器件可以用前面说的Cross Probing批量高亮右键Properties在Available Properties里找到Room属性填上房间名比如“POWER”“DDR”“USB”。给元件分配Room属性后执行Place菜单下的Auto Place → Room17.4不同版本菜单位置略有差异有些在Placement工具条里软件就会把这些器件自动摆到对应的Room区域里。Room名有讲究大小写敏感不要用中文和空格建议统一用大写英文。画Room时要注意选对层面是Top还是Bottom还是All不然自动摆放时器件可能跑到意料之外的层。Room区域的尺寸也要留出余量一般比实际器件占位面积大10%~20%方便后期微调。我这里说句实在话Room分区最爽的不是第一次自动摆放而是改板。比如原理图里新增了几颗电容只要把Room属性一填再跑一次Auto Place by Room新器件就自己进区域了不需要重新布局一遍。2.3 布局微操旋转、镜像、对齐与等间距布局里最频繁的操作就是旋转、镜像、对齐。17.4里旋转默认快捷键是R每次按R转90度也可以在Options面板里直接选角度支持45度、任意角度。镜像用右键Mirror或者自己绑快捷键比如F4。这里有个经验批量摆小电容电阻时先把它们的方向统一调成一个角度这样后面检查和布线都会顺眼很多避免出现一排器件丝印方向七扭八歪。对齐和等间距是很多人找不到的功能。其实17.4的Placement Edit模式下藏着一套对齐工具先把左下角Application Mode切到Placement Edit然后框选多个器件右键菜单里就会出现Align相关选项可以左对齐、右对齐、垂直居中还能做等间距分布。这个功能特别适合整理连接器、端子、LED灯这类需要排成一条线的器件。如果你要更精确地控制位置可以用Move命令后直接在命令行输入相对坐标比如ix 100、iy -50意思是相对当前位置水平移动100mil、垂直移动-50mil。这个技巧做高精度对齐时很好用不需要反复用鼠标挪。2.4 布局完成后先做密度检查再谈布线的下一步电路板布局除了好看还要考虑密度均衡。17.4自带密度分析功能在Manufacture菜单下可以执行Density Check它会生成一张色阶图颜色越红代表这一块区域器件拥挤、走线通道紧张绿色和蓝色则代表比较空旷。我在项目里通常把密度检查和Room配合起来用。哪个Room区域红了就把里面一部分器件挪到旁边空的区域或者把Room边界扩大让同功能器件有更多呼吸空间。这一步很值得做不要觉得麻烦。布局阶段器件密度不均匀后面布线连扇出走线的通道都没有那才叫痛苦。顺手再提一个检查工具Display → Measure可以快速测量两点距离、器件间距对确认布局尺寸非常有帮助。很多人搜索“Allegro里怎么确定查看距离和长度”其实就是这个Measure命令快捷键CtrlShiftM。3. 模块化设计反复出现的电路一次布局多次使用3.1 为什么模块化能用Allegro的Module复用机制如果一块板子上有8路完全相同的DC-DC电源、或者4片同样的DDR颗粒、又或者多个一模一样的Type-C接口电路你还在一个器件一个器件地摆那就太浪费时间了。Allegro的Module复用机制就是把这些重复单元的器件布局、局部布线、过孔、位号规则打包成一个文件然后在同一块PCB里反复放置。Module文件的后缀是.mdd它可以包含元器件符号、相对位置关系、已布好的走线、过孔、甚至铜皮和文字。放置时Allegro会自动为这些内容分配新的位号、新的网络名不需要你手动逐个改名。这个机制之所以能实现是因为原理图里多个通道的电路结构完全相同Allegro在放置.mdd时会根据当前PCB里已存在的网络名称按通道前缀做映射。当然有个前提被复用的元器件封装必须在库里能找到而且库路径要正确。Module里不要包含板框、定位孔这类整板级对象否则复用时会带出一堆乱七八糟的物理信息。我第一次做模块复用就把板框一块框进去了后来放置到其他区域时直接多出一个板框DRC报错报了一整页。3.2 创建一个Module的完整流程连走线一起复用创建Module的操作路径在17.4里主要是靠Placement Edit模式先把一个通道的器件布局到位可以顺手把关键走线拉完也可以只布局不拉线然后左下角Application Mode切到Placement Edit框选这一组元器件和相关布线/过孔右键菜单里选择Create Module。如果右键里没有也可以到Place菜单下找Create Module入口不同版本位置略有差异。创建时会让你保存.mdd文件。这里有个小细节保存前会要你指定一个参考点。我强烈建议选第一脚Pin 1或者某个连接器的中心位置不要随便点一个器件中心。因为后续放置模块时这个参考点就是你的鼠标落点选得好不好直接关系到最后模块位置的精度。放置Module时执行Place → Module或者Placement Edit模式下右键Place Module选中之前存的.mdd在板上点击参考点位置。模块整体就会“啪”一下摆进去位号自动变成新编号网络也自动映射成当前原理图对应的网络。如果模块里带了走线你连布线都省了这在多路电源、多路DDR上特别香。有一点要说明我只建议把已经基本定型、不会大改的电路做成模块。如果你边调试边改电路模块里走线也要跟着改改几处之后模块的复用价值就大打折扣了。3.3 模块复用前后必须处理的3类细节位号/约束/丝印模块复用不是点两下就完事后面有几件收尾工作必须做。第一位号查重。Module放置后Allegro会自动生成新的位号比如原始模块里的R101、C101复制后可能变成R201、C201。但偶尔会因为库或约束问题生成重复位号。布局结束后一定要用Tools → Quick Reports里的Unplaced Components和报错报告检查一遍有重复位号及时改掉不然后面做BOM和装配图会乱套。第二约束检查。模块里如果包含差分对或等长网络复用后Physical和Spacing规则大概率能带过来但Constraint Manager里的Match Group不会自动把新网络加进去。换句话说你再怎么等长约束新复制的DDR通道没有加入匹配组等于没约束。我每次复用DDR模块后都要去Constraint Manager里手动把新网络的等长组补上。第三丝印方向。模块内元件丝印的方向、位号字高也要在创建模块前统一调好。如果创建模块时丝印七扭八歪复用到后面几个通道都一样歪后期一个个改更麻烦。比较好的习惯是每个通道布局完成后先跑一遍丝印整理比如把位号统一移到器件上方方向统一朝上确认没问题再存成Module。3.4 Module Reuse与Design Reuse的区别与选择Design Reuse和Module Reuse听起来像一回事用法上还是有差异的。Module Reuse主要用于同一块PCB内生成.mdd文件适合本板内大量重复单元简单快速。Design Reuse则是跨工程复用的方案通常把已经成熟的某一部分电路模块导出带到另一个PCB工程中使用适合公司沉淀标准化电路。拿个真实场景对比一下复用方式适用场景优点要注意的事Module Reuse同一块板子上多路相同电路操作快位号网络自动映射限定当前PCB换板子就要重新建Design Reuse不同PCB工程间复用成熟模块跨项目沉淀设计经验导入后仍需核对封装、约束和网络整板复用项目多版本迭代保留既有布局布线成果依赖器件位号对应关系原理图改动要谨慎我的个人习惯是同板重复用Module跨板复用和版本迭代用Design Reuse。比如公司做一个电源板平台第一版调试完成后把整个电源模块用Design Reuse导出去下一版主板直接导入再调整局部网络和参数效率提升非常明显。但如果只是当前这块板子有8路相同的灯控电路用Module Reuse最省事。4. 常见问题与排查技巧实录4.1 元件就是拖不动先查“模式”和“格点”“点了Move为什么元器件不跟着鼠标走”“为什么拖到一半又弹回原位”这是我见过最多的布局阶段问题。排查顺序很简单先看左下角的Application Mode是不是在General而不是Placement Edit如果不在切换过去再试。再看Move命令的Options面板确保勾选了Symbol且Stretch是关闭的。其次怀疑格点。Setup → Grids里非电气格点如果设置太大比如100mil你拖器件时会发现光标一动器件就跳一大截根本停不到你想要的位置如果设置太小或者非整数倍又会出现器件边缘对不齐的情况。我建议布局先统一0.5mm或25mil然后根据实际需要再缩小。还有一个小技巧拖动时按住Shift可以临时避开当前格点精确放置。4.2 高亮不清、原理图联动失效怎么办Cross Probing失灵时第一件事检查Capture首选项里Intertool Communication是不是被关了如果开着但PCB这边还是没反应就看看Allegro当前窗口是不是被其他命令占用比如正停留在某个命令输入状态下这时候联动会被卡住Esc退出命令再试。高亮乱成一团无法消除用Display → Dehighlight在Find面板里勾选All然后点击右键选Done全部高亮就能清干净。还有个小坑有时候高亮颜色设置成了跟背景一样的颜色看起来像没有高亮其实已经选中了。这种情况去Color/Visibility里把高亮颜色Highlight层改成醒目颜色就行。我一般用红色做高亮在深色背景下对比度最高。4.3 封装、位号与铜皮显示问题速查下面是几个布局阶段高频问题的排查表都是我实际踩过的坑现象常见原因处理建议元件位号不显示RefDes层被关闭或字高为0Color/Visibility打开Ref Des对应层Edit→Text调字号封装只读无法更新封装库文件只读或正被占用检查.pad/.dra文件属性另存到可写路径后Tools→Update Symbols导入网表报Symbol not found封装库路径没配好Setup→User Preferences里配置psmpath、padpath再重新导入铜皮只有轮廓看不到填充Shape Fill显示被关掉在Display面板或“Shape Fill”设置里切回Filled状态替换单个封装后位号丢失器件RefDes被覆盖Edit→Replace或右键Replace后再单独修正位号导出DXF没有内容DXF导出层没勾选完整导出时在层选择界面把需要导出的Subclass全部钩上位号显示问题非常常见。布局阶段为了看得清我把RefDes层开开但经常有同事忘记在最后出图时切回Silkscreen层导致板子做出来丝印上没有位号。所以每次布局结束和出Gerber前都要分别检查一次层显示这个习惯能省掉很多生产环节的麻烦。4.4 布局阶段别漏掉的收尾检查清单布局完成不等于可以马上布线我每次都会做几件固定的事你可以直接照抄第一Tools → Quick Reports里跑一下Unplaced Components看看有没有没摆的器件第二跑一遍DRC重点检查Component Clearance元件间距有红色报错逐个处理第三File → Export → Placement导出一份布局文件这个文件包含所有元件的坐标和位号非常重要后期如果某次误操作把板子弄乱了可以用它把布局恢复到之前的版本第四保存一份归档档命名里带上版本号和日期防止覆盖前一个阶段的成果。5. 我的一些习惯关于快捷键、库路径与模块迭代最后分享几个我做Allegro布局时真正觉得有用的习惯。一个是快捷键。我在pcbenv的allegro.env里维护了一套自己的aliasF2移动、F3旋转、F4镜像、F6角度重置、F7测量。重装软件后第一件事就是把这个文件备份覆盖回去这样不管在哪台电脑上操作手感都一样。快捷键不要贪多10个以内高频命令就够了太多反而记不住。另一个是库路径统一。公司里如果多人协作建议把封装库放到共享服务器上所有人都通过Setup → User Preferences把psmpath指向同一个位置。这样不会出现A电脑能导入网表、B电脑报Symbol not found的尴尬。个人开发就简单点本地建一个lib目录固定版本固定路径升级版本时先确认库兼容。模块复用我还有一个小技巧创建Module之前先想清楚这个模块以后会不会做版本升级。如果会我一般会保留一个“源模块”在当前PCB中不删除方便后续修改后再重新生成mdd。否则每次改模块都要重新画一遍得不偿失。还有一点关于模块放置的细节放置.mdd时Options面板里可以提前预览模块方向。点击放置前先把旋转角度调好鼠标落点对准参考点一次放准。不要放下去再慢慢转那样不仅慢还容易出现位号排列方向不一致的问题。我吃过这个亏多路电源模块放下去之后方向不一后来花了一晚上整理丝印方向从那以后每次放置都先调角度。Cadence Allegro 17.4这套工具交互式布局和模块化设计的核心思路其实很朴实让软件帮你完成重复劳动让人专注在有判断力的工作上。原理图联动、Room分区、Module复用本质上都是在减少机械性的点击和拖拽。你把这三样用好布局效率上来了后面布线、DRC、出图都会顺很多。
返回列表