timing-constraints

Define and validate SDC/XDC timing constraints for FPGA/ASIC flows.

1|1|Updated Jan 29, 2026
One-click install
npx skills add https://github.com/KishoreDamam/VLSI-agkit --skill timing-constraints
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: timing-constraints
Source: https://github.com/KishoreDamam/VLSI-agkit/tree/main/.agent/skills/timing-constraints
Command: npx skills add https://github.com/KishoreDamam/VLSI-agkit --skill timing-constraints

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you author and validate accurate SDC/XDC timing constraints that prevent false STA results and unblock timing closure for RTL, CDC, and vendor-specific FPGA flows.

Core Features & Use Cases

  • Clock constraint authoring: define create_clock and create_generated_clock relationships, then verify with report_clocks and CDC/interaction reports.
  • I/O timing modeling: set set_input_delay/set_output_delay for system-synchronous interfaces and DDR (including -clock_fall + -add_delay).
  • Exception handling for real design intent: apply set_clock_groups, set_false_path, set_multicycle_path (with required hold compensation), and CDC-oriented set_max_delay -datapath_only.
  • Xilinx Ultrascale+ XDC additions: add PACKAGE_PIN, IOSTANDARD, and clock routing properties like CLOCK_DEDICATED_ROUTE, plus related XDC patterns for implementation.
  • Validation gates and recovery: run targeted checks (e.g., clock interaction, unconstrained IO, exception rationale, CDC tool results) and troubleshoot common STA/XDC failure modes.

Quick Start

Ask the agent to generate a complete SDC/XDC for your design by declaring your primary and generated clocks, adding I/O delays for your board interface, and inserting the correct async/CDC and exception constraints (multicycle/false-path/max-delay), then validate it against the listed reporting gates and fix any unconstrained paths it finds.

Frequently Asked Questions about timing-constraints

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

FAQPage Schema
How do I write SDC timing constraints for a multi-clock design?

To write SDC timing constraints for multi-clock designs, define primary and generated clocks using create_clock and create_generated_clock, add I/O delays with set_input_delay and set_output_delay, and apply exceptions like set_false_path and set_multicycle_path to accurately guide static timing analysis.

How do I constrain a multicycle path without causing hold violations in STA?

Constraining a multicycle path in STA requires applying set_multicycle_path for setup and explicitly adding the matching hold compensation to shift the hold check, preventing false hold violations caused by unpaired exception declarations.

What is the correct way to set input and output delays for a DDR interface in XDC?

Setting input and output delays for a DDR interface in XDC requires using set_input_delay and set_output_delay with the -clock_fall and -add_delay options to accurately model both rising and falling clock edges for system-synchronous interfaces.

How do I set clock groups for asynchronous clocks in FPGA timing closure?

Setting clock groups for asynchronous clocks in FPGA timing closure uses the set_clock_groups command to declare mutually exclusive or asynchronous domains, preventing the STA tool from analyzing invalid cross-clock paths and avoiding false timing violations.

Can I use set_max_delay -datapath_only for clock domain crossing constraints?

Yes, you can use set_max_delay -datapath_only for clock domain crossing constraints to enforce a maximum delay limit while ignoring clock skew, which is an effective CDC-oriented exception for safely constraining asynchronous data paths.

How do I validate unconstrained paths and timing exceptions in STA reports?

Validate unconstrained paths and timing exceptions by running targeted STA reporting commands like report_clocks and clock interaction reports to verify constraint coverage, identify missing I/O delays, and check the rationale for applied false paths and multicycle paths.