林轩的命令如同投入平静湖面的一颗石子,在启明芯内部,尤其是在“启明二号”项目组和“盘古”EdA项目组之间,激起了层层涟漪。让一个尚处于原型阶段、未经大规模验证的内部EdA工具,直接应用于关乎公司核心利益的下一代主力芯片设计中,这在任何一家成熟的半导体公司看来,都是近乎疯狂的冒险。
陈家俊最初接到林轩的通知时,也是满腹疑虑。作为“启明二号”的项目总负责人,他肩负着巨大的压力,必须确保这款芯片按时、高质量地完成设计并成功流片。任何可能导致项目延期或失败的风险,他都必须慎之又慎。
“林生,这个……风险是不是太大了?”在一次只有林轩、陈家俊和李志远的闭门会议上,陈家俊坦诚地表达了自己的担忧,“‘启明二号’的设计本来就非常复杂,时间又这么紧。万一‘盘古’引擎不稳定,或者结果不理想,耽误了进度,这个责任……”
“家俊,我理解你的顾虑。”林轩拍了拍他的肩膀,“但你想想,如果我们这次成功了,意味着什么?”
他没有等陈家俊回答,继续说道:“这意味着,我们的芯片设计效率可能会有质的提升!意味着,我们可以在更短的时间内,设计出性能更好、成本更低的芯片!意味着,我们拥有了一项竞争对手无法轻易复制的核心竞争力!更意味着,我们朝着摆脱国外EdA工具依赖、实现真正自主可控的目标,迈出了关键一步!”
“风险是有的,但收益更大!”林轩的目光灼灼,“我相信志远团队的能力,我也相信你们后端团队的学习和适应能力。我们不要求一开始就用‘盘古’来做全芯片的p&R,先从一个模块开始尝试。失败了,我们损失的只是一点时间,大不了切换回商业工具重做;但如果成功了,那将是战略性的胜利!”
李志远也适时补充道:“陈总,林总,请放心。我们过去一周对p&R引擎进行了密集的加固测试和优化,修复了几个已知的稳定性问题。虽然还不能保证100%完美,但在特定类型的电路上,处理效率和结果质量是得到验证的。我们会派最有经验的工程师,全程一对一支持你们的后端团队,确保他们能够顺利上手,并及时解决遇到的任何问题。”
林轩看着陈家俊,语气诚恳:“家俊,我知道这让你承担了额外的风险和压力。但启明芯要发展,就不能永远走别人走过的老路。我们需要一点冒险精神,需要一点对我们自己技术实力的自信!这件事,我希望你能全力支持!”
陈家俊看着林轩坚定的眼神,又看了看李志远充满期待的表情,最终咬了咬牙:“好!林生,我干了!就按您说的,我们挑一个合适的模块,让‘盘古’来试试!”
决策一旦做出,执行便雷厉风行。
经过“启明二号”后端团队和“盘古”团队的联合评估,他们最终选定了USb 1.1控制器的核心数字逻辑部分,作为“盘古”p&R引擎的第一个“实战演练场”。这个模块的选择颇有讲究:它的规模适中(大约十万门左右的逻辑),复杂度足够高(包含多种时钟域和相对复杂的控制逻辑),而且时序要求比较严格(需要满足USb协议的精确时序),但又并非整个芯片最核心、最不能出问题的部分(比如ARm内核或dSp)。用它来“试刀”,既能检验“盘古”的真实能力,又能将潜在风险控制在可接受范围内。
负责这个模块后端物理实现的是一位名叫张伟的年轻工程师,他是去年刚从交大微电子专业硕士毕业加入启明芯的,虽然经验不算丰富,但学习能力强,对新技术充满热情,也是陈家俊重点培养的后端骨干之一。
接到这个特殊的任务,张伟既兴奋又紧张。兴奋的是能够率先使用公司自研的“秘密武器”,紧张的是怕自己搞砸了,辜负了领导的信任。
按照流程,张伟首先尝试使用公司购买的、业界主流的cadence SE工具来对USb控制器模块进行布局布线。他按照标准的流程,导入网表(Netlist)和时序约束(Sdc),设置好工艺库文件和设计规则(dRc\/LVS Rules),然后点击了“运行”。
SE工具开始勤勤恳恳地工作,屏幕上不断跳动着布局、布线的日志信息。然而,几个小时后,第一次运行结果出来了——不理想。时序报告(timing Report)显示,有十几条关键路径存在建立时间违例(Setup Violation),最大负时序裕量(Negative Slack)达到了近1纳秒(ns),这意味着芯片无法稳定运行在目标频率下。而且,布局后的模块面积也比预期的要大一些。
“看来这个模块的时序确实挺紧的。”张伟皱了皱眉,开始尝试调整SE的各种参数设置,比如提高优化努力程度(Effort Level)、尝试不同的布局策略、手动调整时钟树等,然后重新运行p&R。
第二次运行,时间更长了,花了将近六个小时。结果出来,时序有所改善,负时序裕量减少到了0.5纳秒,但仍然没有完全收敛。面积也没有明显减小。
“再试试加buffer插Repeater?”张伟喃喃自语,准备进行第三次尝试。这在复杂的后端设计中是很常见的,一个模块反复迭代优化十几次甚至几十次都不足为奇,非常耗时耗力。
就在这时,“盘古”团队派来支持他的资深工程师老吴走了过来。“小张,要不……试试用‘盘古’跑一下?”
张伟犹豫了一下,点了点头。
在老吴的指导下,张伟开始学习使用“盘古”p&R引擎。正如李志远所说,这个内部工具目前还没有图形用户界面,所有操作都需要通过命令行和脚本来完成,显得有些“简陋”和“原始”。导入设计、设置约束的过程也比商业工具繁琐一些。
“这……能行吗?”张伟心里嘀咕着,但还是按照老吴的指点,仔细地设置好各项参数,然后敲下了运行命令。
“盘古”引擎开始运行。出乎张伟意料的是,它的运行速度非常快!屏幕上的日志信息滚动得飞快,各种布局、布线阶段的优化信息不断闪现。仅仅过了一个多小时,“盘古”就提示任务完成了!
“这么快?!”张伟简直不敢相信自己的眼睛。
他迫不及待地打开了生成的版图文件和时序报告。
版图文件在专门的查看工具中打开,布局布线的结果看起来……似乎还挺规整?至少没有出现明显的dRc(设计规则检查)错误。
然后,他打开了时序报告。当看到报告结果的那一刻,张伟的嘴巴惊讶得张成了o型!
“wNS(worst Negative Slack,最差负时序裕量)……是……是正的?!+0.23纳秒?!”这意味着所有路径的时序都满足了要求,而且还有一定的裕量!
“tNS(total Negative Slack,总负时序裕量)……是0!没有时序违例!”
“面积呢?面积怎么样?”老吴也凑了过来,紧张地问道。
张伟快速查看了面积报告,对比了一下之前用SE跑出来的结果。“面积……面积好像还小了大概3%左右!”
成功了!一次成功!
仅仅用了一个多小时,“盘古”p&R引擎不仅成功完成了这个连商业工具都需要反复迭代优化的复杂模块的布局布线,而且在时序和面积这两个关键指标上,都明显优于商业工具的结果!
“我的天……这……这太不可思议了!”张伟激动得有些语无伦次。他立刻将结果汇报给了陈家俊。
陈家俊得到消息后,第一时间赶了过来,亲自检查了版图和报告。当确认结果无误后,这位一向沉稳的项目负责人也忍不住用力挥了一下拳头!“好!太好了!志远!你们的‘盘古’,真是我们的‘秘密武器’啊!”
李志远也激动不已,但他保持着科学家的严谨:“陈总,这只是在一个模块上的初步成功。我们还需要进行更全面的验证,包括LVS(版图与原理图一致性检查)、dRc以及后续的寄生参数提取和后仿真,确保结果的正确性和可靠性。”
接下来的两天,张伟和“盘古”团队紧密配合,对“盘古”生成的版图进行了各种严格的验证。结果显示,LVS完全一致,dRc没有致命错误(只有一些需要手动修复的小问题),寄生参数提取后的后仿真(post-Layout Simulation)也确认了时序的正确性。
这次成功的“实战演练”,在启明芯内部引起了巨大的震动!
芯片设计团队的工程师们,尤其是后端工程师,亲眼见证了自研EdA工具带来的实实在在的好处——更高的效率,更好的结果!这极大地增强了他们对“盘古”项目的信心和期待。
而对于林轩来说,这次成功验证了他力排众议、坚持投入自研EdA战略的正确性。他知道,“盘古”目前的能力还很有限,距离完全取代商业工具还有很长的路要走。但这个“零的突破”,意义非凡!它证明了启明芯不仅能设计出优秀的芯片,更有潜力掌握设计芯片的“母机”——EdA工具!
林轩立刻做出决定:在“启明二号”后续的设计中,选择更多合适的模块,继续试用和打磨“盘古”p&R引擎,让EdA研发与芯片设计形成更紧密的迭代和协同效应。
EdA的赋能,不再仅仅是停留在ppt上的战略构想,而是开始真真切切地为启明芯的产品研发注入新的动力。“启明二号”这艘承载着巨大期望的“凤凰号”战舰,在拥有了“盘古”这件初露锋芒的“秘密武器”之后,它的航程,似乎变得更加值得期待了。