Commit Graph
263 Commits
Author SHA1 Message Date
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 <[email protected]>

* fix singular G matrix issue for degenerate nets

Signed-off-by: dsengupta0628 <[email protected]>

* fix the mistake on existing regression- was accidentally modified

Signed-off-by: dsengupta0628 <[email protected]>

* make changes accounting for future SI support and address reviews

Signed-off-by: dsengupta0628 <[email protected]>

* simplify comment

Signed-off-by: dsengupta0628 <[email protected]>

* address feedbacks

Signed-off-by: dsengupta0628 <[email protected]>

---------

Signed-off-by: dsengupta0628 <[email protected]>
2026-07-27 08:48:57 -07:00
James Cherry 29b6a1039b PrimaDelayCalc no not copy node_index_map_ pr 458
Signed-off-by: James Cherry <[email protected]>
2026-07-16 16:41:19 -07:00
James Cherry 03786a7035 rm redundant stmt
Signed-off-by: James Cherry <[email protected]>
2026-07-14 15:30:19 -07:00
James Cherry affd539b3f GraphDelayCalc::findVertexDelay incr
Signed-off-by: James Cherry <[email protected]>
2026-07-14 15:30:19 -07:00
James Cherry dbb19a2687 rm GraphDelayCalc::incremental_
Signed-off-by: James Cherry <[email protected]>
2026-07-14 15:30:19 -07:00
James Cherry dd657bf250 GraphDelayCalc::findVertexDelay bidir load->driver
Signed-off-by: James Cherry <[email protected]>
2026-07-14 15:30:19 -07:00
James Cherry 8648521ece GraphDelayCalc::findVertexDelay bidir driver
Signed-off-by: James Cherry <[email protected]>
2026-07-10 17:05:56 -07:00
James Cherry 3dfeabd864 GraphDelayCalc::findVertexDelay rm bidir enqueue
Signed-off-by: James Cherry <[email protected]>
2026-07-10 09:38:24 -07:00
James Cherry 2c866d5f2d bfs update kahns prep
commit 4075953c9798444b9d5275f8fa0320f74b9bf1ef
Author: James Cherry <[email protected]>
Date:   Sat Jul 4 09:00:48 2026 -0700

    bfs resort hasNext

    Signed-off-by: James Cherry <[email protected]>

commit 4fb0dd19e479f507935129fe940bcd1cf93b29d0
Author: James Cherry <[email protected]>
Date:   Thu Jul 2 12:23:54 2026 -0700

    ApiChanges

    Signed-off-by: James Cherry <[email protected]>

commit 510afbc1403c9fd2b764b4f3a71dddabd696f052
Author: James Cherry <[email protected]>
Date:   Thu Jul 2 11:07:44 2026 -0700

    bfs enqueueFanin/out

    Signed-off-by: James Cherry <[email protected]>

commit 9a5aa570e910c289b276a519bdf532dfa2e28c5f
Author: James Cherry <[email protected]>
Date:   Thu Jul 2 10:41:27 2026 -0700

    Revert "bfs continueFrom/enqueueFanin/out"

    This reverts commit d18498c947a7df2b615fafda38fbdbe8033eca9d.

commit 02a253ab252f6637cfea29bdd788cb25da16813d
Author: James Cherry <[email protected]>
Date:   Thu Jul 2 08:21:49 2026 -0700

    Revert "Bfs rm search_pred"

    This reverts commit d858b3380b5e1d81ff6162b6378672a6099a246f.

commit 0adf03613d91c5774545d12cba1dc52052ca732a
Author: James Cherry <[email protected]>
Date:   Thu Jul 2 08:08:04 2026 -0700

    Genclks::ensureMaster

    Signed-off-by: James Cherry <[email protected]>

commit 089b373c548b77f9189a2617c3168867de620dfe
Author: James Cherry <[email protected]>
Date:   Wed Jul 1 17:50:43 2026 -0700

    Search::ensureDownstreamClkPins() use dfs

    Signed-off-by: James Cherry <[email protected]>

commit 000ca16adb9bdcb92266e5f242629bc3e8612658
Author: James Cherry <[email protected]>
Date:   Wed Jul 1 10:03:57 2026 -0700

    ApiChangeLog

    Signed-off-by: James Cherry <[email protected]>

commit d858b3380b5e1d81ff6162b6378672a6099a246f
Author: James Cherry <[email protected]>
Date:   Wed Jul 1 09:56:53 2026 -0700

    Bfs rm search_pred

    Signed-off-by: James Cherry <[email protected]>

