目录

RISC-V软核-Reindeer_step调试笔记

主要工作

1. 修改软核硬件代码,增加外设,修改外设地址 2. 安装工具链,python工具 3. 修改软件应用程序,make编译,脚本下载

修改软核硬件代码

- 修改原FP51的PWM外设,挂载到wishbone总线 - 修改了外设地址

修改PulseRain_MCU.qip文件

在工程导航栏PulseRain_MCU.qip文件中增加PWM文件,这样就无需在工程中添加pwm的文件了。

set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "../submodules/PulseRain_rtl_lib/PWM/PWM_core.sv"]
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "../submodules/PulseRain_rtl_lib/PWM/wb_PWM.sv"]

修改peripherals.sv文件

增加PWM例化

image

信号端口增加pwm_out
output wire unsigned [`NUM_OF_PWM - 1 : 0]    pwm_out   

NUMOFPWM 在config.vh中定义

修改wb_PWM.sv文件

修改地址总线位宽

image

image

修改config.sv文件

修改寄存器位宽

image

修改外设地址
  //------------------------------------------------------------------------
    //  Timer
    //------------------------------------------------------------------------


    `define MTIME_LOW_ADDR                     ((`MM_REG_ADDR_BITS )'(0))
    `define MTIME_HIGH_ADDR                    ((`MM_REG_ADDR_BITS )'(1))

    `define MTIMECMP_LOW_ADDR                  ((`MM_REG_ADDR_BITS )'(2))
    `define MTIMECMP_HIGH_ADDR                 ((`MM_REG_ADDR_BITS )'(3))


    //------------------------------------------------------------------------
    //  UART
    //------------------------------------------------------------------------

    `define UART_TX_ADDR                       ((`MM_REG_ADDR_BITS )'(4))
    `define UART_BAUD_RATE                      115200
    `define UART_TX_BAUD_PERIOD                (`MCU_MAIN_CLK_RATE / `UART_BAUD_RATE)
    `define UART_TX_BAUD_PERIOD_BITS           ($clog2(`UART_TX_BAUD_PERIOD))
    `define UART_STABLE_COUNT                  (`MCU_MAIN_CLK_RATE  / `UART_BAUD_RATE / 2)

    //------------------------------------------------------------------------
    //  GPIO
    //------------------------------------------------------------------------	
    `define GPIO_ADDR                          ((`MM_REG_ADDR_BITS )'(8))
    `define NUM_OF_GPIOS                       32 
    
    //------------------------------------------------------------------------
    //  PWM
    //------------------------------------------------------------------------	
    `define PWM_CSR_ADDR                        ((`MM_REG_ADDR_BITS )'(12))
    `define PWM_DATA_ADDR                       ((`MM_REG_ADDR_BITS )'(13))
	 `define NUM_OF_PWM									1

安装工具链和python工具

参考 https://github.com/PulseRain/Reindeer,注意设置环境变量

修改软件,编译,下载

在software目录下,增加M10PWM.c和M10PWM.h文件,修改main.c 如果安装git的话,可以直接右键启动git bash 窗口 image

输入指令 make image

编译后会生成step.elf文件。

在scripts目录下 D:\STEPFPGA\Demo\riscv\ReindeerStep\scripts 启动shell image

image

python reindeer_config.py --port=COM4 --reset --image D:\STEP_FPGA\Dem
o\riscv\Reindeer_Step\software\makefile\step.elf --console_enable --run

下载完成后会复位运行