Commit Graph

320 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
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
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 c00b847b20 prima mcmm bugs
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-29 08:45:39 -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
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 836d704802 update latest OpenSTA from upstream 7/25
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-07-25 11:43:45 +00:00
James Cherry 29b6a1039b PrimaDelayCalc no not copy node_index_map_ pr 458
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-16 16:41:19 -07:00
James Cherry 03786a7035 rm redundant stmt
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-14 15:30:19 -07:00
James Cherry affd539b3f GraphDelayCalc::findVertexDelay incr
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-14 15:30:19 -07:00
James Cherry dbb19a2687 rm GraphDelayCalc::incremental_
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-14 15:30:19 -07:00
James Cherry dd657bf250 GraphDelayCalc::findVertexDelay bidir load->driver
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-14 15:30:19 -07:00
dsengupta0628 82ee5f6f7c Merge remote-tracking branch 'upstream/master' into sta_latest_0710 2026-07-12 01:31:49 +00:00
James Cherry 8648521ece GraphDelayCalc::findVertexDelay bidir driver
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-10 17:05:56 -07:00
dsengupta0628 b83fcee672 Merge remote-tracking branch 'upstream/master' into sta_latest_0710 2026-07-10 17:58:26 +00:00
James Cherry 3dfeabd864 GraphDelayCalc::findVertexDelay rm bidir enqueue
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-10 09:38:24 -07:00
James Cherry 2c866d5f2d bfs update kahns prep
commit 4075953c9798444b9d5275f8fa0320f74b9bf1ef
Author: James Cherry <cherry@CerezoBook.local>
Date:   Sat Jul 4 09:00:48 2026 -0700

    bfs resort hasNext

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 4fb0dd19e479f507935129fe940bcd1cf93b29d0
Author: James Cherry <cherry@CerezoBook.local>
Date:   Thu Jul 2 12:23:54 2026 -0700

    ApiChanges

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 510afbc1403c9fd2b764b4f3a71dddabd696f052
Author: James Cherry <cherry@CerezoBook.local>
Date:   Thu Jul 2 11:07:44 2026 -0700

    bfs enqueueFanin/out

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 9a5aa570e910c289b276a519bdf532dfa2e28c5f
Author: James Cherry <cherry@CerezoBook.local>
Date:   Thu Jul 2 10:41:27 2026 -0700

    Revert "bfs continueFrom/enqueueFanin/out"

    This reverts commit d18498c947a7df2b615fafda38fbdbe8033eca9d.

commit 02a253ab252f6637cfea29bdd788cb25da16813d
Author: James Cherry <cherry@CerezoBook.local>
Date:   Thu Jul 2 08:21:49 2026 -0700

    Revert "Bfs rm search_pred"

    This reverts commit d858b3380b5e1d81ff6162b6378672a6099a246f.

commit 0adf03613d91c5774545d12cba1dc52052ca732a
Author: James Cherry <cherry@CerezoBook.local>
Date:   Thu Jul 2 08:08:04 2026 -0700

    Genclks::ensureMaster

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 089b373c548b77f9189a2617c3168867de620dfe
Author: James Cherry <cherry@CerezoBook.local>
Date:   Wed Jul 1 17:50:43 2026 -0700

    Search::ensureDownstreamClkPins() use dfs

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 000ca16adb9bdcb92266e5f242629bc3e8612658
Author: James Cherry <cherry@CerezoBook.local>
Date:   Wed Jul 1 10:03:57 2026 -0700

    ApiChangeLog

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit d858b3380b5e1d81ff6162b6378672a6099a246f
Author: James Cherry <cherry@CerezoBook.local>
Date:   Wed Jul 1 09:56:53 2026 -0700

    Bfs rm search_pred

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit d18498c947a7df2b615fafda38fbdbe8033eca9d
Author: James Cherry <cherry@CerezoBook.local>
Date:   Wed Jul 1 08:07:15 2026 -0700

    bfs continueFrom/enqueueFanin/out

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit a8c55b12b3ad7a1041766775727ad758ae8c6d18
Author: James Cherry <cherry@CerezoBook.local>
Date:   Tue Jun 30 10:07:46 2026 -0700

    bfs continue

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 8530dcd86b7ee736f1858143c3b2cee57cdbc991
Author: James Cherry <cherry@CerezoBook.local>
Date:   Tue Jun 30 07:15:28 2026 -0700

    Graph::visitFanin/out uninline edge iter

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 1ba1f4576f4b72c64db742369a63dcf8726ba002
Author: James Cherry <cherry@CerezoBook.local>
Date:   Mon Jun 29 21:09:17 2026 -0700

    BfsIterator rm Iterator<Vector> subclass

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit b3ddd2580298958ad6da8225ecac0d255315504c
Author: James Cherry <cherry@CerezoBook.local>
Date:   Mon Jun 29 20:15:23 2026 -0700

    ClkNetwork::findClkPins use VertexQueue instead of bfs

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 9e73154db48a7301be4039a25aec1fef589ef18a
Author: James Cherry <cherry@CerezoBook.local>
Date:   Mon Jun 29 18:39:39 2026 -0700

    Search::ensureDownstreamClkPins use VertexQueue

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 9cd1b160e126ccacc47375ef508fdbb580bfa162
Author: James Cherry <cherry@CerezoBook.local>
Date:   Mon Jun 29 11:18:03 2026 -0700

    comment

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit 0baf3838e2b8faa5fea560b0c95431b277631fea
Author: James Cherry <cherry@CerezoBook.local>
Date:   Mon Jun 29 10:57:39 2026 -0700

    findClkArrivals use invalid for clk fringe

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit e82ccd10a5e4bd69e41ce889685d7a130ae79ed6
Author: James Cherry <cherry@CerezoBook.local>
Date:   Sun Jun 28 20:36:48 2026 -0700

    Search::findClkArrivals

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

