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

Host Integration

Rule: hosts prepare inputs and consume outputs. They do not link monorepo code into sv-timing crates.

Full package text: sv-timing/AGENTS-host.md. New contributors: the reading order (AGENTS.md → ALGORITHMS-EXPERTS.md → architecture docs) applies before writing a host adapter.

Interaction modes

ModeHow
CLI + JSON (v1 required)Spawn sv-timing / svt.py run -- … with file list argv
Rust libraryPath dependency on sv-timing-core only
TypeScript clientsv-timing/js/ rehydrates DTOs (connection tests)
Host adapterLives outside sv-timing/ (e.g. build-platform/src/tooling/timings.ts)

Inputs a host may pass

  • --file / --files-from, --incdir, --define
  • --modules or --all-modules
  • --target-mhz, --fo4-ps
  • --package-mode, --param-map, --assume-xlen
  • --cache, --json-out, --out-dir / --emit-dir
  • Multi-cycle / refuse path knobs as documented by the CLI

Host responsibilities

  1. Expand project manifests → portable .f or path list.
  2. Supply defines, incdirs, target MHz, module roots.
  3. Optional: write param-map.json for package/config typedef substitutions.
  4. Map --out-dir and cache into the host workspace.
  5. Review emit tree + svt_corrected.f; never auto-commit corrected RTL.

Conceptual flow

host: flatten flist + env → analyze.f
host: write param-map.json (optional)
host: run  sv-timing analyze --files-from analyze.f --modules alu \
           --target-mhz 1250 --json-out report.json
host: run  sv-timing correct … --emit --out-dir build/svt-corrected
host: point sim/synth at build/svt-corrected/svt_corrected.f (after review)

CVA6 monorepo adapter

When sv-timing is checked into this tree, the optional host is build-platform:

PieceRole
build-platform/src/tooling/timings.tsFlatten flist, argv builders, spawn helpers
build-platform/src/cli/commands/timings.tstimings status|flist|analyze|correct
src/tooling/eda.tsflattenFlist / edaEnv only on the host side

User-facing page: Build Platform · Timings.

bun run build-platform/src/cli/index.ts timings status
bun run build-platform/src/cli/index.ts timings flist --target cv64a6_imafdc_sv39
bun run build-platform/src/cli/index.ts timings analyze --modules alu --target-mhz 1250
bun run build-platform/src/cli/index.ts timings correct --modules alu --allow-latency --emit

Removing build-platform or extracting sv-timing/ to its own repository must leave the Rust package fully usable via tools/svt.py alone.

Independence checks

Package CI-style checks include tools/check_independence.py so monorepo imports cannot creep into crates. Host tests may live in build-platform; package tests use fixtures only.