← Novel

Dominating Silicon Valley Since 2000

Chapter 23 / 80

‹›

Chapter 23

Dominating Silicon Valley Since 2000

🌐 Read this in English — free

The first 50 chapters are free to translate. Create a free account to read the English version.

Sign in — it’s free
🌐Novel TranslateRead raw Chinese web novels in instant English — free Chrome extension.Add to Chrome

何晓天说一周半,实际上花了整整两周。

手写进位控制器的难度不在于逻辑设计,逻辑本身他在第三天就画完了,闭着眼睛都能背出来。真正的难点在于跟综合工具斗智斗勇。综合工具像个自作聪明的实习生,每次他手动指定了某个宏单元的映射方式,工具就会在另一个完全不相干的模块上“优化”出一个新的毛刺。

“我特么是在写RTL,不是在做外科手术。你能不能别动我的代码?”

何晓天对着屏幕骂了一句,语气里带着两周以来积累的全部怨气。

骂完之后他把键盘一推,整个人往椅背上一靠,眼镜推到额头上,闭着眼睛揉了揉鼻梁。桌上那杯咖啡是四个小时前泡的,表面上已经结了一层若有若无的油膜。

阿米特从旁边工位探过头来,手里还捏着半块巧克力饼干:“你刚才那句话是不是又新学了一个词?外科手术,这个我没教过你。”

“我跟林远舟学的。”

“你别什么都甩锅给我。”

林远舟的声音从实验室另一头飘过来,头都没抬。他正在调加密引擎模块的时序约束,屏幕上的波形图密密麻麻地叠了四五层,每一层代表一种不同的工艺角。加密引擎的逻辑已经跑通了,AES-128的加密解密循环在功能仿真上完美通过,但一上FPGA原型就开始闹鬼——时钟频率稍微拉高一点,某个S盒替换的中间结果就会出错。

不是逻辑问题,是时序问题。加密算法的S盒替换要用到一个查找表,查找表放在Block RAM里,Block RAM的访问延迟在高温工艺角下会多出零点几纳秒。就这零点几纳秒,刚好踩在下一级触发器的建立时间边界线上。

“温度一高就跪,我这个加密引擎跟你那个进位控制器差不多,都是硬骨头。”林远舟把示波器截图放大,指给走过来的何晓天看,“你看这个毛刺——所有毛刺都长一个样。温度升了之后,Block RAM的访问延迟超过了建立时间的窗口,读出来的数据刚好错一位。”

“加密引擎修起来比你那个简单一点,加一级流水线寄存器就行。”

“那加密吞吐量会降百分之二十。”

“百分之二十总比流片回来是废铁强。”

两个人对视了一秒,然后同时用一种过来人的眼神看了阿米特一眼。阿米特正举着半块饼干停在嘴边,被他们看得莫名其妙:“你们看我干嘛?又不是我的锅,我还没开始测呢,压力现在全在你们那边。”

“你是测完之后最可能崩溃的那个人。”何晓天说完把眼镜从额头上拨下来,重新打开被他骂过的综合工具,开始写第十四版进位控制器的约束文件。

阿米特把饼干塞进嘴里,含含糊糊地说了句“行吧你们加油”。然后转头继续整理他的验证报告,白板上又多了两张覆盖率表格,都是之前跑通的模块。还差三张就贴满整面白板了。

“快了,再贴三张就够请你们吃咖喱了。”他拍了拍手上沾的饼干屑,表情认真得不像在开玩笑。

当天晚上,何晓天终于把进位控制器的约束文件搞定了。

他按下综合按钮的时候整个实验室都安静下来。阿米特停下了键盘,林远舟从加密引擎的波形图里抬起头,三个人的目光全盯在屏幕上那个进度条上。绿色的进度条一格一格地往前爬,每到一格的边界就卡一下,像一个犹豫要不要继续往前走的蜗牛。

“别报错别报错别报错。”何晓天嘴里念叨着,声音小到像是在自言自语。

进度条爬到百分之九十五的时候顿了一下。何晓天手指不自觉地抓紧了鼠标,指甲盖都有点发白。百分之九十六。百分之九十七。百分之九十八。

百分之百。

没有红色报错窗口弹出来。

“卧槽。”何晓天整个人往椅背上一瘫,眼镜歪到一边都没顾上扶,“过了。十四版,终于过了。”

林远舟站起来走到他工位后面,看了一眼综合报告。进位控制器的逻辑单元使用量比综合工具的原始方案多了将近一半——面积是大了,功耗也涨了一些,但时序路径上所有潜在的毛刺点都被寄存器隔开了。干净,稳定,从源头上把问题解决了。

“面积比预算超了不少。”

“再优化周期来不及。先保证功能正确,面积的事后面再说。”

林远舟点头。何晓天这个判断是对的。FPGA原型验证阶段最重要的是跑通功能,面积和功耗的精细优化可以放到流片前的那版网表里再做。现在纠结百分之十几的面积增量,属于典型的过早优化,纯属浪费时间。

阿米特端着他那个印着“I debug therefore I am”的马克杯走过来——这是他找布莱恩定制的,配色用的是荧光橙,跟布莱恩的发色保持高度一致。他喝了一口杯子里黑得像机油一样的咖啡,用一种混合着兴奋和不敢置信的语气说了一句:“你俩的毛刺都修完了?那明天是不是该我上场了?”

“对,”林远舟拍了拍他的肩膀,“从明天开始,你是主角。”

阿米特沉默了一秒,然后端着马克杯回到自己工位上,打开了测试计划文档。他翻到的时候吹了声口哨。那声音不大,但何晓天和林远舟都听出来那声口哨里的意味——不是轻松的口哨,是一个测试工程师看到复杂测试用例时那种“这下有活干了”的口哨。

“进位控制器加加密引擎,联合验证的测试用例大概有两百组,”阿米特头也没回,手指已经在键盘上噼里啪啦地敲起来了,“你们最好祈祷别再有第三个毛刺。再出一个我就让布莱恩把他那瓶号称能消毒一切的辣椒酱拿来抹在开发板上。”

“那个辣椒酱上次把我嘴唇都辣肿了,你别跟我提它。”何晓天摸了摸自己的嘴角,似乎是肌肉记忆在帮他回忆当时的惨状。

“所以你更应该在写代码的时候少出bug。”

“那不是bug!是综合工具的硬核库有缺陷!”

“你每次都这么说。”

“因为每次都是真的!”

林远舟没参与这场抬杠,只是靠在椅背上看着白板上越贴越多的覆盖率表格。Atlas正在从一行行RTL代码变成示波器上实实在在的波形。还差三步,就能跑通完整的FPGA原型。

他给王教授发了条消息,只有一行字。

“下周跑完整原型,有空来看。”

这次王教授的回信更快。十分钟。

“几点?”

本书首发来自 17K小说网 ,第一时间看正版内容!

作者寄语:

🌐Novel TranslateRead raw Chinese web novels in instant English — free Chrome extension.Add to Chrome
‹ PreviousChaptersNext ›