Automation Optimization
This document describes the scaffolding tools, CI/CD automation, parameter sweeps, RTL optimization guidelines, and static-analysis reporting for RVSvKit, consistent with Overview and Module Inventory.
1. Code Scaffolding (in scripts/)
scaffold_module.py
Generates new module directory undermodules/<category>/<name>/withsrc/,tb/, and README stub.scaffold_pkg.py
Creates package skeleton incommon/pkg/with standard header comment andCHANGELOG.mdentry.
2. CI/CD Automation
GitHub Actions
Functional CI (
verilator.yml) on PR/push.Synthesis CI (
vivado_docker.yml) nightly.
Scheduled Tasks
Weekly static timing analysis on
examples/simple_soc.Daily security scan of Docker images for known CVEs.
3. Parameter Sweeps & Auto‑Tuning
sweep_params.py
Automates multi-dimensional sweeps over
DATA_WIDTH,UNICOREflag, pipeline depth.Collects area, timing, and power metrics into
ci/benchmarks/CSV files.
Auto‑Tuner
Future integration: use scripts to search for Pareto‑optimal configurations and updatethresholds.jsonautomatically.
4. RTL Optimization Guidelines
Multi‑Cycle Operator Pipelining
- Automate insertion of pipeline registers around long operators (e.g. multipliers) via scripts.
Resource Utilization Hooks
- Embed synthesis pragmas (
/* synthesis syn_use_dsp=1 */) parameterized byUSE_DSPflag.
- Embed synthesis pragmas (
Consistency with Style
- Generated code honors
03-coding-conventions.md(indentation, naming, non‑blocking assignments).
- Generated code honors
5. Static Analysis & Reporting
Linting
svlintscans for anti-patterns, mixed blocking/non‑blocking usage.
Assertion Coverage
- Report assertion pass/fail counts per module.
Security Checks
- Enforce no unauthorized DPI imports; flag use of
import "DPI-C".
- Enforce no unauthorized DPI imports; flag use of
Dashboard Generation
- Use a script to convert CSV benchmarks into HTML dashboard under
docs/benchmarks/.
- Use a script to convert CSV benchmarks into HTML dashboard under