第二章:Allegro差分对设置——创建差分对与物理分配
好,咱们直接进入正题。差分对设置这件事,说难不难,说简单吧,很多新手在这儿栽跟头。我见过不少工程师,原理图画得漂漂亮亮,一到Allegro里配差分对就懵了。嗯,今天我就把这块掰开揉碎了讲清楚。
2.1 差分对命名规则——别小看这个细节
先说说命名。Allegro识别差分对,靠的是网络名。说白了,你给网络起什么名字,直接决定了软件能不能自动认出这是一对差分线。
我个人习惯用这两种命名方式:
- 正负命名法:比如
USB_DP和USB_DN,或者HDMI_TX0_P和HDMI_TX0_N - 正反命名法:比如
MIPI_CLK_P和MIPI_CLK_N,或者ETH_RX+和ETH_RX-
Allegro默认的匹配规则是:网络名除了最后一个字符不同,前面必须完全一样。比如 USB_DP 和 USB_DN,软件会识别出 P 和 N 这对后缀。
关键点:后缀字符必须是 P 和 N,或者 + 和 -,或者 POS 和 NEG。大小写不敏感,但建议统一大写。
我曾经遇到一个项目,工程师用了 TX1_A 和 TX1_B 来命名差分对。结果Allegro死活不认,折腾了半天。后来改成 TX1_P 和 TX1_N,问题秒解。你想想看,这种低级错误多耽误时间。
2.2 创建差分对——两种方法,随你选
在Allegro里创建差分对,主要有两条路。我一般看心情选,但新手我建议用第一种。
方法一:通过Electrical Constraint Set(推荐)
这是最规范的做法。打开 Setup → Constraints → Electrical Constraint Set,然后:
- 在 ECSet 选项卡里,右键选择 Create → Differential Pair
- 给这个ECSet起个名字,比如
DP_100OHM - 设置差分对的物理参数:线宽、线距、阻抗目标值
- 点击 Assign,把网络对分配进去
小技巧:我习惯把阻抗值直接写在ECSet名字里,比如 DP_100OHM_USB、DP_90OHM_HDMI。这样后期查起来一目了然,不用点开属性框一个个看。
方法二:直接在Constraint Manager里创建
打开 Constraint Manager(快捷键:Ctrl + Shift + C),找到 Electrical → Differential Pair 表格。右键空白处,选 Create → Differential Pair。然后手动输入两个网络名,或者从下拉列表里选。
这个方法快是快,但有个坑——它不会自动帮你创建ECSet。说白了,你只是告诉软件「这两个网络是一对」,但没告诉它该怎么走线。我建议你创建完差分对后,顺手再配一个ECSet上去。
2.3 物理分配——把规则落实到每一对线上
创建完差分对,下一步就是分配物理规则。这一步很多人会忘,结果走线时发现软件根本不约束你。
在 Constraint Manager 里,找到 Physical → All Layers 表格。你会看到刚才创建的差分对已经列出来了。接下来:
- 选中你要配置的差分对
- 在 Line Width 列输入线宽,比如
5(单位mil) - 在 Neck Width 列输入瓶颈宽度,比如
4 - 在 Gap 列输入线距,比如
8 - 在 Tolerance 列输入误差,比如
1
| 参数 | 说明 | 典型值(100Ω差分) |
|---|---|---|
| Line Width | 差分线的主线宽 | 5 mil |
| Neck Width | 瓶颈区域的线宽(比如BGA扇出) | 4 mil |
| Gap | 正负线之间的间距 | 8 mil |
| Tolerance | 线宽和线距的允许偏差 | 1 mil |
注意:这些值不是随便填的。你需要根据叠层结构和阻抗要求计算。我见过有人直接把参考设计的值抄过来,结果板子做出来阻抗完全不对。嗯,叠层一变,所有参数都得重新算。
2.4 批量分配——省时省力的技巧
如果你有几十对差分线要配,一个个手动填会疯掉。我教你一招:
在 Constraint Manager 里,选中一个已经配好的差分对,按 Ctrl + C 复制。然后选中其他差分对,按 Ctrl + V 粘贴。Allegro会问你要粘贴哪些属性,勾上 Physical 和 Spacing 就行。
还有一个更狠的办法——用 Spreadsheet 模式。在Constraint Manager里,右键选 Export → CSV,导出成Excel文件。在Excel里批量修改,改完再 Import 回去。我当年做一块32对差分线的板子,用这个方法10分钟搞定所有配置。
2.5 避坑指南——我踩过的雷
最后分享几个实战中容易翻车的地方:
- 网络名不匹配:我曾经遇到原理图里网络名叫
USB_DP和USB_DM,结果Allegro不认。因为M不是标准后缀。改成USB_DP和USB_DN就好了。 - 忘记分配ECSet:创建了差分对,但没分配ECSet。结果走线时软件不报错,但也不约束。等板子做出来才发现线宽线距全乱套。
- 叠层参数没更新:改过叠层后,记得重新计算差分阻抗。我见过有人叠层厚度变了,但线宽线距还是老参数,结果阻抗偏了10%以上。
嗯,差分对设置这块,说白了就是「命名规范 + 参数准确 + 分配到位」。这三步走稳了,后面走线就顺了。下一章咱们聊聊差分走线的具体技巧,到时候见。