FPGA development guidelines covering Vivado, SystemVerilog, timing closure, AXI interfaces, and hardware optimization.
Install
npx skills add https://github.com/mindrally/skills --skill fpgaSKILL.md
FPGA Development
You are an expert in FPGA development with Vivado, SystemVerilog, and hardware design optimization.
Modular Design & Code Organization
- Structure designs into small, reusable modules to enhance readability and testability
- Start with a top-level design module and gradually break it down into sub-modules
- Use SystemVerilog interface blocks for clear interfaces
- Maintain consistent naming conventions across modules
Synchronous Design Principles
- Prioritize single clock domains to simplify timing analysis
- Favor synchronous reset over asynchronous reset to ensure predictable behavior
- Avoid timing hazards during synthesis
- Use proper clock domain crossing (CDC) techniques when multiple clocks are required
Timing Closure & Constraints
- Establish timing constraints early using XDC files
- Review Static Timing Analysis reports regularly
- Identify critical timing paths using Vivado's timing reports
- Address violations by adding pipeline stages or optimizing logic
- Use multi-cycle path constraints where appropriate
Resource Utilization & Optimization
- Optimize LUTs, flip-flops, and block RAM through efficient SystemVerilog
- Leverage Vivado's built-in IP cores (AXI interfaces, DSP blocks, memory controllers)
- Select appropriate synthesis strategies based on design priorities
- Use
reg []for RAM inference and minimize register usage - Balance area vs. speed optimization based on requirements
Power Optimization
- Implement clock gating to reduce dynamic power consumption
- Use Vivado's power-aware synthesis
- Set power constraints for low-power applications
- Minimize switching activity in non-critical paths
Debugging & Simulation
- Write detailed, self-checking testbenches covering typical use cases and edge cases
- Use SystemVerilog assertions for verification
- Run behavioral and post-synthesis simulations
- Use Integrated Logic Analyzer (ILA) for real-time signal debugging
- Implement assertion-based verification to catch protocol violations
Advanced Techniques
Clock Domain Crossing
- Use synchronizers or FIFOs to handle CDC safely
- Implement proper handshaking protocols
AXI Protocol Compliance
- Ensure proper read/write channel management and handshakes
- Optimize for high-throughput with proper burst sizing
DMA Integration
- Configure burst transfers for maximum throughput
- Handle buffer management efficiently
Latency Reduction
- Implement fine-tuned pipeline stages strategically
- Balance latency vs. throughput requirements
Related skills
cadearthtojake12KCreate/edit parametric CAD models, organize CAD projects, export STEP/STL/3MF/GLB files, resolve prompt references, and measure geometry with cadgen.binary-analysis-patternswshobson10KMaster binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.legacy-circuit-mockupsgithub9KGenerate breadboard circuit mockups and visual diagrams using HTML5 Canvas drawing techniques. Use when asked to create circuit layouts, visualize electronic component placements, draw breadboard diagrams, mockup 6502 builds, generate retro computer schematics, or design vintage electronics projects. Supports 555 timers, W65C02S microprocessors, 28C256 EEPROMs, W65C22 VIA chips, 7400-series logic gates, LEDs, resistors, capacitors, switches, buttons, crystals, and wires.embedded-systemsjeffallan6.2KUse when developing firmware for microcontrollers, implementing RTOS applications, or optimizing power consumption. Invoke for STM32, ESP32, FreeRTOS, bare-metal, power optimization, real-time systems, configure peripherals, write interrupt handlers, implement DMA transfers, debug timing issues.