阅读设置

20
18

第564章 汪教授的怒火 (2/5)

诸葛彪把烟叼在嘴角,含混地说:“还有串扰的问题。cad版没自动加屏蔽地线,相邻线间距全按同一规则。您那个布线算法里,串扰约束只有一条‘间距不小于最小间距’。但敏感信号和普通信号,不能一个待遇。”

汪涵教授又写了一行伪代码:

“敏感信号标记→布线时自动增加间距、两侧插入地线、禁止临近大电流开关信号。”

他写到一半,停下来,想了想,又加了一行:

“布线完成后自动运行串扰分析,高风险区域局部重布。”

他把这行字又看了一遍,然后抬起头,看着吕辰。

“你说的敏感信号,具体指哪些?”

吕辰走到白板前,拿起红笔,写了几行字。

“时钟信号。时钟沿的抖动和毛刺直接影响全系统时序,必须隔离。”

“复位信号。复位线上的毛刺可能导致系统误复位,整机死机。”

“模拟信号。adc、dac的输入输出,对噪声极其敏感。”

“高速并行总线。数据总线的相邻线串扰会导致数据错误。”

他放下笔,转过身。

“这四类信号,只要设计师在原理图上做了标记,布线器就应该特殊对待。”

汪涵教授把这四类信号抄在黑皮本子上,钢笔沙沙地响。

这时,钱兰走到白板前面,拿起蓝笔,在上面写了几个字:电源网格。

“手工版ir

drop超标的问题,cad版虽然没有手工版那么严重,但汪教授,您的电源网格综合,是基于平均电流估算的。”

她在白板上画了一个简图。

“每个门区域的电流消耗不是恒定的。输出缓冲器翻转的时候,电流尖峰可能达到平均值的十倍。您用平均值算出来的电源线宽度,在峰值电流的时候不够。”

她转过身,看着汪涵教授。

“要基于瞬态电流波形来设计电源网格。门级仿真的时候,记录每个门区域的电流随时间变化的波形,找出峰值。然后根据峰值电流来算电源线宽度。”

汪涵教授的眉头皱了一下:“门级仿真的数据量很大。16位加法器同时翻转,几千个门在同一时刻产生电流尖峰。要把所有这些数据都存下来,存储柜不够用。”

钱兰想了想:“不需要存全部波形。只存每个门区域的峰值电流,以及峰值出现的时间窗口。布线器根据这个来加宽电源线、插入去耦电容。”

汪涵教授在黑皮本子上记了一笔,又抬起头:“去耦电容的插入,你刚才也提到了。这个可以自动化。在高电流跳变区域附近,自动添加片上去耦电容。电容的值根据电流尖峰的幅度和持续时间来算。”

他在本子上写了几行公式,然后合上本子。

“电源网格的问题,不只是自动加宽走线。还要把分析结果可视化。设计师不能只看一串数字,他要能看见哪儿是灾区。”

他顿了顿:“升级2.0的时候,我尝试写过热力图的代码,但当时觉得算得太慢,跑一颗芯片要三四个小时,就没有加上去。”

他沉默了两秒:“现在看,慢也得跑。设计师看见热力图,就知道这里要加宽电源线。”

吕辰问道:“汪教授,这个热力图,能不能做到交互式的?设计师改了电源网格之后,热力图实时刷新,不用重新跑几个小时?”

汪涵教授想了想:“实时刷新做不到,计算量太大。但可以做到‘增量更新’。设计师只改了一小块区域,系统只重新算那一块,其他区域用缓存数据。这样十几分钟就能出结果。”

他顿了顿,又补了一句:“但这需要改存储结构,原来的数据格式不支持增量更新。”

吕辰点了点头:“那就改。存储结构是底层的事,现在不改,以后改更麻烦。”

汪涵教授看了他一眼,没说话,但在本子上又记了一笔。

诸葛彪把烟点着了,吸了一口,慢慢吐出来。

“汪教授,还有一个事儿,可制造性规则自动检查与修复。手工版有锐角、接触孔尺寸不一致;cad版虽然避免了基础错误,但对金属密度、拐角圆滑度这些‘软规则’没做优化。”

他走到白板前,拿起粉笔,在上面写了几行字。

“禁止小于135度的锐角拐弯,遇到锐角自动切成两个135度角或者弧线。”

“拐角处自动加粗,线宽增加50%,长度是线宽的两倍。”

在金属密度不均匀的地方自动插入dummy

metal,让密度均匀化,目标密度50%±10%

接触孔尺寸标准化,同一工艺节点下,所有接触孔直径偏差不超过±0.05微米