This is the undergoing refactor project of rocket core. The final goal is making the rocket core a minimal project with these features:
- not depending on diplomacy or rocket-chip.
- decouple bus interfaces, providing TL, ACE to users.
- provide diplomatic Module for diplomacy-based SoC integration.
- online cosim simulation framework for fuzzing and fault injection.
- collect and documenting each parameters, for each configuration, providing corresponding cover points. test cases or fuzzer should hit the cover points to validate these configuration.
- add uarch cover points for performance event tuning.
Here are rules for refactoring:
There will be two projects: rocket
and diplomatic
, rocket
will depend on chisel3
project, diplomatic
is the source code originally pulled from rocket-chip.
git mv
all scala codes fromrocket-chip
todiplomatic
project.Remove codes which should not be maintained by rocket project, however it will still depend on therocket-chip
project.Add CI and pass the smoketest(hello world elf).- Refactor out
cde
fromrocket
, start togit mv
file by file fromdiplomatic
torocket
project, see #4 for detail. - a
TilePRCIDomain
will be the sham to the instantibleRocketCore
. - There won't be any unrelated functional change during this refactoring.
For now, CI is only a bucket of sanity test, running cases from riscv-tests under the default cases.
In the future, Rocket Core will get rid of the DTM based simulation, since it:
- requires a correct debug mode, LSU to start test
- cannot diff with a reference model(spike, qemu, etc)
- slow to load binary, a large start-up time
A new online difftest should be provided with these features:
- spike as reference model
- capture architecture events, for each cycles, comparing event with architecutre events generated from spike
Philosophy of this repository is fast break and fast fix.
This repository always tracks remote developing branches, it may need some patches to work, make patch
will append below in sequence:
rocket-chip https://github.com/chipsalliance/rocket-chip/pull/2968.diff
rocket-chip https://github.com/chipsalliance/rocket-chip/pull/3013.diff
rocket-chip https://github.com/chipsalliance/rocket-chip/pull/3066.diff
rocket-chip https://github.com/chipsalliance/rocket-chip/pull/3103.diff