A minimal, production-ready template for building reusable SystemVerilog IP blocks with the Vyges ecosystem.
-
Create Repository from Template:
- Go to https://github.com/vyges/vyges-ip-template/generate
- Click "Use this template"
- Name your repository (e.g.,
uart-controller
) - Create repository
-
Clone Your New Repository:
git clone https://github.com/your-username/your-repo.git cd your-repo
-
Initialize your project:
vyges init --interactive
-
Simulate a Hello World test:
vyges test --simulation
-
Next steps:
- Edit your RTL in
rtl/
- Add testbenches in
tb/
- See Developer_Guide.md for advanced usage, project structure, and customization.
- Edit your RTL in
✅ This approach avoids all remote configuration issues!
This template includes a comprehensive GitHub Actions workflow (build-and-test.yml
) that provides automated testing and validation for your IP projects.
- ✅ Disabled by default - Only runs when manually triggered
- ✅ Configurable testing - Choose which components to test
- ✅ Multiple simulators - Support for Verilator and Icarus Verilog
- ✅ Multiple platforms - Support for ASIC and FPGA targets
- ✅ Complete EDA toolchain - Full open-source ASIC design flow
- ✅ Project validation - Checks project structure and metadata
- ✅ Linting - SystemVerilog code quality checks
- ✅ Simulation testing - Testbench execution and validation
- ✅ Synthesis checking - Flow configuration validation
- Enable the workflow in your IP repository (see detailed instructions below)
- Go to Actions tab and select "Build and Test IP"
- Click "Run workflow" and configure your test options
- Review results and artifacts
The workflow is disabled by default for the template repository. To enable it in your IP repository:
- Edit
.github/workflows/build-and-test.yml
- Find the
check-enabled
job - Change the line:
to:
echo "should-run=false" >> $GITHUB_OUTPUT
echo "should-run=true" >> $GITHUB_OUTPUT
The workflow automatically installs a complete open-source EDA toolchain including:
- Simulation: Verilator 5.026, Icarus Verilog, GHDL
- Synthesis: Yosys ≥0.39 with VHDL plugin
- Layout: KLayout, Magic, Netgen
- Physical Design: OpenROAD tools (TritonFPlan, RePlAce, TritonCTS, FastRoute, TritonRoute)
- Circuit Design: XSChem, ngspice
- Process Kits: Open PDKs (sky130, gf180mcu)
- Languages: SystemVerilog, VHDL, Python (cocotb), Ada
📖 For complete documentation, see .github/workflows/README.md
- Developer_Guide.md - Comprehensive development guide with AI-assisted workflows
- .github/workflows/README.md - Detailed GitHub Actions workflow documentation
- vyges-metadata-spec/ - Metadata specification and schema
This template is designed to work with the complete Vyges ecosystem:
- Vyges CLI - Command-line interface for IP development
- Vyges Catalog - IP catalog and discovery platform
- Vyges IDE - Integrated development environment
- AI-assisted development - Comprehensive AI context and guidance
This template is licensed under the Apache License 2.0. See LICENSE for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Documentation: Developer_Guide.md
- Issues: GitHub Issues
- Discussions: GitHub Discussions