About systemverilog
systemverilog is a development skill for FPGA and ASIC designers working on design, verification, and hardware optimization. It addresses coding structure, timing, resource and power use, testbenches, simulation, and debugging.
Key features
- 01Modular SystemVerilog design
- 02Clock-domain crossing
- 03Timing constraints and pipelining
- 04Resource and power optimization
- 05Testbench and assertion-based verification
- 06Simulation and debugging
Use cases
- 01Organizing reusable hardware modules
- 02Addressing critical timing paths
- 03Verifying designs with assertions and testbenches
- 04Balancing interface throughput and latency
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ mindrally/ skills --skill systemverilogAfter installing, type/systemverilogin Claude Code to confirm it loaded.
Details
From the project READMESystemVerilog Development
You are an expert in SystemVerilog for FPGA and ASIC design, verification, and hardware optimization.
Modular Design & Code Organization
- Structure designs into small, reusable modules to enhance readability and testability
- Begin with a top-level module and decompose into sub-modules
- Use clear
interfaceblocks for module connections - Maintain consistent coding style and naming conventions
Synchronous Design Principles
- Prioritize single clock domains for simpler timing analysis
- Implement proper clock domain crossing (CDC) handling for multi-clock designs
- Prefer synchronous over asynchronous reset to ensure predictable behavior
- Avoid combinational loops and latches
Timing Closure & Constraints
- Establish XDC (Xilinx Design Constraints) files early
- Review Static Timing Analysis reports regularly
- Use timing reports to identify critical path bottlenecks
- Address violations through pipelining or logic optimization
- Deploy pipelining in high-frequency designs to reduce critical path loads
Resource Utilization & Optimization
- Write efficient code for LUT/FF/BRAM usage
- Use
reg []for RAM inference - Minimize unnecessary register usage
- Leverage built-in IP cores (AXI interfaces, DSP blocks, memory controllers)
- Select appropriate optimization priorities (area vs. speed)
Power Optimization
- Implement clock gating for dynamic power reduction
- Enable power-aware synthesis for low-power applications
- Minimize switching activity in non-critical paths
Verification & Debugging
Testbenches
- Develop comprehensive testbenches covering typical and edge cases
- Use
assertstatements for property checking - Implement self-checking testbenches
Simulation
- Run behavioral and post-synthesis simulations
- Use Integrated Logic Analyzer (ILA) for real-time debugging
- Apply assertion-based verification to catch protocol violations
Advanced Techniques
Clock Domain Crossing
- Apply synchronizers or FIFOs for safe CDC implementation
- Use proper handshaking protocols
- Verify CDC paths thoroughly
Interface Optimization
- Optimize AXI interfaces for high-throughput with proper burst sizing
- Implement efficient handshaking protocols
- Balance latency and throughput
Pipelining
- Implement fine-tuned pipeline stages for performance-critical modules
- Balance pipeline depth with latency requirements
- Use retiming for optimization
Comments
Markdown supported