下一章 上一章 目录 设置
8、最后一抽 加滤波器、 ...
-
金复来开始写代码。
显示器上的代码一行一行地长出来,像一条正在被铺设的电路。数字滤波器模块的RTL被他从头到尾写了一遍——在特征提取之前插入一个低通滤波器,把1kHz以上的东西切掉。
“我们的任务是五词唤醒,不是连续语音识别。五个词的声母韵母结构差异足够大,靠低频包络就能区分。牺牲一点高频细节,换取功耗余量,在180nm工艺下是合算的。”
他说过“功耗会增加”,现在数字摆在那里:五十一点八毫瓦。超了一点八。但他现在不想这个。他先把功能跑通,让芯片认得出加了噪声的关键词。
吴越在旁边翻手册,把滤波器的参数一个一个记下来。葛家瑾在看测试板,手里拿着镊子,但没焊东西。
下午四点半,金复来跑完第一次功能仿真。带滤波的芯片读入走廊录音+关键词,输出正确。功耗评估:五十二点三毫瓦。
"比预期还高。"葛家瑾说。
"因为我还没开始压。"
金复来没有停。他把串口波特率从9600降到4800——更低的速度,更少的信号翻转。功耗掉到五十一点八。他又删掉了滤波器模块里所有多余的寄存器和暂存器,把系数精度从16位压缩到12位。功耗停在了五十一点八,没有再往下掉。
吴越看着数字说:"还是超。"
"嗯。"
"怎么办?"
"先发。明天早上收到再说。"
金复来在提交页面上填好了所有参数,把GDSII文件传了上去。提交时间是晚上七点。页面跳转:"订单已提交。夜间生产,将于次日8:00起配送。"
他合上电脑,站起来。窗外的天已经暗了,路灯在梧桐叶之间透出昏黄的光。楼下有人走过,说话的声音模糊成一团。他们关了灯,锁好门,走下九号楼的台阶。
"明天早上见。"葛家瑾说。
金复来躺在床上,闭了眼。代码写完了,芯片送出去了。
第二天早上七点四十五分,247室的灯亮了。三个人比平时话少,葛家瑾把测试板摆好,吴越把笔记本翻开,金复来打开终端。
八点零三分,无人机的声音又从远处传来。葛家瑾走到窗边,取下密封舱,撕开静电袋,把第二枚芯片放进测试座,压杆按下。
"上电。"
吴越打开电源。金复来对着MIC说:"开灯。"
终端输出:开灯。
"关灯。"
关灯。
"音量加。"
音量加。
"音量减。"
音量减。
"静音。"
静音。
五个词全部识别正确。走廊录音加关键词的测试也通过了。功能问题解决了。
葛家瑾把镊子往桌上一扔。"通了!"
吴越盯着屏幕,又看了一遍终端上那五行输出,才把视线移开:"通了。"
金复来没有说话。他靠在椅背上,手指从键盘上拿下来,放在桌沿上。他盯着屏幕上的输出看了几秒,嘴角动了一下——很轻,几乎看不出来,但那是这些天来他脸上第一次出现近似笑容的东西。
葛家瑾站起来走到窗边,推开窗户,对着外面呼了一口气。
葛家瑾转过身来,脸上带着笑,"真的通了。"
"真的通了。"吴越说。
金复来终于开口,声音很轻:"嗯。"
"庆祝一下,"葛家瑾说,"外卖,我请——"
他话没说完。金复来已经重新打开功耗评估报告,手指在触摸板上滑动。
"等一下。"他说。
金复来看到功耗读数跳了出来:51.8mW。
他看着那个数字,没有说话。他把功耗报告拉到屏幕中央。上面清清楚楚地写着功耗51.8毫瓦。实测也超标。超过指标一点八毫瓦。仿真跑出来是51.8,芯片回来上电测出来也是51.8。工具没有骗他们,芯片没有坏,功能全过,什么都对了,只有数字不对。
"差一点八毫瓦。"葛家瑾说。他声音平了,刚才那口气已经落回去了。
"仿真和实测对得上,"吴越说,"说明我们算对了。"
"算对了也不够。"金复来说。
吴越在群里转了一条截图。"华科陈朔队第二版流片归来,准确率九十七,十五个词全过,功耗四十九点三,压线。"
底下有人回:"这届特等奖没悬念了。"
葛家瑾回了个表情,没说话。
金复来看了看,把手机放下。
他们的芯片还卡在五十一点八。华科已经在被称作"没悬念"了。
他把代码打开了。沉默了一会儿,说:"还得再提交一次。"
"第三次?"葛家瑾问。
"第三次。"
"改什么?"
"把滤波器从RTL软实现改成硬连线。不要状态机,不要指令周期,纯组合逻辑输出。"
"你确定能压下来?"
"不确定。"
葛家瑾沉默了两秒。"那如果压不下来呢?"
金复来没有回答。他看着测试座上那枚芯片,功耗数字51.8还亮在屏幕上,像一个钉住了的数字。不是误差,不是偏差,就是51.8。测出来是多少就是多少。
"先改吧。"他说。
他把昨天那个滤波器模块复制了一份,然后把里面所有的时序逻辑全部拆掉——寄存器删掉、状态机删掉、时钟触发的部分全部换成组合逻辑。系数在综合阶段就固化进硬件里,不占用任何时钟周期。
吴越在旁边翻手册,把滤波器的参数一个一个记下来。葛家瑾重新焊了一块测试板,在MIC和ADC之间加了一个RC低通,两颗元件。
"这是干什么的?"吴越问。
"模拟滤波器。"葛家瑾说,"万一硬连线方案还压不下来,就用这个。它不占芯片功耗,外挂的元件,搭在板子上。"
"赛题允许吗?"
"没说不允许。"葛家瑾把两颗元件焊牢了,"但肯定不算加分项。最后再用。"
下午一点五十分,金复来把新模块集成进完整工程,跑仿真——功能仿真全过,走廊录音加关键词全通。跑功耗评估——数字跳出来:47.6mW。
"压下来了。"吴越说。
"压下来了。"葛家瑾说。
金复来看着数字,把综合报告翻了一遍,确认了功耗分布,又跑了一遍仿真,确认了波形。然后他保存了所有文件,关掉了多余的窗口。
"提交。"
他导出GDSII文件,上传佳立创,点了"确认下单"。时间是下午二点零八分。流片六小时,无人机次日早上八点后配送。
"明天早上,"葛家瑾说,"最后一次。"
下午三个人坐在247室里。葛家瑾把那块带模拟滤波器的测试板收进了防静电袋里,放在抽屉最外面。谁都能看到的位置。
"如果明天这个还不行呢?"吴越问。他问得很轻,像是怕把什么东西说破了。
金复来说:"那就用那个。"
"模拟的?"
"嗯。"
"那会不会扣分?"
"不知道。"金复来看着窗外,"至少能交。"
那天晚上他们各自回了宿舍。
最后一天的早上,七点四十分,三个人坐在各自的位置上,窗户开着,晨风从外面灌进来。
八点零二分,无人机的声音从远处传来。
葛家瑾站起来走到窗边。他看到那架无人机从西边飞过来,对准停机坪降落。他取下密封舱,撕开静电袋,取出第三枚芯片,放进测试座,压杆按下。
"最后一颗。"他说。
"上电。"
吴越打开电源。金复来对着MIC说:"开灯。"
终端输出:开灯。
"关灯。"
关灯。
"音量加。"
音量加。
"音量减。"
音量减。
"静音。"
静音。
功耗读数跳出:47.6mW。
五分钟后,他把所有词又测了一遍,又测了一遍。全部通过。47.6,稳定。他又测了一遍功耗,47.6,没变。芯片上没有多余的发热,串口信号干净,波形平稳,像一颗安静的石头。
葛家瑾把探头拔下来,放回架子上。
"过了。"他说。
"过了。"吴越说。
金复来没有说"过了"。他坐在窗边,看着窗外。有蝉在叫,和昨天、前天、备赛那些天一样。但今天他听了一会儿,觉得那个声音终于和芯片共存了。
吴越翻开笔记本,在第一页写了一行字:
"2036年7月29日,省赛,247室,第三枚芯片,47.6mW。"