Tool · Diff
Compare two SDC versions and see what actually changed: values, added or removed constraints, wildcard drift. A reformat and a real regression no longer look the same.
In plain words
A normal diff shows which lines changed. A semantic diff shows which constraints changed meaning. TCL variables are resolved, wildcards are compared, and cosmetic moves are ignored, so the diff answers "did anything important change?"
Period, delay, uncertainty, derate: a numeric change on the same constraint is the highest-signal diff.
A wildcard that now matches different objects after a netlist change: silent scope creep, now visible.
New constraints, deleted constraints, and what deleting one implies for coverage.
Reformatting, reordering, comment changes: resolved and ignored so they don't alarm.
Real-world example
A branch changes the clock period from 10.0 to 8.0 and quietly removes an input delay. The text diff shows dozens of changed lines; the semantic diff shows exactly two meaningful changes, each with both source lines.
$ rta diff design_v1.sdc design_v2.sdc
▲ CHG-VAL clk period 10.0 → 8.0 (L5 → L5)
▲ CHG-ADD set_clock_groups -asynchronous (L31)
✗ CHG-DEL set_input_delay on data_in[7:0] (L12)
✓ 4 cosmetic changes ignored (reformat only)
Try it