在小脚丫FPGA板上玩开源农场(FARM)——FPGA+Arduino+RISC-V+Make

网友投稿 2019-04-09 11:26

浓缩的,都是精华,作为小脚丫FPGA创始人的苏老师向来鄙视器材党,能在一个小得不能再小的空间和资源里玩出万千花样的人,才是高手,这也是小脚丫FPGA的理念。苏老师在之前的一篇文章《要让RISC-V跑起来究竟需要多大的FPGA?》中提到:在三个月内让RISC-V在小脚丫上跑起来,距今一个多月,苏老师就来兑现诺言了。

经过美国PulseRain Technology与小脚丫团队的不懈努力,在小脚丫CYC10开发板上成功移植了PulseRain Reindeer RISC-V 软核,并且开发了配套Arduino IDE的板子支持包,使得用户可以通过Arduino开发环境直接对嵌入到FPGA中的RISC-V软核进行编程。说到这种FPGA+Arduino+软核CPU的开发方式,是不是有种似曾相识的感觉,不错,之前我们就在STEP MAX10开发板上移植过PulseRain Technology的8051软核FT51-1T(使用Arduino玩转FPGA

http://www.stepfpga.com/doc/fpga_arduino_8051),采用的正是这种嵌入式开发方式。

FPGA优秀的性价比和灵活性;开源硬件Arduino及其丰富的软件库;开源的编译器和工具链GNU;再加上如今热度空前的开源处理器RISC-V,形成了一种灵活快速的新型嵌入式开发方式FRAM: FPGA+Arduino+RISC-V+Make。

https://cdn.china-scratch.com/Public/Home/images/grey.gif

                                            FARM 开发模式

如上图所示,在FARM开发模式下,FPGA成为系统的核心芯片。在FPGA中会包含一个支持RISC-V的开源处理器软核 (RISC-V Soft CPU)。该处理器可以包含一个硬件逻辑实现的代码载入器 (Hardware Based Code Loader)。FPGA也会包含所有的(或大部分的)外部设备实现,这些外部设备和RISC-V通过总线相连。对于无法完全用FPGA实现的功能 (例如传感器),FPGA也会实现其控制部分或者数据的读写 。

上图中RISC-V 软核的编程,可以通过两种方式。对中小型的裸金属 (bare metal)系统,开发者可以直接在Arduino 集成开发环境下编程,并充分利用Arduino提供的软件支持库。编译结果也可以在集成环境下直接写入到FPGA上的RISC-V软核里。当软件规模变大时,软件的配置和编译可以通过Make来实现,并执行和RISC-V软核配套的代码载入工具,下载编译结果。

在Changyi Gu即将出版的新书《基于FPGA与RISC-V的嵌入式系统设计》中将会详细讨论FRAM这一新型的嵌入式开发方式,敬请期待。

本次移植的RISC-V软核是由Changyi Gu主持设计的 PulseRain Reindeer 处理器内核,该软核在2018年由RISC-V 基金会官方举办的全球 Soft CPU 设计大赛中脱颖而出,荣获季军 (https://riscv.org/2018contest/)。PulseRain Reindeer是一个Von Neumann架构的软CPU,支持RISC-V RV32I [M]指令集,并具有2 x 2流水线架构,是综合平衡了速度和面积的结果,为所有FPGA平台上的软CPU提供了灵活的选择。

Pulserain公司特别将该处理器为小脚丫实验平台做了升级改进,可以同时支持DRAM和FPGA片上BRAM,还对外部中断做了更好的支持。(参考https://github.com/PulseRain/Reindeer_Step)。

下面我们就在小脚丫CYC10 FPGA开发板上玩一把开源FRAM。

https://cdn.china-scratch.com/Public/Home/images/grey.gif

    RISC-V 软核处理器与STEP CYC10 开发板

准备工作:

  • 小脚丫FPGA开发板 STEP-CYC10

  • Intel Quantus Prime Lite18.1版本以上

  • Arduino IDE 18.4版本以上

小脚丫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子卡插座,你可以方便的进行扩展。

https://cdn.china-scratch.com/Public/Home/images/grey.gif

STEP-CYC10板卡上集成的编程器能够完美支持开发工具Quartus Prime,你只需要一根MicroUSB连接线就能够完成FPGA的编程仿真和下载,使用更加方便。

操作步骤

  • 获取PulseRain Reindeer_Step MCU软核

  • 配置软核到STEP-CYC10 FPGA开发板

  • Arduino IDE安装板卡支持包

  • 在Arduino IDE中开发应用程序

  • 下载程序到开发板并运行

(具体过程请参考原文)

演示效果

打开串口监视器波特率为115200,可以看到不断打印累加数字,板子上的LED呈现流水灯模式。

https://cdn.china-scratch.com/Public/Home/images/grey.gif

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com