第二章:Allegro差分对设置——创建差分对与物理分配

好,咱们直接进入正题。差分对设置这件事,说难不难,说简单吧,很多新手在这儿栽跟头。我见过不少工程师,原理图画得漂漂亮亮,一到Allegro里配差分对就懵了。嗯,今天我就把这块掰开揉碎了讲清楚。

2.1 差分对命名规则——别小看这个细节

先说说命名。Allegro识别差分对,靠的是网络名。说白了,你给网络起什么名字,直接决定了软件能不能自动认出这是一对差分线。

我个人习惯用这两种命名方式:

  • 正负命名法:比如 USB_DPUSB_DN,或者 HDMI_TX0_PHDMI_TX0_N
  • 正反命名法:比如 MIPI_CLK_PMIPI_CLK_N,或者 ETH_RX+ETH_RX-

Allegro默认的匹配规则是:网络名除了最后一个字符不同,前面必须完全一样。比如 USB_DPUSB_DN,软件会识别出 PN 这对后缀。

关键点:后缀字符必须是 PN,或者 +-,或者 POSNEG。大小写不敏感,但建议统一大写。

我曾经遇到一个项目,工程师用了 TX1_ATX1_B 来命名差分对。结果Allegro死活不认,折腾了半天。后来改成 TX1_PTX1_N,问题秒解。你想想看,这种低级错误多耽误时间。

2.2 创建差分对——两种方法,随你选

在Allegro里创建差分对,主要有两条路。我一般看心情选,但新手我建议用第一种。

方法一:通过Electrical Constraint Set(推荐)

这是最规范的做法。打开 Setup → Constraints → Electrical Constraint Set,然后:

  1. ECSet 选项卡里,右键选择 Create → Differential Pair
  2. 给这个ECSet起个名字,比如 DP_100OHM
  3. 设置差分对的物理参数:线宽、线距、阻抗目标值
  4. 点击 Assign,把网络对分配进去

小技巧:我习惯把阻抗值直接写在ECSet名字里,比如 DP_100OHM_USBDP_90OHM_HDMI。这样后期查起来一目了然,不用点开属性框一个个看。

方法二:直接在Constraint Manager里创建

打开 Constraint Manager(快捷键:Ctrl + Shift + C),找到 Electrical → Differential Pair 表格。右键空白处,选 Create → Differential Pair。然后手动输入两个网络名,或者从下拉列表里选。

这个方法快是快,但有个坑——它不会自动帮你创建ECSet。说白了,你只是告诉软件「这两个网络是一对」,但没告诉它该怎么走线。我建议你创建完差分对后,顺手再配一个ECSet上去。

2.3 物理分配——把规则落实到每一对线上

创建完差分对,下一步就是分配物理规则。这一步很多人会忘,结果走线时发现软件根本不约束你。

Constraint Manager 里,找到 Physical → All Layers 表格。你会看到刚才创建的差分对已经列出来了。接下来:

  1. 选中你要配置的差分对
  2. Line Width 列输入线宽,比如 5(单位mil)
  3. Neck Width 列输入瓶颈宽度,比如 4
  4. Gap 列输入线距,比如 8
  5. 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会问你要粘贴哪些属性,勾上 PhysicalSpacing 就行。

还有一个更狠的办法——用 Spreadsheet 模式。在Constraint Manager里,右键选 Export → CSV,导出成Excel文件。在Excel里批量修改,改完再 Import 回去。我当年做一块32对差分线的板子,用这个方法10分钟搞定所有配置。

2.5 避坑指南——我踩过的雷

最后分享几个实战中容易翻车的地方:

  • 网络名不匹配:我曾经遇到原理图里网络名叫 USB_DPUSB_DM,结果Allegro不认。因为 M 不是标准后缀。改成 USB_DPUSB_DN 就好了。
  • 忘记分配ECSet:创建了差分对,但没分配ECSet。结果走线时软件不报错,但也不约束。等板子做出来才发现线宽线距全乱套。
  • 叠层参数没更新:改过叠层后,记得重新计算差分阻抗。我见过有人叠层厚度变了,但线宽线距还是老参数,结果阻抗偏了10%以上。

嗯,差分对设置这块,说白了就是「命名规范 + 参数准确 + 分配到位」。这三步走稳了,后面走线就顺了。下一章咱们聊聊差分走线的具体技巧,到时候见。