- Updated filelist to include new UART source files. - Enhanced formal file generation script to support UART target. - Introduced formal verification module and properties for UART. - Modified makefiles to include UART in formal targets and source files. - Added UART-related source files to software build. - Updated top-level wrapper to integrate UART DMA signals. - Implemented UART testbench for comprehensive testing of functionality. - Created Python test script for UART V2 register, FIFO, and interrupt tests. - Added UART helper functions in C test runtime. - Updated DMA error testbench to handle UART signals. - Ensured WS2812 DMA testbench accommodates UART signals.
Build and Quality Scripts
This directory contains the Python implementation of setup, dependency locking, build manifests, flow execution, simulation checks, regression orchestration, quality checks, metrics, packaging, and cleanup.
Scripts are part of the build contract. Prefer existing helpers over ad-hoc
shell behavior, preserve structured JSON results, and keep setup/download
behavior controlled by config/dependencies.lock.json.
development_environment.py is the shared Docker, Nix, and manual bootstrap
entry point. It installs only the checksum-verified open-source tool bundles and
hash-pinned Python dependencies; project-local PDK and source setup remains under
the existing Make targets.
publish_fatfs_artifact.sh is the manual release helper for the lock-pinned
FatFs R0.16 archive. It verifies the archive, GitHub authentication, release
absence, and the published asset checksum before reporting the checksum-pinned
URL.
parse_performance_log.py converts the APP=benchmark UART PERF records
into meta/performance.json. The parser requires the terminal
PERF_BENCHMARK_PASS marker. parse_coremark_log.py converts the fixed
SRAM CoreMark quick report into meta/coremark.json; it requires one valid
COREMARK_RESULT record and COREMARK_PASS. Both reports complement, rather
than replace, the common SIM_TEST_PASS simulation verdict.
run_debug_session.py is the local Hazard3 debug acceptance driver. It starts
the Verilator remote-bitbang endpoint, the lock-pinned OpenOCD binary, and
RISC-V GDB, then records their logs and a structured result. Invoke it through
make CONFIG=configs/ci/ihp130-debug.mk SIMU=VERILATOR debug-sim; see
../docs/hazard3-debug.md for its scope and
limitations.
Update or add tests in ../tests for script behavior. Run
ruff check . and python3 -m pytest -q; build-flow changes also require the
relevant dry-run or regression profile from AGENTS.md.