commit d18498c947a7df2b615fafda38fbdbe8033eca9d
Author: James Cherry <[email protected]>
Date:   Wed Jul 1 08:07:15 2026 -0700

    bfs continueFrom/enqueueFanin/out

    Signed-off-by: James Cherry <[email protected]>

commit a8c55b12b3ad7a1041766775727ad758ae8c6d18
Author: James Cherry <[email protected]>
Date:   Tue Jun 30 10:07:46 2026 -0700

    bfs continue

    Signed-off-by: James Cherry <[email protected]>

commit 8530dcd86b7ee736f1858143c3b2cee57cdbc991
Author: James Cherry <[email protected]>
Date:   Tue Jun 30 07:15:28 2026 -0700

    Graph::visitFanin/out uninline edge iter

    Signed-off-by: James Cherry <[email protected]>

commit 1ba1f4576f4b72c64db742369a63dcf8726ba002
Author: James Cherry <[email protected]>
Date:   Mon Jun 29 21:09:17 2026 -0700

    BfsIterator rm Iterator<Vector> subclass

    Signed-off-by: James Cherry <[email protected]>

commit b3ddd2580298958ad6da8225ecac0d255315504c
Author: James Cherry <[email protected]>
Date:   Mon Jun 29 20:15:23 2026 -0700

    ClkNetwork::findClkPins use VertexQueue instead of bfs

    Signed-off-by: James Cherry <[email protected]>

commit 9e73154db48a7301be4039a25aec1fef589ef18a
Author: James Cherry <[email protected]>
Date:   Mon Jun 29 18:39:39 2026 -0700

    Search::ensureDownstreamClkPins use VertexQueue

    Signed-off-by: James Cherry <[email protected]>

commit 9cd1b160e126ccacc47375ef508fdbb580bfa162
Author: James Cherry <[email protected]>
Date:   Mon Jun 29 11:18:03 2026 -0700

    comment

    Signed-off-by: James Cherry <[email protected]>

commit 0baf3838e2b8faa5fea560b0c95431b277631fea
Author: James Cherry <[email protected]>
Date:   Mon Jun 29 10:57:39 2026 -0700

    findClkArrivals use invalid for clk fringe

    Signed-off-by: James Cherry <[email protected]>

commit e82ccd10a5e4bd69e41ce889685d7a130ae79ed6
Author: James Cherry <[email protected]>
Date:   Sun Jun 28 20:36:48 2026 -0700

    Search::findClkArrivals

    Signed-off-by: James Cherry <[email protected]>

commit cb66a72686c8728141c72ceb593b8a4b895ff696
Author: James Cherry <[email protected]>
Date:   Sun Jun 28 10:11:55 2026 -0700

    rm Search::postponeClkFanouts

    Signed-off-by: James Cherry <[email protected]>

