他在黑板上写了几行字。
亚稳态:颗芯片出现莫名其妙的错误,复现极其困难。
复位问题:颗芯片上电后状态机死锁。
多时钟域:颗芯片跨时钟域同步失败。
罕见输入序列:颗芯片在某条极特殊的指令下死机。
戚工指着第一行:“触器的输出在时钟沿附近变化时,会进入一种不确定的状态。这个状态可能在几个纳秒后稳定,也可能持续几百纳秒。仿真假设触器输出永远是稳定的,无法模拟亚稳态。”
他画了一个触器的时序图,在时钟沿附近标了一个不确定的区域。
“测试中现的错误,大概率是亚稳态导致的。概率很低,复现极难。”
他指着第二行:“上电后,复位信号释放的时刻和时钟沿接近,导致触器进入亚稳态。仿真中通常假设复位信号在时钟沿之间稳定变化,没有模拟这种边界情况。”
本小章还未完,请点击下一页继续阅读后面精彩内容!
他指着第三行:“芯片内部有多个时钟域,跨时钟域的信号需要同步器来消除亚稳态。实测现,同步器的设计有缺陷,数据丢失。”
他在图上画了两个时钟域,中间加了一个同步器。
“仿真模型中的同步器是理想的,假设亚稳态传播时间为零。实际同步器中,亚稳态可能传播几个纳秒,导致数据错误。”
他指着最后一行:“kl-cu有一颗芯片,在执行某条极特殊的指令序列时死机。我们经过极限测试,现概率约在万分之一,跑了几万条指令才触一次。仿真时间有限,不可能跑完所有输入组合。”
他放下粉笔,看着台下。
“这些问题,都是分布式系统无能为力的。系统能验证设计是否正确,但验证不了在真实物理世界中的行为。”
陈光远站起来,走到黑板前。
“除了以上内容,我再补充一些工艺波动与制造偏差之间的问题。”
他在黑板上画了一个晶圆,标了几个区域。
“这一类问题与设计无关,纯属制造环节的物理随机性。分布式系统能做的,几乎为零。”
他指着晶圆示意图。
“先是关键尺寸偏差。光刻后晶体管的栅长偏短或偏长,导致度或漏电异常。晶圆边缘的偏差比中心大了一倍。”
“其次是套刻偏差。两层掩模的对准偏移,导致晶体管特性变化。版图设计时预留了套刻余量,但实际偏差过了余量。”
“再次是接触孔通孔失效。接触孔未完全打开或填充不良,局部断路或高阻。刻蚀和沉积工艺的均匀性,系统无法预测。”
“第四是掺杂浓度波动。离子注入的剂量不均匀,导致阈值电压漂移。扩散炉的温度分布和注入机的束流稳定性,系统不知道。”
“最后是氧化层厚度偏差。栅氧化层厚度不均匀,影响晶体管性能。氧化炉的气氛和温度历史,系统不知道。”
他放下粉笔,转过身。
“这几样是比较明显的,其他的,还有封装与测试引入的问题。”
他掰着手指头数。
“键合线短路、断路,封装后芯片不工作。键合线电感导致过冲,输出信号有大的振铃,可能误触后级。热膨胀系数失配,温度循环后焊点开裂。测试向量不完整,自检通过但实际应用中出错。”
他看着台下:“这些问题,系统都不涉及。”
陈光远讲完后,会议室里沉默了好一会儿。
宋颜像是在消化刚才听到的所有问题,过了好一会儿才开口说话。
“各位,都听清楚了?昆仑第一版流片,全面溃败。颗芯片,没有一颗全好。这是事实,昆仑是我亲自带队设计的,我也深受打击。”
他顿了顿,目光从每一张脸上扫过。
“但溃败不可怕,可怕的是不知道败在哪儿。今天我们把问题都摊开了,时序收敛、功耗、存储、仿真死角、工艺波动、封装测试,每一条都清清楚楚。”
“我不怕大家笑话,集成电路是新产业,我们都在摸着石头过活,今天我们栽倒了,就要让大家知道我们倒在哪里,好让大家避开这个坑。”
他站起来,走到黑板前,拿起粉笔。
“分布式辅助电路设计系统,帮我们把会不会的问题解决了。逻辑功能正确,版图与逻辑图一致,设计规则检查通过。这是我们以前想都不敢想的。”
他在黑板上写了一个“会”字。
“但现在我们要解决的是好不好。”他在旁边写了一个“好”字,“跑得快不快、功耗低不低、扛不扛得住高温高压、工艺波动来了能不能顶住。”