4. Floorplan规划:芯片面积估算、IO规划、宏单元(Memory)摆放、电源网络规划

Floorplan,说白了就是给芯片“画地皮”。

我见过不少新手,一上来就急着跑Place & Route,结果后面发现面积爆了、绕线堵死了、IR Drop严重。嗯,那时候再回头改Floorplan,代价可就大了去了。所以,这块儿咱们得好好聊聊。

4.1 芯片面积估算:别太乐观,也别太悲观

面积估算,是Floorplan的第一步。你想想看,如果连房子要盖多大都不知道,你怎么去买地皮?

我个人习惯,先做“粗估”,再做“细调”。

核心公式:
Chip_Area = (Std_Cell_Area + Macro_Area) / Utilization

这里的 Utilization(利用率)是关键。我刚开始做项目时,总想把利用率推到90%以上,觉得这样省面积。结果呢?绕线资源不够,时序收敛不了,最后不得不重新做Floorplan,浪费了两周时间。

一般来说,我建议这样取值:

设计类型 建议利用率 我的经验
纯逻辑设计 70% - 80% 可以往75%靠,留点余量
含大量Memory 60% - 70% Memory周围要留绕线通道
高速接口设计 50% - 65% 我曾经吃过亏,利用率65%都嫌高
注意: 利用率不是越高越好。留出20%-30%的绕线空间,是保证时序收敛的“安全垫”。

4.2 IO规划:把“门”开对地方

IO Pad的摆放,就像给房子开门。门开错了,进出都不方便。

我记得有一次,一个同事把高速IO和低速IO混在一起,结果信号串扰严重,眼图都睁不开。后来重新规划,把高速IO单独放在一边,中间用地Pad隔离,问题才解决。

IO规划的几个原则:

  • 分组摆放: 同类型的IO(如DDR、GPIO、PLL)尽量放在一起。
  • 电源IO均匀分布: 每隔4-8个信号IO,就要放一个电源/地IO。这是为了给芯片内部供电。
  • 高速IO远离噪声源: 比如,不要把DDR IO放在靠近开关电源Pad的地方。
  • 预留测试IO: 我建议至少留4-8个专用测试IO,方便后期调试。
小技巧: 在做IO规划时,可以先用Excel把IO列表整理好,标注好类型、电压域、速度等级。这样在EDA工具里摆放时,心里就有数了。

4.3 宏单元(Memory)摆放:别把“大家伙”放错地方

Memory是芯片里的“大家伙”,动辄占几平方毫米。摆错了,整个Floorplan就废了。

我见过最惨的一次,是有人把Memory全部堆在芯片一角,结果那一角的电流密度爆表,IR Drop直接干到15%。芯片流片回来,高温下直接罢工。

Memory摆放的几个要点:

  1. 分散摆放: 不要把Memory全部堆在一起。分散开,有利于电源网络均匀供电。
  2. 对齐边界: Memory的边界尽量与标准单元的行(Row)对齐。这样能减少绕线浪费。
  3. 留出绕线通道: Memory周围至少留出2-3个Track的绕线空间。别贴得太紧。
  4. 考虑数据流: 如果Memory和某个模块交互频繁,就把它们放近一些。比如,Cache Memory尽量靠近CPU Core。
避坑指南: 我曾经在项目里,把两个大Memory面对面摆放,中间只留了很窄的通道。结果绕线工具在中间区域绕了无数层,还是绕不通。最后不得不把其中一个Memory旋转90度,才解决问题。所以,Memory的朝向也很重要!

4.4 电源网络规划:芯片的“血管”

电源网络,就是芯片的血管。血管堵了,芯片就“心肌梗塞”了。

电源网络规划的核心,是保证每个标准单元都能得到足够的电流,同时IR Drop控制在5%以内。

我一般按以下步骤来做:

  • 第一步:确定电源环(Power Ring)宽度。 根据芯片总电流和允许的IR Drop,计算Ring的宽度。公式很简单:Width = I / (J * Layer_Thickness),其中J是电流密度。
  • 第二步:规划电源条带(Power Strap)。 每隔一定距离(比如50-100um)拉一条VDD和VSS的Strap。Strap的宽度和间距,决定了电源网络的“密度”。
  • 第三步:连接标准单元。 标准单元的VDD/VSS pin,通过Follow Pin连接到电源Strap上。
警告: 电源网络不是越密越好。太密的电源网络会占用绕线资源,导致信号线绕不开。我一般建议,电源Strap的间距控制在50-80um之间,既能保证供电,又不影响绕线。

4.5 知识体系:一张图看懂Floorplan

说了这么多,咱们用一张图来总结一下Floorplan的核心逻辑:

Floorplan规划核心知识体系 Floorplan规划 面积估算 IO规划 宏单元摆放 电源网络规划 利用率计算 余量预留 分组摆放 电源IO均匀 分散摆放 对齐边界 留绕线通道 电源环宽度 电源条带规划 目标:面积最优 + 时序收敛 + 供电稳定

这张图把Floorplan的四个核心模块串起来了。你想想看,面积估算决定了“地皮”大小,IO规划决定了“门”的位置,Memory摆放决定了“大家伙”的布局,电源网络决定了“血管”的走向。四者缺一不可。

好了,这一章的内容就到这里。记住,Floorplan是芯片设计的“地基”,地基打好了,后面的工作才能顺风顺水。

最后说一句: 做Floorplan时,多花点时间在前期规划上,值得。我见过太多项目,因为Floorplan没做好,后期花了几倍的时间去修。别走那条弯路。

可可精品资料库