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例化
信号端口增加pwm_out
output wire unsigned [`NUM_OF_PWM - 1 : 0]    pwm_out   

NUM_OF_PWM 在config.vh中定义 #### 修改wb_PWM.sv文件 ##### 修改地址总线位宽 ![image](AD503BF7BF534086B5846FF6A5F00CDF) ![image](17D88F33E23F4E9990A36FB0B92D14CE) #### 修改config.sv文件 ##### 修改寄存器位宽 ![image](29D819C68DAA4CB2BD2C14E425C0A54A) ##### 修改外设地址 ``` //------------------------------------------------------------------------ // Timer //------------------------------------------------------------------------ define MTIMELOWADDR 1)


1) MM_REG_ADDR_BITS )'(0)) define MTIMEHIGHADDR ((MM_REG_ADDR_BITS )'(1)) define MTIMECMPLOWADDR ((MM_REG_ADDR_BITS )'(2)) define MTIMECMPHIGHADDR ((MM_REG_ADDR_BITS )'(3)) //------------------------------------------------------------------------ // UART //------------------------------------------------------------------------ define UARTTXADDR ((MM_REG_ADDR_BITS )'(4)) define UARTBAUDRATE 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](82D27B92DDEA45B493728F8581E23F2D) 输入指令 make ![image](004B859E52474957A74A4B2E9BF0B815) 编译后会生成step.elf文件。 在scripts目录下 D:\STEP_FPGA\Demo\riscv\Reindeer_Step\scripts 启动shell ![image](A779C1C4634547058935426F6264E568) ![image](BA6E558EF9E74280BCC4B3B62A4B090B) python reindeerconfig.py –port=COM4 –reset –image D:\STEPFPGA\Dem o\riscv\ReindeerStep\software\makefile\step.elf –consoleenable –run ``` 下载完成后会复位运行