Signed-off-by: James Cherry <[email protected]>
2026-07-04 09:04:31 -07:00
James Cherry c81f0c169d cleanup
Signed-off-by: James Cherry <[email protected]>
2026-06-22 16:54:27 -07:00
James Cherry 0e79e35d17 indent
Signed-off-by: James Cherry <[email protected]>
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
James Cherry 0fe167a80d sta_internal_bidirect_instance_paths_enabled use load->driver edges
Signed-off-by: James Cherry <[email protected]>
2026-06-15 17:02:58 -07:00
James Cherry 9065d915db copy() use copy constructors
Signed-off-by: James Cherry <[email protected]>
2026-05-05 17:25:09 -07:00
James Cherry 801d621d6b Dmp delay calc inline algs
Signed-off-by: James Cherry <[email protected]>
2026-05-05 17:08:16 -07:00
James Cherry 7fca318611 copy() use copy constructors
Signed-off-by: James Cherry <[email protected]>
2026-05-05 16:58:59 -07:00
James Cherry afa2286edc copy() use copy constructors
Signed-off-by: James Cherry <[email protected]>
2026-05-05 16:35:40 -07:00
James Cherry 1eb2e9b11d untabify
Signed-off-by: James Cherry <[email protected]>
2026-04-25 14:45:49 -07:00
James Cherry a1c3077139 message ids
Signed-off-by: James Cherry <[email protected]>
2026-04-23 18:12:40 -07:00
James Cherry c8b9ffb22d tidy
Signed-off-by: James Cherry <[email protected]>
2026-04-21 17:30:35 -07:00
James Cherry 6e7ec45bc8 rm extra swig module dcls
Signed-off-by: James Cherry <[email protected]>
2026-04-16 15:46:32 -07:00
James Cherry 12c59878ee prima non-ccs report dcalc resolves #418
Signed-off-by: James Cherry <[email protected]>
2026-04-16 15:13:28 -07:00
James Cherry 21848bcdd2 clang tidy
Signed-off-by: James Cherry <[email protected]>
2026-04-15 09:38:10 -07:00
James Cherry 63efee64bf tidy round1 2026-04-13 14:59:05 -07:00
James Cherry b136ba309a PrimaDelayCalc::reportGateDelay resolves #418
Signed-off-by: James Cherry <[email protected]>
2026-04-09 15:13:40 -07:00
James Cherry 645f2669c9 report_dcalc prima resolves #418
Signed-off-by: James Cherry <[email protected]>
2026-04-07 10:45:04 -07:00
James Cherry 84150e925b prima ceff
Signed-off-by: James Cherry <[email protected]>
2026-04-04 09:21:34 -07:00
James Cherry aedddcecd8 DMP use std::array
Signed-off-by: James Cherry <[email protected]>
2026-04-04 09:21:01 -07:00
James Cherry 2f85fdfee3 Dmp cleanup
Signed-off-by: James Cherry <[email protected]>
2026-04-03 16:46:05 -07:00
James Cherry e04f36b541 GraphDelayCalc::findInputArcDelay rm Slew
Signed-off-by: James Cherry <[email protected]>
2026-04-03 11:22:38 -07:00
James Cherry 5d40134239 ArnoldiDelayCalc rcmodel
Signed-off-by: James Cherry <[email protected]>
2026-04-03 11:22:38 -07:00
James Cherry 638ffa57d4 cleanup
Signed-off-by: James Cherry <[email protected]>
2026-03-31 16:45:47 -07:00
James Cherry 8c1ebce695 GraphDelayCalc::findInputDriverDelay rm finishDrvrPin
Signed-off-by: James Cherry <[email protected]>
2026-03-31 16:37:38 -07:00
James Cherry 1d4b516239 GraphDelayCalc::findInputArcDelay thread issue
Signed-off-by: James Cherry <[email protected]>
2026-03-31 13:59:59 -07:00
James Cherry 6742692876 string squash
Signed-off-by: James Cherry <[email protected]>
2026-03-28 19:13:35 -07:00
James Cherry b9e439f41c delay calc clip delay to 0.0 resolves #405
Signed-off-by: James Cherry <[email protected]>
2026-03-24 18:42:47 -07:00
James Cherry 04f4528c2c ccs ceff pocv
Signed-off-by: James Cherry <[email protected]>
2026-03-22 19:34:59 -07:00
James Cherry 73c2cca24c delayAsString
Signed-off-by: James Cherry <[email protected]>
2026-03-18 16:33:15 -07:00
James Cherry 61b2a4b2c3 indent
Signed-off-by: James Cherry <[email protected]>
2026-03-16 16:29:10 -07:00
James Cherry 134b547501 use std::format squash 2026-03-16 15:01:38 -07:00
James Cherry 5fbd2a18b5 Graph::slew/arcDelay rm static
Signed-off-by: James Cherry <[email protected]>
2026-03-16 14:53:02 -07:00
James Cherry d6e7b4256c lvf squish
Signed-off-by: James Cherry <[email protected]>
2026-03-13 14:06:35 -07:00
James Cherry 0a5b95a523 CcsCeffDelayCalc::loadDelaySlew
Signed-off-by: James Cherry <[email protected]>
2026-03-13 10:19:07 -07:00
James Cherry 818596f25a LumpedCapDelayCalc::makeResult resolves #403
Signed-off-by: James Cherry <[email protected]>
2026-03-12 15:53:10 -07:00
James Cherry 981f44db68 update copyright
Signed-off-by: James Cherry <[email protected]>
2026-03-10 14:57:45 -07:00
James Cherry 129d007f76 override
Signed-off-by: James Cherry <[email protected]>
2026-03-09 17:43:03 -07:00
James Cherry 28b9401e31 const
Signed-off-by: James Cherry <[email protected]>
2026-03-08 16:15:24 -07:00
James Cherry 859982bdc7 StdStringSeq -> StringSeq
Signed-off-by: James Cherry <[email protected]>
2026-03-08 15:51:50 -07:00
James Cherry d7905a3886 delay_calcs use std::string
Signed-off-by: James Cherry <[email protected]>
2026-03-08 14:41:22 -07:00
James Cherry c2c40f76b1 DmpAlg
Signed-off-by: James Cherry <[email protected]>
2026-03-08 14:03:53 -07:00