又过完了忙碌的一学期,上学期选了十门课,这学期三门,为啥忙呢?这学期又额外参加了两个比赛,集创赛和复微杯,而且开始进组干活,每天玩杂耍,游走在这四个项目中:

  • ADC课程实践
  • 集创赛
  • 神经网络量化
  • 复微杯

上周终于结束了复微杯的答辩,一身轻松,快乐地打了一场网球和羽毛球,今天还被拉壮丁踢了场足球,运动月又要到了。

一、课程设计

系里开了门集成电路实践课,需要完成从电路设计到版图,并最终流片的全流程。课程比较硬核,主要是参考资料比较少,模拟IC又非常靠经验,别人手把手带能进步飞快,自己摸索基本凉凉。

这部分技术方面的详细介绍见之前的博文,回想一步一步画出版图,从基本单元到小模块,到大模块、到总版、到外围IO,静静地在高精尖“创作”,还是挺怀念的。

二、集创赛

集创赛和金哥、钦哥组队,完成RISC-V SoC协处理单元的开发,做了一个具有五种加密模式三种密钥长度的AES加速器,实现了300倍的加速,整个项目还是非常完整的,最后希望呈现音频数据实时的加解密效果,但没安排好时间,没能实现,这大大影响了最终的比赛结果。

不过付出总是有回报,整个过程也学到很多,金哥的ppt和演讲确实很棒,对通信接口的理解很有一套;钦哥的硬件写得也确实好,ddl前夜还表演了压缩面积又不影响功能的魔术,大大减轻了我这个测试工人的工作量。

此外还解决了好多莫名奇妙的工程性问题,项目和课程的区别在于,不知道完成项目的知识边界在哪,为了实现功能,需要“不择手段”,抓到老鼠的才是好猫。

三、复微杯

集创赛初赛之后,又和金哥、大峥、轲翔一起冲了一波复微杯,做神经网络的硬件加速,这也是自己一直想做的,AI的洪流滚滚向前,软件优化硬件满足不了需求了,硬件加速是必经之路。

开始的进度很快,网络量化和硬件代码都完成了仿真,本想一遍通过板子测试,进一步用更牛逼的网络,但事与愿违,上板之后,结果惨不忍睹,连输入信号都出错,更不用说中间结果了。一开始真不知道问题在哪,硬件稍作改动就要重新综合布线,短则四小时、长则六小时。幸好可以用ila抓波形,但复旦微EDA的UI界面和vivado相比很不人性:

  • 信号不能移动上下位置
  • 还不能自定义成捆查看
  • 多比特信号必须在添加时排好顺序,否则显示对不上
  • 界面没有全屏键,要自己调大小

真是“哀其不幸,怒其不争”,虽然技术上比不上vivado,软件上的易用性不存在卡脖子技术吧。

最后猜测是布线问题,大峥和轲翔的双壁组合又完成了一版可以随意添加寄存器插流水的版本,终于在答辩前一周得到了基本正确的结果,这个大boss足足整了我们一个月。定睛一数,创建的工程有27个,每个工程综合布线不少于一次,每次5小时,几次想放手不干,好在卷王队友们不放弃,顺利完赛,也算是有始有终。

比赛心得

包括去年的EDA精英挑战赛,算上完成了三个比赛,也基本回答了当时备考时的问题:作为学过数电模电、数集模集、verilog的准THer,为啥连集成电路比赛的赛题都看不懂,是我太菜还是别人太强?

现在大概知道是怎么回事了,一般这些赛题后续都有更详细的说明,还有demo。我们只需要在它的基础上拼拼凑凑,一块一块分开实现,有现成模块更是如虎添翼。比赛主要考察的还是“搜索”,“整合”能力,工程性较强,不需要做从0到1的工作。

但要顺利完赛还是没那么简单,队长需要严格把控时间节点,尽量给ddl留出足够裕度,否则很容易翻车。团队里面需要主动推进度的人,通常是队长扮演,得把外围七七八八的环境、装备准备好,然后明确接下来的任务,开始分工,相互push进度,这样互相接力才能形成合力,不然就是“三个和尚没水喝”。几个人为了相同的目标互相进步、互相成就,内心会非常满足。

四、课题组

这学期在课题主要做的是神经网路算法方面的工作,从零开始学习那些经典的分类网络,后面还学了目标检测网络,现在在用语义分割Unet做实际的工程项目。github仓库已经有120个了,我只是代码的搬运工,期间碰到很多恶心的环境配置问题,也都一一克服了。

毕竟最后还是要做硬件的,下学期的重点应该放在数字电路,恰好遇见chisel这个强大的开发工具,说不定可以在忆阻器外围数字电路上做一些工作。接下来得好好科研,争取做一些从0到1的工作。明年的今天会是忙碌的秋招,得为自己增加更多筹码呀。

后记

为学日益,为道日损。

学习这东西也挺容易上瘾,bug就像一个个大怪小怪,打完之后及时反馈,继续杀,碰到大boss可以缓一缓,找外援或者换策略,游戏结束时已天昏地暗。

隐隐约约感觉这种状态有问题,自己越来越不能放空安静一天了。

20210913

标签: 回顾

添加新评论