No description
Still a few base instructions to go, but those are waiting on the privileged implementation. My game plan: - implement privileged spec (M-only), adding way to handle traps - finish implementing last of the base instructions - add in exceptions that have been ignored in all instructions - clean up main memory interface, mmaybe add some caching, at least some instruction cache. |
||
|---|---|---|
| riscv-tests@09cfdaacd9 | ||
| .gitignore | ||
| .gitmodules | ||
| core.py | ||
| instruction_decoder.py | ||
| opcodes.py | ||
| README.md | ||
| regfile.py | ||
runt
A small, underperforming RV32I core, written in nMigen.
I want to get it to the point where I could actually use it in a design, but I doubt it will have any practical use, especially when compared to a VexRiscV or picorv32 core.
This is my first CPU, and I also somewhat intentionally didn't look at any resources, so it will likely be full of questionable design decisions that anyone with any experience would have avoided.
Milestones
- Full RV32I implementation, able to run code in simulation (not verified working correctly at this point)
- Full coverage with riscv-tests, verified working.
- Integrated with some hardware to make an """SoC""", running on my Arty A7
- Full coverage with riscv-formal
- (Maybe...) work on improving performance, add caching/prefetch, pipeline it, etc.