使用Arduino在FPGA上开发RISC-V
使用Ariduino在FPGA上开发RISC-V
FPGA优秀的性价比和灵活性;开源硬件Arduino及其丰富的软件库;开源的编译器和工具链GNU;再加上如今热度空前的开源处理器RISC-V,形成了一种灵活快速的新型嵌入式开发方式FRAM: FPGA+Arduino+RISC-V+Make
在FARM开发模式下,FPGA成为系统的核心芯片。在FPGA中会包含一个支持RISC-V的开源处理器软核 (RISC-V Soft CPU)。该处理器可以包含一个硬件逻辑实现的代码载入器 (Hardware Based Code Loader)。FPGA也会包含所有的(或大部分的)外部设备实现,这些外部设备和RISC-V通过总线相连。对于无法完全用FPGA实现的功能 (例如传感器),FPGA也会实现其控制部分或者数据的读写

PulseRain Reindeer_Step 架构
PulseRain Reindeer 是由Changyi Gu主持设计的 RISC-V处理器内核,该软核在2018年由RISC-V 基金会官方举办的全球 Soft CPU 设计大赛中脱颖而出,荣获季军 (RISC-V SoftCPU Contest
),本次移植的是在PulseRain Reindeer处理器内核基础上,改进的Reindeer_Step软核
Reindeer RISC-V软核架构
Von Neumann架构
支持RISC-V RV32I [M]指令集
2 x 2流水线架构
综合平衡了速度和面积
Reindeer_Step内部结构

SDRAM控制器,利用板上8M动态内存作为代码和数据内存
中断支持
板上硬件资源支持,GPIO/UART等外设,也可自行裁剪
Arduino支持包,使用Arduino IDE编程
平台:STEP-CYC10 FPGA
小脚丫FPGA开发板 STEP-CYC10
小脚丫STEP-CYC10 是一款基于Intel Cyclone10设计的FPGA开发板。板卡尺寸只有72mm×40mm。核心FPGA芯片选用了Intel公司Cyclone 10 LP系列的10CL016YU256C8G,相比于前一代的Cyclone IV系列的FPGA,它的性能更强,功耗更低,板上的FPGA芯片资源达16000逻辑单元(LEs),同时该板卡最高支持10CL025YU256芯片。另外,板卡上集成了USB Blaster编程器、SDRAM、FLASH等多种外设。板上预留了PCIE子卡插座,你可以方便的进行扩展。 STEP-CYC10板卡上集成的编程器能够完美支持开发工具Quartus Prime,只需要一根MicroUSB连接线就能够完成FPGA的编程仿真和下载,使用更加方便。

核心器件:Intel Cyclone 10 LP FPGA-10CL016YU256C8G
板载资源
集成USB blaster编程器
2路Micro USB接口,分别用于下载和串口通信
4位7段数码管
2个RGB三色LED
8路拨码开关
1个五向按键
1个可扩展STEP-PCIE接口
64Mbit SDRAM
64Mbit Flash
三轴加速计ADXL345
USB转UART芯片CP2102
12M/50M双路时钟源
运行RISC-V软核的STEP-CYC10平台结构

获取PulseRain Reindeer_Step MCU软核源码
git clone源代码
``` git clone https://github.com/PulseRain/Reindeer_Step.git cd Reindeer_Step git submodule update --init --recursive ```
配置软核到STEP-CYC10 FPGA开发板
使用Intel Quartus编译
Reindeer_Step资源占用情况

安装Arduino IDE及板卡支持包
文件——首选项——附加开发板管理器网址,添加如下链接: https://github.com/PulseRain/Arduino_RISCV_IDE/raw/master/package_pulserain.com_index.json
打开 工具——开发板——开发板管理器,在搜索框中输入REINDEER,安装PACKAGE
在Arduino IDE中开发应用程序
串口下载程序到开发板并运行
软核中内置onchip Debug模块
串口一键下载
支持串口打印