How thalesgroup/cva6-softcore-contest works
This repository is a CVA6/CV32A6 contest platform and software workspace, with QOA audio encoding as its primary workload. The principal workflow is to encode the supplied clip, compare the stream with a reference, and measure cycles/instructions; the README documents building and running applications on the Zybo FPGA through JTAG, with UART console output. The graph also preserves the shorter simulation workload and boot-ROM/platform support. Evidence is limited to the supplied excerpts, source index, and README; unsampled implementation details and internal processor wiring are not inferred.
Main entry points: qoa_encoder/main.c QOA encoder app · qoa_encoder_1s/main.c One-second app · fpga Zybo CV32A6 · src/main.c FPGA boot ROM
Components 18
QOA workloads
- QOA encoder app
sw/app/qoa_encoder/main.c - QOA implementation
sw/app/qoa_encoder/qoa.h - Audio corpus
sw/app/qoa_encoder/corpus.h - Golden stream
sw/app/qoa_encoder/golden.h - One-second app
sw/app/qoa_encoder_1s/main.c - Short corpus
sw/app/qoa_encoder_1s/corpus.h - Short reference
sw/app/qoa_encoder_1s/golden.h
FPGA platform
- Zybo CV32A6
corev_apu/fpga - JTAG debug link
corev_apu/tb/dpi/remote_bitbang.cc - UART console
sw/bsp/drivers/uart/uart.c - Software BSP
sw/bsp - Simulation runner
verif/sim/cva6.py - Spike trace parser
verif/sim/cva6_spike_log_to_trace_csv.py
Boot support
- FPGA boot ROM
corev_apu/fpga/src/bootrom/src/main.c - SD access
corev_apu/fpga/src/bootrom/src/sd.c - Partition lookup
corev_apu/fpga/src/bootrom/src/gpt.c
Other components
- Contest engineer
- Development host
Connections 17
- QOA encoder app → QOA implementation: calls encoder
sw/app/qoa_encoder/main.c - QOA encoder app → Audio corpus: encodes samples
sw/app/qoa_encoder/main.c - QOA encoder app → Golden stream: checks output
sw/app/qoa_encoder/main.c - One-second app → Short corpus: encodes samples
sw/app/qoa_encoder_1s/main.c - One-second app → Short reference: checks output
sw/app/qoa_encoder_1s/main.c - One-second app → QOA implementation: uses encoder
sw/app/qoa_encoder_1s/main.c - Contest engineer → Development host: builds application
README.md - Development host → JTAG debug link: connects through
README.md - JTAG debug link → Zybo CV32A6: programs and debugs
README.md - QOA encoder app → Zybo CV32A6: runs on
README.md - Zybo CV32A6 → UART console: outputs console
README.md - QOA encoder app → Software BSP: uses platform support
- FPGA boot ROM → UART console: initializes and prints
corev_apu/fpga/src/bootrom/src/main.c - FPGA boot ROM → Partition lookup: partition lookup
- Partition lookup → SD access: reads partition data
- Contest engineer → Simulation runner: runs simulations
README.md - Simulation runner → Spike trace parser: converts trace logs
verif/sim/cva6.py