Issue after upgrading a Nios V/g core from version 1.0.0 to 4.0.0
Hi,
I have developed a Quartus project based on the Nios V/g processor for the Terasic DE0-Nano board using Quartus Prime Standard Edition 23.1. The board is connected to a PC via the USB interface. In this case, Nios V/g 1.0.0 was integrated into the SoC. The QSYS and QPF projects were compiled successfully with warnings, and the SOF file was generated.
A BSP project was generated using the SOPCINFO file, and a RISC-V assembler file was compiled, linked, and an ELF file was downloaded after the SOF file configured the board. The available tools in the Nios V Command Shell 23.1 were used.
A simple message was successfully displayed on a Nios V Command Shell 23.1 terminal.
The same project was duplicated and opened using Quartus Prime Standard Edition 24.1. In this case, Nios V/g 4.0.0 was integrated into the SoC after automatic IP upgrading. The QSYS and QPF projects were also compiled successfully with warnings, and the SOF file was generated.
BSP and ELF files were generated using the tools available in the Nios V Command Shell 24.1 in the same way as applied for the 23.1 project.
However, after configuring the FPGA and downloading the ELF file, the message was not displayed on a Nios V Command Shell 24.1 terminal; the program hangs.
Could you please provide any hints on how to solve this problem when using Quartus Prime Standard version 24.1 and Nios V/g 4.0.0?
Regards.
Domingo.
P.D. There is no issue when upgrading Nios V/m cores from Quartus 23.1 to 24.1.
Hi,
Thank you very much for your suggestions. I checked them all, but I was not successful.
However, this issue could be fixed as follows.
The "Branch Prediction" option of the Nios V/g 4.0.0 IP was enabled (24.1std).
This option is unavailable for the Nios V/g 1.0.0 IP (23.1std).
I used the software debugger (OpenOCD and riscv32-unknown-elf-gdb) and noted that branches were never taken.
My program has some branches that are taken and output messages on the display.
After unchecking the "Branch Prediction" checkbox, the issue was solved, and the program ran correctly.
Perhaps the issue lies in the branch prediction module of the Nios V/g 4.0.0 IP.
Regards.
Domingo.