regmap
Teaching-first VitisRegMap example for a scalar AXI-Lite kernel.
The kernel computes:
y = relu(a*x + b)
It is structured so the scalar math lives behind a swappable hook (compute) while the surrounding flow stays the same:
- Python simulation and functional check
- HLS code generation
- Vitis C-sim
- Vitis C-synth + RTL co-sim timing extraction
- Timing-diagram generation as a normal DAG step
Quick start
From this directory:
python simp_fun_build.py --through extract_py_timing
Full flow (requires Vitis HLS):
python simp_fun_build.py --through generate_timing_diagram
Useful discovery commands:
python simp_fun_build.py --list-steps
python simp_fun_build.py --list-artifacts
python simp_fun_build.py --status
Default register map
ap_start— Vitis auto control register at0x00status— read-only status word (0=idle,1=busy,2=done)x— signed 32-bit inputa— signed 32-bit coefficientb— signed 32-bit biasy— signed 32-bit output
Key artifacts
data/x.bin,data/a.bin,data/b.binresults/sim/y.binresults/sim/regmap_status.jsonresults/sim_summary.jsonresults/py_timing.jsonresults/verify_csim.jsonresults/cosim_timing.jsonresults/timing_verdict.jsonresults/timing_diagram.svgresults/timing_diagram.json