Skip to content
This repository has been archived by the owner on Dec 17, 2023. It is now read-only.

MP4: Pipelined RV32I Processor

Latest
Compare
Choose a tag to compare
@AllenHeartcore AllenHeartcore released this 17 Dec 04:14
· 82 commits to main since this release

Workflow for Running the Processor

  1. Update cache parameters defined in apply_cache_params.sh

    Recommended high-performance settings (despite being area-hungry) are
NSET1=4
NWAY1=2
NSET2=7
NWAY2=2
WORDSIZE=8
MULTILV_I_CACHE=0
MULTILV_D_CACHE=1
  1. Compile SRAM using OpenRAM

    This script uses pkg/_types_pt2 to track the latest parameters to determine if recompilation is necessary.
    If the script misbehaves, manually delete pkg/_types_pt2 to force a rebuild.
$ ./apply_cache_params.sh
  1. Lint design using Synopsys SpyGlass
$ cd lint
$ make lint
$ cd ..
  1. Compile design using Synopsys VCS
$ make sim/top_tb
  1. Run simulation on CoreMark and check for errors using Spike (RISC-V ISA Simulator)
$ make run_top_tb PROG=testcode/competition/coremark_rv32i.elf
$ make spike ELF=testcode/competition/coremark_rv32i.elf
$ diff sim/spike.log sim/golden_spike.log
  1. Synthesize design using Synopsys Design Compiler
$ cd synth
$ make synth