cdc-audit

Audit and resolve clock-domain-crossing risks in FPGA netlists.

11|7|Updated Jun 5, 2026
One-click install
npx skills add https://github.com/LNC0831/oh-my-fpga --skill cdc-audit
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cdc-audit
Source: https://github.com/LNC0831/oh-my-fpga/tree/main/skills/cdc-audit
Command: npx skills add https://github.com/LNC0831/oh-my-fpga --skill cdc-audit

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill solves the critical challenge of identifying and resolving metastability risks in FPGA designs where signals cross between asynchronous clock domains, preventing silent hardware failures that standard timing analysis often misses.

Core Features & Use Cases

  • Structural CDC Analysis: Automatically audits clock crossings to classify them by structure, such as synchronizers, buses, or reset domains.
  • Safe Resolution Workflow: Provides a rigorous, step-by-step methodology to apply the smallest safe fix, prioritizing structural RTL improvements over masking constraints.
  • Use Case: Use this when you need to verify that your async FIFO or handshake logic is truly safe before tapeout, or when debugging intermittent hardware behavior suspected to be caused by metastability.

Quick Start

Invoke the cdc-audit skill to perform a full structural analysis and generate a resolution report for the current design.

Frequently Asked Questions about cdc-audit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I identify and fix metastability risks in FPGA clock domain crossings?

To fix metastability risks in FPGA clock domain crossings, perform structural CDC analysis on synthesized netlists to classify crossings and apply safe synchronization fixes, preventing silent hardware failures that standard timing analysis misses.

How do I audit asynchronous clock boundaries in Vivado before tapeout?

To audit asynchronous clock boundaries in Vivado, you need an active SynthPilot MCP connection to perform structural linting and timing interaction analysis on elaborated netlists, verifying that async FIFO or handshake logic is truly safe.

What is the best way to verify async FIFO and handshake logic for metastability safety?

The best way to verify async FIFO and handshake logic for metastability safety is structural CDC linting on synthesized netlists, which classifies clock crossings by structure and applies a rigorous resolution workflow prioritizing RTL improvements over masking constraints.

Does clock domain crossing analysis work on synthesized or elaborated netlists in Vivado?

Yes, clock domain crossing analysis operates on both synthesized and elaborated netlists in Vivado, requiring an active SynthPilot MCP connection to perform structural linting and ensure metastability safety across asynchronous boundaries.

Why does standard timing analysis miss metastability issues in FPGA designs?

Standard timing analysis misses metastability issues because it does not structurally classify clock domain crossings or apply targeted synchronization fixes to asynchronous boundaries, leaving silent hardware failures undetected until intermittent behavior occurs.

When should I use structural RTL improvements instead of masking constraints for CDC resolution?

You should use structural RTL improvements instead of masking constraints when resolving clock domain crossings, as a rigorous resolution workflow prioritizes the smallest safe structural fix to ensure true metastability safety rather than masking timing violations.