Files
OpenSTA/include/sta
Akash LevyandCursor e9c075ab94 BIGFEATURE: Add set_path_margin command (#469)
* 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]>
2026-08-09 09:29:03 -07:00
..
2026-07-29 08:45:39 -07:00
2026-04-15 09:38:10 -07:00
2026-07-04 09:04:31 -07:00
2026-05-05 16:41:14 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-25 10:35:42 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-07-19 10:28:43 -07:00
2026-06-23 15:09:08 -07:00
2026-04-15 09:38:10 -07:00
2026-05-27 10:44:55 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-25 10:35:42 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-06-18 14:42:12 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-06-06 11:55:51 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-06-13 16:31:24 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-25 10:40:14 -07:00
2026-04-13 14:59:05 -07:00
2026-07-04 09:04:31 -07:00
2026-04-24 11:54:28 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-07-19 10:28:43 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-06-13 16:31:24 -07:00
2026-04-13 14:59:05 -07:00
2026-06-13 16:31:24 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-03-10 14:57:45 -07:00