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

Vector (RVV) & Ara

AVX-like memcpy/memset and bulk math map to RISC-V Vector (RVV 1.0) via the PULP Ara accelerator, attached at the existing accelerator / scoreboard seam — not a second execute datapath inside the classic ALU.

Authority: architecture/ara-vector-attach.md, agents/guides/AGENTS-vector.md, vendor guide agents/vendor/AGENTS-vendor-ara.md.

Product status (summary)

ItemStatus
Config scaffold (_v package)Done
Accelerator path in corePre-existing (acc_dispatcher, EnableAccelerator)
Ara vendored + Flist.araDone under vendor/ara/
SoC gluecorev_apu/src/g6lc_ara_attach.sv (+ AXI helpers)
Lint g6lc64_server_math_vGreen path documented (stub vs live Ara)
Directed vector testsLanded (testlist_ara_vector.yaml)
OpenSBI VRF save/restore + full cosimOpen / external
Linux CONFIG_RISCV_ISA_VOperator / distro ownership

Config identity

KnobMeaning
RVV / CVA6ConfigVExtEnmisa.V, vector decode
EnableAcceleratorScoreboard long-latency + dispatcher (from RVV in build_config)
CvxifEnMutually exclusive with accelerator (core/cva6.sv assert)
PackageVCVXIFUse
g6lc64_server_math01Server math without vector IP
g6lc64_server_math_v10Server + RVV when Ara linked
cv64a6_imafdcv_sv3910Legacy vector-oriented profile

Select _v only when the Ara flist is part of the sim/synth target.

Pipeline / SoC seam

  1. Decode/issue classifies vector ops as accelerator FU when RVV enabled.
  2. core/acc_dispatcher.sv + scoreboard long-latency completion.
  3. Accelerator-side cache invalidation merges with multi-core inv paths.
  4. SoC: g6lc_ara_attach under `define CVA6_ARA_ATTACH (else stub).
  5. Prefer not inventing an in-pipeline vector ALU.

Operator enable

# Lint typed RVV attach path (stub Ara default):
g6lc-build verify --lint --target g6lc64_server_math_v
 
# Live Ara RTL (Verilator; env as documented in ara-vector-attach.md):
#   CVA6_ARA_ATTACH=1  + verify.extraFlistsByTarget for Flist.ara

Flist append is opt-in via build-platform verify.extraFlistsByTarget.g6lc64_server_math_v → vendor/ara/Flist.ara.

g6lc-build vendor status ara    # if catalogued
g6lc-build test --list          # ara / vector suites when present

Software contract

LayerRequirement
DTScorev_apu/bootrom/ariane-server-math-v.dts — v in ISA extensions
OpenSBIVRF / context switch (see vector guide § checklist)
LinuxCONFIG_RISCV_ISA_V + matching ISA string
Directedv_misa_v, v_memcpy_* under verif/tests/

SoC-readiness

  • Timing / floorplan: vector unit as placement island; own clock-gate plan
  • DFT: thread test_en_i / testmode_i through Ara wrapper
  • Observability: PMU “V busy”; RVFI accelerator retire hooks as needed
  • Never enable CvxifEn and Ara accelerator together