innovus Flip chip 产品设计方法(3)


4.4 IO 焊盘优化

自动bump 分配优化流程,描述的是实现设计者完全自主控制bump的放置与分配 时的处理过程。设计者仍可通过优化 IO 焊盘 来提升重分布层(RDL)的可路由性。Innovus 提供了自动化的实现方式,对应的命令为:placePIO --optIOs --noRandomPlacement该命令同样会调用全局倒装芯片routing,以优化焊盘的布局。

此功能的实现需要与封装工程师紧密协作 ,因为上述流程中创建的bump,最终需要路由至封装焊球。封装路由对资源的需求极高、要求严苛,封装设计工具(APD/SiP)通常会提出一些约束条件(涉及bump的放置与分配)。设计者可通过读取封装工具提供的 IO 文件,将这些bump的放置与分配约束导入 Innovus。Innovus 与 SiP 工具均提供了专用功能,以支持工具间的这种数据交互。

在从 APD 工具读取新的凸点分配信息后,Innovus 支持以下三种场景 / 流程:

  1. 部分 bump分配允许优化 可使用上述的自动优化流程,即通过命令 placePIO --assignBump --noRandomPlacement 优化bump分配。设计者需通过约束文件配合 setFlipChipMode 命令,明确告知工具哪些bump分配是固定的。

  2. 所有 bump分配均由封装工程师固定 不允许进行任何新的分配。此时,工程师唯一可执行的优化操作是优化 IO 焊盘的布局 。需注意:部分焊盘可能仅为 "已放置" 状态,而非 "固定" 状态。优化此类焊盘的命令为:placePIO --optIOs --noRandomPlacement该命令会尊重施加在 IO 焊盘上的固定属性

  3. 部分 bump与部分 IO 焊盘同步优化 Innovus 支持同时优化 IO 焊盘的布局与bump的分配,对应的命令为:placePIO --assignBump --optIOs --noRandomPlacement同样,设计者需通过 setFlipChipMode 命令指定固定的 bump,并将不允许移动的 IO 焊盘设置为固定状态

黄金准则倒装芯片的布局规划应尽早开展,这能极大降低工程师找到可行解决方案的难度。一旦设计进入数字实现阶段,IO 焊盘的移动空间将变得极小。

下图为IO 焊盘和 / 或 bump分配的优化流程图

在完成任何bump分配的修改后,必须在 APD 工具中重新检查设计的可路由性 。完成流程步骤 C 后,设计即可进入电源规划与 RDL routing 阶段


5. 电源规划

倒装芯片设计的电源规划步骤,与非倒装芯片设计总体一致,但仍有一些值得注意的流程建议:

  1. RDL 层的使用时机 建议在焊盘到bump 的routing 完成前,不要使用 RDL 层 。因为倒装芯片路由器对路由障碍物极其敏感。电源路由(即电源条的生成)可在IO 焊盘到bump的routing完成后,使用 RDL 层进行。

  2. addStripe 命令的专用选项该命令提供了 2 个专门用于简化倒装芯片设计的选项,以支持电源条的生成:

    • -over_bumps

✅ 功能:在电源 / 地(PG)bump上方生成电源条。

✅ 特性:电源条的生成会在有效 PG bump的边缘处停止

✅ 示例:下图展示了在金属层 9 的bump上方,于金属层 8 生成的电源条。

✅ 附加功能:若bump 在 LEF 文件中未定义障碍物(OBS),该命令会自动删除生成的过孔,以避免出现 "bump 下过孔" 的违规情况。

  • -between_bumps

✅ 功能:在PG bump 之间生成电源条。

✅ 特性:无 PG bump的区域不会生成电源条

✅ 示例:下图展示了使用 addStripe --between_bumps 命令的执行结果,注意无 PG bump的区域存在电源条的中断。

✅ 效果:在bump 之间会生成独立的 VSS 和 VDD 电源条。

  1. 区域指定功能 上述两个选项均支持为电源条的routing 指定一个区域 (矩形或任意多边形)。这一功能极具灵活性,尤其适用于设计中包含多个电源域的场景,可显著提升命令的实用性。

  2. 不建议的操作 在此阶段,不建议使用 RDL 层来routing / 创建电源bump 与电源走线 / 电源焊盘之间的连接 。这一步骤应在信号routing 过程中或信号routing 完成后执行,具体细节将在系列文章的 "信号与电源routing " 章节中说明。

注意事项

  • addStripe 命令会在未分配的bump 上方生成电源条 。建议设计者在完成焊盘与bump 的优化后,删除所有备用bump 。由于这些bump 未被分配,verifyGeometry 命令不会将此类短路标记为违规。

  • 若设计者计划在与 RDL 路由相同的金属层 中创建电源 / 地条,建议在使用 fcroute 完成信号路由后 再执行此操作。


6. RDL routng

6.1 概述

倒装芯片fcroute的核心功能 是实现bump 与 IO 焊盘之间的网络routing。该命令支持两种routing 类型,具体如下:

