年关将近,年味越浓,陈婶开始做各种吃食,酥肉、年糕、豆包、腊肠、蜜饯等,小念青天天守在灶台前,吃得小嘴流油,每天都混了肚儿圆。
又一个清晨,吕辰推着自行车进了研究所,车把上挂着一个网兜,里面是陈婶昨晚蒸的粘豆包,让他带来分给加班的同事。
他把车停好,拎着网兜上了右翼楼二楼。
验证室的门虚掩着,里面传来诸葛彪的打火机声,铛,嚓,嘶,然后是一股烟草味飘出来。
“你这烟瘾是越来越大了。”吕辰推门进去,把粘豆包往桌上一放。
诸葛彪坐在验证台前,手里捏着烟,眼睛盯着示波器上跳动的波形。
钱兰趴在另一张桌上,面前摊着厚厚一叠图纸,手边放着一个搪瓷缸,里面的茶早就凉透了。
“一夜没睡?”吕辰问。
“眯了两个小时。”钱兰直起腰,揉了揉眼睛。“放心不下,四点就醒了。”
“是有什么想法吗?”
钱兰揉了揉脸:“我想明白了一件事——咱们之前找原因,一直在找‘是谁的错’。是设计的问题,还是工艺的问题。但昨天夜里我突然想,这个问题可能本身就是错的。”
她站起来,走到黑板前,拿起粉笔,画了一个简单的坐标系。
横轴是“设计余量”,纵轴是“工艺波动”。
他在第一象限画了一个小圈:“这里是理想情况,设计留足了余量,工艺又稳,良率高。”
然后在第三象限画了一个大叉:“这里是灾难区,设计把工艺逼到了极限,工艺本身又有波动,两者叠加,结果就是咱们看到的72%短路,48%击穿。”
诸葛彪眼睛亮了:“你是说……”
“我是说,咱们可能错怪自己了。”钱兰放下粉笔,“不是设计错了,也不是工艺错了。是咱们把设计刚好放在了工艺波动的刀口上。就像一个裁缝,把衣服做得刚刚好合身,但布料本身有缩水的可能,一洗就穿不上了。”
吕辰走到黑板前,盯着那个坐标系。
他想起前世那些芯片设计的故事,第一次流片,良率惨不忍睹,新人设计师第一反应是怪工艺线不行。
但资深工程师会告诉你,工艺永远有波动,设计的责任,是在最差的工艺条件下,芯片依然能工作。
“你的意思是,咱们的设计太‘紧’了?”他问。
“对。”钱兰点点头,“版图密度太高,最小间距刚好卡在设计规则的下限。晶体管尺寸太小,刚好在击穿阈值的边缘。长走线没有加缓冲器,刚好在延迟容忍的边界。所有地方都是刚好,但工艺不可能每一次都刚好。”
她走回验证台,拿起一块废品芯片,对着灯光照了照:“你们想想,60颗芯片,41颗短路,而且短路的区域高度一致。这说明什么?说明如果工艺完美地做到中线,这些芯片可能都是好的。但工艺有波动,只要往坏的方向偏一点点,就废了。”
钱兰翻开笔记本,找到她整理的数据:“我统计过,那些短路的芯片,电源线和地线之间的实测电阻不是均匀分布的。有的是0欧,完全短路;有的是几十欧,半短路;有的是几百欧,漏电。这说明什么?说明那两条线并不是真的连在一起了,而是挨得太近,氧化层里有了杂质,或者刻蚀的时候留下了一点毛刺,在电压作用下形成了导通路径。”
吕辰沉默了几秒:“钱师姐说的是,设计规则不是悬崖边上的栏杆,而是安全区。我们要做的,不是在栏杆上走钢丝,而是退后一步,稳稳地站在安全区里。”
诸葛彪也点点头:“有道理啊,咱们是走到悬崖边上了,怪不得风大,退一步,海阔天空。”
钱兰道:“是退一步宽。”
她走回黑板,在刚才那个坐标系旁边,写下两个句话:设计上后退半步,工艺上向前一步。
“咱们双管齐下。”她说,“设计上,给工艺留出余量。缩窄设计规则,把最小间距从5微米放宽到6微米。关键晶体管做双倍尺寸,提高抗过压能力。长走线上插入中继器,减少延迟。这些改动,会让芯片面积大一点,功耗高一点,但换来的,是芯片能在更宽的工艺波动下正常工作。”
她顿了顿:“工艺这边,优化氧化工艺,降低生长速率,提高氧化层致密性。调整掺杂浓度,精确控制扩散炉的温度和时间。提升洁净度,查漏补缺,看有没有哪个环节的过滤器失效了。把工艺的波动范围收窄,让更多的芯片落在设计能容忍的区域里。”
吕辰明白,这不是认输,这是成熟。
第一次流片,凭着一股冲劲,把设计做到极致,把所有参数都推到极限。
然后被现实狠狠地打回来,才发现“极限”不是用来追求的,是用来敬畏的。
真正的工程师,不是能把设计做得多极限,而是能在极限和可靠之间,找到那个平衡点。
他道:“好,那就先改版图,重新流片。”
诸葛彪点点头:“按这个思路改,面积可能会增大15%到20%,晶体管数量多两三百个。但良率……至少能到30%以上。”
“30%也够了。”钱兰说,“比8%强。”
三个人对视一眼,都笑了。
那笑里没有沮丧,只有一种说不清的轻松,终于找到了真正的病根,终于知道该怎么治。
接下来的日子,三个人开始了漫长而繁琐的修改工作。
首先是缩窄设计规则。
吕辰把原来的版图拿出来,一条线一条线地量。
那些间距刚好卡在5微米的地方,全部标红。
电源总线旁边的信号线,寄存器堆里密密麻麻的走线,时钟网络的分支点……,整整标了四十七处。
“这四十七处,全部改到6微米以上。”他对诸葛彪说。
诸葛彪看着那张标满红点的图纸,倒吸一口气:“全改?那面积得扩大多少?”
“扩大就扩大。”吕辰说,“宁可大一点,也不能再冒短路的险。”
诸葛彪点点头,没再说什么,拿起铅笔开始改。
这是一件磨人的细活。
不是简单地“把线往外挪一挪”,而是牵一发而动全身。
一条线动了,周围的线可能都得动,布局可能得重新排,甚至整个模块的尺寸都可能变化。
诸葛彪趴在绘图桌前,拿着放大镜,一笔一笔地挪。有时候挪一条线,得花半个小时。
有时候挪完发现不对,又得重新来过。
钱兰那边也不轻松。
她负责改晶体管,那些关键路径上的小尺寸管子,全部换成大一号的。
原来宽长比1:2的,改成1:3;原来用最小尺寸的,全部加大一倍。
“这样做,功耗会上升。”她对着图纸说。
“上升就上升。”吕辰说,“咱们这块芯片,不是用在手表里的,是用在电机上的。功耗大一点,有电源撑着。但要是击穿了,什么都没用。”
钱兰点点头,继续画。
吕辰自己负责加缓冲器。
那些长走线,有的从芯片一头通到另一头,长度超过两毫米。
在5微米工艺下,这么长的线,寄生电容大,信号传输慢。
之前的版本没加缓冲器,结果所有能用的芯片都有延迟问题。
他在每条长走线上,每隔一段距离插入一个中继器——其实就是两个首尾相连的反相器,把信号重新整形、重新驱动。
加一个缓冲器,要改动周围的布局,要重新走线,要调整时序。
加十几个缓冲器,就是十几倍的活儿。
三个人起早贪黑,日子就这么一天一天地过去。
……
时间到了腊月二十八,版图修改渐渐即将完成。