constraints-authoring

Author and verify Vivado XSD timing constraints for FPGA designs.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill solves the common FPGA engineering challenge of creating a correct, honest, and complete set of timing constraints (XDC) from scratch, ensuring the timing engine understands the design's true requirements rather than relying on incomplete or optimistic defaults.

Core Features & Use Cases

  • Systematic Constraint Authoring: Guides the user through defining primary clocks, generated clocks, I/O delays, and timing exceptions in the correct dependency order.
  • Verification-First Workflow: Mandates post-synthesis verification using check_timing and clock network reports to ensure constraints are physically grounded in the netlist.
  • Use Case: Use this when starting a new FPGA project with no constraints, or when your current design reports unconstrained clocks, missing I/O delays, or failing paths due to incorrectly modeled asynchronous clock domains.

Quick Start

Invoke the constraints-authoring skill to begin defining your primary clocks and I/O delays for a new design that currently has no timing constraints.

Frequently Asked Questions about constraints-authoring

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

FAQPage Schema
How do I write Vivado XDC constraints for a new FPGA design from scratch?

Authoring Vivado XDC constraints from scratch requires defining primary clocks, generated clocks, I/O budgets, and timing exceptions in dependency order based on board-level specifications and design intent to ensure the timing engine understands true requirements.

What is the best way to resolve unconstrained clocks and missing I/O delays in XDC?

Resolving unconstrained clocks and missing I/O delays involves authoring a complete XDC constraint set and performing post-synthesis verification using check_timing and clock network reports to validate clock network relationships against the synthesized netlist.

How do I verify FPGA timing exceptions against a synthesized netlist?

Verifying FPGA timing exceptions against a synthesized netlist involves running post-synthesis check_timing and clock network reports to confirm zero unintended unconstrained objects and validate clock network relationships.

When do I need to define generated clocks and I/O budgets in XDC?

Defining generated clocks and I/O budgets in XDC is necessary when starting a new FPGA project with no constraints or when a design reports failing paths due to incorrectly modeled asynchronous clock domains.

Why does my FPGA design report failing paths due to incorrectly modeled asynchronous clock domains?

FPGA designs report failing paths due to incorrectly modeled asynchronous clock domains when relying on incomplete or optimistic defaults instead of a complete, verified XDC constraint set defining true timing requirements and necessary timing exceptions.