下一章 上一章 目录 设置
5、黑盒子 为了把功耗 ...
-
第二次模拟流片定在一周后。
这一周金复来几乎没有碰别的东西。他把时钟树的约束文件改了三版,每一版都跑一遍综合,看功耗数字怎么变。第一版降到了六十一毫瓦,第二版五十八,第三版停在了五十五。离五十还差五个毫瓦。
"五个毫瓦。"葛家瑾看着数字说,"听起来不多。"
"在180纳米下,五个毫瓦够一个子模块跑满速了。"金复来说。
"那怎么压?"
金复来没回答。他打开功耗报告,一页一页往下翻,翻到一半的时候停住了。屏幕上是一张功耗分布表,时钟树占了百分之四十二,组合逻辑百分之三十一,剩下的才是寄存器和其他。
"时钟树已经压不下去了,"他说,"再压时序就过不了。"
"那只能从组合逻辑动手?"
"对。"金复来把报告翻到组合逻辑那一页,"这里有些路径的余量太大了,等于白跑了一部分电路。"
他说的吴越听懂了。他在笔记上写了一行:"组合逻辑冗余路径——可精简。"
"要改RTL吗?"葛家瑾问。
"要。但不大的改动,把几个并行计算合并成流水线,中间少一级寄存器。"
"多少时间?"
"今晚就能改完。明天跑仿真,后天提交。"
时间表定下来的时候是周二下午。金复来当晚改完代码,第二天跑仿真,波形正常,功耗数字在仿真阶段看不出来,要等综合之后才出结果。周四上午他跑了综合,数字跳出来——五十二毫瓦。
"还是差两毫瓦。"他说。
葛家瑾看着屏幕:"两毫瓦,差一点。"
"不是一点。"金复来说,"两毫瓦在50mW的指标下是百分之四。评委不会因为你'差不多'就给过。"
他关掉功耗报告,打开了一个他上周就注意到但一直没动的文件。那是工艺库里的一个参数表,标着各种标准单元在不同负载下的功耗数据。他翻了几页,停在一行数字前面,看了几分钟。
"这个单元,"他指着屏幕,"驱动强度比我们用的那个高一级,但功耗只多百分之五。如果把它换上去,综合工具可能会自动降低扇出,反而把总功耗压下来。"
吴越凑过来看:"你什么时候开始看工艺库的?"
"上周。"
"你上周不是在看时钟树的约束吗?"
金复来没回答。他只是把那个参数表关掉,打开综合工具的配置文件,开始替换标准单元的型号。他用的方法很简单——把综合工具默认的"面积优先"策略改成"功耗优先",然后手动指定了几种关键路径上的单元类型,让工具不要去选那些驱动强度不够的。
"这是绕过工具的自动优化。"葛家瑾看着他的操作说。
"嗯。"
"你怎么想到的?"
金复来停了一下。他打开手机,翻到一个截图的文件夹,点开了一张图片。那是沈亚凡一篇博客的结尾部分,屏幕上只有几行字:
"十几年前我在调基带芯片,每个寄存器都是黑盒子。如果永远只看别人给你的手册,你就永远不知道手册里没写什么。"
"工具给的方案是黑盒子。"金复来说,"我们不知道它为什么选这个单元不选那个。那就自己选。"
葛家瑾和吴越都安静了。他们看着金复来的屏幕,看他一行一行地修改配置文件,把工具默认的自动优化一项一项地手动覆盖掉。
那天下午金复来重跑了综合。功耗数字从五十二掉到了四十九点八。
"过了。"吴越说。
"过了。"金复来重复了一遍。
葛家瑾把测试板上的飞线重新加固焊了一遍,确保这一版没有任何外部干扰。"周五提交,周六早上收货。"
周五下午三点,金复来把GDSII文件上传了佳立创·硅工坊。订单状态一路跑完:"文件确认中"→"直写中"→"测试中"→"封装中"。晚上八点,系统提示:"已完成,等待配送。将于次日8:00起按序派送。"
那天晚上三个人都回了宿舍。没有人在实验室过夜。马上就是电赛了,是该在正常的关灯时间躺回自己的床上好好休息了。
第二天早上七点四十五分,金复来收到吴越的群消息:"我到实验室了。"
七点五十分,葛家瑾推开门走进来。他手里拎着早餐——热干面、面窝、豆浆。吴越已经把测试台清出来了,示波器预热完毕,电源线全部接好。
八点零三分,无人机的声音从窗外传进来。
葛家瑾走到窗边,推开窗户,取下密封舱,撕开袋子,用镊子取出芯片放进测试座。
"上电。"他说。
吴越打开电源。示波器亮起来,波形跳起,稳定,持续。功耗读数跳出来——四十九点八毫瓦。
三个人看了一会儿。波形在跳,功耗数字没变,芯片在正常运转。
"仿真这么准?"吴越说。
"把它跑完。"金复来说。
吴越开始跑测试序列。波形按照预定的顺序翻转、停顿、再翻转,像是读一本编好页码的书,一页一页翻过去。最后一项测试结束, "PASS"。
葛家瑾靠在椅背上,呼出一口气。"通过了。"
"通过。"吴越在笔记本上写下:"第二次模拟流片:功耗49.8mW,功能测试全部通过。"
金复来看着屏幕,Crtl+S保存。他关掉测试软件,把示波器的探头拔下来,放回架子上。动作很稳,和平时一样。
"还有一周。"他说。
"还有一周。"葛家瑾重复。
吴越把笔记本翻到下一页,新开了一页标题:"第三周——赛前冲刺。"
三个人坐在247室里,窗外是武汉七月初的早晨。太阳从梧桐叶之间穿过来,在桌上投下一块块晃动的光斑。空气中还残留着早餐的热干面芝麻酱的味道。
金复来打开手机,翻了翻那个叫"沈叔叔"的文件夹。里面只有一张截图。沈亚凡那篇博客的最后一段话,他看着看着,忽然想起另一件事。
《半导体的故事》里面有一页折了角,父亲在那一页用铅笔画了一条线。
他记不清那一条线画在哪里了。但他记得父亲画线的时候一定在想什么,像他刚才自己在工艺库的参数表前面坐了很久一样。
他把手机锁屏,放回桌上。
"我看了去年国赛IC组的报告,"金复来说,"没有人做时钟树的手动约束。都是工具默认的自动优化。"
他说这话的时候,吴越正好翻到笔记本的某一页,上面记着去年国赛的赛道信息。IC设计组是去年才新增的——2035年,全国大学生电子设计竞赛第一次把芯片设计列为独立赛道。在那之前,电赛的题目再多,也没有让学生真正设计一颗芯片。
为什么要新增?原因说来也简单。芯片行业缺人。高校的课程教的是原理,产业界要的是能上手干活的人。中间隔了一道叫“流片”的墙——太贵,太慢,本科生根本碰不到。佳立创把墙推倒之后,电赛组委会顺势开了这个赛道,让大三学生有机会在比赛里跑完一次完整的芯片设计流程。
“去年没人做,”金复来说,“不代表今年没人做。但如果我们做了,至少是第一个。”葛家瑾看着他:"所以?"
"所以我们可以做。"他说,"如果我们按这个思路做到底,把手动约束的流程走完,肯定得奖。"
葛家瑾:“你这么肯定。”金复来说:“其他赛道都是按比例给奖,前百分之十是一等,前百分之二十是二等。如果选的题人少了,比如全省就十几个队伍的话,那就得和武大、华科的大神竞争呀,但是IC赛道不是。”
他停了一下,把手机屏幕转过来,上面是电赛官网的赛道说明页面。2036年的电赛,各省试点改革成了四个赛道:控制赛道、电源赛道、信号赛道、IC设计赛道。前三个和往年一样,按参赛队伍比例划定获奖名额。IC设计题单独列了一条规则:“获奖指标会定量给出,完成全部赛题指标即授予省级一等奖,可继续竞争特等奖。”
“完成指标就有一等?”吴越凑过来看。
“对。”金复来说,“因为去年第一年办,报名的队少,完赛的更少。组委会想鼓励更多人选这个赛道。”
葛家瑾明白了:“所以只要跑通,奖就已经到手了?”
“差不多。区别是能不能竞争特等奖——特等奖要在完成指标的基础上,看功耗、面积、性能的综合排名。”
“那我们的策略很清楚,”葛家瑾说,“先跑通,再优化。”
吴越在笔记本上写下一行:“赛道选择逻辑:IC设计组——完成指标即省一,差异化竞争特等奖。”
“选IC赛道,不只是因为拿奖容易吧?”吴越问。
金复来沉默了一会儿。然后他说:“我小时候听我爸讲过一件事。”
“什么?”
“2003年,有人用砂纸打磨掉进口芯片上的Logo,冒充国产。骗了几个亿。”
葛家瑾的笔停了。
“汉芯?”吴越说。
“嗯。汉芯一号。”
“你爸是做什么的?”葛家瑾问。
“南昌大学,芯片测试工程师。”
“那他讲这个的时候怎么说?”
金复来想了一下:“他说,做芯片可以慢,但不能假。”
三个人沉默了几秒。窗外有蝉在叫,武汉七月的早晨,声音从梧桐叶之间穿进来。
吴越抬起头:“你选IC赛道,是有这个原因吧?”
金复来没有直接回答。他打开了代码编辑器,光标在第一行闪动。
“写代码。”他说。
他去年大二,电子设计2还没上,Verilog连“always@”和“initial”的区别都没分清,没敢报IC赛道。今年不一样了,他学过电子设计1、2、3,跑过完整的数字IC流程,做过模拟流片,知道怎么把时钟树约束写到工具自动优化做不到的程度。
“去年没人做手动约束,”他说,“不代表今年没人做。但如果我们做了,至少是第一个。”
吴越在笔记本上记了一笔:"差异化策略:手动时钟树约束,绕过工具自动优化。"
葛家瑾坐在椅子上转了小半圈,看着天花板想了一会儿,然后转回来:"你确定没人做过?"
"报告里没有。但也许有人做了没写进报告。"
"做了为啥不写呢?报告把设计思路写的清晰也加分呀。"吴越说。
三个人沉默了几秒。窗外有一架无人机飞过,很低,引擎的声音从9号楼的上方掠过,像一声没有拍到的掌声。
"那就按这个思路走。"葛家瑾说,"把我们的方案优化到极限。做别人没写进报告的事。"
金复来没有回答。他把手机锁屏,放回桌上,重新打开综合工具。
窗台上那块停机坪在阳光下泛着金属的光泽。
武汉的夏天深了。