物理设计

布图规划(floorplanning)

布图规划是物理设计的第一步——在任何一个标准单元落到硅片上之前,你就要先做这件事。想象一个城市规划师站在一块空地前:在盖第一栋房子之前,你得先定下这块地有多大、高速公路和那些大地标(体育场、发电厂)摆在哪里,以及自来水和电的主干管线大致怎么走。在芯片上你做的正是这件事。你定下晶粒(die)和核心区(core)的面积,亲手摆放那些大块的宏单元(macro)——SRAM 块、PLL、模拟 IP,凡是太大或太特殊、不能像普通逻辑门那样自动摆放的东西;你把 I/O 焊盘或凸点引脚沿着芯片边缘排布好,再勾画出供电网络(那些把电流送到各处的环和带)。只有等这副骨架立起来之后,自动布局器才开始往空荡荡的核心区里填进几百万个微小的逻辑单元。

为什么要费这份功夫亲手来做?因为下游每一个自动化步骤都继承了你的这些决定,而且很难再翻盘。把两个「话很多」的宏单元摆在对角两端,布线器就得跟导线延迟没完没了地纠缠;把单元塞得太紧,又留不出时钟树缓冲器或布线轨道的空间,时序收敛就成了不可能完成的任务。所以你还要预留出喘息的余地:一个常见的起步目标是核心利用率大约 60-75%,意思是标准单元只填满核心区的这个比例,其余留空,给后面才加进来的布线、缓冲和时钟树用。宏单元周围会加上禁布晕环(keepout halo),免得单元挤到它的引脚上;你还会在不想让布局器进入的地方加上布局阻挡(placement blockage)。一份好的布图规划,能让布局、时钟树综合(CTS)和布线几乎自己就顺畅地跑下去;一份糟糕的,则会悄悄毒害随后的每一项签核检查。

core utilization = total standard-cell area / available core area (commonly targeted at ~0.60–0.75 to leave room for routing, buffers, and the clock tree)

利用率是你在布图规划时拧定的那个旋钮:拧得太低,浪费硅片面积;拧得太高,又会饿着布线器、让时序收敛崩盘。

布图规划至今仍是整个后端流程里最依赖人工、最讲究判断力的一步——工具能帮忙,但宏单元的摆放和供电方案,依然是经验丰富的工程师真正体现价值的地方。

又称
floorplanchip planning布图规划佈局規劃