原创 龙芯,牛!(3)

2008-10-6 23:57 1988 1 1 分类: 汽车电子
龙芯,牛!(3)

作者:moto 2006-09-14 10:02:29

标签:
 



   第一件事情是在6月底完成FPGA验证平台建设后,在用该平台运行SPEC CPU2000程序进行性能分析时有一个程序的浮点结果有时正确有时错误。由于其它程序都运行正确,而且操作系统对虚地址CACHE支持部分还有bug,因此刚开始我没有认为RTL有问题。7月2日下午,张福新在机房中说了一句话:“我觉得还是RTL有问题”,这句话使我心烦意乱,放下正在看的布线工具文档,决定要把这个事情搞清楚。在随后的几十个小时中,我们使用FPGA验证、C模拟器、以及RTL仿真对这段出错的程序进行追踪。终于在7月4日早上找到了一个RTL的bug。好在问题只涉及局部的设计,我们修改完RTL后通过手工修改网表花了一天就完成了ECO的布局布线。

  一波未平、一波又起。刚想歇会儿,负责全定制寄存器堆仿真的王林楠报告说寄存器堆不能正常工作。我刚开始不相信,因为为我们设计寄存器堆的C公司是业内非常有名的大公司。但不同的仿真结果都说明寄存器堆有问题。我们花了两三天才说服C公司的设计人员认识到设计错误并且改正过来。此后我们又对寄存器堆做了更多的仿真,并跟一个工具的bug斗争了几天几夜。在此期间,微电子中心的黄令仪老师给了我们极大的支持,否则我们不会这么快对寄存器堆的设计有深入的了解。

  由于这两件事情的发生,到7月14日我们终于把龙芯2号的第一个设计tapeout到TSMC时,我们已经连续在机房不分昼夜地干了十几天。但由于在临tapeout前曾经发现寄存器堆设计的问题,因此tapeout之后也不敢松懈,继续对寄存器堆进行分析和仿真。由于EDA工具对较大规模的模拟电路没有有效的支持,主要依靠设计者的经验,我们也请一些电路设计高手帮我们进行分析。经过一个多礼拜心惊肉跳的检查,在排除了一系列可能存在的问题后,最后一个关于电源地规划的问题成为我们关注的焦点,也成了我在此后的几十天中的一块心病。设计者似乎在这方面有疏忽,在最离谱的地方,几十毫安的电流只用了0.28微米的地线。我们与C公司的工程师联系时,他们觉得没有问题,反而说过多的电流会通过衬底流掉。这时候我们在很多高手的指点下已经对全定制设计有所了解,觉得这个问题比较严重,因此在与C公司反复交涉得不到他们的积极配合后决定起用备份方案,再做一个流片。刚好黄老师她们做的寄存器堆也已经完成了。我们把已经tapeout的第一个芯片叫做龙芯2号的A方案,把准备做的叫做B方案。

  在我跟李老师和唐志敏提出再做一个流片后,他们提出这次可以在SMIC流片,因为刚好Artisan为SMIC做的库在6月份发布了。事实上,李老师在去年就提出龙芯2号在SMIC流片,我不干。这次我也是不大愿意,因为我那时对SMIC不了解。李老师说,我们自己希望别人支持民族产业,用我们的芯片;而我们自己不支持大陆厂家,怎么行。我还是不愿意。 后来有一次在所里培训时碰到李老师又说起了这件事。他说:“不管SMIC的工艺怎么样, 总得有人去试,大不了不成功,下次再来”。我说:“要的就是您这句话”。因此就定下 来8月份在SMIC流片。

  我们在7月30日下午拿到SMIC的库,那时侯离tapeout只有两个星期了,而且SMIC的库还存在不少问题,我们不得不一边发现并修改库的bug一边把物理设计向前推进。这真是做得最辛苦的一次物理设计,连续的熬夜搞得我们吃饭也没胃口,每天只在晚饭时吃一顿。室 里的刘凤芹老师看我们不去食堂吃饭,每天早上都熬一些紫米粥来给我们喝,我爱人有时候晚上也给我们熬些鱼汤什么的。8月10日下午布完线后心里塌实了一些,我和钟石强、 杨旭去四环志新桥边上的一个粥铺吃晚饭,才觉得饿坏了。吃完后数数桌上竟有17个空盘子,出来时撑得腰都弯不下来,三人一路走回中关村。

  布完线后我们又根据分析的结果做了些手工调整修复信号完整性问题和进一步降低延迟, 并修复了DRC和天线的问题。到8月12日中午LVS经过几次修改也基本通过,我们觉得差不多了。那天正是农历七月半,因此在加上guard ring后趁计算机做最后的LVS检查时我和钟石强、杨旭去天安门广场瞻仰毛主席去,可惜那天下午纪念堂没开,我们只好绕纪念堂一圈回来,路上猛然想起今年是毛主席诞辰110周年,于是约定把明天tapeout的这个芯片的起名叫MZD110。

  回到所里时没想到刚才LVS运行的结果还是有错。于是赶快对刚加的guard ring进行检查。guard ring是围绕芯片最外边的一圈保护环,奇怪的是加上guard ring后LVS检查就显示芯片里边的逻辑有错,去掉guard ring后再检查芯片里边的逻辑又没错。那天晚上一直在找这个问题,黄老师也跑过来帮我们一起找。第二天天亮后就要tapeout了,但一直到后半夜还搞不定。眼看时间一分一秒地过去,真是又困又累又着急,几乎要放弃。快天亮时王林楠重做的guard ring做好了,又折腾了几次LVS检查终于通过,这时候清晨的阳光已斜斜地照进机房。把文件传给SMIC后我们又取回来再做一次LVS和DRC。计算机在运行时,我和杨旭斜靠在椅子上等待。杨旭说:“昨天晚上真怕睡着,我有时候靠在椅子上歇一会儿,看见你们躺下了就赶忙起来,怕咱们三人都睡着了就不知道睡到什么时候了”。这句话让我十分感动,因为昨晚最困的时候我自己也是一直用这个念头强撑着不敢闭眼。那时候我们已经连续十几天没有正常休息而且莫名其妙的问题搞得我心力交瘁,我第一次感到人的体能是有极限的,人的精神是会崩溃的,真想一觉睡过tapeout的时间算了。我仰头看着天花板,好不让杨旭看见我的眼泪,很动情地说:“杨旭,你有这样的责任心,以后在我们这里肯定前途无量”。杨旭是刚从微电子中心毕业后到我们这里来工作的,他还没有到所里报到,就先来跟我们一起苦熬。

  我经常把我们课题组比做一个硬骨头连队,把自己比做连长。在龙芯1号流片成功后,我这个连长得到了很多本来应该属于全连的荣誉,包括获得“中国青年五四奖章”并受到总书记的接见,而每天跟我一起冲锋陷阵的兄弟们什么也没有。我真是愧对他们。

  去年在龙芯1号tapeout之后,我曾经说,我觉得三个都能成,如果两个成功也可以接受,如果只有一个成功我会觉得比较失败,如果全部不成功那就没有天理了。但龙芯2号tapeout之后,我对A方案和B方案都没有必胜的信心。但不管最后结果怎么样,有两点是肯定的。一是全组已经尽了最大努力,Godson-2的设计比Godson-1辛苦得多,难度大得多。在龙芯1号发布会后龙芯2号的工作才全面铺开,10个月后我们就完成了这么复杂的设计,没有全组兄弟们玩命的工作是不可能做到的。二是即使流片不成功,我们已经有了很好的基础,以前的至少90%的工作没有白费,即使这次不成以后总会成功的。

  9月5日下午我在丝毫没有准备的情况下收到了龙芯2号的A方案的芯片,当晚我组织了联调,虽然在加电后很快就能够启动一个简单的BIOS系统,但系统运行得很不稳定。在连续三天的调试后,我们虽然得到了一些有用的结论,如验证了跨时钟域的信号握手机制,但一直无法让系统稳定运行,因此我决定终止继续联调并给李老师和唐志敏发EMAIL报告了这一情况。

  虽然由于寄存器堆的问题我已经对A方案的流片不抱太大的希望,但真正面对这个结果时还是很难受。那阵子我经常坐在机房里,痴痴地看着寄存器堆的版图发呆;或者独自呆在办公室,想想过去一年中我们在实验室里度过的日日夜夜,龙芯1号发布后我们立即马不停蹄地展开龙芯2号的设计甚至在非典期间也不敢松懈。龙芯2号的设计比龙芯1号复杂得多,连续的加班也惨烈得多。在这段日子里,我自己每周的工作时间都在80小时以上,而课题组的不少同学比我还多。多少次为了一个小问题而夜不能寐,多少次为了一个小细节而殚精竭虑;每一个进步的脚印都充满了汗水,每一点进展都是心血的凝聚。竟得到这样一个结果,心里十分难受。

  我和唐志敏十几年的兄弟,基本上是心意相通的,点滴的想法我都跟他讨论,点滴的进展和挫折他也都知道,有些大的决策一起做出。因此,A方案流片的失败,我跟他还是坦坦然的。虽然李老师见到我象没事似的(也许他觉得这样会让我少些压力),但这样让我更不安,本来我希望他骂我一通或者安慰我一下,可惜没有。这段日子我觉得最对不住的还是邓书记。在我们研制龙芯2号的日子里,她给了我们很多的特殊照顾,包括我们的办公环境以及我自己和课题组里员工和学生的生活条件,我一直说书记是我们的活菩萨。因此这段日子我自己都觉得不好意思见她,有时候在路上碰到,我就远远地绕开走。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
1
关闭 站长推荐上一条 /3 下一条