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

Timings Command

The timings command is the host adapter that connects CVA6’s flists and SoC config to the standalone sv-timing package. It expands verify flists, writes portable .f files under the contained workspace, and spawns the package CLI. It never links monorepo TypeScript into Rust crates.

Structural FO4 estimates only — not STA sign-off.

Subcommands

SubcommandWhat it does
statusLocate sv-timing/, print default out dirs
flistFlatten verify flist → portable .f under workspace build
analyzeFlist + sv-timing analyze (JSON report)
correctFlist + sv-timing correct (dry-run unless --emit)

Examples

./build.sh timings status
./build.sh timings flist --target cv64a6_imafdc_sv39
./build.sh timings analyze --modules alu --target-mhz 1250
./build.sh timings analyze --all-modules --json-out build/svt.json
./build.sh timings correct --modules alu --allow-latency --emit
.\build.ps1 timings status
.\build.ps1 timings analyze --modules alu --target-mhz 1250

Common flags (see timings --help / command details for the full set):

  • --target <cfg> — verify / SoC target (drives flist env)
  • --modules m1,m2 or --all-modules
  • --target-mhz N, --fo4-ps N
  • --json-out PATH, --out PATH
  • --emit, --allow-latency (correct path)

Data flow

.config.ts / TARGET_CFG
        ↓
edaEnv + flattenFlist  (build-platform)
        ↓
portable .f + optional param-map  →  workspace/build/sv-timing/…
        ↓
python tools/svt.py run -- analyze|correct …
        ↓
JSON report  (+ optional emit tree under --out-dir)

Implementation map:

  • build-platform/src/tooling/timings.ts — paths, flist writers, argv builders
  • build-platform/src/cli/commands/timings.ts — CLI command
  • sv-timing/AGENTS-host.md — normative host boundary

Operator rules

  1. Prefer analyze before correct; treat emit as a review artifact.
  2. Keep corrected trees under build-platform/workspace/ until reviewed.
  3. Do not auto-commit emit output into core/ or corev_apu/.
  4. For package-only work (no monorepo flist), use sv-timing fixtures and python tools/svt.py directly — see sv-timing Overview.