第四章:芯片面积估算与Die Size确定

各位同学,今天我们来聊聊芯片面积估算这个事儿。说实话,这可能是整个顶层规划里最让人头疼的一步。你想想看,面积估大了,成本上去了,老板不高兴;估小了,后端跑不下去,最后还得重来。我做了这么多年,见过太多因为面积估算不准导致项目延期的案例了。

4.1 面积估算的基本逻辑

芯片面积估算,说白了就是回答一个问题:我手里的这些逻辑门和宏单元,到底需要多大的地方才能放得下?

我个人习惯把面积估算分成三步走:

  1. 统计资源:把所有标准单元、宏单元(SRAM、PLL、ADC等)的面积加起来
  2. 考虑利用率:实际布线时不可能100%塞满,得留出走线空间
  3. 加上周边开销:IO环、电源网络、ESD保护、划片槽这些都要算进去

嗯,这里要注意一点:很多新手容易忽略宏单元的面积。我记得有一次,一个同事拿着RTL综合出来的门数就开始算面积,结果忘了算那几个大SRAM的面积,最后Die size小了30%,整个floorplan都得重来。

4.2 标准单元面积估算

标准单元的面积估算,公式其实很简单:

标准单元总面积 = 逻辑门数 × 单个门平均面积

但问题来了——单个门平均面积怎么定?这取决于你用的工艺库。以7nm工艺为例,一个2输入NAND门的面积大概在0.1-0.2μm²左右。但实际项目中,我们很少用单个门来算,而是用门等效(Gate Equivalent, GE)的概念。

经验公式:

标准单元面积 ≈ 综合后门数 × 0.8 × 单个NAND2面积

为什么要乘0.8?因为综合后的门数里包含了各种复杂逻辑,平均下来每个门的面积比NAND2要小一些。

我在项目中遇到过这样的情况:用某个工艺库做设计,综合报告里显示有500万门,我按经验公式一算,面积大概在0.8mm²左右。结果后端跑完place之后发现,实际面积比估算的大了15%。后来一查,是因为那个工艺库的DFF(D触发器)面积特别大,拉高了平均值。所以啊,最好还是用库里的具体数据来校准

4.3 宏单元面积估算

宏单元的面积估算相对简单,因为每个宏单元都有固定的尺寸。但这里有个坑——宏单元之间的间距

你想想看,两个SRAM并排放着,中间总得留点缝隙吧?这个缝隙包括:

  • 物理间距(DRC规则要求的)
  • 电源/地线通道
  • 时钟走线空间
  • 可能的备用通道(ECO用)

我个人习惯在宏单元总面积的基础上,再加10%-15%的宏单元间空隙。这个比例取决于宏单元的密度和尺寸分布。如果全是小宏单元,空隙比例可以低一些;如果有一个超大SRAM,那周围的空隙就得留足。

小技巧:

在做早期估算时,可以先把所有宏单元按实际尺寸画出来,然后手动排一下,看看大概需要多少面积。虽然粗糙,但比纯数学计算要靠谱得多。

4.4 利用率与面积调整

利用率(Utilization)是面积估算中最关键也最容易被低估的参数。利用率定义为:

利用率 = (标准单元面积 + 宏单元面积) / 芯片核心面积

那么,利用率到底取多少合适?这取决于几个因素:

设计类型 典型利用率 说明
低功耗设计 50%-60% 需要大量电源开关单元和电平转换器
高性能设计 60%-70% 时钟树复杂,需要更多走线资源
普通数字设计 65%-75% 平衡了面积和可布线性
存储器密集型 70%-80% 宏单元占主导,标准单元较少

我曾经犯过一个错误:在一个AI加速器项目中,我按70%的利用率去估算面积,结果后端跑到route阶段发现拥塞严重,最后不得不把Die size扩大10%。原因是什么?那个设计里有大量的数据通路,走线密度远高于普通逻辑。从那以后,对于数据通路密集的设计,我都会把利用率调低5-10个百分点

4.5 Die Size的完整计算

好了,现在我们把所有东西拼起来。Die Size的计算公式如下:

核心面积 = (标准单元面积 + 宏单元面积) / 利用率

Die面积 = 核心面积 + IO环面积 + 角落面积 + 划片槽面积

其中IO环面积取决于IO数量、IO pitch和电源IO的个数。一般来说,IO环的宽度在100-200μm左右(取决于工艺和ESD要求)。

举个实际的例子:

  • 标准单元面积:2.5mm²
  • 宏单元面积:1.8mm²(含空隙)
  • 利用率取65%
  • 核心面积 = (2.5 + 1.8) / 0.65 ≈ 6.6mm²
  • IO环面积(假设4边都有IO):约1.2mm²
  • 划片槽:约0.3mm²
  • 最终Die面积 ≈ 8.1mm²

重要提醒:

Die size的确定不是一次性的。我建议在项目初期先做一个快速估算,然后在综合完成后做精确估算,最后在floorplan阶段做最终确认。每一步都要留出10%-15%的余量,因为谁也说不准后面会不会加功能。

4.6 面积估算的常见陷阱

做面积估算这么多年,我总结了几条避坑指南:

  • 别信综合报告里的面积:综合报告给出的面积是理想情况下的,没有考虑布线拥塞和时钟树。实际面积通常要放大20%-30%。
  • 注意宏单元的宽高比:有些宏单元是细长条形状的,排布起来很浪费面积。我建议在估算时就把宏单元的形状考虑进去。
  • 别忘了电源网络:电源网络(power grid)会占用大量的金属层资源,虽然不直接增加Die面积,但会影响利用率。
  • 留出ECO空间:我曾经在一个项目中没留ECO空间,结果流片前发现一个bug,改起来那个费劲啊。从那以后,我至少留5%的面积作为备用。

嗯,最后说一句:面积估算是一门艺术,不是科学。你做得越多,经验越丰富,估算就越准。但即使是我,现在也不敢说100%准确。所以,多留余量,多迭代,多和前端沟通,这才是做好面积估算的关键。

下一章我们会讲IO规划的具体方法,包括IO类型选择、电源IO分配和IO环设计。到时候再跟大家分享一些实战中的小故事。