Update goldens for "dcalc no slew merge for constant disabled arcs".
dcalc_case_analysis_leak: arrival spread across the wire-load sweep on the
constant net drops from 46.38 ps to 0.00 ps, which is the point of the test.
Rewrite the header comment to describe the fix rather than the open bug.
graph_modify: with set_case_analysis 0 on d4, inv2 drives n4=1 and or1
drives n6=1, so nand1/A2 is constant. 1 is non-controlling for a NAND, so
nand1/ZN stays live and the A2->ZN arc is dead. Its slew no longer merges
into nand1/ZN, so buf4/Z falls from 0.07 to 0.06. The following report,
after unset_case_analysis, still shows 0.07 as expected.
sdc_port_delay_advanced: in1=0, in2=1 and case analysis 0 on in3 make
nor1/ZN constant, so it is no longer reported as the worst max slew pin;
reg1/QN takes its place.
Signed-off-by: dsengupta0628 <[email protected]>
* Implement set_path_margin command
Adds a new set_path_margin SDC command that applies a signed slack
adjustment to the capture-clock side of timing paths. A positive
margin tightens the path (harder to meet) and a negative margin
loosens it. Supports -setup/-hold/-from/-through/-to scoping,
priority/override semantics matching other exceptions, text and
JSON report output, and write_sdc serialisation.
Adapted from Silimate PR #57; uses upstream/master Mode/Scene and
string_view APIs. Test uses unset_path_exceptions in place of the
Silimate-only reset_path alias.
Co-authored-by: Cursor <[email protected]>
* Fix nested delaySum call indentation to match project style.
Co-authored-by: Cursor <[email protected]>
* Address review: store PathMargin on PathEnd, split tests
Keep the path margin exception on PathEndClkConstrained, add
PathEnd::hasPathMargin for report gating, and split the monolithic
regression into set_path_margin1–6. Rebased onto upstream/master and
document the command in ChangeLog.
Co-authored-by: Cursor <[email protected]>
* Document set_path_margin in OpenSTA.fodt/pdf
Add the command reference, index entry, and note that
unset_path_exceptions also clears path margin exceptions.
Co-authored-by: Cursor <[email protected]>
* Drop [[nodiscard]] from PathEnd::hasPathMargin.
Co-authored-by: Cursor <[email protected]>
---------
Co-authored-by: Cursor <[email protected]>
* Implement set_max_dynamic_power and set_max_leakage_power.
Store max dynamic/leakage power like max area, expose getters through Sta,
write them in write_sdc, and document that they are ignored during timing.
Co-authored-by: Cursor <[email protected]>
* Drop get_max_* Tcl wrappers; use SWIG accessors in tests.
James pointed out the get_max_* commands duplicate existing SWIG
accessors; remove them and call sta::max_* from the regression.
Co-authored-by: Cursor <[email protected]>
---------
Co-authored-by: Cursor <[email protected]>
* support for filter in get_scene/mode
Signed-off-by: dsengupta0628 <[email protected]>
* defineProperty overload
Signed-off-by: dsengupta0628 <[email protected]>
* define and set user property
Signed-off-by: dsengupta0628 <[email protected]>
* address review comments to generalize- current support for mode and scene
Signed-off-by: dsengupta0628 <[email protected]>
* address second round comments- removed user from cmd names
Signed-off-by: dsengupta0628 <[email protected]>
* remove defaults, check property vals against type defined
Signed-off-by: dsengupta0628 <[email protected]>
* address reviews, indent
Signed-off-by: dsengupta0628 <[email protected]>
* indent fix
Signed-off-by: dsengupta0628 <[email protected]>
---------
Signed-off-by: dsengupta0628 <[email protected]>
removeConstraints was removed upstream in STA 3.0 (MCMM refactor).
The "Re-add constraints" blocks were originally preceded by
remove_constraints calls; without them, the re-adds are no-ops.
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Jaehyun Kim <[email protected]>
The remove_constraints API was permanently removed from Sta.
Delete the commented-out calls, TODO comments, and "skipped"
print statements instead of keeping placeholder blocks.
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Jaehyun Kim <[email protected]>
Update .libok/.txtok/.sdcok golden files to match current writer
output so diff_files produces "No differences found" instead of
silently reporting mismatches that were captured as expected output.
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Jaehyun Kim <[email protected]>
OpenROAD regression runs 7600+ tests in a shared environment where
clock definitions leak between tests. Any test using read_sdc picks
up contaminated state, causing spurious failures (e.g., clk2 period
15 vs 20). Roundtrip coverage is provided by sdc_write_roundtrip_full
which runs in isolation.
Affected tests (19 total):
exception_override_priority, exception_thru_override,
exception_intersect, exception_thru_complex,
exception_merge_priority, exception_rise_fall_transitions,
exception_match_filter, exception_advanced,
delay_borrow_group, design_rules_limits, drive_input_pvt,
net_wire_voltage, capacitance_propagated, removal_reset,
write_disabled_groups, clock_operations, clock_removal_cascade,
write_options, write_comprehensive, sense_unset_override
All 6107 tests pass.
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Jaehyun Kim <[email protected]>
The read_sdc roundtrip section fails in OpenROAD regression because
the shared test environment leaks clock definitions from other tests
(clk2 period 15 vs 20). Roundtrip coverage is already provided by
sdc_write_roundtrip_full which runs in an isolated context.
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Jaehyun Kim <[email protected]>
- Use diff_files_sorted for exception_override_priority SDC comparisons
to handle non-deterministic write_sdc output ordering across environments
- Add (VERSION ignore pattern to SDF diff_files calls so tests don't
break on upstream version bumps
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Jaehyun Kim <[email protected]>