commit cb66a72686c8728141c72ceb593b8a4b895ff696
Author: James Cherry <cherry@CerezoBook.local>
Date:   Sun Jun 28 10:11:55 2026 -0700

    rm Search::postponeClkFanouts

    Signed-off-by: James Cherry <cherry@CerezoBook.local>

Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-07-04 09:04:31 -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
James Cherry c81f0c169d cleanup
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 16:54:27 -07:00
James Cherry 0e79e35d17 indent
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:33 -07:00
Drew Lewis 832c62b579
Refactor DMP solver to use Eigen and implement Determinant Guarded solver (#450)
This commit refactors the Dartu-Menezes-Pileggi (DMP) effective capacitance
algorithm solver to use the Eigen library, and implements a Determinant Guarded
solver to handle singular and near-singular Jacobians safely and efficiently.

Key changes:
1. Refactored the DMP solver to use Eigen stack-based data structures,
   replacing the custom Crout LU decomposition and solver.
2. Extracted the linear solver logic into a dedicated helper function
   DmpAlg::solveNewtonStep.
3. Implemented a "Determinant Guarded" solver:
   - Manually checks the determinant of the Jacobian (safety guard).
   - Throws a DmpError if the determinant is dangerously close to zero (|det| < 1e-12),
     safely triggering the lumped capacitance fallback.
   - Otherwise, solves using Eigen's highly optimized analytical inverse (fast path).
4. Added documentation in the comments on how to easily swap back to LU
   decomposition with partial pivoting (PartialPivLU) if any numerical
   precision issues arise in the future.

Benchmark Results (Optimized Release Build, 5,288 DMP calls):

| Test Case | Calls | 1. Original (Crout LU) | 2. Eigen (PartialPivLU) | 3. Eigen (Determinant Guarded) | Speedup (3 vs 1) | Speedup (3 vs 2) |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: |
| power | 2,608 | 1.8822 ms | 1.6791 ms | 1.2702 ms | +32.5% | +24.4% |
| power_vcd | 2,608 | 1.8729 ms | 1.6704 ms | 1.2768 ms | +31.8% | +23.6% |
| spef_parasitics | 24 | 0.0193 ms | 0.0187 ms | 0.0140 ms | +27.5% | +25.1% |
| mcmm3 | 48 | 0.0728 ms | 0.0756 ms | 0.0817 ms | -12.2% | -8.1% |
| Total DMP Time | 5,288 | 3.8472 ms | 3.4438 ms | 2.6427 ms | +31.3% | +23.3% |
2026-06-18 13:52:14 -07:00
dsengupta0628 5dae3933dc Merge remote-tracking branch 'upstream/master' into sta_latest_0618 2026-06-18 17:45:09 +00:00
James Cherry 0fe167a80d sta_internal_bidirect_instance_paths_enabled use load->driver edges
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-15 17:02:58 -07:00
dsengupta0628 ac7dfe5fc2 Merge remote-tracking branch 'parallax_sta/master' into sta_update_latest_0505 2026-05-06 13:37:38 +00:00
James Cherry 9065d915db copy() use copy constructors
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-05-05 17:25:09 -07:00
James Cherry 801d621d6b Dmp delay calc inline algs
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-05-05 17:08:16 -07:00
James Cherry 7fca318611 copy() use copy constructors
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-05-05 16:58:59 -07:00
James Cherry afa2286edc copy() use copy constructors
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-05-05 16:35:40 -07:00
dsengupta0628 ae37dc6238 pickup changes from upstream, latest on 4/27
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-27 18:45:35 +00:00
James Cherry 1eb2e9b11d untabify
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-25 14:45:49 -07:00
James Cherry a1c3077139 message ids
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-23 18:12:40 -07:00
James Cherry c8b9ffb22d tidy
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-21 17:30:35 -07:00
dsengupta0628 c2b629d751 test codes updated to compile succesfully with new changes in upstream
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-20 14:47:52 +00: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 6e7ec45bc8 rm extra swig module dcls
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-16 15:46:32 -07:00
James Cherry 12c59878ee prima non-ccs report dcalc resolves #418
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-16 15:13:28 -07:00
dsengupta0628 9fbfcc4fcb picked changes from upstream master, resolved conflict for levelized driververtices, parseBus for weird defs
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-16 21:37:37 +00:00
James Cherry 21848bcdd2 clang tidy
Signed-off-by: James Cherry <cherry@parallaxsw.com>
2026-04-15 09:38:10 -07:00
dsengupta0628 92f23e1b6d regoldened regressions as now it correctly fallsback tableCalc and not PrimaDcalc
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-13 22:28:04 +00:00
dsengupta0628 5f698bf596 fix the path of checkArgs fail and no-ccs in liberty that causes garbage RC vals in report_dcalc
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-13 22:03:24 +00:00
James Cherry 63efee64bf tidy round1 2026-04-13 14:59:05 -07:00
dsengupta0628 d5925fcdcc changes from upstream 4/13 with prima delaycalc checkArgs refactor, some coverity fix but still problematic
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-04-13 21:26:42 +00:00