Repository navigation
Conversation
abmajith
commented
Nov 7, 2026
Owner
- third_party/cve2, third_party/ibex: submodules at pinned commits, wrapped by rtl/cores/{cve2,ibex}/rabbit_cpu.sv (deviations from the contract documented: boot/mtvec placement, fast interrupt priority lowest-first, Ibex has 15 fast lines). CORE_CFLAGS in core.mk lets firmware know about documented deviations; the irq test uses it for the priority order.
- Ibex files.f generated from its FuseSoC cores (tools/fusesoc_to_filelist.py); synth_sky130.sh works around one construct slang cannot elaborate.
- Fixed in our testbench: reset started low, so Verilator never saw a falling edge and cores that gate their clock during reset (CVE2) kept unreset state (CVE2 ran in user mode; CV32E40P's mcountinhibit was not reset, so earlier CV32E40P mcycle-based timings were wrong).
- Timing measurements in firmware use the SoC cycle counter (mcycle is stopped at reset on CV32E40P).
- rtl/cores/README.md: area / delay / cycles / M timing / interrupt-during- divide for rabbit3, rabbit5, Ibex, CVE2, CV32E40P, all from our scripts.
- CI: lint and soc-sim matrices include cve2 and ibex.
- third_party/cve2, third_party/ibex: submodules at pinned commits, wrapped
by rtl/cores/{cve2,ibex}/rabbit_cpu.sv (deviations from the contract
documented: boot/mtvec placement, fast interrupt priority lowest-first,
Ibex has 15 fast lines). CORE_CFLAGS in core.mk lets firmware know about
documented deviations; the irq test uses it for the priority order.
- Ibex files.f generated from its FuseSoC cores (tools/fusesoc_to_filelist.py);
synth_sky130.sh works around one construct slang cannot elaborate.
- Fixed in our testbench: reset started low, so Verilator never saw a
falling edge and cores that gate their clock during reset (CVE2) kept
unreset state (CVE2 ran in user mode; CV32E40P's mcountinhibit was not
reset, so earlier CV32E40P mcycle-based timings were wrong).
- Timing measurements in firmware use the SoC cycle counter (mcycle is
stopped at reset on CV32E40P).
- rtl/cores/README.md: area / delay / cycles / M timing / interrupt-during-
divide for rabbit3, rabbit5, Ibex, CVE2, CV32E40P, all from our scripts.
- CI: lint and soc-sim matrices include cve2 and ibex.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ci.yml (every pull request and main; jobs ~1 min): lint, soc-sim on five cores, ip-test, rma-smoke, exhaustive 8-bit muldiv. push runs only on main, so a branch with a pull request is no longer checked twice. deep-verify.yml (Actions -> deep-verify -> Run workflow, choose all/formal/gls/mutants): the formal proofs (~7-10 min per core on GitHub), gate-level runs and the mutation tests. Locally: tools/check_all.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.