一、面积优化概述
1.1 什么是面积优化
面积优化,说白了就是让芯片在功能不变的前提下,占用的硅片面积尽可能小。
我刚开始做芯片设计时,总觉得面积优化是后端的事。后来被现实狠狠教育了一回——一个模块因为面积超标,整个芯片的尺寸被迫增大,成本直接翻倍。从那以后,我明白了:面积优化必须从设计初期就开始考虑。
你想想看,芯片制造是按晶圆收费的。同样一片晶圆,芯片面积越小,能切出来的die就越多,成本就越低。这就是为什么我们拼命做面积优化的根本原因。
核心定义:面积优化是指在满足功能和时序约束的前提下,通过设计方法、综合策略、物理实现等手段,最小化芯片占用的硅片面积。
1.2 为什么需要面积优化
原因其实很直接,我列几个关键点:
- 降低成本——这是最直接的驱动力。芯片面积和成本基本成正比,面积越小,每颗芯片的成本越低。
- 提升良率——面积越大,芯片上出现缺陷的概率就越高。我在一个28nm的项目中见过,面积缩小15%,良率提升了将近8%。
- 满足封装限制——有些封装形式对芯片尺寸有硬性要求,比如手机芯片、IoT芯片,面积超标就直接没法用。
- 提高集成度——在相同面积下塞进更多功能,这是SoC设计的永恒追求。
我的经验:别等到综合阶段才考虑面积优化。RTL设计阶段的一个糟糕选择,可能让后端工程师加班一个月也救不回来。
1.3 面积优化的核心指标
衡量面积,我们通常用三个指标。嗯,这三个指标各有适用场景:
| 指标 | 定义 | 适用阶段 | 我的看法 |
|---|---|---|---|
| 门级数 | 设计中使用的标准逻辑门数量 | 逻辑综合阶段 | 早期估算好用,但不够精确 |
| 标准单元面积 | 所有标准单元占用的总面积 | 综合后、布局前 | 最常用的指标,实用性强 |
| 晶体管数量 | 芯片上所有晶体管的个数 | 物理设计阶段 | 最精确,但计算成本高 |
我个人习惯在RTL阶段用门级数做快速评估,综合后用标准单元面积做精确分析。晶体管数量嘛,一般是做最终check时才看。
注意:门级数估算有个坑——同样的功能,用不同工艺库实现,门级数可能差很多。我曾经在一个项目中,从28nm换到22nm,门级数没变,实际面积却小了30%。所以,别只看门级数,要结合工艺来看。
1.4 面积与功耗/性能的权衡(PPA)
做芯片设计,永远绕不开PPA三角——Performance(性能)、Power(功耗)、Area(面积)。这三者就像跷跷板,压住一头,另一头就会翘起来。
为什么会这样?我举个例子你就明白了:
- 想提升性能?——通常需要更大的驱动能力,意味着更大的晶体管,面积就上去了。
- 想降低功耗?——可以用低阈值电压的单元,但漏电会增大,而且这些单元往往面积更大。
- 想缩小面积?——复用逻辑、共享资源,但可能引入额外的延迟,性能就下来了。
我在一个AI加速器项目中,就遇到过典型的PPA冲突。客户要求性能提升20%,功耗不变,面积还要缩小10%。这基本是不可能的任务。最后我们和客户反复沟通,把面积目标放宽到5%,才找到一个可行的折中方案。
PPA权衡的核心原则:
- 性能优先——牺牲面积和功耗来保性能
- 功耗优先——牺牲性能和面积来保功耗
- 面积优先——牺牲性能和功耗来保面积
- 平衡策略——根据产品定位,找到最优的折中点
你想想看,不同的产品对PPA的要求完全不同。手机芯片更看重功耗和性能,IoT芯片更看重面积和功耗,服务器芯片则性能优先。所以,没有的好坏,只有适合不适合。
1.5 面积优化的知识体系
为了让你更直观地理解面积优化的全貌,我画了一张图:
这张图展示了面积优化的核心逻辑:用三个指标衡量面积,在PPA三角中找到平衡点。后面的章节,我会逐一展开每个环节的具体技巧和方法。
我的建议:刚开始学面积优化,别急着记技巧。先理解PPA权衡的本质——你做的每一个优化决策,都是在牺牲某些东西来换取另一些东西。想清楚这个,后面的技巧才能用得活。
好了,第一章就到这里。面积优化不是一蹴而就的事,它贯穿整个芯片设计流程。后面的章节,我会从RTL设计、综合策略、物理实现等各个阶段,给你讲透具体的优化方法。