进入八月下旬,秋老虎威力正盛。
办公室里,风扇嗡嗡地转着,把热风从这头推到那头,聊胜于无。
吕辰翻着一份《昆仑1机接口通则》,搪瓷缸子里的茶换成了绿豆汤,这可是李怀德给大家的福利。
门被推开了,曾祺走了进来,手里拿着一卷图纸。
“吕辰,你看一下。”
“怎么了?”
曾祺把图纸展示了一下,露出里面密密麻麻的版图线条。
“双轨对比的结果出来了,问题不小。”
吕辰心里咯噔了一下。
双轨对比,是工业计算机26颗芯片版图设计的最后一道关口。
他们用两种方式独立完成了26颗芯片的版图设计,全手工绘制一套,星河cAd自动生成一套。
两套版图放在一起审视,互相暴露对方的缺陷。
这个想法是吕辰在两个月前提出的,当时大家都觉得是好事,两块版图一比对,取长补短,最后融合出一版最优的送流片。
但“问题不小”三个字从曾祺嘴里说出来,吕辰知道,事情没那么简单。
吕辰接过报告,翻开第一页。
是一张汇总表,左边列着“手工版问题”,右边列着“cAd版问题”,中间是“对比结论”。
每一行都用红笔标注了严重程度,有的一级,有的二级,有的三级。
他扫了一眼,眉头就皱了起来。
手工版的问题列了六类,每一类下面都有好几个具体的案例。
cAd版的问题也列了六类,数量不比手工版少。
他把报告合上,抬起头看着曾祺。
“明早开会吧,我把诸葛师兄和钱师姐请回来一起会诊。”
他想了想:“此外,我会把汪教授也请来,星河cAd的微程序是他写的,这些问题得让他看看。”
曾祺点了点头,转身出去了。
第二天一早,吕辰到办公室放下帆布包,就往第八组的设计室走。
来到设计室,里面已经坐满了人,气氛凝重。
曾祺坐在靠窗的位置,面前摊着厚厚一沓对比报告,手里握着一支红笔,在纸上写写画画。
诸葛彪叼着一根烟,靠在绘图桌旁边,眯着眼睛看墙上挂着的两张版图,左边是手工版,右边是cAd版,两张都是A0幅面,硫酸纸,线条密得像蛛网。
吴国华站在两张版图中间,手里拿着一根细长的金属棒,正点着图上某处,跟旁边的大张海说着什么。
吕辰走到自己的工位坐下,看着陆续进来的人。
除了第八组的骨干,其他组的负责人也来了,自动化控制中心的李师兄也来了,谢凯也带着两名惊雷设计室的人来旁听,连6305厂的设计中心都打发了几名设计师过来。
把设计室坐得满满当当。
钱兰推开人群走进来时,身后跟着头发花白的汪涵教授。
他是星河计划理论组副组长、微程序设计院理事会成员,星河cAd微程序的主要开发者。
“汪教授,您来了。”吕辰迎上去。
汪涵教授摆了摆手,带着一股子学术圈里才有的较真劲:“你让人叫我,我就来了。听说你们搞了个双轨对比,手工画了一套,cAd画了一套,拿来比比?我倒要看看,我的微程序到底输在哪儿。”
吕辰笑了笑:“不是输赢的事,是取长补短。您坐。”
钱兰带汪涵教授在前排坐下。
汪涵教授从兜里掏出一个黑皮本子,翻开空白页,把钢笔帽拧开,搁在本子旁边,表情认真。
“开始吧。”吕辰走到黑板前,把位置让给曾祺。
曾祺走到两张版图前面,拿起金属棒,点着左边那张手工版。
“各位,我先说手工版的问题。”
这些天他带着第八组的人一张图一张图地比对,每一处差异都记录在案,每一类问题都归纳总结,现在说出来,像是在念一份已经背熟的稿子。
“第一类问题,也是最严重的问题之一,时钟树严重不平衡。”
他用金属棒在手工版的GY-cU-01主控核心版图上画了一个圈。
“手工版的时钟线,由设计师凭经验手画。从时钟源到各触发器的走线长度差异很大。”
他点着图上的一处:“比如这条线,从时钟源出发,绕了半个芯片才到达目标触发器。”
金属棒移到另一处:“这条线就在旁边,距离很近。两条线的走线长度相差了2.3毫米。”
他把金属棒放下,转身看着台下。
“用星河cAd仿真后发现,手工版的时钟偏斜达到了800皮秒。设计指标是200皮秒以内,超标4倍。”
他顿了顿,补了一句:“而且不只是GY-cU-01,其他芯片也存在同样的问题。GY-cU-02的时钟偏斜620皮秒,GY-cU-R的时钟偏斜710皮秒,几乎所有手工版的大芯片,时钟偏斜都超标。”
台下嗡嗡声起来了。
诸葛彪把烟从嘴里拿下来,弹了弹烟灰,斜眼看着吕辰,嘴角带着一种“我可逮着机会了”的笑意。
“吕辰,GY-cU-01是你亲自画的吧?”
吕辰点了点头,没说话。
诸葛彪嘿嘿笑了起来:“你这手工画的时钟线,一根绕了半个芯片,一根就在旁边,这偏斜不超标才怪。你看看cAd那边,”
他用下巴朝右边那张cAd版努了努:“你看人家这h树,整整齐齐,从时钟源出发,走线长度基本相等,分叉点都在中间,到了末端,各分支延迟差不到100皮秒。”
吕辰端起搪瓷缸子喝了一口水,表情没什么变化,但嘴角微微抽了一下。
“继续。”他说。
曾祺点了点头,金属棒移到手工版的另一处。
“第二类问题,信号线间距不一致,串扰严重。”
他点着数据总线的一组相邻线。
“手工版的数据总线,相邻线间距不统一。这里,间距是线宽的1.5倍;这里,间距只有1.2倍;这里,间距又变成了1.8倍。”
他转过身:“原因可能是手抖,也可能是疏忽。而且手工版没有在敏感线之间加屏蔽地线。”
他翻过一页报告,念了一组数字。
“提取寄生参数后,手工版相邻线的耦合电容比cAd版大了40%。串扰毛刺幅度达到了逻辑阈值的60%。”
他加重语气:“最严重的地方,两根线画得太近,仿真的时候看不出来,但提取Rc参数后,毛刺幅度达到了2.5伏。这个电压,已经足以让后面的触发器误翻转。”
台下安静了一瞬。
谢凯带来的一名设计师举手问:“2.5伏的毛刺,那基本上就是逻辑错误了?”
“对。”曾祺点了点头,“如果不改,流片回来,这块芯片在特定条件下会随机出错,而且极难复现。”
汪涵教授在黑皮本子上记了几笔,钢笔沙沙地响。
“第三类问题,电源网格过细,IR drop超标。”
曾祺的金属棒移到电源线的区域。
“手工版按最小线宽画电源线,靠增加走线密度来降低电阻。但主干道的宽度不够。”
他在图上点了点几个关键位置。
“cAd版的自动电源网络综合,会根据电流密度自动加宽主干道,并且添加了电源条。对比仿真发现,手工版局部的IR drop达到了15%,cAd版不到5%。”
他翻开报告,念了一个具体的案例。
“GY-cU-03的Vdd线,有一段只画了20微米宽。仿真显示,峰值电流1.2安培时,这段线上的压降达到了0.6伏。到芯片远端,供电电压只剩4.4伏。”
他放下报告,看着台下。
“4.4伏,已经低于芯片的正常工作电压下限。某些门电路的延迟会增加30%以上,时序根本收不住。”
有人插了一句:“这不光是时序的问题,逻辑功能都可能出错。电压低于阈值,与门变与非,与非变或非,整个逻辑都乱了。”
曾祺点了点头,继续说。
“第四类问题,金属拐角存在锐角与缺口。”
他用金属棒点着手工版上一个拐角处。
“手工版在走线拐弯的地方,有人画出了小于90度的锐角。而且拐角内侧的线宽明显变细。”
他放大了一张局部图,那是一张扫描后的版图照片,拐角处线条急剧收窄,几乎要断掉。
“cAd版的自动布线只允许135度或90度拐角,并且在拐角处自动加粗。手工版的dRc人工检查虽然通过了,但还是有遗漏。”
6305厂的一名设计员道:“这种情况,刻蚀之后,拐角处会形成缩颈。流片回来,基本可以肯定是根断线。”
台下有人倒吸了一口凉气。
汪涵教授的钢笔停了一下,然后又继续写。
“第五类问题,缺少虚拟填充。”
曾祺点着手工版的大块空白区域。
“手工版在这些空白区域没有加tal。化学机械抛光之后,这些地方会凹陷。”
他在空中画了一个剖面图。
“凹陷的后果是,在后续光刻时,这些区域的焦深会偏差,影响图形精度。小范围还好,但大面积的空白区域,会直接影响整颗芯片的良率。”
“第六类问题,接触孔尺寸不一致。”
他的金属棒点着接触孔的区域。
“手工版不同模块的接触孔直径存在0.1到0.2微米的偏差,而且位置也有偏移。cAd版全部调用标准单元库,尺寸、间距完全一致。”
他翻开报告最后一页:“对比发现,手工版的部分接触孔,刻蚀后没有完全打开。接触电阻比正常值大了两个数量级。”
他把报告合上,放下金属棒,转过身。
“手工版的问题,就这些。”
设计室里安静了几秒。
吕辰坐在靠墙的位置,手指在桌面上轻轻叩着。
GY-cU-01是他亲手画的,时钟线绕了半个芯片,电源线只画了20微米宽,这些毛病都是他犯的。
他端起搪瓷缸子,喝了一口已经凉透的茶,苦得要命。
汪教授道:“说说cAd版的问题。”
曾祺点了点头,走到右边那张cAd版前面,拿起金属棒。
“手工版的问题不少,但cAd版的问题也不少。”
他在cAd版上点了几下。
“第一类问题,也是cAd版最核心的一个问题,关键路径布线绕远,延迟反而比手工版更大。”
他点着16位加法器的进位链。
“cAd版的自动布线,为了绕开障碍物,把进位链的走线绕了很远。从输入到输出,总长度达到了3毫米。”
金属棒移到手工版上对应的位置。
“手工版这边,设计师会手动推挤其他走线,给进位链让路,让它走直线。总长度只有1.8毫米。”
“对比仿真发现,cAd版进位链的延迟比手工版大了25%。时序收敛更困难。”
他顿了顿,补了一句:“而且这个问题不是个例。好几颗芯片的关键路径,cAd版都有绕远的情况。”
诸葛彪嘿嘿笑了一声:“cAd这是笨,它不知道哪条路要紧。它只知道‘从这里到那里有一条路可以走’,至于这条路弯了几个弯、绕了多远,它不在乎。”
汪涵教授手里的钢笔停了,抬起头看了诸葛彪一眼,没说话,低下头继续写。
曾祺继续说:“第二类问题,cAd版对特殊定制结构不智能。”
他点着cAd版上的存储阵列区域。
“存储阵列的位线,cAd也做了自动布线,导致位线长度不一致。位线长度不一样,读放大器就会失调。”
金属棒移到手工版。
“手工版这边,设计师手动匹配了位线长度,误差控制在1%以内。”
“对比发现,cAd版的存储单元读窗口变小,噪声容限下降。如果直接用这版流片,存储芯片的良率会很不好看。”
吴国华补充了一句:“这个问题在KL-SRAm的设计上我们也遇到过。当时手工匹配位线,花了两天时间。cAd版自动布线,十分钟就跑完了,但结果不能用。”
汪涵教授的钢笔在纸上顿了一下,留下一个墨点。
他用手背擦了擦,继续写。
“第三类问题,cAd版存在过多冗余过孔,增加了寄生电容。”
曾祺点着cAd版上密密麻麻的过孔。
“cAd版为了可靠性,在每个接触孔旁边自动加了冗余过孔。这本来是一件好事,但问题是,它不加区分,所有孔都加。”
他翻开报告,念了一组数据。
“冗余过孔导致节点的寄生电容增加了15%。某些关键路径的延迟比手工版大了,功耗也更高。”
他抬起头:“手工版只在关键节点加冗余过孔,其余地方用单孔。这个‘度’的把握,cAd还做不到。”
“第四类问题,cAd版缺乏对模拟和混合信号电路的直觉优化。”
他点着时钟驱动器的输出级。
“cAd版把时钟驱动器的输出级布局得太散,各个缓冲器分散在版图各处。时钟边沿因为走线长度的差异,变得不一致。”
“手工版这边,时钟缓冲器集中放置,输出级紧贴负载。cAd版的时钟上升时间比手工版长了0.3纳秒。”
他转过身:“0.3纳秒,对于4兆赫的时钟来说,已经是超过一个时钟周期的十分之一了。”
“第五类问题,cAd版违反了一些常规经验。”
“cAd版把敏感的复位线,布在了一条大电流开关信号线的旁边。两条线平行走了很长一段。”
他点着复位线的区域:“手工版的设计师,凭借经验,会主动避开这种布局。但cAd不知道。”
他翻开报告,念了一句:“复位线上的毛刺,幅度达到了逻辑阈值的70%,可能引起误复位。”
“第六类问题,过度遵守规则,导致面积浪费。”
他用金属棒在cAd版上画了一个大圈。
“cAd版把所有线间距统一设为2倍最小间距,不分信号类型、不分重要性。结果是,芯片面积比手工版大了12%。”
他看着台下:“手工版会根据信号类型分级设间距。关键信号线宽、间距大,非关键的信号线挤一挤。cAd没有这个判断能力。”
他放下金属棒,退后一步。
“cAd版的问题,就这些。”
设计室里彻底安静了。
汪涵教授放下钢笔,看着黑板上那两列问题,表情看不出什么,但手指在笔记本的封皮上轻轻摩挲着。
钱兰翻开报告,总结了一句:“手工版的问题,集中在三点:时钟不平衡、信号完整性差、电源网格弱。cAd版的问题,也集中在三点:关键路径绕远、特殊结构不智能、面积浪费。”
她合上报告,看着吕辰。
诸葛彪把烟叼在嘴角,眯着眼睛看那两张版图,慢悠悠地说了一句:“手工版有时序和可靠性的硬伤,cAd版有面积和关键路径绕远的毛病。两条腿走路,是对的。”
吕辰放下笑:“手工版和cAd版,各有优劣。手工版的优势是‘经验’,cAd版的优势是‘规矩’。但经验和规矩,都不完美。”
他站起来,走到两张版图中间。
“我提一个融合方案。”
他转过身,看着所有人。
“以cAd版为基底。cAd版的布局规整、dRc干净、时钟树平衡、电源网格强壮,这些比手工版强。把这些作为基础,省去从头开始的时间。”
他竖起第二根手指。
“在cAd版的基础上,用手工优化关键路径和特殊结构。16位加法器的进位链,用手工版的经验,在cAd版里手动拉直。存储阵列的位线,用手工匹配。时钟驱动器的输出级,用手工集中布局。”
他竖起第三根手指。
“用手工版的布线智慧和经验规则,去修正cAd的自动布线约束文件。把手工版里那些‘不成文的经验’,变成cAd能理解的约束。以后跑自动布线,就不需要再手工改一遍了。”
他放下手,看着曾祺。
曾祺点点头:“这个融合方案可行,我带着人先做。以cAd版为底,手工改关键路径。改完再跑一遍验证,确认没有问题再送流片。”
钱兰道:“今天手工版暴露出来的六个问题,我会将其录入《常见缺陷清单》,以后手工画版图,这六条是红线。”
她顿了顿:“cAd版暴露出来的六个问题,我也会整理成一份《常见缺陷清单》,回头跟微程序设计院对接,看看哪些问题能在算法层面解决,哪些需要设计师手动干预。”
吕辰最后看向汪涵教授。
“汪教授,双轨对比的事,还没完。有些问题,不是靠手工改就能解决的,得从cAd的算法层面动刀。您跟我们走一趟,去机房看看?”
汪涵教授合上黑皮本子,站起来。
“走。”
读完《四合院:我是雨水表哥》第 563 章了吗?玉宇小说屋 同步更新最新章节,请将本站添加到收藏夹方便下次阅读。
本章共 5838 字 · 约 14 分钟阅读 · 章节有错误?点此报错
玉宇小说屋 · 免费小说阅读网 · 内容来自互联网,仅供学习交流
投诉/建议请发送至 [email protected],我们会及时处理