1. 从“堵车”到“堵点”:理解数字后端设计的拥堵分析
做数字后端设计,特别是到了布局布线(Place & Route)阶段,最怕听到的词之一就是“Congestion”,翻译过来就是“拥堵”。这感觉就像你精心规划了一座城市的蓝图,结果通车第一天,所有车都堵在几个关键路口,动弹不得。芯片设计里的“路”就是金属走线,而“车”就是需要连接起来的信号。一旦发生拥堵,轻则导致时序违例,性能下降,重则直接绕线失败,设计报废。
所以,在完成初始布局(通常是在place_opt或类似步骤)之后,第一件要紧事就是赶紧看看设计的“交通状况”。我们手里通常有两份关键的“交通报告”:一份是宏观的**Overflow(溢出)报告,另一份是微观的Hotspot(热点)**分析。很多刚入行的朋友,包括我自己早年,都习惯性地只盯着Overflow那个数字看,觉得它降下来就万事大吉了。后来踩过几次坑才明白,尤其是在那些面积很大、但单元密度(Density)却不高的设计中,只看Overflow就像只看全城平均车速——它可能还行,但完全掩盖不了某个十字路口已经堵成一锅粥的惨状。那个“堵死的十字路口”,就是我们要用Hotspot分析揪出来的问题。
简单来说,Overflow告诉你“堵不堵”,而Hotspot告诉你“堵在哪”以及“有多集中”。一个合格的数字后端工程师,必须学会综合运用这两份报告,才能对设计的可布线性做出准确判断。这篇文章,我就结合自己这些年趟过的雷、填过的坑,来跟你详细聊聊怎么玩转Congestion分析,让你从只会看数字,升级到能看懂“路况图”的老司机。
2. 基础指标拆解:Overflow到底是什么?
2.1 GCELL:芯片上的“最小交通网格”
要理解Overflow,首先得明白工具是怎么看芯片版图的。工具不会像我们人眼一样看整体,它会把整个芯片划分成无数个小小的、整齐的方格,这个方格就叫GCELL(Grid Cell)。你可以把它想象成城市交通管理用的网格,每个网格就是一个独立的监控区域。
GCELL的大小是可以设置的,通常它的高度就是一个标准单元(Standard Cell)行(ROW)的高度,宽度也与之相当,形成一个近似正方形的小格子。这个大小设置很有讲究:设大了,分析精度不够,发现不了细节问题;设小了,数据量暴增,分析速度变慢。通常我们会使用工具的默认值,或者在项目初期根据设计规模调整到一个合理的尺寸。
每个GCELL都承载着固定的“道路资源”。什么是道路资源?就是可以走线的轨道(Track)。比如,在一个特定的金属层(例如Metal 2),一个GCELL内部可能设计有5条水平方向的布线轨道。这5条轨道,就是这个GCELL在M2层能提供的最大通行能力。
2.2 Overflow的计算:需求与供给的残酷对比
现在,工具开始进行全局布线(Global Route)的预估。它会根据单元的摆放位置,估算出所有信号线需要走的路径。当某一条预估的路径穿过一个GCELL时,就相当于有一辆车要经过这个网格。
Overflow的定义非常简单粗暴:用一个GCELL内预估需要使用的轨道数量,减去它


374

被折叠的 条评论
为什么被折叠?



