GSys LibreCore — a source-available RISC-V core and agentic build platform, derived from OpenHW CVA6. Explore the layered architecture.

Upgrade Program

GSys LibreCore evolves the baseline OpenHW CVA6 core through a ranked upgrade program. Features are config-gated: minimal targets keep identity with the classic in-order machine; production profiles opt into wider issue, OoO, SMT, L2/L3, hypervisor, and server math packages.

Authority and status detail live under monorepo architecture/ (not flisted RTL). This page is the product map for humans and agents.

DocumentRole
architecture/README.mdScaffold contract + live RTL summary
architecture/router-core-upgrade-program.mdPerf/W-ranked upgrade program
architecture/remaining-upgrade-sequence.mdPost-U6 queue and enable recipes

Snapshot (product view)

Statuses below summarize the architecture tree; re-check those docs before claiming a gate is “done” for a specific target package.

TrackProduct meaningTypical gate / package
U1–U3 Frontend fabricStronger prediction, FTQ/FDIP, cache way-pred / RRIPPrimary 64b targets; target-dependent
U4 Slice-OoOLimited out-of-order slice pathSliceOoOEn (often off by default)
U5 Full OoORename / IQ / ROB / LSQ backendOoOEn — identity when 0
Multi-issue2–8 issue portsNrIssuePorts / SuperscalarEn
U6.0 L2Memory-side L2 under APUL2En (often off by default)
U6.1 SMT2Dual hardware threadsNrHarts=2, g6lc64_smt2, g6lc64_smt2_ooo_int
U6.2 Multi-core hubMulti-hart tile / coherenceNrCores + APU hub; COH_OOO on g6lc64_ooo_int2
U7 ISA extrasCBO / bitmanip / relatedDecoder + cache policy
U9 Hypervisor + SstcKVM-oriented timer / VSRVH, Sstc, server packages
U10 Server mathHPDCACHE + HWPF + L2 auto, RVB/Zicbo*g6lc64_server_math{,_v}
U10ᵇ RVV / AraVector attachPartial — see vector guide

Layering principle

Classic in-order CVA6  (OoOEn=0, NrHarts=1, L2En=0, …)
        │  opt-in packages / knobs
        ▼
Wider issue → slice OoO → full OoO
        │
        ▼
SMT (shared pipeline, banked arch state)
        │
        ▼
L2 / L3 / server prefetch (APU memory side)
        │
        ▼
H + Sstc + server math / RVV packages

Never enable a wide stack without the SoC-readiness checklist (AGENTS.md §0.2): config gate, verify target, DFT, observability, DTS when software-visible.

Product pages (detail)

TopicPage
Package comparisonSKU Matrix
Frontend / prediction fabricFrontend Extensions
Multi-issueMulti-Issue
Out-of-orderOut-of-Order Execution
SMTSimultaneous Multithreading
Multi-core clusterMulti-Core Cluster
L2 / L3 / prefetchL2 / L3 Cache
Hypervisor / SstcHypervisor & Sstc
RVV / AraVector (RVV) & Ara
Server / KVM-oriented packagesServer Profiles

Operator enable (examples)

Package names evolve; treat these as illustrative and confirm against core/include/*_config_pkg.sv and .config.ts soc.coreConfig.

# In-order dual-issue-style / default Linux-class 64b
g6lc-build config   # inspect soc.coreConfig
 
# Full OoO — legal targets today:
#   g6lc64_ooo_int (baseline)  |  g6lc64_smt2_ooo_int (production SMT2, mixed residency, ring 16)
#   g6lc64_ooo_int2 (two-core COH_OOO integer anchor)  |  g6lc64_ooo_int2_l3 (+ L3, RV64GC+B, ring 16)
#   g6lc64_ooo (single-hart FP, legal since M4)
# g6lc64_ooo_server is opt-in / unqualified (COH_FILTERED leg without evidence).
g6lc-build verify --target g6lc64_ooo_int
g6lc-build test --suite ooo-l3-tests   # optional, lengthy
 
# SMT2
#   g6lc64_smt2 (in-order)  |  g6lc64_smt2_ooo_int (over OoO)
g6lc-build verify --target g6lc64_smt2
 
# Server math (H, Sstc, L2 auto, …)
#   g6lc64_server_math  |  g6lc64_server_math_v (RVV when Ara linked)

What “production gated” means

  • Production: intended for real targets; tested under named packages.
  • Gated: default or minimal configs keep the feature off so netlists stay identity with the classic path unless a package opts in.
  • Optional suites (e.g. ooo-l3-tests, full Linux SMT payloads) may be excluded from default verify for runtime cost, not because the RTL is “experimental.”

Structural timing

Frequency risk grows with issue width and OoO depth. Use sv-timing / g6lc-build timings for early structural FO4 feedback. It does not replace STA on the target library.