12年2月,鹏城。星火科技EDA联合实验室里,气氛紧张得如同绷紧的弓弦。周振的目光,死死地锁在屏幕上那不断滚动的日志文件上,心脏随着每一行代码的执行而起伏。
自从上次技术启动会后,整个EDA团队便投入了一场史无前例的攻坚战。他们的目标,是打通林星石定义的那个最小可用流程(MVP),让国产EDA工具链,第一次真正地“闭环”。
周振作为验证与基准组的负责人,承受着巨大的压力。他和他团队的职责,是为整个流程的质量把关。每一个环节的疏漏,都可能导致最终的失败。
“时序还是收不拢,建立时间(Setup Time)违例太多。”算法组一个年轻工程师的声音,带着一丝疲惫和沮丧。
这是他们遇到的第一个硬骨头,时序收敛。在65nm这个节点上,时序问题被无限放大。信号在芯片内部传输的延迟,变得极其敏感。任何一点微小的偏差,都可能导致整个芯片无法在预定的时钟频率下正常工作。
会议室里,算法组和引擎组的核心成员围坐在一起,白板上画满了密密麻麻的逻辑图和时序路径。
“我们已经尝试了管脚重定和缓冲插入,效果不明显。”
“门级重定时也做了,但改善有限。感觉像是陷入了局部最优解。”
周振听着大家的讨论,眉头紧锁。他知道,这不是算法本身的问题,而是缺乏对实际场景的精细化考量。
“我们能不能换个思路?”他开口道,声音有些沙哑,“我们现在是把所有场景(Corner)和模式(Mode)都放在一起优化,但实际上,不同的场景和模式之间,约束是不同的,甚至可能是冲突的。我们能不能做到场景与模式的一致性优化?”
他的话,像一块石头投进了平静的湖面。
陈默,这位以严谨着称的技术总监,眼前一亮:“老周你的意思是,让我们在优化时,能够感知到当前的场景和模式,然后应用不同的约束和权重?”
“没错。”周振点头,“比如,在最差的慢速工艺角(Slow Corner)下,我们应该更关注时序;而在最好的快速工艺角(Fast Corner)下,我们则要小心保持时间(Hold Time)违例。我们的工具,必须要有这种‘智能’。”
这个提议,为算法组打开了一扇新的大门。他们开始重构时序引擎,引入了多角度优化的策略,让工具在执行管脚重定、缓冲插入和门级重定时等操作时,能够根据不同的场景和模式,做出更精准的决策。
几天后,当新版本的时序优化器上线时,结果令人振奋。原本密密麻麻的红色违例报告,一下子清爽了许多。时序收敛,这个最大的拦路虎,终于被他们驯服了。
紧接着,第二个难题,布线拥塞,又摆在了他们面前。
随着芯片规模的急剧增加,数百万甚至上千万的逻辑门,像密集的建筑群一样挤在小小的硅片上。连接这些逻辑门的金属导线,就像城市的道路网络。如果规划不当,就会出现严重的“交通堵塞”,也就是布线拥塞。
“我们现在的布线器,太‘贪心’了。”负责布线算法的工程师抱怨道,“它总是倾向于走最短路径,结果导致中心区域的布线资源被迅速耗尽,而边缘区域却很空闲。”
“这是典型的局部最优问题。”陈默一针见血地指出,“我们需要一个更具全局视野的路由策略。”
这一次,团队从图论中找到了灵感。他们将整个布线区域,抽象成一个巨大的图。每一个布线资源,都成为图中的一个节点。每一条可能的布线路径,都成为图中的一条边。
“我们可以引入一个拥塞成本模型。”一个刚毕业不久的博士生,大胆地提出了自己的想法,“在图搜索的过程中,我们不仅要考虑路径的长度,还要考虑路径所经过区域的拥塞程度。越拥塞的区域,成本越高。”
“基于这个模型,我们可以进行迭代式的路由。”他越说越兴奋,“第一轮,我们先快速地完成一个全局的、不考虑拥塞的布线。然后,我们根据拥塞成本模型,识别出最拥塞的区域,把这些区域里的部分连线拆掉,重新进行路由。如此反复迭代,直到整个芯片的拥塞度达到一个可以接受的水平。”
这个基于图搜索与拥塞成本模型的迭代路由算法,听起来有些天方夜谭。但在星火,没有什么是不可能的。
算法组的工程师们,在陈默的带领下,开始了新一轮的编码奋战。他们废寝忘食,将这个复杂的算法,一步步地变成了现实。
当新的布线器第一次运行时,所有人都屏住了呼吸。屏幕上,那代表着布线拥塞度的热力图,在经过几次迭代之后,颜色从刺眼的红色,逐渐变成了温和的绿色。
成功了!
最后一个,也是最琐碎的难题,是DRC规则的解析。
本小章还未完,请点击下一页继续阅读后面精彩内容!