吴思远的战场没有机油味,只有纸张的霉味和咖啡的酸味。
计算机实验室在地下室,为了恒温恒湿,也为了安全。房间里堆满了打印纸——不是白纸,是带着绿色横线的连续打印纸,一卷一卷像巨大的卫生纸筒。纸上印满了密密麻麻的代码和十六进制数字,那是法国那套旧版eda软件反编译出来的源码。
八十年代的软件没有友好的图形界面,没有详细的文档。有的只是数十万行用晦涩法语注释的汇编代码和fortran程序。团队要做的,是像考古学家一样,从这些故纸堆里挖出核心算法,然后理解它、重写它、改进它。
“吴工,又卡住了。”年轻程序员小陈摘下眼镜,用力揉着太阳穴,“这个矩阵求逆的子程序,用了六层嵌套循环,我跟踪了三天,还是没搞懂它的优化逻辑。”
吴思远走到他的终端前。屏幕上闪烁的绿色字符像一片幽暗的森林。那是vt-220终端,连接着所里那台从美国进口的vax小型机——幸好是两年前买的,不在最新制裁清单上。
“给我看看。”吴思远拉过一把椅子坐下。
他盯着代码看了十分钟,手指无意识地在桌面上敲击。这是他的思考习惯——把代码想象成空间结构,在脑子里构建三维模型。
“这里,”他指着屏幕上的一个循环,“不是优化问题,是数值稳定性问题。法国人用了经典的gas-jordan消元法,但为了处理病态矩阵,他们加了一个自适应参数调整。你看这行——”
他翻出旁边的手写笔记,上面是他一个月来梳理出的算法脉络图:“参数调整的触发条件是基于矩阵条件数的对数变化率,这个阈值……他们设得太保守了,导致很多正常矩阵也被反复调整,拖慢了速度。”
小陈瞪大眼睛:“您怎么知道的?”
“猜的。”吴思远说,“然后验证了十七次。”
他从抽屉里拿出一叠坐标纸,上面是用铅笔手绘的曲线图:“我写了测试程序,用随机矩阵跑了一千次,记录每次的参数调整时机和最终精度。发现百分之七十的调整是不必要的。如果我们把阈值放宽百分之十五,速度能提升三倍,精度损失小于千分之一。”
小陈接过那叠纸。每一张图都画得极其工整,曲线用不同颜色的铅笔标注,旁边是密密麻麻的计算公式和结论。这是最原始的科研方法——用最笨的力气,啃最硬的骨头。
“那……我们改吗?”小陈问。
“改。”吴思远站起身,“但先别直接动源码。我们写个外挂模块,用新算法跑,和原算法对比结果。如果没问题,再整合进去。”
“这样进度会不会太慢?秦总要的一年……”
“磨刀不误砍柴工。”吴思远看向实验室里其他二十几个埋头苦干的身影,“我们现在每一步都必须扎实。这套软件未来要支撑整个国家的芯片设计,不能有任何隐患。”
他走回自己的工作站。桌上除了终端,还有一块巨大的白板,上面画着整个eda软件的系统架构图——这是他两个月来的成果。从最底层的图形渲染引擎,到中间的电路仿真器,再到顶层的布局布线工具,每个模块都被拆解、标注、分析。
白板一角写着一行字:“知其然,知其所以然。”
这是秦念在一次会议上的话。她说,引进技术时我们往往只满足于“能用”,但现在必须做到“懂为什么能用”,甚至“知道怎么让它更好用”。
实验室的门开了,陆野走进来,手里拿着一个牛皮纸档案袋。
“老吴,打扰一下。”
吴思远抬起头,看到陆野表情严肃,心里一沉。他示意陆野到隔壁的小会议室。
关上门,陆野把档案袋放在桌上:“加州大学伯克利分校又发来邀请了,这次规格更高——邀请你作为客座教授,参加为期半年的‘集成电路设计方法学’高级研讨班。包食宿,提供实验室,家属可以陪同,孩子可以入读当地学校。”
吴思远没碰那个档案袋:“条件呢?”
“表面没有条件。”陆野说,“但情报显示,这个研讨班的主办方之一,是刚刚取消和我们合作的eda厂商。他们邀请了全球二十位顶尖专家,你是唯一来自社会主义国家的。”
“诱饵。”
“很香的诱饵。”陆野拉开椅子坐下,“伯克利是世界微电子研究的圣地,去了那里,你能接触到最前沿的技术,建立顶级的学术关系。而且……他们知道你夫人身体不好,特意提到加州的气候和医疗条件。”
吴思远沉默。妻子有慢性呼吸道疾病,西南潮湿的冬天确实让她难受。去年医生就建议,如果可能,最好去干燥温暖的地方休养。
“你怎么想?”陆野问。
“我不去。”吴思远回答得很快。
“别急着回答。”陆野说,“上面让我征求你个人意见。如果你真的想去,我们可以安排,但需要你做些配合……”
“配合什么?当双重间谍?”吴思远笑了,笑容里有点苦涩,“老陆,我要是那种人,当年就不会从美国回来。”
他走到窗边。地下室的窗户很小,外面是地面,只能看到一点天空。十一月的天灰蒙蒙的。
“我父亲是留美归国的第一批专家,1960年回来的。”吴思远说,“那时候条件比现在苦一百倍,苏联专家刚撤走,什么都没有。有人问他为什么回来,他说:‘因为这里需要我。’”
他转过身:“现在这里也需要我。不是需要吴思远这个人,是需要能搞出国产eda软件的那个人。我要是走了,这个项目至少推迟一年。一年时间,在芯片行业意味着什么?意味着又一代技术差距。”
陆野看着他:“但这是个机会。你可以去学习,然后回来……”
“然后呢?”吴思远打断,“带着一身顶尖技术回来,却发现团队散了,项目黄了,因为最懂行的人不在的时候,没人能撑得住?老陆,搞软件不是搞硬件,不是把图纸带回来就能照葫芦画瓢。这是个系统工程,需要持续的领导、决策、纠偏。我一走,这个摊子谁来扛?小陈他们才工作几年?”
他坐回桌前,打开档案袋。里面是精美的邀请函,伯克利校园的照片,阳光灿烂。
“很诱人。”吴思远把邀请函放回去,“但时机不对。等我们的软件搞出来了,等我们不再被卡脖子了,我可以作为平等合作伙伴去交流。而不是像现在这样,像个乞丐去讨饭,或者像个小偷去偷师。”
他把档案袋推回给陆野:“帮我回绝。措辞客气点,就说项目任务繁重,无法脱身。另外——”
他顿了顿:“以我个人名义,向他们索要一些公开的技术资料。不是核心的,就是最新的学术论文、会议论文集。他们如果真想‘交流’,这个应该能给。”
陆野明白了:“试探他们的诚意?”
“对。”吴思远点头,“如果连公开资料都不愿意给,那这个‘研讨班’是什么性质,就很清楚了。”
陆野收起档案袋:“我会处理。不过老吴,你拒绝了这次,可能还会有下次,下下次。他们的手段会升级。”
“那就来吧。”吴思远重新看向屏幕上的代码丛林,“我正好需要点刺激,防止脑子生锈。”
陆野离开后,吴思远回到实验室。小陈还在研究那个矩阵求逆程序,眉头紧锁。
“吴工,”小陈抬头,“我按您的思路写了新算法,测试了五十组矩阵,速度确实快了三倍,但……有三次结果不对,误差很大。”
“数据给我看。”
小陈调出测试结果。吴思远盯着屏幕,手指又开始敲桌子。
五分钟后,他发现了问题:“是舍入误差累积。你的新阈值放宽了,但没相应调整迭代终止条件。在某些极端情况下,算法提前退出,导致结果不收敛。”
他拉过键盘,快速修改了几行代码:“加一个残差检查,如果连续三次迭代的改进小于阈值,就自动收紧参数,再试三次。这样既保证大多数情况下的速度,又避免精度损失。”
小陈看着他敲代码。那些晦涩的指令在吴思远手指下流淌出来,像音乐,像诗歌。这就是顶尖专家的实力——能在复杂的逻辑迷宫中,一眼看到那条隐藏的小路。
修改后的程序重新运行。。
“成了。”小陈长出一口气。
“还没成。”吴思远说,“这只是千万个问题中的一个。继续。”
他回到白板前,拿起马克笔,在系统架构图的“逻辑综合”模块上画了一个圈。这是下一个硬骨头——如何把高级的硬件描述语言,转换成最优的门级网表。
“小陈,叫大家开个会。”吴思远说,“我们讨论一下逻辑综合的算法方案。我有个想法……”
会议开到深夜。二十几个人挤在小会议室里,黑板上写满了公式和流程图。有人提出思路,有人质疑,有人补充。咖啡喝光了就喝浓茶,浓茶喝光了就喝白开水。
凌晨两点,初步方案确定。吴思远分配任务:三个人负责算法核心,五个人负责数据结构,两个人负责性能测试,剩下的人继续啃其他模块。
散会时,小陈走到吴思远身边:“吴工,您说……我们真的能在一年内搞出来吗?我听说国外大公司研发这种软件,动辄几百人、几年时间。”
吴思远收拾着桌上的草稿纸:“知道我们有什么优势吗?”
小陈摇头。
“第一,我们有明确的目标——不是做一个完美的通用工具,是做一个能满足我们特定需求、好用够用的工具。这省去了大量泛化设计的工作。”吴思远竖起一根手指。
“第二,我们有现成的‘教材’——”他指了指那堆打印纸,“虽然难啃,但总比从零开始强。”
“第三,”他竖起第三根手指,“也是最重要的——我们没退路。”
他看向实验室墙上贴着的标语。那是秦念手写的,复印后贴在每个办公室:
“封锁清单就是攻关清单。”
“小陈,”吴思远说,“你知道我最喜欢这套法国软件的哪个部分吗?”
“哪个?”
“它的错误处理机制。”吴思远笑了,“特别粗糙。一旦出错,就弹出一句法语:‘发生了不可预见的错误’,然后直接崩溃。没有任何调试信息,没有日志,没有恢复机制。”
小陈也笑了:“这还喜欢?”
“喜欢。”吴思远说,“因为它真实。那个年代的工程师就是这样——我相信我的算法是对的,如果出了错,那一定是硬件问题,或者你用法不对。这种近乎狂妄的自信,背后是对自己技术的绝对掌握。”
他收起笑容:“我们现在需要的,就是这种自信。不是盲目自信,是建立在扎实工作基础上的自信。我们要做的软件,可能不完美,可能有很多局限,但它必须能在关键时候顶上去,必须能让我们的芯片设计师不再受制于人。”
小陈点点头。他懂了。
“去睡吧。”吴思远拍拍他的肩,“明天七点,继续。”
“您呢?”
“我再待会儿。有个模糊的想法,想把它写下来。”
小陈离开后,实验室里只剩下吴思远一个人。他关掉大灯,只留一盏台灯。灯光昏黄,照着满桌的纸张和屏幕上闪烁的代码。
他打开一个新的文档,开始写设计笔记:
“逻辑综合算法构思——基于布尔代数化简和图论优化相结合的新方法。核心思想:将电路网表视为超图,用启发式算法寻找最优划分和映射……”
笔尖在纸上沙沙作响。窗外,夜色深沉。
在某个遥远的地方,伯克利校园的某间办公室里,一份关于吴思远回绝邀请的报告被打印出来。阅读报告的人沉默良久,在报告末尾批注:
“目标意志坚定。建议调整策略,从外围人员入手。”
新的棋局,已经开始。
而在西南的地下室里,吴思远对此一无所知。他只是埋头写着,写着那些可能改变这个国家芯片产业命运的代码。
直到晨光透过小窗,照进地下室。
新的一天开始了。