Commit Graph

2787 Commits

Author SHA1 Message Date
Matt Liberty d1b2b3962c
Merge pull request #403 from The-OpenROAD-Project-staging/secure-sta_update_0814
Merge upstream OpenSTA 08/14
2026-08-19 04:17:13 +00:00
Minju Kim 509913b139 search/test: adapt PathEnd gtests to set_path_margin API
Upstream e9c075ab (BIGFEATURE: Add `set_path_margin` command, parallaxsw#469)
added a `PathMargin *path_margin` parameter to the PathEndCheck,
PathEndOutputDelay and PathEndGatedClock constructors, between `mcp` and the
argument that followed it.

Our per-module gtests are not in the upstream tree, so the upstream change did
not touch them and the merge left them calling the old arity. Pass nullptr for
the new parameter; these cases only exercise type()/typeName()/copy(), so no
margin is needed.

No behavioral change - test-only API adaptation.

Signed-off-by: Minju Kim <mkim@precisioninno.com>
2026-08-14 19:47:46 +09:00
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
Eder Monteiro a89c2acc4e
Merge pull request #402 from The-OpenROAD-Project-staging/sta_update_0729_fix
Sta update 0729 fix
2026-08-13 16:13:46 -03:00
dsengupta0628 e8af2e8ad9 make same as upstream
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-08-12 19:28:15 +00:00
Deepashree Sengupta c3e092033e
Fix quadratic stampEqns() in PrimaDelayCalc by reserving sparse matrix columns (#486)
* support for filter in get_scene/mode

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

* fix the openroad timeout issue

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

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-08-12 10:36:54 -07:00
dsengupta0628 4c3c017f7a dcalc: reserve per column slack in PrimaDelayCalc::stampEqns
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-08-12 15:23:10 +00:00
Matt Liberty b6a817bab8
Merge pull request #401 from The-OpenROAD-Project-staging/sta_fix_const_net_ptr
dcalc: no slew merge for constant disabled arcs
2026-08-12 03:19:59 +00:00
dsengupta0628 5500bdba47 regolden tests for constant disabled arc slew fix
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 <dsengupta@precisioninno.com>
2026-08-11 21:34:41 +00:00
James Cherry ce8cdadc09 dcalc no slew merge for constant disabled arcs
Signed-off-by: James Cherry <cherry@CerezoBook.local>
(cherry picked from commit 8b511bc012)
2026-08-11 21:10:44 +00:00
dsengupta0628 b0f4954774 add bug reproducer
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-08-11 20:51:12 +00:00
James Cherry 8b511bc012 dcalc no slew merge for constant disabled arcs
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-08-11 20:54:49 +01: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
Matt Liberty 60b59a15bd
Merge pull request #397 from The-OpenROAD-Project-staging/sta_update_0729
Latest upstream OpenSTA 7/29
2026-07-31 17:38:21 +00:00
dsengupta0628 0e887a7003 use relative name in swig correctly
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-31 01:30:46 +00:00
dsengupta0628 29b78841e5 add missing new file for succesful OpenROAd bazel build
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-30 14:46:28 +00:00
dsengupta0628 8541d77bc7 Merge remote-tracking branch 'upstream/master' into sta_update_0729 2026-07-30 02:32:07 +00:00
James Cherry ecdef77537 PrimaDelayCalc::driverResistance()
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-29 09:56:31 -07:00
James Cherry 108ed70e47 fmt
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-29 08:58:38 -07:00
James Cherry b548398c6c WriteSpice::gatePortValues unused rm Instance arg
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-29 08:57:06 -07:00
James Cherry c00b847b20 prima mcmm bugs
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-29 08:45:39 -07: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
James Cherry f29b6a43c6 prima merge noise branch changes and rm iterator uses
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-28 16:22:42 -07:00
Vitor Bandeira 5be03c5cca
Merge pull request #396 from vvbandeira/drop-centos-ci
ci: drop centos7 from workflow
2026-07-28 15:17:03 -03:00
Vitor Bandeira ba026e686f ci: drop centos7 from workflow
Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
2026-07-28 13:20:52 -03:00
Matt Liberty 0c9c542334
Merge pull request #371 from hzeller/feature-20260611-runfile
We're not using runfiles anymore, don't use associated macro define.
2026-07-27 20:39:49 +00: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
Henner Zeller 685f006f15 We're not using runfiles anymore, don't use associated macro define.
We used to use runfiles to work with tcl dependencies. Since we don't
need that anymore, just add a regular `BAZEL_BUILD` define to
choose the behavior in the bazel build and remove the unneeded
dependency.

Signed-off-by: Henner Zeller <h.zeller@acm.org>
2026-07-27 16:58:42 +02:00
Matt Liberty d468d14fdc
Merge pull request #393 from The-OpenROAD-Project-staging/sta_update_0725
Sta update 0725
2026-07-27 14:17:44 +00:00
dsengupta0628 de61cd0845 Merge remote-tracking branch 'upstream/master' into sta_update_0725 2026-07-27 02:03:33 +00:00
dsengupta0628 e2ffe24572 Revert "fix docker centos7"
This reverts commit a7d2b221b8.

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-27 02:02:30 +00:00
James Cherry 99eb809fff Dockerfile.centos7 bison server
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-26 17:01:06 -07:00
James Cherry fbf4d5e3a8 Dockerfile.centos7 tcl server
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-26 14:58:32 -07:00
dsengupta0628 a7d2b221b8 fix docker centos7
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-26 21:49:30 +00:00
dsengupta0628 55580b3cdb Merge remote-tracking branch 'upstream/master' into sta_update_0725 2026-07-26 21:20:20 +00:00
James Cherry 534e21abcf Dockerfile.centos7 tcl server
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-26 06:29:39 -07:00
dsengupta0628 c5442e164a resolved last regression failing
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-26 04:16:42 +00:00
dsengupta0628 f303d84f03 rootcause macos failure issue
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-26 03:31:29 +00:00
dsengupta0628 6b6f7c9ae4 unbreak centos7 ctest and macOS build dir
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-25 14:26:44 +00:00
dsengupta0628 836d704802 update latest OpenSTA from upstream 7/25
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-25 11:43:45 +00:00
Matt Liberty 3ce15f0f72
Merge pull request #392 from The-OpenROAD-Project-staging/sta_fix_bzl
Remove duplicated list BUILD, derive one from the other
2026-07-23 16:19:45 +00:00
dsengupta0628 343fd9a994 Merge branch 'master' into sta_fix_bzl 2026-07-23 15:38:58 +00:00
dsengupta0628 20ba5b5dc6 long term solution to avoid dual lists maintainance
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-23 15:38:27 +00:00
Matt Liberty bb610c927f
Merge pull request #391 from The-OpenROAD-Project-staging/sta_fix_bzl
fix missing file in bazel build
2026-07-23 15:27:30 +00:00
dsengupta0628 2be8118685 fix 2
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-23 13:45:03 +00:00
dsengupta0628 94d55269b7 fix missing file in bazel build
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-23 13:23:14 +00:00