请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
整个设计流程,形成了一种奇妙的平衡。既有自动化带来的高效率和全局观,又有人脑智慧带来的极致性能。
林秋所设想的“吃自己的狗粮”计划,也进入了最关键的阶段。
远在首都的龙芯研发中心,王浩他们负责的EDA后端团队,几乎每天都会收到来自上海的“炮火支援”。那些不再是“我不信你”之类的抱怨,而是具体到令人头皮发麻的技术问题。
“王浩,你们那个静态时序分析工具,算出来的延迟,跟我们用Spice仿真的结果,差了15%!尤其是在计算‘Pioneer_Adder_32bit’这个模块的时候,误差最大。查一下你们的延时模型,是不是没有考虑亚微米工艺下的电压摆率(SlewRate)效应?”这是吴佳栋发来的邮件,一针见血。
“林学长,布线器又出问题了!”王浩在电话里叫苦不迭,“我们昨天半夜跑完一次全芯片布线,版图看着挺漂亮。结果今天马总工一看,脸都绿了。他说我们把时钟树的主干线,跟高速的数据总线,并行走了整整500微米!他说这在线间距小于1微米的情况下,跟把炸药和雷管放一个口袋里没区别,串扰噪声肯定超标!他问我们,布线器难道是瞎子吗?”
电话那头的林秋,听着这些“坏消息”,心情却越来越好。
“瞎子?这个比喻很形象。”林秋笑了,“这说明我们的工具,还缺少一双能‘看见’电磁场的眼睛。王浩,这不就是我们‘场论’布局布线算法,最好的应用场景吗?用户的痛点,就是我们产品的卖点。马上成立一个‘串扰分析’的专项攻关,把吴老师之前给你们的耦合电容模型加进去。我们的目标,不仅是把线连上,而是要‘干净地’把线连上。”
“明白!”王浩的斗志又被点燃了。
一场横跨京沪两地,连接芯片设计与工具开发的协同作战,全面展开。上海的设计团队,像最挑剔的“用户”,不断地从真实的、复杂的“龙芯一号”项目中,挖掘出EDA工具的各种缺陷和不足。北京的研发团队,则像一个反应神速的“供应商”,快速迭代,修复bug,增加新功能,再把更新后的软件,立刻空运到上海的战场上。
“场论”这个最初听起来有些虚无缥缈的理论,在这一次次的“找茬”和“修复”中,被逐渐填充了血肉。它不再是一篇论文,一个算法,而是变成了一行行可以解决实际问题的代码,一个个可以量化串扰、分析功耗、优化时序的具体功能。
两个月后,在经历了无数个不眠之夜后,“龙芯一号”的完整设计,在逻辑层面,终于完成了。
在仿真环境中,它成功地执行了第一条指令,正确地读写了虚拟内存,并最终在模拟的终端上,打印出了那句程序员世界里最神圣的话——“Hello, World!”。
当那串字符出现在屏幕上时,整个办公室都沸腾了。陈功厂长激动地抱着雷天君,两个半百的男人,像孩子一样又蹦又跳。老马默默地转过身,用粗糙的手掌擦去眼角的泪。周毅和他的伙伴们,则把一个年轻的龙芯研究员高高地抛向空中。
这是属于他们所有人的胜利。
然而,狂欢的喜悦并没有持续太久。一个更可怕的“幽灵”,悄无声息地出现在了他们面前。
吴佳栋带领的物理验证小组,在使用北京团队最新开发的“功耗分析工具”,对整个芯片设计进行仿真时,得到了一张触目惊心的“热力图”。
图上,大部分区域是代表低功耗的蓝色和绿色,但在几个核心区域,比如指令解码单元和ALU所在的执行单元,却呈现出大片刺眼的红色,甚至在最核心处,是代表着极度危险的暗红色。
“这是什么意思?”陈功看着这张花花绿绿的图,有些不解。
吴佳栋的脸色,前所未有的凝重。他指着那几块暗红色的“热点”区域,声音发沉:“意思就是,如果我们按照这个设计去流片,芯片在全速运行时,这几个地方的温度,会急剧升高,远远超过芯片材料能承受的安全阈值。轻则导致逻辑错误,运行不稳定;重则……芯片会因为过热,直接烧毁。”
“烧……烧毁?”陈功的声音都变了调。这个词,对于一个半导体厂的厂长来说,是天底下最恐怖的词汇。
办公室里刚刚还热烈的气氛,瞬间降到了冰点。
“怎么会这样?”老马凑过来,扶着眼镜仔细看那张图,“我们以前做的电路,从来没考虑过什么热不热的问题,不也好好的吗?”
“此一时,彼一时了。”吴佳栋叹了口气,“马总工,我们以前的工艺,线宽都在微米以上,晶体管又大又慢,功耗像个小火苗,散散热就过去了。现在是0.8微米,我们在指甲盖那么大的地方,集成了上百万个晶体管,时钟频率跑到了近50MHz。这就好比,我们把一个炼钢厂的锅炉,硬塞进了一个小火柴盒里。它不发烧,那才是怪事!”
“这……”老马彻底愣住了。他又一次感受到了那种熟悉的无力感。自己引以为傲的经验,在新的技术尺度面前,又一次失效了。
问题被摆在了所有人面前。一个设计上完美,但实际上会“发高烧”的CPU,等于一堆废品。距离他们三个月流片的目标,只剩下最后几周,时间已经不允许他们推倒重来。
“能不能……把频率降下来跑?”一个年轻工程师小声提议。
“降到多少?30MHz?20MHz?”周毅立刻反驳,“那我们这几个月的性能优化,不是白费力气了?我们费了那么大劲,造了台法拉利,结果为了不让发动机过热,只能当拖拉机开,这谁受得了?”
雷天君在一旁急得团团转,技术上的事他插不上嘴,只能一个劲地问:“那怎么办?那怎么办啊?总不能真的看着它烧了吧?这要是传出去,说我们龙芯团队设计的芯片,是个‘喷火龙’,我的老脸往哪儿搁!”
会议室里,陷入了死一般的沉寂。
良久,老马开口了,声音嘶哑:“唯一的办法,就是重新做物理设计。把发热大的模块,在版图上打散,均匀地分布在芯片各个角落,别让热量集中。这活儿,得靠人手工调。但工作量太大了,没有两三个月,根本下不来。”