Close Menu
VLSI Web
  • Home
    • About Us
    • Contact Us
    • Privacy Policy
  • Digital Design
    • Digital Circuits
    • Verilog
    • VHDL
    • System Verilog
    • UVM
  • VLSI Roles
    • RTL Design
    • Design Verification
    • Physical Design
    • DFT
    • STA
  • Interviews
  • Informative
  • VLSI Forge
Instagram LinkedIn WhatsApp Telegram
Instagram LinkedIn WhatsApp Telegram
VLSI Web
  • Home
    • About Us
    • Contact Us
    • Privacy Policy
  • Digital Design
    • Digital Circuits
    • Verilog
    • VHDL
    • System Verilog
    • UVM
  • VLSI Roles
    • RTL Design
    • Design Verification
    • Physical Design
    • DFT
    • STA
  • Interviews
  • Informative
  • VLSI Forge
VLSI Web
STA

SDC Timing Constraints: A Complete Example and How to Review It

Raju GorlaBy Raju Gorla28 May 2026Updated:12 October 2026No Comments4 Mins Read
SDC timing constraints
Share
Facebook Twitter LinkedIn Email Telegram WhatsApp

The short answer: SDC (Synopsys Design Constraints) is the Tcl-based format that tells synthesis, place-and-route and STA tools what timing to meet. A complete SDC defines every clock (and generated clock), the input and output delays that describe the world outside the block, the environment (driving cells, loads), timing exceptions (false paths, multicycle paths, clock groups), design rule limits and mode settings. STA is only as correct as its constraints, so reviewing the SDC is one of the most important sign-off tasks.

I’ve seen more timing escapes caused by wrong constraints than by wrong analysis. A missing clock, an input delay on the wrong clock, or a false path that’s too broad can hide real failures completely. This post walks through a complete SDC and how I check one. It replaces my older timing constraints post.

  1. The groups
  2. A small, complete SDC
  3. Input and output delays, explained
  4. How I review an SDC
  5. Common SDC mistakes

Table of Contents

  • Part 1: The groups
  • Part 2: A small, complete SDC
  • Part 3: Input and output delays, explained
  • Part 4: How I review an SDC
  • Part 5: Common SDC mistakes
  • FAQ
    • What is SDC?
    • What does set_input_delay mean?
    • What is check_timing used for?
    • Should synthesis and sign-off use the same SDC?

Part 1: The groups

The six groups of SDC constraints: clocks, I/O timing, environment, exceptions, design rules and modes
Every SDC has these six parts.

Part 2: A small, complete SDC

# clocks
create_clock -name clk -period 2.0 [get_ports clk]
set_clock_uncertainty -setup 0.10 [get_clocks clk]
set_clock_uncertainty -hold  0.05 [get_clocks clk]

# I/O: outside logic uses 0.8 ns of the cycle before our inputs
set_input_delay  -clock clk -max 0.8 [remove_from_collection [all_inputs] [get_ports clk]]
set_input_delay  -clock clk -min 0.1 [remove_from_collection [all_inputs] [get_ports clk]]
# outside logic needs our outputs 0.6 ns before its capture edge
set_output_delay -clock clk -max 0.6 [all_outputs]
set_output_delay -clock clk -min 0.0 [all_outputs]

# environment
set_driving_cell -lib_cell BUFX4 [all_inputs]
set_load 0.02 [all_outputs]

# design rules
set_max_transition 0.15 [current_design]
set_max_fanout 32 [current_design]

# exceptions
set_false_path -from [get_ports rst_n]          ;# synchronised inside the block

Part 3: Input and output delays, explained

  • set_input_delay says how long after the clock edge the data arrives at the input port, from logic outside the block. The remaining part of the period is what’s available inside.
  • set_output_delay says how much time the external logic needs before its capture edge, so the output must be ready that much before the edge.
  • Use -max for setup and -min for hold. Missing -min values often hide hold problems at block boundaries.
  • At block level, these values usually come from the top-level timing budget.

Part 4: How I review an SDC

  • check_timing: no unconstrained endpoints, no unclocked registers, no missing input or output delays.
  • Every clock in the design is defined, including generated clocks at dividers and muxes.
  • Clock relationships are right: synchronous clocks timed together, asynchronous ones in separate clock groups.
  • Every exception has a comment explaining why, and is as narrow as possible (specific -from and -to).
  • The same SDC (per mode) is used in synthesis, P&R and sign-off.

Part 5: Common SDC mistakes

Mistake Effect
Clock not defined on a generated clock pin Paths through it unconstrained or timed wrongly
Wildcard false path (-from *reg*) Hides real paths
Input delay relative to the wrong clock Wrong setup and hold at the boundary
No set_output_delay on outputs Output paths not timed at all
Multicycle without the matching hold adjustment Hold far too strict, causing needless buffering

Practise this on VLSI Forge

I built VLSI Forge so you can write RTL in your browser, run it on a real simulator and check every signal in the waveform. Free, nothing to install.

Static Timing Analysis problems · Daily challenge

Previous in my STA series: Clocks in STA: latency, skew, jitter. Next: False paths and multicycle paths.

FAQ

What is SDC?

Synopsys Design Constraints: a Tcl-based format describing clocks, I/O timing, environment, exceptions and design rules for timing-driven tools.

What does set_input_delay mean?

The time after a clock edge at which data arrives at an input port from outside the block, which limits how much of the cycle is available inside.

What is check_timing used for?

To find constraint problems such as unconstrained endpoints, unclocked registers and missing I/O delays.

Should synthesis and sign-off use the same SDC?

Yes, per mode, with only intended differences (such as ideal vs propagated clocks). Mismatches cause timing surprises late in the flow.

Share. Facebook Twitter LinkedIn Email Telegram WhatsApp
Previous ArticleClocks in STA: Latency, Skew, Uncertainty and Jitter
Next Article False Paths and Multicycle Paths: Timing Exceptions Done Right
Raju Gorla
  • Website

Related Posts

STA

Latch Timing and Time Borrowing in STA

2 June 2026
STA

Clock Gating Checks in STA: Setup, Hold and ICG Cells

1 June 2026
STA

Reading Timing Reports and Debugging Violations in STA

31 May 2026
Add A Comment
Leave A Reply Cancel Reply

Topics
  • Digital Circuits
  • Informative
  • Interview Questions
  • Physical Design
  • RTL Design
  • STA
  • System Verilog
  • UVM
  • Verilog
Instagram LinkedIn WhatsApp Telegram
  • About
  • Contact
  • Privacy Policy
  • VLSI Forge
  • Courses
  • Feedback
© 2026 VLSI Web

Type above and press Enter to search. Press Esc to cancel.