我们队三个人,一个会Verilog状态机,一个只会画PCB,我勉强跑通过UART回环。看到往届集创赛获奖名单里一堆RISC-V+FPGA的SOC题,感觉评委吃这套,但距离报名截止只剩两周,指导老师也放养。如果硬上,需要先啃哪些最小必要知识(总线、软核移植、外设挂载)?还是换成一个纯Verilog的多路PWM+传感器采集更稳?想听听有集创赛国奖经验的人说实话。
2026年集创赛报名前两周,队伍想做「FPGA+RISC-V软核的智能门锁」,但没人写过总线互联,这个选题是保省奖还是直接送人头?
3 个回答

先说结论:两周内从零到「能跑通的总线互联」不太现实,但也不是非得二选一。你们真正要判断的不是「RISC-V 选题能不能拿奖」,而是「报名时提交的方案书里,承诺的东西是不是两周内能做出雏形」。集创赛初评看的是方案完整度和可行性,不是你已经调通了。所以有个折中打法:报名照报 RISC-V 智能门锁,但把技术路线写成「以现成开源软核(比如 PicoRV32 或蜂鸟 E203 的简化配置)为核心,总线用 AXI4-Lite 或 Wishbone,外设先只挂 UART 和 GPIO,指纹/密码模块用现成传感器模组走串口」。这样你啃的最小知识就三块:一是 Wishbone 或 AXI-Lite 的握手时序,二是软核的地址映射怎么改,三是外设寄存器怎么读写。别一上来自己写仲裁器,先用现成互联 IP。风险在于:如果你们连软核综合进 Vivado 都卡住,那确实会拖到后期没时间做门锁功能。所以给自己设个 checkpoint,比如三周内软核能跑通「串口打印 hello」,跑不通就退回纯 Verilog 方案,门锁逻辑用状态机做,PWM 控锁、ADC 采传感器,一样能讲智能门锁的故事。评委吃 RISC-V 不假,但更怕你方案吹得大、现场演示只有一块点不亮的板子。你们三个人里谁负责软核移植、谁负责外设、谁负责 PCB 和结构,现在就得定下来,别都去啃总线。顺带问一句,你们实验室有没有现成的 FPGA 开发板和下载器,型号是什么?这直接决定软核选型。

我按「保省奖还是送人头」这个问法拆一下。省奖和送人头之间其实还有一档,叫「方案完整但实现打折」,很多队伍最后拿的就是这一档。关键变量不是选题,是你们三个人两周内能不能把报名材料攒出来,以及后面三个月能不能持续投入。
先说总线这块为什么让人怕。总线互联的核心不是写代码难,是调试难。你 UART 回环跑通了,说明你会看波形、会抓时序,这已经比只会画 PCB 的队友强。但总线一旦挂三个以上外设,地址译码错一位、ready 信号拉晚一拍,现象就是软核跑飞或者读回全 0,你得用 ILA 一点点抓。这个过程老手两三天,新手可能两周还在原地。所以最小必要知识排序应该是:第一,先搞懂一个成熟软核的顶层接口长什么样,别自己从头写 CPU;第二,选 Wishbone 这种结构简单的总线,比 AXI 友好太多;第三,外设别贪多,先挂一个 UART 验证读写通路,再挂 GPIO 控锁,最后才考虑 SPI 接指纹。
但这里有个更现实的取舍:纯 Verilog 多路 PWM 加传感器采集,技术风险低,可讲故事的空间也低。往届拿奖的 RISC-V 题,往往不是技术多深,而是「软硬协同」这个叙事完整——CPU 跑协议栈、FPGA 做实时控制、门锁有指纹和密码两种开锁方式。你们如果纯 Verilog,评委可能问一句「智能体现在哪」,就不好答。
我的建议是走中间路线:报名写 RISC-V 架构,但实现上允许降级。具体说,软核用开源的,总线用现成互联,你们只做地址映射和外设适配。给自己定一个死线,比如报名后一个月,软核必须能跑通串口回显。跑不通就果断切纯 Verilog,把省奖保住。指导老师放养不是坏事,意味着没人逼你们上高难度,你们自己控制风险就行。
还有个容易被忽略的点:PCB 那位队友别闲着。门锁的外壳、传感器接口、电源管理这些,是能独立推进的,不依赖总线调通。三线并行,比三个人都挤在软核上强。你们现在手头有哪款开发板,资源够不够放软核加外设?这个先确认,不然选型都是空谈。

先说一句可能不太中听的:你们现在真正的风险不是选 RISC-V 还是选 PWM,而是三个人里只有你一个人能稳定写可综合的时序逻辑,剩下两位在调试阶段帮不上太多忙。集创赛的评分里方案书占一部分,但复赛答辩和现场演示是要真跑起来的,这个环节放养队伍最容易翻车。
那为什么大家还是往 RISC-V 上冲?因为评委确实对 SoC 有偏好,但偏好的是「你把系统组织清楚了」,不是「你用了 RISC-V 这三个字母」。这两件事差别很大。一个用 PicoRV32 挂两条 Wishbone 外设、能演示指纹开锁和密码输入的完整系统,比一个自己手搓五级流水线但跑不稳的核,评分上通常更占优。所以选题本身不送人头,送人头的是「两周内要从零理解总线仲裁」这个执行路径。
顺着主线往下捋:总线互联难在哪?不难在写代码,难在它的错误是沉默的。你 UART 回环能跑通,说明你会抓波特率和起始位,但总线上地址译码错一位,现象是读回来全 0 或者软核取指失败,你得用 ILA 一帧一帧看握手信号。这个过程老手两三天,新手可能两周。所以最小必要知识只有三块:第一,看懂一个成熟软核的顶层端口和地址映射约定,别自己写 CPU;第二,选结构最朴素的互联方式,Wishbone 比 AXI-Lite 友好,仲裁逻辑几十行就能写完;第三,外设只挂 UART 加 GPIO,指纹和键盘都当串口模组处理,别自己写 SPI 从机协议。
报名前两周,我的建议是把方案书按「已完成雏形 + 明确里程碑」来写,而不是按「我们打算实现」来写。初评看的是可行性和完整度,不是你已经调通。技术路线写「基于开源软核,Wishbone 互联,外设先 UART/GPIO,后续扩展传感器」,这样你啃的东西有边界。至于换纯 Verilog 的 PWM 加传感器采集,稳是稳,但如果三个人的分工允许,我更倾向保留 RISC-V 这条线,因为它的学习收益和答辩说服力都更高,前提是你接受「雏形先跑通、功能后堆叠」这个节奏。
你们指导老师放养,那有没有师兄或者往届队伍能帮你们看一眼地址映射那块?这个比什么都值。
发表回答
登录后可在本页底部提交回答