我们三个大三学生组队参加2026年集创赛,准备选‘RISC-V CPU设计’赛题。我是队长,负责顶层架构和Verilog编码,队友A擅长数字电路仿真,队友B懂一些C语言和汇编。我们纠结是侧重乱序执行(提升性能但难度大)还是低功耗优化(相对简单但可能不够亮眼)。本科组的话,哪个方向更容易拿奖?还有,团队如何分工才能不做重复工作?备赛时间只有三个月,有没有推荐的参考设计?
2026年,全国大学生集成电路创新创业大赛(集创赛)选‘RISC-V CPU设计’赛题,团队如何高效分工?侧重乱序执行还是低功耗优化更适合本科组?
提问
回答 5

作为过来人,我建议你们本科组还是优先考虑低功耗优化。理由很简单:三个月时间太紧了,乱序执行涉及重命名、ROB、发射队列这些超深流水线结构,本科生很难在这么短的时间内调通,而且一旦出bug几乎没法定位。你们队长的Verilog功底如果只是‘擅长’,那大概率会被乱序碾碎。不如走低功耗路线,从门控时钟、操作数隔离、多电压域这些角度入手,设计一个5级或7级顺序双发射的RISC-V核,然后针对性做功耗优化,这样设计复杂度可控,而且功耗分析报告写进文档里非常直观。
分工上,队长你负责顶层架构和核心流水线模块的RTL实现,队友A负责搭建仿真环境,写testbench和自动比对脚本,把RISC-V官方测试集跑通,同时用VCS或Modelsim做功耗分析。队友B可以写一些简单的C程序放到核上跑,验证功能正确性,同时帮忙整理设计文档和PPT。记住:不要三个人都去写模块,那会冲突得一塌糊涂。推荐参考芯来科技的开源蜂鸟E203,虽然是顺序单发射,但功耗优化做得很好,你们可以在此基础上做双发射扩展。

我是去年参加集创赛RISC-V赛题的,拿了个赛区二等奖。三个月的坑我帮你们踩过一半了。首先明确一点:本科生组想靠纯乱序去冲国奖基本是送人头,因为评委看的是完整度和创新点,而不是你实现了多么牛的微架构。乱序执行需要你们三人至少有两人精通计算机体系结构,而且要在两个月内把写回级、提交级的各种冒险处理搞定,真的很难。
建议你们选一个‘折中赛道’:侧重顺序双发射+动态分支预测+低功耗优化。这样既有性能提升(双发射),又有技术亮点(比如你们可以自己设计一个gshare分支预测器),同时功耗优化可以贯穿整个设计。分工可以这样:队长写顶层和流水线数据通路,硬核实现双发射的取指、译码,以及写回和提交逻辑。队友A除了仿真,还负责写分支预测器模块,这个模块独立性强,很适合他练手。队友B负责写汇编测试程序和Makefile脚本,再做一个简单的bootloader功能,把你们的设计封装成一个可展示的demo。推荐参考:SERV、PicoRV32开源项目,结构简单好读。另外,你们一定要留出最后两周专门写设计报告和录制演示视频,这部分占分比很高。

作为参加过两届集创赛的老油条,我建议你们不要被‘乱序’或者‘低功耗’这个二选一迷住。评委真正看的是‘完整性’和‘自洽性’。你们三个人的配置其实很适合做一个‘中规中矩但样样齐全’的顺序单发射RISC-V核,然后在此基础上搞两个亮点:一是硬件乘除法器,二是动态频率缩放。前者能跑分,后者属于低功耗领域的‘高级玩法’,而且实现难度远低于乱序。
具体分工建议:队长掌握全局,把RV32I基础指令集的实现包下来,尤其是load/store、分支、异常处理这些容易出坑的部分。队友A负责仿真和覆盖率分析,用verilator做快速仿真,同时把协仿真环境搭起来,让你们的RTL可以和C模型比对。队友B负责写C语言基准测试(比如Dhrystone、CoreMark)并移植到你们的核上,同时用Python脚本自动提取功耗和面积数据。三个月的时间节点:前六周完成基础核,第三周调通,最后两周打磨文档和视频。推荐参考:lowRISC的Ibex核,文档极好,而且在功耗优化方面有现成案例可以借鉴。最后提醒一句:千万不要三个人同时写同一个模块,否则版本管理会爆炸,用Git分支隔离各自的任务。

你们大三做RISC-V CPU设计,三个月时间其实挺紧的。我是去年参赛的,当时选的也是这个赛题,拿了个省二。我的建议是:本科组千万别碰乱序执行,那不是三个月能啃下来的。乱序执行涉及重排序缓冲(ROB)、保留站、寄存器重命名这些模块,光一个分支预测器调优就能耗掉一个多月,而且仿真验证的坑特别多。你们三个人的配置,队长写Verilog、队友A做仿真、队友B搞C/汇编,这分工其实很适合走低功耗优化路线。
低功耗方向不是说不亮眼,而是看你怎么做。你可以做动态电压频率缩放(DVFS),或者门控时钟加数据路径的握手交互,甚至做多级流水线的动态关闭。这些在本科组里属于有技术深度但可控的题目。而且低功耗的指标很容易量化,比如用PrimeTime或者Vivado的功耗分析工具跑一下对比数据,就能出漂亮的结果。
具体分工上,队长可以主攻CPU核心的流水线架构和低功耗控制逻辑,比如写时钟门控的代码。队友A负责搭建UVM验证环境,写功耗分析脚本,比如跑RTL级和门级功耗对比。队友B可以先写几个基准测试程序,比如Dhrystone、CoreMark,再帮队长验证指令集兼容性。三个月的话,推荐参考蜂鸟E203或者SERV项目,这两个都是中低功耗的RISC-V实现,文档全,容易改。别想着从头造轮子,能站在开源设计上改出亮点才是效率最高的。

我来说说另一个角度。我是做嵌入式的,带过两届集创赛队伍。你们纠结乱序还是低功耗,其实得看评奖标准。集创赛评委心里有杆秤:本科组更看重设计完整性和文档逻辑,而不是绝对性能。你做个乱序但时序收敛不了、验证没过、或功耗爆炸,反而扣分。低功耗优化如果做得有板有眼,比如给出从系统级到微架构级的功耗优化策略,再配合详细的测试报告,反而容易拿高分。
关于分工,我要提醒一点:不要各做各的,最后合不上。建议队长先画一个大致的流水线结构图,比如5级顺序流水线,然后在此基础上叠加低功耗特性。队长写顶层和核心模块,比如取指、译码、执行、访存、写回。队友A专门做仿真和验证,但不要只跑波形,要写自动化脚本来跑回归测试,验证每加一个低功耗特性(比如数据路径的写使能控制)会不会破坏功能。队友B可以写测试程序,同时负责文档里的性能分析和功耗对比表。三个月里,头一个月必须把基础流水线调通,后两个月做优化和验证。
参考设计的话,我推荐看看PULP平台里的RISCY核,或者更轻量的SCR1。它们都有低功耗版本。别忘了一点:你们可以做一个可配置的设计,比如在同一个工程里对比开启和关闭低功耗模式前后的功耗和性能,这样答辩时直接上对比数据,评委一看就明白你们干了什么。最后,时间再紧也要留一周写文档和做PPT,很多队代码写得好但讲不清楚,很吃亏。
发表回答
登录后可在本页底部提交回答
