2026年研一选FPGA方向,导师让做「存算一体AI加速器」,但组里没人做过,我该先补架构还是先跑通开源RTL?

开放4 回答 91 浏览

刚进组,导师给了个存算一体加速器的方向,说和某国产FPGA厂商有合作。问题是实验室之前都做通信基带,没人碰过存算架构,师兄留下的只有一块高云GW5A开发板。我数电和Verilog还行,但存内计算、CIM阵列这些只在论文里见过。想问问有类似经历的人:第一学期是该先啃ISSCC/JSSC的架构论文,还是先把开源CIM RTL在板子上跑通再说?两条路时间怎么分配才不至于研二开题时两头空?

分享:

4 个回答

  • 逻辑电路学习者

    我建议你先跑通开源 RTL,但别把它当成主线任务,而是当成「建立直觉」的手段。原因很简单:存算一体的论文里,CIM 阵列的收益主要来自「权重不动、输入流动」这类数据复用假设,而这些假设在真实 FPGA 上经常被 BRAM 带宽、DSP 布局和布线延迟打脸。你先把一个 8×8 或 16×16 的 SRAM-based CIM macro 在 GW5A 上综合出来,哪怕只是行为级仿真加简单上板,你会立刻明白论文里的『energy per MAC』到底扣掉了什么、哪些开销被藏起来了。这个过程大概两到三周,别贪多,能跑通一个矩阵乘的 demo 就够。

    接下来再回头啃 ISSCC/JSSC,效率会完全不一样。你会发现论文里反复出现的 ADC 精度、参考电压生成、列间失配补偿,其实都是你上板时踩过的坑的学术化表达。读的时候别按时间顺序读,先挑两三篇综述(比如 CIM 的 survey 类),把架构分类搞清楚:SRAM-CIM、ReRAM-CIM、Flash-CIM 各自的权衡;再顺着引用找一两篇有开源 RTL 或详细电路图的。

    时间分配上,第一学期我建议三七开:前三分之一学期跑 RTL 建立手感,后三分之二以论文为主、RTL 为辅。研二开题前你要交付的不是「跑通了多少个开源项目」,而是一个能说清楚的问题定义——比如「在 GW5A 这种资源受限的 FPGA 上,CIM 阵列的列并行度与 ADC 开销如何折中」。这个定义是跑通了 RTL 又读了论文之后才写得出来的。

    还有一点:你们组和国产 FPGA 厂商合作,这其实是资源。早点问清楚对方给的是工具链支持、IP 授权还是流片机会,这会直接决定你的课题能不能落到真实器件上,而不是停在仿真。你导师说的「存算一体」具体是数字 CIM 还是模拟 CIM,这个差别很大,先问清楚再定路线比较稳。

  • 数字逻辑新手

    先跑开源 RTL,但目的不是「跑通」,而是拿它当尺子去量论文。这个顺序对研一更划算,因为存算一体的核心矛盾不在架构图画得多漂亮,而在「权重静止、输入流动」这套数据复用假设,落到真实 FPGA 上会被 BRAM 带宽、DSP 排布、布线延迟和时钟树一层层打折。你先把一个 8×8 或 16×16 的 SRAM-based CIM macro 在 GW5A 上综合出来,行为级仿真加简单上板就够,两三周别贪多。跑完你会立刻明白论文里的 energy per MAC 到底扣掉了什么、哪些开销被藏起来了。

    有了这个手感再回头啃 ISSCC/JSSC,效率完全不同。你会发现论文反复出现的 ADC 精度、参考电压生成、列间失配补偿,其实就是你上板时踩过的坑的学术化表达。读的时候带着问题读:它的阵列多大、权重位宽多少、ADC 放在哪、外围占了多少功耗,而不是从头顺读。

    时间上,第一学期可以前三分之一跑 RTL 建直觉,中间三分之一精读五六篇代表性论文并做对比表,最后三分之一把两边合起来,找一个你能改的小点,比如失配补偿或 ADC 量化策略。研二开题时你手里有板级数据、有论文脉络,就不会两头空。关键是别把跑 RTL 当终点,也别把读论文当背书。你导师和厂商的合作具体偏器件还是偏系统,会决定你该往哪边多压一点,这个最好早点问清楚。

  • 嵌入式小白

    我的建议是两条腿走,但主次分明:第一学期主线放 RTL 复现,论文作为副线并行。原因是你们组没人做过,你最大的风险不是「不懂架构」,而是「不知道自己不懂什么」。架构论文读起来很爽,但存算一体的很多设计取舍只有在综合、布局布线之后才会暴露,比如你按论文搭一个 crossbar,仿真没问题,上板发现时序根本收敛不了,这时候你才知道论文里那句「轻量外围电路」背后压了多少工作。

    所以具体做法可以这样:先用两三周把开源 CIM 或类似的脉动阵列 RTL 在 GW5A 上跑通一个矩阵乘 demo,不用追求性能,能上板看波形就行。这一步会给你一个「成本感」。然后带着这个成本感去读论文,重点看三类:阵列规模与精度怎么权衡、ADC 和 DAC 怎么摆、失配和噪声怎么补偿。读的时候做一张表,横向对比五六篇,比通读二十篇有用。

    到学期后半段,把两条线合起来,选一个你能动手改的小切口,比如换一种量化方式或者加一个简单的补偿逻辑,作为开题的技术锚点。这样研二开题时你既有板级结果,又有文献定位。别一开始就扎进 ISSCC 全集,那容易变成文献综述式空转。你们和厂商合作偏哪块,也值得早点摸清楚。

  • 芯片爱好者小李

    先说结论:第一学期别把这两件事当成二选一,真正要防的是「论文读了一堆,但不知道哪句是坑」。所以我的建议是拿开源 RTL 当探针,用它去逼出问题,再带着问题读架构论文。

    为什么不是先啃论文?因为你现在的状态是「数电和 Verilog 还行,但 CIM 只在论文里见过」。这个阶段读 ISSCC/JSSC,最大的问题是缺乏成本感。论文里写「采用 8bit ADC 做列读出」,你会觉得就是个模块;但你真在 GW5A 上试着搭一个 crossbar 加读出通路,就会开始纠结:ADC 放几列共用、采样率够不够、BRAM 带宽撑不撑得住、时序能不能收敛。这些纠结才是你后面读论文的抓手。没有这层体感,读论文容易变成背结论,记住「存算一体能效比高」,但说不清高在哪、代价是什么。

    具体怎么排时间。前四到六周,目标定得很低:找一个开源的 SRAM-based CIM 或脉动阵列 RTL,规模别贪大,8×8 或 16×16 就够,在 GW5A 上跑通一个矩阵乘,行为级仿真加简单上板看波形。这一步不追求性能,也不追求和论文对齐,纯粹是让你摸一遍综合、布局布线、时序报告、资源占用。做完你手里就有了几个真实数字:LUT 用了多少、DSP 用了多少、最高能跑到多少兆。这几个数字非常值钱,后面读论文时你可以拿它去对照。

    然后从第六周开始转主线读论文。这时候读法要变,不要通读,而是横向对比。挑五六篇方向接近的(比如都是 SRAM-based、都是做推理),做一张表:阵列规模、权重位宽、输入位宽、ADC 精度和位置、有没有做失配补偿、能效数字是在什么条件下测的。你会发现同一类架构,差别往往就在读出电路和补偿策略上,而这些恰恰是你上板时踩过或差点踩到的坑。

    至于研二开题两头空的风险,根子不在顺序,而在你有没有一个能说清楚的「验证路径」。开题报告里导师和评委最想看到的不是你复现了哪篇论文,而是你打算怎么验证你的想法:用什么板子、什么规模的阵列、拿什么指标衡量、和谁比。你前六周跑通 RTL 的经历,正好能让你把这条路径写得具体,而不是空谈架构。

    还有一个现实提醒:你们组之前做通信基带,师兄只留了一块 GW5A,这意味着你大概率没有现成的测试环境和对比基线。这种情况下,第一学期能交付一个「可复现的最小 demo 加一份论文对比表」,比硬啃二十篇论文要稳得多。

    你导师说的那个国产 FPGA 合作,具体是要求你最后上板验证,还是只要仿真加报告就行?这个边界会直接决定你第一学期该往哪边多压时间。

登录后可在本页底部提交回答

提问者

嵌入式入门生查看主页
浏览「其他」

描述场景与已尝试方案,更容易获得有效解答

相关问题

同分类

提问建议

  • 标题写清核心疑问,避免「求助」「请问」等空泛用语
  • 正文补充环境、版本、报错信息或截图
  • 先搜索本站是否已有相近问题,减少重复提问
  • 若与课程相关,请标明课时或章节便于讲师定位