This repository contains a configurable, multi-channel PWM controller IP core, ready for SoC, FPGA, and chiplet integration. It supports APB4, precise frequency/duty/phase control, and advanced safety features.
rtl/
- SystemVerilog RTL sourcetb/
- Testbenches (SystemVerilog and cocotb)integration/
- Wrappers and example top-levels for SoC, FPGA, chipletflow/openlane/
- OpenLane ASIC flow configflow/vivado/
- Vivado FPGA flow scriptsdocs/
- Design spec and documentation
# Example: Run SystemVerilog testbench
cd tb/
make -f Makefile sv_tb
# Or run with Verilator
make -f Makefile verilator
cd tb/cocotb/
make
cd flow/openlane/
# Edit config.json as needed
make
cd flow/vivado/
vivado -mode batch -source create_project.tcl
- SoC/Simulation: See
integration/example_soc_top.v
for APB master + PWM - FPGA: See
integration/example_fpga_top.v
for board-level instantiation - Chiplet: See
integration/example_chiplet_top.v
for die-to-die integration
See docs/PWM-Controller_design_spec.md
for full register and interface details.
For questions, open an issue or contact the Vyges IP team.