xChar
·a month ago

前言

简单概括

结合 OpenROAD 对 floorplan 的粗略概括:

  1. floorplan 的内容是对芯片内部接口的完整规划与设计,包括:
    1. 芯片大小 (ifp):
      1. initializes floorplan constraints, die/core area, and makes tracks.
    2. 芯片 IO(ppl, pad
      1. pin placement: Place pins on the boundary of the die on the track grid to minimize net wirelengths.
      2. Chip-level Connections: either place an IO ring around the boundary of the chip and connect with either wirebond pads or a bump array
    3. macro placement (mpl, mpl2)
      1. The macro placer places macros/blocks honoring halos, channels and cell row “snapping”.
    4. 电源规划 (pdn)
      1. PDN Generation: 指定应用于设计的一小套电网策略,例如使用的层数、条纹宽度和间距,然后让实用程序生成实际的金属带
  2. floorplan 关系到芯片的时序收敛,布线通畅,电源稳定和良品率
  3. 从 floorplan 到完成 placement 一般需要占据整个物理实施 1/3 时间

术语

image.png

  • Bond Pad 是芯片与外部封装进行电气连接的关键接触点,确保电信号传输和电源分布。其布局直接影响封装工艺、信号完整性和芯片尺寸,是 Floorplan 设计中的重要内容。
  • Bump Array 是芯片与封装基板或 PCB 进行电气、机械、热连接的关键结构,广泛应用于 Flip-Chip3D IC 封装中。Floorplan 阶段需要精确规划 Bump Array 的位置、密度和分布,以优化信号性能、电源完整性和热管理。

布图规划的内容和目标

Floorplan 是芯片物理设计的第一步,用于确定核心区域、宏单元、IO 单元的位置以及布线资源和电源规划,以优化芯片性能和面积。

floorplan 的目标主要包括:

  1. 面积:保证布线的同时尽量节约产成品本
  2. 时序收敛:需要对芯片延迟进行预估,考虑是否能最终满足 SDC 要求,实现时序收敛
  3. 稳定性:保证芯片内部电源分布均匀、供电充足
  4. 布线性:在保证布线通畅的同时,尽量缩短走线的长度, 也即减小互连线的延迟,从而有效地提高芯片的性能

I/O 接口单元的放置与供电

  • TODO

布图规划方案与延迟预估

在做 floorplan 之前,会通过零线负载模型对综合后的网表做延迟分析,以评估时序。如果时序较差则应当优化网表。

而在 floorplan 阶段的时序与延迟预估方法,取决于芯片设计方法,即 1. 自下而上展平式(flatten)的硅虚拟原型设计方法(SVP, silicon virtual prototyping);2. 自上而下的层次化设计方法 (hierarchical)

PS: 当 design 在 500 万门左右时,考虑采用层次化设计方案。

展平式设计

在展平式设计中,对多个 floorplan 进行 place 后,采用 STA 对整个芯片进行延迟估算,然后使用时序违例(negative slack)来评估不同 floorplan 效果。

由于此阶段尚未建立互连线,只能通过 WLM 估算延迟(书中描述的"只能"存疑,WLM 为一种统计模型,估算负载电容及线长,从而初步预测线延迟)。

WLM(Wire Load Model, 线负载模型) 是一种在 RTL-to-GDSII 流程早期(如综合阶段)用于估算信号网线电容、电阻和延迟的模型,主要基于电路规模、网线扇出和统计数据。

层次化设计

层次化设计大致可分为三个步骤:芯片顶层设计规划,子模块分割(partition)与实现以及芯片顶层组装实现。

image.png

在时序预算(time budgeting),首先需要对整个芯片的时序进行分析。

  • TODO

模块布放与布线通道

模块布放位置是建立在布图规划基础上的,模块布局的结果又会对前期布图规划的期望目标产生直接影响,其中,能否保证布线的完成是通过布线通道的分析来进行。

routing channel 是每两条或多条 track 的空间, channel 上不可以摆放标准单元。而在 macro 四周通常还预留不允许摆放标准单元的 halo(仅供专门布线)。

  • Routing Channel:布局中预留的布线通道空间,通常出现在宏单元或单元间隙。
  • Routing Track:布线层上的规则网格线,每个轨迹表示可放置信号线的位置。

image.png

在层次化设计中,channel 按照形状分为 TL 形两种。当两个子模块相聚跨度较大时,还需要定义 feedthrough channel 来满足时序和布线要求。

image.png

在层次化设计中引入了基于行的布线方法,即图 b 中的无通道分割法 (channel-less)。图 a 为基于 channel 的分割,图 c 为混合法

Loading comments...