本项目的内容是在STEP CYC10开发板上移植和仿真Reindeer RISC-V CPU软核。将软核移植到FPGA平台上既可以在FPGA里面灵活地设计底层电路,又能够利用像Arduino一样的开发环境快速地开发应用程序。熟悉已有的STEP MAX10 + FP51软核移植方案中,FLASH,RAM,OCD之间的通信机制。
1.在扩展板上增加FLASH模块:搭载RISC-V软核的Intel Cyclone 10 FPGA芯片没有包含DRAM和FLASH,目前板上已有SDRAM,还没有FLASH,项目的目标是实现FLASH中代码的存放和Boost功能。
2.基于STEP CYC10功能扩展板增加外设模块:a.使用一个距离传感器,实现当有人进入感应范围时,随着距离的变化,使得LED灯的亮度也随之发生变化;b.在LCD显示屏上显示一张图片。
* 通过以上的功能来进行RISC-V系统在FPGA上的功能演示
* 可以根据距离的远近控制LED灯的亮度
* 可以在LCD屏上显示特定的图片
* 熟悉Makefile for RISC-V
*(sketch for DRAM test)
* 其他的LCD、LED、ADC、DAC、距离传感器均使用公司已有器件
目前RISC-V软核中嵌入了OCD (onchip debugger)模块,相当于MCU内部的硬件BOOT模块,通过外接串口同样可以实现串口一键下载。只不过程序下载到RAM区,掉电数据会丢失,如果想程序掉电不丢失还是需要将Arduino IDE 生成的.hex文件存放到到外部的FLASH中。
目前STEP CYC10开发板上已经在FPGA片外实现了SDRAM,片内的OCD模块将RISC-V的运行程序烧录到SDRAM,如前文所述,如果SDRAM下电,那么RISC-V的运行程序就丢失了。本项目的第一项任务是将RISV-V的代码经SDRAM存入外部FLASH,该任务实现之后,代码在板子下电之后也不会被擦除。
目前STEP CYC10开放板上的Boost是通过OCD模块实现,从串口读入SDRAM。本项目的第二项任务是设计FLASH Boost电路,该任务实现之后,SDRAM可以从FLASH Boost将代码送入软核运行。
在完成代码下电不擦除的功能之后,继续完成扩展板上的功能设计,这是本项目的第三项任务。扩展板上的预置模块如上图所示,主要演示的内容包括:1. 根据距离传感器的反馈输出PWM信号调节LED灯的亮暗;2. 在LCD屏上显示图片。还预留了PWM+电机、ADC、DAC的位置。板子上的器件除了FLASH和ADC/DAC,均参考MiCOKit扩展版上的器件,具体尺寸参照器件文档(目前还没找到),需要注意的是LCD需要开槽将引脚引到背面。ADC/DAC的器件选用公司已有器件micokit-samg55原理图及生产资料.zip。FLASH器件的参数如下所示
* SPI-FLASH
* LCD显示屏
目前的扩展板上包含有SPI FLASH、R2R电阻网络DAC+运放、运放+ADC、距离传感器、LCD屏幕、4个GPIO引脚、2个PWM引脚、2对UART引脚、2个3.3v电压引脚、3个接地引脚。
版本1:
正面图
背面图
版本2:
正面图
3D图
建议后续改进:扩展板上应该加上LED灯,方便程序调试。
2.BOM表:riscv_final_board.xlsx
3.完成了DAC、ADC、距离传感器、FLASH的FPGA验证
FLASH验证方案:对于FLASH内部的STATUS REGISTER进行读写操作。STATUS REGISTER中的bit4、bit3、bit2是SECTOR擦除保护控制位,可读可写。本项目选用的M25P32器件采用4线SPI,在时钟的上升沿从外部读取数据,在时钟的下降沿准备输出数据。控制命令采用“控制字+数据字节”的形式,共有13个控制命令。验证用到了WRITE ENABLE、WRITE STATUS REGISTER、READ STATUS REGISTER这三条命令。WRITE ENABLE是写使能。只有写使能执行之后才能执行WRITE STATUS REGISTER,该命令将STATUS REGISTER中的bit2、bit3、bit4置为100。READ STATUS REGISTER让FPGA读取STATUS REGISTER中的bit4、bit3、bit2的值,并将其接到LED的引脚输出。按键朝右边掰触发写,按键朝左掰触发读,最终LED[1:0]亮,LED[3]不亮,符合预期。
验证距离传感器(点击下图)
4.了解了FPGA+软核(8051,RISC-V)+高级语言编程的操作流程
参考
RISC-V软核-Reindeer_step调试笔记
在软核wishbone总线上增加PWM外设,经过跑通流水灯完成验证。
在软核wishbone总线上增加LCD模块,完成刷屏输出。
…更新中…
关于硬禾实战营研究生技能培训更多的实战项目信息,参见硬禾实战营研究生技能培训项目第一期