Kulibin is a loose collection of reusable HDL modules. Auxiliary Python scripts are provided for analysis and parameter derivation; they commonly require NumPy, SciPy, SymPy, matplotlib. Higher-level modules serve as usage examples for the lower-level ones.
Each module is wrapped in a FuseSoC .core file. All testbenches are run locally with:
make verify
which invokes fusesoc run --target=sim[_<name>] zubax:kulibin:<module> for every registered target.
To simulate one specific target instead of the full library, run e.g.
fusesoc run --target=sim_cic_decimator zubax:kulibin:cic_decimator from the repository root.
See CI files in .github/.
graph TD
%% auto-generated by hierarchy.py — do not edit
async_parallel_bus_slave
cdc_sync
cic_decimator --> fir
cic_decimator --> numeric
counter
fir --> numeric
freqdiv
iir --> numeric
nco
online_integrator --> fir
online_integrator --> numeric
reset
sdadc_to_pwm --> cic_decimator
sdadc_to_pwm --> deadtime
sdadc_to_pwm --> fir
sdadc_to_pwm --> numeric
sdadc_to_pwm --> pwm