You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Error writing to memory using test bench files located in cv32e40s/tb/core
Type
Indicate whether the type of problem you found:
Functionally incorrect behavior
Steps to Reproduce
cd cv32e40s/sim/core
make questa-custom-gui CUSTOM_PROG=hello-world CUSTOM=../../tests/programs/custom
Note 1: The makefile located in cv32e40s/sim/core couldn't generate the binary file. So, I copied the .hex file generated by the simulation performed in cv32e40s/sim/uvmt to the path where the corresponding .c scripts are located (core-v-verif/cv32e40s/tests/programs/custom/hello-world/hello-world.hex).
I'm facing an issue when I try to simulate the RTL cv32e40s files + RAM memory files using the wrapper tb_top.sv located in cv32e40s/tb/core. While the simulation in cv32e40s/sim/uvmt works fine, in cv32e40s/sim/core it is in an infinite loop. Analyzing the waveforms and the hello-world.objdump file, the microprocessor stops working correctly when it executes an instruction to store a value in the memory.
From the hello-world.objdump file: 1140: 00b703a3 sb x11,7(x14)
From the waveforms:
Looking at the uvm_test_top.env.rvfi_agent.trn.log generated by simulation performed in cv32e40s/sim/uvmt (by executing make test TEST=hello-world USE_ISS=NO GUI=YES CV_SIMULATOR=vsim), the instruction 1140: 00b703a3 sb x11,7(x14) is the first instruction related to memory access. As the microprocessor can no longer execute the other instructions, it remains in this state forever, which generates the infinite loop.
I've attached the waveforms, the hello-world function and the generated .log file here: files.zip
The text was updated successfully, but these errors were encountered:
Thanks for your interest in the CV32E40S @MBleaux. The "core" testbench for CV32E40S is not supported at this time. We would gladly accept a pull-request to restore it. Please start with the cv32e40s/dev branch of core-v-verif.
I also set the data_err_i and instr_err_i signals to 0 because they were always low level in the UVM simulation. I don't think it's a good practice to put them in low level (e.g.: .data_err_i ( 1'h0 ),) but I couldn't find in the manual how to model these signals.
I couldn't find in the manual how to model these signals.
As you already know, the specification for the OBI is here. According to the CV32E40S User Manual, you will want v1.6.0. If there is a question about the OBI that you cannot answer from the specification, please create a GitHub Issue on that repository.
Bug Title
Error writing to memory using test bench files located in cv32e40s/tb/core
Type
Indicate whether the type of problem you found:
Steps to Reproduce
cd cv32e40s/sim/core make questa-custom-gui CUSTOM_PROG=hello-world CUSTOM=../../tests/programs/custom
Additional context
I'm facing an issue when I try to simulate the RTL cv32e40s files + RAM memory files using the wrapper tb_top.sv located in cv32e40s/tb/core. While the simulation in cv32e40s/sim/uvmt works fine, in cv32e40s/sim/core it is in an infinite loop. Analyzing the waveforms and the hello-world.objdump file, the microprocessor stops working correctly when it executes an instruction to store a value in the memory.
From the hello-world.objdump file:
1140: 00b703a3 sb x11,7(x14)
From the waveforms:
Looking at the uvm_test_top.env.rvfi_agent.trn.log generated by simulation performed in cv32e40s/sim/uvmt (by executing
make test TEST=hello-world USE_ISS=NO GUI=YES CV_SIMULATOR=vsim
), the instruction1140: 00b703a3 sb x11,7(x14)
is the first instruction related to memory access. As the microprocessor can no longer execute the other instructions, it remains in this state forever, which generates the infinite loop.I've attached the waveforms, the hello-world function and the generated .log file here:
files.zip
The text was updated successfully, but these errors were encountered: