A comprehensive one-stop hub for learning Universal Verification Methodology (UVM), accessing powerful verification tools, and exploring reference designs.
This repository serves as a centralized resource for SystemVerilog UVM verification engineers, providing:
- π Learning Materials: Curated tutorials, primers, and reference guides
- π οΈ Development Tools: Essential tools for UVM verification workflow
- π― Reference Designs: Production-ready verification components and examples
- Python 3.7+
- SystemVerilog simulator (QuestaSim, VCS, Xcelium, or similar)
- Git for submodule management
# Clone the repository with submodules
git clone --recursive https://github.com/SJTU-YONGFU-RESEARCH-GRP/awesome-systemverilog-uvm.git
cd awesome-systemverilog-uvm
# Initialize submodules if not done during clone
git submodule update --init --recursiveDive into UVM with our curated collection of learning materials:
- UVM Reference - Official Accellera UVM reference implementation and documentation
- UVM Primer - Ray Salemi's comprehensive UVM tutorial series
- Learn UVM PyUVM - Integrated learning materials for both SystemVerilog UVM and PyUVM
- Python4RTLVerification - Python techniques for RTL verification workflows
- FPGASimulation - FPGA-specific simulation methodologies and best practices
Accelerate your verification workflow with these powerful tools:
- PyUVM SV-UVM Translator - Seamless translation between PyUVM and SystemVerilog UVM components
- PyUVM Analyzer - Static analysis and optimization tools for PyUVM codebases
- PySystemVerilog Analyzer - Advanced analysis tools for SystemVerilog verification code
- Cocotb - Python-based hardware verification framework with coroutine support
UVM AXI - Complete AXI protocol verification environment featuring:
- AXI BFM with comprehensive protocol checking
- Virtual Master/Slave components for flexible test scenarios
- Protocol Checker supporting:
- Read/Write phase validation
- ID tag mapping verification
- Transfer integrity checks
- TLM Analysis Ports for third-party integration
- DPI/PLI Interfaces for system-level verification
- Ready-to-run Examples with Python automation scripts
cd designs/uvm_axi
python run.py # Runs the virtual master to DUT slave exampleawesome-systemverilog-uvm/
βββ learnings/ # Educational resources and tutorials
β βββ UVMReference/ # Official UVM reference materials
β βββ uvmprimer/ # UVM primer tutorials
β βββ learn_uvm_pyuvm/ # Integrated UVM/PyUVM learning
β βββ Python4RTLVerification/ # Python verification techniques
β βββ fpgasimulation/ # FPGA simulation resources
βββ tools/ # Development and analysis tools
β βββ cocotb/ # Python verification framework
β βββ pyuvm_svuvm_translator/ # Language translation tools
β βββ pyuvm_analyzer/ # PyUVM analysis utilities
β βββ pysystemverilog_analyzer/ # SystemVerilog analysis tools
βββ designs/ # Reference verification environments
βββ uvm_axi/ # AXI protocol verification suite
- UVM Primer - Foundational concepts and comprehensive tutorial series
- UVM Reference - Official Accellera UVM implementation and documentation
- Learn UVM PyUVM - Integrated learning for both SystemVerilog UVM and PyUVM
- Python4RTLVerification - Python techniques for RTL verification workflows
- FPGA Simulation - FPGA-specific simulation methodologies and best practices
- Cocotb - Python-based hardware verification framework with coroutine support
- PyUVM Analyzer - Static analysis and optimization tools for PyUVM codebases
- PySystemVerilog Analyzer - Advanced analysis tools for SystemVerilog verification code
- PyUVM SV-UVM Translator - Seamless translation between PyUVM and SystemVerilog UVM components
- UVM AXI - Complete AXI protocol verification environment with:
- AXI BFM with comprehensive protocol checking
- Virtual Master/Slave components
- Protocol validation and analysis ports
- Ready-to-run examples with Python automation
We welcome contributions to enhance this verification ecosystem!
- Fork the repository
- Add your learning material, tool, or design as a submodule
- Update this README with appropriate documentation
- Submit a pull request
- Ensure all submodules have proper licensing
- Include comprehensive documentation
- Add practical examples where applicable
- Test integration with existing tools
This repository is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
You are free to:
- Share β copy and redistribute the material in any medium or format
- Adapt β remix, transform, and build upon the material for any purpose, even commercially
Under the following terms:
- Attribution β You must give appropriate credit, provide a link to the license, and indicate if changes were made
This repository contains multiple submodules with their own licenses. Please refer to each submodule's license file for specific terms regarding individual components.
- Accellera for the UVM standard
- Ray Salemi for educational content and tutorials
- Cocotb Community for Python-based verification framework
- SJTU-YONGFU-RESEARCH-GRP for specialized UVM tools
- Verification Excellence for UVM reference materials
- π§ Issues: GitHub Issues
- π Documentation: Check individual submodule READMEs for detailed usage
- π¬ Discussions: GitHub Discussions
Empowering the verification community with comprehensive UVM resources and tools.