vivado-constraints

Define and manage FPGA timing and placement constraints with Vivado XDC/SDC.

2|Updated May 6, 2026
One-click install
npx skills add https://github.com/konosubakonoakua/xilinx-skills --skill vivado-constraints-konosubakonoakua
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vivado-constraints
Source: https://github.com/konosubakonoakua/xilinx-skills/tree/main/vivado-constraints
Command: npx skills add https://github.com/konosubakonoakua/xilinx-skills --skill vivado-constraints-konosubakonoakua

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Vivado XDC constraints are essential to defining precise timing, pin assignments, and placement for FPGA designs. This guide explains how to craft and organize XDC/SDC constraints, covering clocks, I/O delays, timing exceptions, CDC constraints, and physical constraints to ensure reliable hardware mappings across projects.

Core Features & Use Cases

  • Comprehensive Clock Definitions: create_clock, create_generated_clock, and virtual clocks for timing references.
  • I/O and Placement Constraints: define PACKAGE_PIN, IOSTANDARD, LOC, and layout constraints to align with hardware.
  • Timing & CDC Rules: set_input_delay, set_output_delay, set_false_path, set_clock_groups, and bus skew handling for cross-domain interactions.
  • Guided Best Practices: constraint ordering, scope management, and reporting to debug timing issues per UG903 v2025.2.

Quick Start

Define a simple clock using create_clock and verify timing with a quick report.

Frequently Asked Questions about vivado-constraints

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

FAQPage Schema
How do I write XDC constraints for FPGA timing and placement in Vivado?

Vivado XDC constraints define precise timing, pin assignments, and placement for FPGA designs using create_clock, PACKAGE_PIN, IOSTANDARD, and LOC to ensure reliable hardware mappings.

What is the best way to handle clock definitions and cross-domain timing in Vivado XDC?

Clock definitions and cross-domain timing in Vivado XDC use create_clock, create_generated_clock, virtual clocks, set_clock_groups, and set_false_path to manage CDC constraints and bus skew for consistent performance.

When do I need I/O delay constraints like set_input_delay and set_output_delay?

I/O delay constraints like set_input_delay and set_output_delay are needed to define precise timing for external interfaces, aligning FPGA I/O with hardware and ensuring reliable data capture across clock domains.

Does this XDC constraint guide follow UG903 syntax and best practices?

The XDC constraint guide adheres to UG903 v2025.2 syntax, follows best-practice constraint ordering, includes scope management, and provides validation and reporting to catch timing issues early.

Why are my Vivado timing constraints not working and how do I debug them?

Vivado timing constraint issues can be debugged using guided best practices for constraint ordering, scope management, and reporting, ensuring constraints are validated and applied correctly per UG903 v2025.2.

Can I use SDC constraints with Vivado XDC for FPGA designs?

Vivado XDC constraints are based on SDC syntax, allowing you to define and manage FPGA timing and placement constraints using create_clock, set_clock_groups, and timing exceptions for reliable hardware mapping.