路由类型 命令格式 功能 路由风格 约束支持 专用选项
电源路由 fcroute -type power 连接 PG bump至环形电源 / 电源条 仅支持曼哈顿路由 不遵循 setFlipChipMode 的设置 -
信号路由 fcroute -type signal 连接PG bump至 IO 焊盘 支持曼哈顿路由、45° 路由(默认 遵循 setFlipChipMode所有设置 1. -connectPowerCellToBump:支持 PG PG bump至 IO 焊盘的路由(也可通过 setFlipChipMode --connectPowerCellToBump true 开启) 2. -preventViaUnderBump:防止在PG bump上生成过孔
  1. 设计风格支持 routing 由命令 fcroute --type signal 支持两种设计风格:外围 IO(PIO)区域 IO(AIO) 。该命令不受设计风格的限制,即设计者可在 PIO 设计中,为特定目的使用 AIO 模式。

    注:本文档中,AIO 或 PIO 模式均指为 fcroute 指定的设计风格。

    • AIO 模式fcroute --type signal --designStyle aio ✅ 仅使用详细routes 完成bump至 IO 焊盘的连接。✅ 采用routes nets one by one的方式,属于增量式路由。

    • PIO 模式fcroute --type signal --designStyle pio

      ➔ 该命令将首先调用全局布线器分配所有布线资源,随后调用详细布线器完成凸块(bump)至输入输出焊盘(IO pad)的连接,最后执行后处理步骤以完成整个布线流程。

      ➔ 对于网络所布线的区域,该命令部分支持 指定坐标范围内的基于区域的布线(命令格式:fcroute --type signal --designStyle pio --area {x1 y1 x2 y2} -incremental)。其中,-incremental 选项是基于区域的 PIO 模式布线的必填项

  2. 多连接支持 通常,倒装芯片路由器采用一对一 的连接方式(一个bump 对应一个焊盘)。但 fcroute 支持一对多多对一的连接,相关命令如下:

    • 多bump到一个焊盘:setFlipChipMode -multipleConnection multiBumpsToPad。

    • 多个焊盘到一个bump:setFlipChipMode -multipleConnection multiPadsToBump

  3. 串行焊盘路由支持 从 Innovus 18.1 版本开始,支持串行焊盘routing (即凸点 - 焊盘 - 焊盘的路由方式),开启命令为:setFlipChipMode -serial_pad_routing true

    注:仅 PIO 模式支持串行焊盘路由

  4. TSV routing fcroute 还支持硅通孔(TSV)routing,可实现 TSV 与bump、电源条、实例引脚之间的连接。相关命令如下:

    • TSV 至bump :fcroute -type signal --connectTsvToBump 注:由于 TSV 包含正面bump和背面bump,fcroute 需分别对其进行路由 。设计者需在额外配置文件 中添加 srouteExcludeBumpType bump_cell_name,以告知 fcroute 需要排除哪些bump。
      • 连接 TSV 至背面bump:排除正面bump。
      • 连接 TSV 至正面bump:排除背面bump。
    • TSV 至 IO 焊盘:fcroute -type signal --connectTsvToPad
    • 电源 TSV 至电源条:fcroute -type power --connectTsvToRingStripe
  5. 快速路由设置(初始布局阶段) fcroute 是一款智能且可预测的 RDL routing,设计者可通过快速的倒装芯片路由结果,评估布局的变更。在初始布局阶段,可通过以下两种通用设置方式,快速获得路由结果:

    设置项 setFlipChipMode 命令设置 fcroute 命令直接设置
    路由层 setFlipChipMode --layerChangeBotLayer <底层名> --layerChangeTopLayer <顶层名> fcroute --layerChangeBotLayer <底层名> --layerChangeTopLayer <顶层名>
    路由宽度 setFlipChipMode -routeWidth <数值> fcroute -routeWidth <数值>

    两种完整的操作流程示例(以 PIO 模式为例):

    • 流程 1:先用 setFlipChipMode 设置,再用 fcroute 路由

      1. 为 fcroute 指定路由设置:setFlipChipMode --layerChangeBotLayer <底层名> --layerChangeTopLayer <顶层名> -routeWidth <数值>

      2. 查看路由设置,确认符合预期:getFlipChipMode

      3. 执行路由:fcroute --type signal --designStyle pio

    • 流程 2:直接用 fcroute 命令完成设置与路由

      1. 路由前查看当前设置,确认符合预期:getFlipChipMode

      2. 执行路由并指定设置:fcroute --type signal --designStyle pio -routeWidth <数值> --layerChangeBotLayer <底层名> --layerChangeTopLayer <顶层名>

    两种设置方式的核心区别

    • setFlipChipMode 的设置:可通过 saveDesign/restoreDesign 命令保存 / 恢复;若未被 fcroute 的选项覆盖,这些设置将对后续的 fcroute 命令生效。

    • fcroute 命令的设置:路由完成后无法保存;仅对当前执行的 fcroute 命令生效。

  6. 引脚形状支持 fcroute 对典型引脚形状的路由支持效果最佳,典型引脚形状的定义如下:

    • 仅包含一个几何图形
    • 几何图形的宽度与高度差异不大
    • 宽度或高度中,至少有一个维度大于路由宽度 。 注:fcroute 也可对一些特殊引脚形状 进行路由(如单个细长的几何图形、多个几何图形组成的引脚),但路由质量相对较差,相关优化正在进行中。
  7. 定制化扩展 上述为 fcroute 的基础功能。针对定制化需求,可通过约束文件额外配置文件对其功能进行大幅扩展:

    • 约束文件:为文本文件,可通过 fcroute --constraintFile <文件名>setFlipChipMode --constraintFile <文件名> 导入。

    • 额外配置文件:为文本文件,可通过 fcroute --extraConfig <文件名>setFlipChipMode --extraConfig <文件名> 导入。本章节将详细介绍一些对 fcroute 非常实用的约束和额外配置选项。


6.2 倒装芯片路由的实用约束

倒装芯片路由器(fcroute)允许设计者将路由约束写入文本文件 ,并通过以下命令导入:fcroute --constraintFile <文件名>setFlipChipMode --constraintFile <文件名>

通用注意事项

  • 所有长度约束的单位为微米(μm)
  • 所有电阻约束的单位为欧姆(Ω)
  • 所有数值均支持浮点数

以下是 fcroute 支持的路由约束的详细说明。

6.2.1 全局约束

全局约束用于指定影响设计中所有网络的通用规则 ,必须在约束文件的顶部进行声明。支持的全局约束如下:

  1. WIDTH <数值>

    • 功能:为所有网络指定全局routing 宽度

    • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

    • 优先级:若同时通过 setFlipChipModefcroute 命令指定了routing 宽度,命令中的设置优先级更高

    • 局部应用:也可在局部约束 NETS 中使用,此时指定的宽度仅对 NETS 约束中关联的网络生效。

  2. WIDTHRANGE <最小值:最大值>

    • 功能:指定routing宽度的范围,允许 fcroute 结合 MAXRES 约束优化线宽

    • 支持:仅 PIO 模式

    • 局部应用:也可在 NETS 约束中使用,仅对关联网络生效。

  3. MAXRES <数值>

    • 功能:为所有指定网络指定最大允许电阻值

    • 支持:仅 PIO 模式;曼哈顿、45° 路由。

    • 电阻报告:可在额外配置文件 中添加 srouteFCReportRes <电阻文件名>,fcroute 会将路由后的电阻值写入该文件。

    • 局部应用:也可在 NETS 约束中使用,仅对关联网络生效。

  4. SPACING <数值>

    • 功能:指定倒装芯片routing的网络,与其他所有routing之间的最小间距

    • 目的:routing通过该间距值,限制耦合电容对网络总电容的影响。

    • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

    • 局部应用:也可在 NETS 约束中使用,仅对关联网络生效。

  5. PIOLAYERCHANGE PAD

    • 功能:开启层切换功能

    • 支持:仅 PIO 模式;曼哈顿、45° routing。

    • 层切换行为(假设顶层 RDL 为TOP_RDL,次顶层为2nd_RDL):

      • 优先使用TOP_RDL,仅在单层无法完成交叉路由时,才使用2nd_RDL--layerChangeBotLayer TOP_RDL -layerChangeTopLayer TOP_RDL

      • 自由切换层,工具将智能利用层资源:--layerChangeBotLayer 2nd_RDL -layerChangeTopLayer TOP_RDL

  6. FINDPINLAYERS <层名>

    • 功能:指定用于连接的引脚几何图形所在的层

    • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

  7. MINPINSIZE <宽度 高度>

    • 功能:指定用于连接的引脚的最小几何尺寸

    • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

6.2.2 分割约束(SPLIT)

SPLIT 约束用于在路由宽度大于 LEF 中定义的MAXWIDTH,或大于用户指定的数值时,对导线进行分割。

  • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

  • 语法:

    复制代码
    SPLITSTYLE RIVER|MESH
    SPLITWIDTH <数值>
    SPLITGAP <数值>
    SPLITKEEPTOTALWIDTH TRUE|FALSE
  • 各参数说明:

    1. SPLITSTYLE RIVER|MESH:指定分割后导线的交错风格。

      • 默认值:RIVER

      • RIVER:分割后的导线无交错模式

      • MESH:分割后的导线相互交错

    2. SPLITWIDTH <数值>:指定分割后导线段的宽度。若路由宽度大于此值,fcroute 将自动分割。

      • 默认值:LEF 中定义的MAXWIDTH
    3. SPLITGAP <数值>:指定分割后导线段之间的间隙。

      • 若指定此约束,分割后的导线段间距必须大于该值

      • 若未指定,间距为默认的最小间距值,不会导致 DRC 违规。

    4. SPLITKEEPTOTALWIDTH TRUE|FALSE:控制分割后导线宽度的计算方式。

      • FALSE(默认) :总宽度 = 单根分割导线宽度 × 数量 + 间隙 × (数量 - 1)。示例:路由宽度 = 13,LEF 的MAXWIDTH=10,间隙 = 1.5 → 单根分割导线宽度 =(13-1.5)/2=5.75。

      • TRUE :总宽度 = 单根分割导线宽度 × 数量(计算时不考虑间隙)。示例:路由宽度 = 13,数量 = 2 → 单根分割导线宽度 = 13/2=6.5。

    • 局部应用:可在 NETS 约束中使用,仅对关联网络生效。
  • 该特性同样可应用于 NETS 约束 (一种局部约束),且SPLIT 特性仅对 NETS 约束中关联的网络生效
  • 不同分割风格的示例如下:➔ SPLITSTYLE RIVER
  • SPLITSTYLE MESH
6.2.3 网络约束(NETS)

NETS 约束用于为特定网络组设置专属的routing约束。

  • 支持:AIO、PIO 模式;曼哈顿、45°routing。

  • 语法:

    复制代码
    NETS
    WIDTH <数值>
    ROUTELAYERS <底层:顶层>
    SPACING <数值>
    <网络名列表>
    END NETS
  • 各参数说明:

    1. WIDTH <数值> & SPACING <数值>:与 6.2.1 节的全局约束相同。

    2. ROUTELAYERS <底层:顶层> :指定该网络组的routing layer 范围

      • 层名支持:层编号、LEF 中的层名。

      • 示例:底层为 metal7(LEF 中为 METG2),顶层为 metal8(LEF 中为 METTOP),以下写法均有效:ROUTELAYERS 7:8;``ROUTELAYERS metal7:metal8;``ROUTELAYERS METG2:METTOP;推荐写法

    3. <net_name_list>:指定约束适用的网络名,支持以下匹配方式:

      • 取反匹配:~(如 ~clk 表示除 clk 外的所有网络)。

      • 通配符匹配:*(如 data_* 表示所有以 data_开头的网络)。

      • 类型匹配:@SIGNAL(所有信号网络)、@POWER(所有电源网络)、@GROUND(所有地网络)。

6.2.4 差分路由约束(DIFFPAIR)

差分路由的目标 是为一对网络 提供相似的网络延迟

  • 支持:仅 AIO 模式;曼哈顿、45° 路由。

  • 路由策略(优先级从高到低):

    1. 长度平衡路由:匹配两条网络的路由长度。
    2. 拓扑平衡路由:若长度平衡失败,则匹配拓扑结构。
    3. 长 / 宽匹配路由:若拓扑平衡失败,则匹配长度与宽度。
  • 三种routing 结果的说明:

    • 图 (a):长度与拓扑均实现平衡。
    • 图 (b):长度无法平衡,但保持拓扑平衡。
    • 图 (c):拓扑无法平衡,匹配长度与宽度。 注:以上三种方法均可保证两条网络的延迟相似。
  • 语法:

    复制代码
    DIFFPAIR
    [THRESHOLD <数值>]
    <网络1>
    <网络2>
    END DIFFPAIR
  • 参数说明:THRESHOLD <数值> :指定正常路由与平衡路由之间,额外导线长度的百分比阈值 。示例:THRESHOLD 0.2 表示阈值为 20%。

6.2.5 匹配路由约束(MATCH)

匹配路由的目标 是为一组网络(数量大于 2) 提供相同的路由长度

  • 支持:仅 AIO 模式;曼哈顿、45° 路由。

  • 语法:

    复制代码
    MATCH
    <网络1>
    <网络2>
    ...
    <网络n>
    END MATCH
  • 示例:下图展示了用户选择 4 个网络,进行长度匹配路由的结果。

6.2.6 屏蔽路由约束(SHIELDING)

倒装芯片路由器支持在路由过程中,为网络添加屏蔽层 。推荐通过约束文件开启此功能。

  • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

  • 语法: plaintext

    复制代码
    SHIELDING
    SHIELDBUMP TRUE/FALSE
    SHIELDWIDTH <数值>
    SHIELDGAP <数值>
    SHIELDSTYLE a|b|c
    SHIELDNET <网络名>
    <被屏蔽网络名列表>
    END SHIELDING
  • 各参数说明:

    1. SHIELDBUMP TRUE/FALSE :是否对凸点进行屏蔽。
      • TRUE:使用指定的屏蔽网络对凸点进行屏蔽(仅支持 AIO 模式、曼哈顿路由)。
      • FALSE:不对凸点进行屏蔽(默认值)。
    2. SHIELDWIDTH <数值> :指定屏蔽网络的宽度(单位:微米)。
    3. SHIELDGAP <数值> :指定屏蔽层(特殊网络)与被屏蔽层(信号网络)之间的间隙(单位:微米)。
    4. SHIELDSTYLE a|b|c :指定屏蔽层的放置位置
      • a:在凸点所在层的上方
      • b:在凸点所在层的下方
      • c:与凸点在同一层(公共层)。
    5. SHIELDNET <网络名> :指定用于屏蔽的特殊网络(通常为 VSS)。
    6. <被屏蔽网络名列表> :指定需要被屏蔽的信号网络列表
  • 示例:左侧网络未启用SHIELDBUMP,右侧网络通过SHIELDBUMP TRUE实现了凸点屏蔽。

  • 重要注意事项:

    1. 生成的屏蔽层为浮空状态 。设计者需通过 editPowerVia 命令,将其连接至正确的电源 / 地网络。
    2. 使用 fcroute 的屏蔽选项时,defOut 命令会将被屏蔽的网络标记为SHIELD,并记录金属屏蔽线的相关信息。
6.2.7 配对约束(PAIR)

PAIR 约束用于控制bump与焊盘之间的配对关系 ,尤其适用于PG 连接。因为 PG bump与焊盘通常存在 "多对多" 的连接需求,设计者需要明确定义其配对关系。

  • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

  • 语法:

    复制代码
    PAIR
    <net_name> <pad_name_list> <bump_name_list>
    END PAIR
  • 支持的配对模式:

    1. 一对一对:一个焊盘对应一个 bump。
    2. 多对一:多个焊盘对应一个 bump(需通过 fcroute -multiPadsToBumpsetFlipChipMode -multipleConnection multiPadsToBump 开启)。
    3. 一对多:一个焊盘对应多个 bump(需通过 fcroute -multiBumpsToPadsetFlipChipMode -multipleConnection multiBumpsToPad 开启)。
  • 约束规则:

    1. 若bump 已被固定,或被分配至与指定网络不同的其他网络,fcroute 将忽略该bump

    2. 对于指定网络中,未出现在列表中但需要连接的 IO 焊盘或bump,fcroute 将忽略它们 ,仅route PAIR约束中指定的配对关系。

6.2.8 电阻驱动约束(Resistance Driven)

设计者可通过此约束,在路由过程中限制网络的电阻值

  • 支持:AIO、PIO 模式;曼哈顿、45° 路由。

  • 语法(基于NETS约束):

    复制代码
    NETS
    MAXRES <value>
    WIDTHRANGE min_value: max_value
    <net_name_list >
    END NETS
  • 参数说明:

    1. MAXRES <数值> :为约束中定义的网络,指定最大允许电阻值

    2. WIDTHRANGE <最小值:最大值> :指定可变的路由宽度范围。路由器可在该范围内自动调整线宽,以避免违反最大电阻约束。

  • 推荐配置:建议在额外配置文件 中添加 srouteFCReportRes <电阻文件名>。路由完成后,实际电阻值将被写入该文件,便于调试。

  • 电阻报告格式:文件将以表格形式报告每个网络的实际电阻值与约束值。示例:

    复制代码
    #================================
    #........Resistance Table........
    # resSQ: 0.100 for METAL8
    #================================
    'int' 0.875
    ...
    'port_pad_data_out[15]' Actual:3.159 Constraint:3.000
  • 精确电阻分析:若需要获取更精确的电阻值,建议使用Cadence 签核提取工具 QRC,该工具可在 Innovus 中直接运行。


6.3 倒装芯片route的实用额外配置

倒装芯片(fcroute)允许设计者将额外的配置选项写入文本文件,并通过以下命令导入:

复制代码
fcroute --extraConfig or setFlipChipMode --extraConfig

由于倒装芯片route的模式多样,且 RDL router的定制化需求极高,该文件用于定义一些通用设置之外的、针对特定 RDL route需求的选项。设计者可根据自身需求选择使用。

以下是常用的额外配置选项:

  1. srouteFcroutePadPinTagging [TRUE | FALSE]

    • 功能:设置为TRUE时,开启基于端口编号的路由

    • 默认值:FALSE

  2. srouteFcReportRes <文件名>

    • 功能:将电阻报告写入指定文件,便于结合MAXRES约束检查路由结果
  3. sroutePrevent45ForLowerLayer [TRUE | FALSE]

    • 功能:设置为TRUE时,禁止在低层使用 45° 路由

    • 默认值:FALSE

  4. srouteRouteWidthForLowerLayer <数值>

    • 功能:为低层 route指定不同的线宽值

    • 单位:数据库单位(DB unit)

    • 示例:若 DB unit 为 2000,低层线宽为 8 微米,则该值应设置为 2000×8=16000。

  5. srouteConnectToEdgeOfBump [TRUE | FALSE]

    • 功能:设置为TRUE时,指定导线连接至bumper的边缘

    • 默认值:FALSE

  6. srouteConnectToAnyOfBump [TRUE | FALSE]

    • 功能:设置为TRUE时,fcroute无需路由至bumper的中心 ,只需接触到**bumper**几何图形的任意位置即可。

    • 默认值:FALSE

  7. srouteConnectToCenterOfPin [TRUE | FALSE]

    • 功能:设置为TRUE时,fcroute 可连接至bumper外的任意引脚的中心

    • 默认值:FALSE

    • 适用场景:通常用于导线宽度小于引脚宽度的情况。

  8. srouteExcludeBumpType <bumpe单元名>

    • 功能:指定需要被 fcroute 排除的bumpe单元类型
  9. srouteExcludeRegion "llx1 lly1 urx1 ury1 llx2 lly2 urx2 ury2 ..."

    • 功能:指定需要排除的区域,fcroute 将不会在该区域内对bump和焊盘进行路由。

    • 格式:字符串需用双引号括起,可定义多个不连续的矩形区域。每个矩形的格式为左下角x 左下角y 右上角x 右上角y

    • 单位:数据库单位(DB unit)


6.4 电源routing

连接电源 / 地(PG)bumpe 的方法有两种,这两种方法可在同一设计中并存

  1. PG **bumper**连接至 IO 焊盘。

  2. PG **bumper**连接至环形电源 / 电源条。

6.4.1 PG **bumper**连接至 IO 焊盘

推荐流程 :将此类连接与信号路由同时进行

  • 开启方式:fcroute 提供了专用选项 -connectPowerCellToBump,该选项会告知路由器,在进行信号路由的同时,完成 PG bump至 IO 焊盘的连接。也可通过命令 setFlipChipMode --connectPowerCellToBump true 开启此功能。

  • 自动配对:若用户未指定任何特殊的配对约束,fcroute 会基于可路由性,智能地将 PG bump与 PG 焊盘进行自动配对。同时,在无约束的情况下,路由器也会智能地选择最合适的引脚进行路由。

  • 精确控制:若需要更精确地控制 PG bump与 PG 焊盘之间的连接,设计者可使用约束文件中的PAIR约束 ,或开启端口编号功能

6.4.2 PG bump连接至环形电源 / 电源条

  • 实现命令:可通过命令 fcroute --type power,直接将 PG bump连接至环形电源或电源条。bump与电源条之间的连接由 fcroute 完成。

  • 优势:设计者可通过创建额外的电源 / 地bump,来降低电压降(IR drop),这是倒装芯片设计的重要优势之一。

  • 四种方法的对比示例:

    1. 图 (a):通过 fcroute --type signal --designStyle pio -connectPowerCellToBump,将地bump连接至 IO 焊盘。
    2. 图 (b):通过 fcroute --type power,将电源bump连接至模块环形电源。
    3. 图 (c):通过 fcroute --type power,将 PG bump连接至电源条。
    4. 图 (d):通过 addStripe,将 PG bump连接至电源条。

|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
| (a) | (b) |
| (C) | (d) |

6.5 点对点路由器(P2P router)

Innovus 支持半自动的点对点(P2P)路由器 ,可用于生成定制化的特殊路由图案

  1. 访问方式:通过图形界面(GUI)的专用工具按钮访问。

  2. 使用方法

    1. 点击 P2P 路由器的工具按钮。

    2. 按下F3 键,打开 P2P 路由器的设置界面。

    3. 点击第一个对象,作为源端

    4. 点击第二个对象,作为目标端

  3. 设置界面说明(F3 键)

    • 网络名 :若未指定,p2pRoute 会根据 GUI 中选择的对象,自动获取网络名

    • 使用精确位置(Use exact location) :若勾选,路由器将使用用户点击的精确位置 进行连接;若未勾选,路由器将自动搜索最佳的连接点。

    • 偏移量(-offset x y) :定义从原始点击位置开始,最大的搜索偏移范围

  4. 引导点(Guide points)功能 :允许用户定义定制化的路由路径,有三种使用方式:

    1. 点击 "点对点(Point to Point)" 设置界面中的绘制(Draw) 按钮 → 在 GUI 中点击引导点 → 按下Esc 键,引导点的位置将被返回至 "引导点" 文本框 → 点击源端和目标端对象。

    2. 按下Shift 键,开启引导点功能 → 在 GUI 中点击引导点 → 点击源端和目标端对象。

    3. 直接在 "引导点" 文本框中输入引导点的坐标 → 点击源端和目标端对象。


6.6 导线编辑(Wire editing)

Innovus 支持手动的路由器导线编辑功能,可通过图形界面的专用工具按钮访问。各功能说明如下:

  • 编辑导线(Edit Wire) ➔ 点击该工具按钮后,光标移动至设计区域时将变为铅笔形状 。可绘制电源导线或信号导线。在起点处单击鼠标,随后移动光标;再次单击可实现拐角转向 ;双击鼠标左键即可结束布线 。点击 "选择(Select)" 工具按钮,或按下键盘快捷键 A ,即可返回选择模式。➔ 等效键盘快捷键:Shift + A ➔ 按下 F3 键 可打开 "编辑导线" 的参数设置界面。✅ 若用户需要采用45 度角布线 ,请勾选 **"允许 45 度角(Allow 45 degree)"** 按钮。

导线编辑工具集(Wire Edit Widget)倒装焊实现方案 ------ 外围 IO 应用笔记2018 年 7 月 23 日 第 88 页 产品版本:Innovus 18.1

  • 添加过孔(Add Via) ➔ 点击该工具按钮后,光标移动至设计区域时将变为一组同心正方形 。按下 F3 键 可打开 "编辑过孔(Edit Via)" 的参数设置窗口。点击 "选择(Select)" 工具按钮,或按下键盘快捷键 A,即可返回选择模式。➔ 等效键盘快捷键;

  • 移动导线(Move Wire) ➔ 点击该工具按钮后,光标移动至设计区域时将变为十字形状 。可通过鼠标或方向键移动导线。水平导线可沿垂直方向移动,垂直导线可沿水平方向移动。点击 "选择(Select)" 工具按钮,或按下键盘快捷键 A ,即可返回选择模式。➔ 等效键盘快捷键:M

  • 切割导线(Cut Wire) ➔ 点击该工具按钮后,光标移动至设计显示区域时将变为剪刀形状 。移动光标并绘制一条直线,以标记导线的切割位置。切割线必须完全穿过导线 。您可对特定导线进行水平或垂直方向的切割,切割后的导线将保留原有的走向。同时支持矩形区域切割 。⚠️ 切割后,信号导线 将保留半个导线宽度 的延伸量;电源导线 则不保留任何延伸量。点击 "选择(Select)" 工具按钮,或按下键盘快捷键 A ,即可返回选择模式。➔ 等效键盘快捷键:Shift + X

  • 拉伸导线(Stretch Wire) ➔ 点击该工具按钮后,选中的导线将沿光标移动的方向,吸附至下一个工艺网格 。点击 "选择(Select)" 工具按钮,或按下键盘快捷键 A ,即可返回选择模式。➔ 等效键盘快捷键:S

  • 添加多边形(Add Polygon) ➔ 点击该工具按钮后,光标移动至设计区域时将变为铅笔形状 。在主窗口中单击鼠标以确定多边形的起点,随后移动光标;每完成一次拐角转向,单击一次鼠标即可。按下退格键(Backspace)可撤销导线的最后一个顶点;双击鼠标即可确认并生成多边形 。点击 "选择(Select)" 工具按钮,或按下键盘快捷键 A ,即可返回选择模式。➔ 无等效键盘快捷键

功能名称 工具按钮 快捷键 功能描述 专用设置(F3 键)
编辑导线(Edit Wire) 铅笔图标 Shift + A 用于添加电源或信号导线。1. 点击起点,移动光标。2. 再次点击可创建转角。3. 双击左键结束路由。4. 点击选择工具或按 "a" 键,返回选择模式。 可勾选允许 45 度(Allow 45 degree),启用 45° 路由。
添加过孔(Add Via) 同心正方形图标 o 用于添加过孔。1. 按下 F3 键,打开过孔编辑界面。2. 点击选择工具或按 "a" 键,返回选择模式。 -
移动导线(Move Wire) 十字图标 m 用于移动导线。1. 可通过鼠标或方向键移动。2. 水平导线可垂直移动,垂直导线可水平移动。3. 点击选择工具或按 "a" 键,返回选择模式。 -
切割导线(Cut Wire) 剪刀图标 Shift + X 用于切割导线。1. 移动光标,绘制一条切割线(必须完全穿过导线)。2. 可水平或垂直切割特殊导线,切割后的导线保持原方向。3. 也可切割矩形。4. 信号导线切割后,会保留半个线宽的延伸;电源导线无延伸。5. 点击选择工具或按 "a" 键,返回选择模式。 -
拉伸导线(Stretch Wire) - s 用于拉伸导线。1. 点击该工具后,选中的导线会吸附到光标移动方向上的下一个工艺网格。2. 点击选择工具或按 "a" 键,返回选择模式。 -
添加多边形(Add Polygon) 铅笔图标 用于添加多边形。1. 在主窗口点击起点,移动光标。2. 每点击一次,创建一个转角。3. 按退格键,取消最后一个点。4. 双击左键,确认多边形。5. 点击选择工具或按 "a" 键,返回选择模式。 -

倒装芯片路由的完整流程如下所示。

7. 结论

完整的倒装焊设计流程包含以下几个部分:

  • 数据准备(Data Preparation)LEF 定义

  • ✅ **重分布层(RDL Layer)**其定义方式与 LEF 中其他图层的定义方式一致。

  • 凸块(BUMP)BUMP 单元的宏类型必须定义为 CLASS COVER BUMP

  • 输入输出焊盘(IO Pad) 输入输出焊盘的宏类型必须定义为 CLASS PAD AREAIO

  • 硬核宏(Hardmacro) 保留其原始的 CLASS BLOCK 定义,同时对其 PORTS 定义进行增强 ,为其关联一个 CLASS BUMP 属性。

  • CLASS BUMP 属性 该属性是端口的一种类型,用于显式标识 此端口为凸块连接点,帮助用户区分同一个引脚中哪些端口适用于倒装焊流程。仅 CLASS PAD AREAIO 和 CLASS BLOCK 类型的单元可添加 CLASS BUMP 属性

    网表(Netlist) bump禁止在网表中定义 ,而输入输出焊盘必须在网表中定义 。bump与焊盘之间的对应关系,在bump分配(bump assignment)阶段 建立。之后,调用倒装焊布线器完成输入输出焊盘与其分配的凸块之间的连接。在网表中定义 bump并为其分配网络的方式,与 Innovus 软件不兼容,无法被 Innovus 处理

  • 倒装焊布图规划(Flipchip Floorplaning)输入输出焊盘的放置(IO Pads Placement) 用户可通过三种方式放置外围输入输出焊盘:✅ 读取布图规划工程师或封装工程师提供的 IO 文件(命令:loadIoFile) 。✅ 加载布图规划工程师提供的 布图规划文件(命令:loadFPlan) 。✅ 自动放置外围输入输出焊盘(命令:placePIO),该方式同样支持 IO 行流程。

    BUMP的创建(Bump Creation) 在 Cadence 工具集中,有多种创建凸块的方法。用户可通过 create_bump 命令,创建单个凸块或凸块阵列。

    BUMP的分配(Bump Assignment) 用户可选择自动分配 (命令:assignBump)或手动分配 (信号分配命令:assignSigToBump;电源地分配命令:assignPGBumps)。此外,端口编号法(port numbering approach) 允许用户在分配阶段,显式指定焊盘与凸块之间的对应连接关系。

    ➔ **BUMP分配的优化(Bump Assignment Optimization)**工具提供两种凸块分配优化方法:

  • 自动优化(命令:placePIO --assignBump -noRandomPlacement) 该方法会考虑 setFlipChipMode --constraintFile 命令 传入的约束文件,并调用全局倒装焊布线器,以获得可布通性最优的结果。

  • 手动优化(命令:swapSignal) 该方法帮助用户对已完成分配的凸块进行小规模工程变更(ECO),支持多凸块到多凸块的互换操作。

    输入输出焊盘的优化(命令:placePIO --optIOs --noRandomPlacement) 工具会调用全局倒装焊布线器来优化焊盘的放置位置,同时严格遵守已应用于输入输出焊盘的固定属性(fix attribute)

  • 电源规划(Power Planning)在完成焊盘到凸块的布线之前,建议不要使用重分布层(RDL) 。因为倒装焊布线器对布线障碍物极其敏感。基于重分布层的电源布线(即电源条带生成),可在输入输出焊盘到凸块的布线完成后 进行。➔ addStripe 命令 提供了两个专门用于简化倒装焊设计的选项,分别是:

  • -over_bumps 该选项会在电源地(PG)凸块的上方 生成电源条带,且条带的生成会在有效电源地凸块的末端自动停止

  • -between_bumps 该选项会在电源地(PG)凸块之间的区域 生成电源条带,在没有电源地凸块的区域,不会生成任何条带

  • 重分布层布线(RDL Routing)倒装焊布线器(命令:fcroute) 是用于实现凸块与输入输出焊盘之间网络布线 的核心工具,同时支持信号布线与电源布线 。该工具兼容两种设计风格:外围 IO(PIO)区域 IO(AIO) 。但该工具不受设计风格的限制 ,这意味着用户在 PIO 设计中,可根据特定需求使用 AIO 模式。因此,通常使用 AIO/PIO 模式来描述 fcroute 命令所采用的设计风格。此外,fcroute 还支持 TSV 布线,可实现 TSV 到凸块、条带或实例引脚的连接。

    ➔ 倒装焊布线器(fcroute)是一款智能且结果可预测的重分布层布线器 。通过设置布线层、布线宽度等通用参数,用户可快速得到布线结果,进而评估布图规划变更带来的影响

➔ 为满足定制化需求,工具通过约束文件(constraints)和额外配置选项(extra configure options) ,对倒装焊布线器(fcroute)的功能进行了大幅扩展。✅ 所有约束条件均在一个文本文件中定义,可通过 fcroute --constraintFilesetFlipChipMode --constraintFile 命令作为输入传入。✅ 所有额外配置选项均在一个文本文件中定义,可通过 fcroute --extraConfigsetFlipChipMode --extraConfig 命令作为输入传入。

➔ 工具为用户提供了半自动点对点布线器 。✅ "引导点(Guide points)" 功能允许用户定义自定义的布线路径。✅ "使用精确位置(Use exact location)" 选项指定使用用户点击的精确位置进行布线。

➔ 工具同样支持手动布线器的导线编辑功能 ,用户可使用该功能进行 45 度角布线 ,以及对导线进行移动、切割、拉伸等操作。

完整的倒装焊设计流程如下图所示:

相关推荐
广州服务器托管1 天前
[2026.1.6]WINPE运维版20260106,带网络功能的PE维护系统
运维·开发语言·windows·计算机网络·个人开发·可信计算技术
郑泰科技1 天前
fmm(快速地图匹配)实践:Unknown toolset: vcunk的解决方案
c++·windows·交通物流
GalenZhang8881 天前
使用 Python SDK 将数据写入飞书多维表格
数据库·python·飞书·多维表格
云和数据.ChenGuang1 天前
GaussDB 期末考试题与面试题
数据库·opengauss·gaussdb·数据库期末试题
不屈的铝合金1 天前
SQL 语言概述与数据库核心前置配置了解
数据库·sql·mysql·约束·sql 语句分类·字符集配置·校对规则
萧曵 丶1 天前
可重复读(Repeatable Read)隔离级别下幻读产生的原因
数据库·sql·mysql
Antoine-zxt1 天前
MySQL宕机日志迷局破解指南:从前台启动到精准排错
数据库·mysql·adb
松涛和鸣1 天前
DAY47 FrameBuffer
c语言·数据库·单片机·sqlite·html
阳宗德1 天前
基于CentOS Linux release 7.1实现了Oracle Database 11g R2 企业版容器化运行
linux·数据库·docker·oracle·centos