Commit Graph

185 Commits

Author SHA1 Message Date
Minju Kim d765822226 Merge upstream/master into secure-sta_update_0814
Signed-off-by: Minju Kim <mkim@precisioninno.com>
2026-08-14 19:47:46 +09:00
Akash Levy 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 <cursoragent@cursor.com>

* Fix nested delaySum call indentation to match project style.

Co-authored-by: Cursor <cursoragent@cursor.com>

* 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 <cursoragent@cursor.com>

* 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 <cursoragent@cursor.com>

* Drop [[nodiscard]] from PathEnd::hasPathMargin.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-09 09:29:03 -07:00
Akash Levy 3f4b337e30
Fix port-to-pin conversion for names containing slashes. (#463)
Use get_port_pin instead of find_pin on the port leaf name so escaped
hierarchical port names like level1/level2/level3 resolve correctly.
Also fix arglilst typo in get_port_pins_error.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 13:06:10 -07:00
Akash Levy d0526b524b
FEATURE: Implement `set_max_dynamic_power` and `set_max_leakage_power` (#471)
* 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 <cursoragent@cursor.com>

* 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 <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 12:57:23 -07:00
dsengupta0628 8541d77bc7 Merge remote-tracking branch 'upstream/master' into sta_update_0729 2026-07-30 02:32:07 +00:00
Akash Levy 7fdc304e12
FEATURE: Add `read_vcd -begin_time`/`-end_time` activity windowing (#466)
* Add read_vcd -begin_time/-end_time activity windowing.

Limit VCD transition and duty counting to an optional time window so
activity annotation can ignore regions outside the interval of interest.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Format VcdCount::setFilter parameters one per line.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address VCD begin/end review: VcdTime, sentinel, rename.

Use VcdTime and vcd_null_time instead of int64_t/-1, rename
VcdCount filter bounds to begin/end_time, rename the regression to
vcd_begin_end_time, and document read_vcd -begin_time/-end_time in
ChangeLog.txt.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: James Cherry <34749589+jjcherry56@users.noreply.github.com>
2026-07-29 08:44:51 -07:00
Brian Degnan 87ce5680df
write_path_spice: match side input values to the path arc's transitions (#475)
* write_path_spice: match side input values to the path arc's transitions

gatePortValues() chose side input values from the first CUDD cube of the
Boolean difference d(f)/d(input), which sensitizes the gate but ignores
the transition directions of the arc the path used:

- For non-unate gates whose Boolean difference is a tautology (xor2,
  xnor2) every side variable came back don't-care, and the unknown value
  fell through to tie-low in writeSubcktInstVoltSrcs() -- wrong whenever
  the path used the when-condition requiring the side high.
- For mux select arcs the cube was an arbitrary data assignment,
  unrelated to the output edge the path reported.

Either way the written deck's gate drives the opposite direction from
the reported path: the simulated chain switches with inverted polarity
from that gate onward, edge-qualified arrival measurements fail, and
the deck sums delays from the wrong rise/fall tables.

Constrain the side input condition to the cofactor pair matching this
arc -- f1 & !f0 when the input and driver edges agree (non-inverting),
f0 & !f1 when they differ (inverting) -- threading the gate input
RiseFall from the path stage into gatePortValues().  Also release the
CUDD nodes that were previously leaked (the old code Cudd_Ref'd the
Boolean difference after the generator was freed and never deref'd it).

Fixes #474

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test: write_path_spice
  arc-sense regression for #474, and outlined in #475

---------

Co-authored-by: Brian Degnan <bpdegnan@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 10:23:15 -07:00
Deepashree Sengupta f476e269b9
Extend user-defined properties to all basic object types (#479)
* support for filter in get_scene/mode

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* extend user defined property to all 10 objects

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address reviews

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-27 08:50:40 -07:00
Deepashree Sengupta ef0b69091f
PrimaDelayCalc: handle degenerate parasitic networks (fixes STA-1752 "G matrix is singular") (#476)
* support for filter in get_scene/mode

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* fix singular G matrix issue for degenerate nets

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* fix the mistake on existing regression- was accidentally modified

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* make changes accounting for future SI support and address reviews

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* simplify comment

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address feedbacks

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-27 08:48:57 -07:00
dsengupta0628 f303d84f03 rootcause macos failure issue
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-26 03:31:29 +00:00
dsengupta0628 b83fcee672 Merge remote-tracking branch 'upstream/master' into sta_latest_0710 2026-07-10 17:58:26 +00:00
Deepashree Sengupta a0de2706d3
Add property-based -filter to get_scenes / get_modes, and make Scene/Mode properties extensible (#456)
* support for filter in get_scene/mode

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* defineProperty overload

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* define and set user property

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address review comments to generalize- current support for mode and scene

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address second round comments- removed user from cmd names

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* remove defaults, check property vals against type defined

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address reviews, indent

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* indent fix

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-10 09:37:48 -07:00
James Cherry ceb7e6389d asap7_small cmmment
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-09 10:34:44 -07:00
James Cherry c4c811ad2e make instance update endpoints
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-09 10:29:46 -07:00
dsengupta0628 5c68ce6b54 Merge remote-tracking branch 'upstream/master' into sta_latest_0629 2026-06-30 17:11:41 +00:00
Deepashree Sengupta 998806cb13
make mode/scene pass as tcl objects (#454)
* make mode/scene pass as tcl objects

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address review comments

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* address review comments take 2

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* revert to using cmd mode name

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-30 09:18:56 -07:00
dsengupta0628 0c96ee9a22 upstream changes plus resolved conflict in ci.yml
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-29 15:38:16 +00:00
Deepashree Sengupta 37b0b20a62
fix missing path issue (#452)
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-25 16:55:29 -07:00
dsengupta0628 1c7c168482 Merge remote-tracking branch 'upstream/master' into sta_latest_0609 2026-06-10 17:49:48 +00:00
Drew Lewis 424cb1dff1
Add native gzip compression support to write_verilog (#448) 2026-06-10 09:12:19 -07:00
dsengupta0628 7e8f01616c Revert "enforce sta assump by error instead of seg fault"
This reverts commit 452f0bf772.
2026-06-09 17:59:23 +00:00
dsengupta0628 452f0bf772 enforce sta assump by error instead of seg fault
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-02 15:21:11 +00:00
dsengupta0628 63080ba1bf Merge remote-tracking branch 'upstream/master' into sta_latest_0528 2026-05-28 18:12:56 +00:00
Deepashree Sengupta 5dbc473186
fix makeConcreteParasitics leak+testcase (#439)
* fix makeConcreteParasitics leak

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* simplify test, update the address review comment

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* reduce test verbosity

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-05-20 13:55:02 -07:00
dsengupta0628 85f3840898 latest changes 5/14 including generalize path report field and expose levelizObserver for dbsta
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-05-14 17:01:51 +00:00
dsengupta0628 76c4d6df35 Merge branch 'master' into sta_update_latest_0505 2026-05-11 15:06:20 +00:00
dsengupta0628 7bbd2475bd revert of changes in PR 327
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-05-07 18:15:07 +00:00
James Cherry 6eb6911d30 regression
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-05-06 08:51:10 -07:00
dsengupta0628 ccce34fea5 Merge remote-tracking branch 'parallax_sta/master' into sta_update_latest_0505 2026-05-05 17:06:10 +00:00
James Cherry 6fd319474f regression
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-25 18:59:53 -07:00
James Cherry 15c59e7527 regression.tcl
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-25 16:05:09 -07:00
dsengupta0628 05b4e3a1d9 Latest pulled in changes on 4/20 from upstream to push all together with latest from 4/16
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-20 14:21:16 +00:00
James Cherry 6bcf7b8156 rm unnecessary sta:: in tcl
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-16 16:12:59 -07:00
dsengupta0628 3b8e81393d Merge branch 'master' into sta_latest_from_parallaxsw_0407 2026-04-07 21:53:36 +00:00
dsengupta0628 371b85cd20 latest STA plus changes to fix prima dcalc and read_spef issues, TCL regression added
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-07 20:48:15 +00:00
Deepashree Sengupta c887b2e4b3
Bias pin handling (#409)
* Update STA to exclude bias pins from timing graph and subsequently in write_verilog

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* unnecessary space in orig verilog

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

* Update to use well supplies rather than bias pins

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-07 11:00:01 -07:00
James Cherry 645f2669c9 report_dcalc prima resolves #418
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-07 10:45:04 -07:00
Jaehyun Kim 5fd751e8d7 Revert diff_files/diff_files_sorted to original return behavior
Revert error-on-mismatch back to return 1, as the new GitHub Action
(github-actions-are-differences-found) now detects "Differences found"
in CI output, making the error approach unnecessary.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-04-07 23:42:21 +09:00
dsengupta0628 3eec04f4e8 update STA to Parallaxsw version on 4/7 with fix for issue 416 and some unrelated stuff
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-07 12:59:25 +00:00
Jaehyun Kim b30c82b2d0 Make diff_files/diff_files_sorted error on mismatch
Previously these functions returned 1 on mismatch but no caller
checked the return value, allowing roundtrip failures to go
undetected. Now they call error() so the sta process exits
non-zero and the regression runner catches the failure.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-04-06 14:35:59 +09:00
James Cherry 548b665412 get_* -filter allow true/false, '.' in glob pattern resolves #416
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-04 16:19:41 -07:00
James Cherry d6e826ef8b save_ok hook
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-04 14:58:25 -07:00
James Cherry fe23c4530f regression.tcl
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-03 16:46:13 -07:00
Jaehyun Kim 7d0e0bb641 Merge branch 'master' of https://github.com/The-OpenROAD-Project-private/OpenSTA into secure-test-suite-cleanup
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-04-03 12:27:03 +09:00
Matt Liberty 94bb37bb4a
Merge pull request #327 from The-OpenROAD-Project/driver-vertex-level-cache
added driver vertex levelization
2026-04-02 21:22:03 +00:00
Jaehyun Kim a1c1685c04 Clean up test suite per 3-way code review findings
- Remove temp files: network_gcd_traversal.log, util_report_redirect.log
- Delete 19 comment-only C++ test stubs (dead code for removed APIs)
- Remove redundant graph_make_verify test (covered by graph_advanced)
- Centralize assert_file_nonempty/assert_file_contains into test/helpers.tcl
  and remove inline copies from 17 verilog test files
- Fix Build.sh stray quotes in heredoc output
- Fix regression.sh unquoted variable expansions
- Update .gitignore: add */test/*.log and Testing/

All 6087 tests pass.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-04-02 22:27:27 +09:00
Cho Moon 748fb9bd4b code review changes per Deepashree
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
2026-04-02 06:27:17 +00:00
Jaehyun Kim b42e064281 Merge remote-tracking branch 'opensta/master' into secure-sta-test-by-opus
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>

# Conflicts:
#	test/get_filter.ok
2026-03-31 15:29:44 +09:00
James Cherry 538db6211f filter_objects via Akash Levy resolves #399 2026-03-30 09:36:21 -07:00
James Cherry 46472e0eed regresssion update failures/diffs
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-03-29 15:19:00 -07:00