Violet is a dual-issue superscalar RISC-V processor for educational purpose, written in Clash.
- RV32IM
- 7-stage superscalar pipeline with in-order issue and "almost-in-order" commit
- BTB and GShare branch predictor
- Runs at 70-110 MHz on Artix-7 depending on configuration
- 3.76 CoreMark/MHz
- Configurable
- Interrupts
- RISC-V Privileded Architecture
- ISA Extensions other than M
- Instruction and data caches
Violet is verified using cosimulation with a software model written in Rust. Verification isn't extensive though - currently only a small set of programs are tested. Don't tape out Violet yet :)