인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
개발 및 엔지니어링 · SKILL.md

fpga

fpga

FPGA development guidelines covering Vivado, SystemVerilog, timing closure, AXI interfaces, and hardware optimization.

Independent GitHub snapshot · Automated classification · Original documentation governs

Mmindrally / skillsApache-2.0

Skill 문서

GitHub

name: fpga description: FPGA development guidelines covering Vivado, SystemVerilog, timing closure, AXI interfaces, and hardware optimization. metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills

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
저장한 Skills