FPGA实验小白
同是ARM背景过来的,分享下我的学习路线。痛点在于如何系统化且不迷失在碎片信息里。第一步,指令集。以应用为导向,你搞过Cortex-M,那就重点看RV32IMAC这套适合嵌入式的组合,对照ARM指令找异同(比如RISC-V的内存访问只有load/store,没有ARM那种灵活)。官网的specification是圣经,但可以先看中文社区翻译的精华版。第二步,微架构设计。目标是能说出一个5级流水线RISC-V核的每个阶段在干啥,以及中断、异常怎么处理。推荐从VexRiscv或PicoRV32这种极简开源核开始读代码,用Verilator仿真,改改配置,加个自定义指令试试。第三步,工具链。这是生态核心。GCC/LLVM工具链的编译、链接脚本要会配,特别是针对你设计的核。Spike是黄金参考模型,一定要学会用它来做指令集仿真,比对结果。Chisel是加分项,但不是必须,可以先了解其‘生成器’思想。最后,整合起来:用你的FPGA平台,部署一个开源软核(比如E203),把之前的ARM外设驱动移植过去,完成一个从核到系统到驱动的完整流片前体验。这基本就是一次小型的SoC项目了,写在简历里很扎实。别怕,你缺的只是对RISC-V这套‘语法’的熟悉,工程思维你早就有了。
