Using sail-riscv version 0.9#439
Conversation
|
Thanks for updating! Give me some time to test this on my local machine as well.
Thanks, I've already seen that. I can't wait for RISCOF to be kicked out of the flow... 😅
I have the same "error" with the current setup. I think the version of |
|
Unfortunately, this does not run on my local setup: pip reports jsoncomment v0.4.2, so that shoould be fine. 🤔 |
|
You might use a different JSONC (JSON with comments) parser, I just used the first one I found instructions for. I have made further changes in this branch: https://github.com/jeras/neorv32-riscof/tree/dut_makefile The main purpose of this changes was to speed up the runtime.
Other changes:
TODO:
Issues:
I know I should create a separate issue for this, I am just lazy. |
|
I haven't fully understood your adjustments yet, but it looks pretty cool! I'm following the updates from the architecture test SIG a little bit. Apparently, the "new framework" is coming out this year. I would then prefer to switch directly to this new framework. I'll come back to this when I finally have vacation time. 😉 |
|
I could write a document (updated Could you give me some links on this "new framework"? I would like to read about it, maybe write a short essay on my experience with RISCOF, and what features would a framework need to be easy to use for students attempting to write their own RISC-V cores. I also ported
|
I don't think that's necessary for now. But thanks anyway!
I've looked at your commits. I don't understand everything yet, but I think some of it is pretty cool. I'm in the process of incorporating some of your changes (-> #443). PRs are very welcome! 😉
That's pretty cool, because it alone makes the tests run much faster. However, I have to admit that I find some things quite cryptic: # execute GHDL simulation
symbols_list = ['begin_signature', 'end_signature', 'tohost', 'fromhost']
symbol_generics = ' '.join([f'-g{symbol.upper()}=`grep -w {symbol} {symbols} | cut -c 1-8`' for symbol in symbols_list])I'm currently working on a slightly different approach. Let's see how quickly the tests run with it...
It's all still a work in progress, but the first release is expected to come out this year. This is the development branch of the RISC-V Architectural Compatibility Test v4 (ACT4): https://github.com/riscv-non-isa/riscv-arch-test/tree/act4
That would be great to have (for me too)!
I think the idea has been raised here before.. Maybe it's an interesting feature for the future - not necessarily from a performance perspective, but to "test" the code with a different simulator. |
|
To parallelize test execution, a DUT makefile must be created, this is not possible if tests are executed withing the Python plugin itself. To avoid conflicts between the tests there are two approaches:
Regarding symbols, this is a generated The This is how I pass the begin/and signature addresses from the ELF file to the GHDL simulation without modifying the You now pass the begin/and values to the testbench by writing them into specific addresses. I did the same in my first implementation. The problem I had with this approach is that changes |
|
I'm quite happy with the current speed so far. However, as soon as the new version of the architecture tests is available, we should take another close look at this and, if necessary, come back to your Makefile idea. By the way, I would like to archive this repo (locking all further issues & PRs). The port of the architecture tests is now in the main repo: https://github.com/stnolting/neorv32/tree/main/sw/riscv-arch-test |
The github actions are still running, but I got the tests to pass on my machine.
This commit handles issues when updating sail-riscv from
0.8to0.9, the details are evident from commit contents.I have discussed the reasons regarding comments in the generated JSON configuration with sail-riscv developers, if you are interested:
riscv/sail-riscv#1411 (comment)
I have also spent a bit of time checking the remaining errors (while tests still pass) and if appears RISCOF is attempting to run some RV64 tests from
riscof_work/database.yaml. I did not debug this further.