-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A trap is triggered when the pmpcfg register is read by csrr #110
Comments
Hi, The PMP isn't implemented in Naxriscv (at all) |
I use SocSim+RVLS which normally takes into account that the pmp is not implemented in the DUT and spike Why don't we get the same behaviour when the DUT and Spike are running? Why does spike not trigger a trap? It is configured not to support PMP. |
After updating my RISC-V-DV locally, this problem no longer occurs. This is because it takes into account that the PMP is not implemented. |
Ahhhh ok ^^ |
In fact, you would need questa-sim licence to use UVM to generate random programs. I spent a lot of time setting up the environment. If I find any bugs, I will let you know. Do you have a problem with the use of non-open source tools? (when Verilator supports UVM, it can replace Questasim) |
Very sad that open-source project are locked behind paywals like this :(
Yes :
As long as verilator doesn't support it, i would say i can't use it, or maybe we could generate batches of instruction stream into files and upload them somewere ? But that may generate too much data to get proper coverage XD |
Riscv-dv is a SV/UVM based instruction generator, so in order to generate random programs, the riscv-dv Python script needs a simulator that supports UVM. I think it's possible to use a simulator called pyflow, but I haven't tried it yet
This could be an alternative solution, I will have to see how to guarantee the coverage and the amount of data that will be generated |
Ahhhhh saaaaaad
Never heard of it :) |
Hi Charles,
Now I have RISCV-DV integrated with NaxRiscv. This allows me to do fuzzing by generating random programs and start lockstep execution with RVLS via SocSim.
After running a program generated by riscv-dv for rv64imafdc, I see that reading the pmpcfg0 register through csrr triggers a trap in the DUT but not in spike. Here is the execution result :
Spike log:
Tracer log:
Everything you need to debug or reproduce the execution is in the attached file :
debug_riscv-dv.zip
The text was updated successfully, but these errors were encountered: