Commit Graph
2204 Commits
Author SHA1 Message Date
James Cherry 08cf90d3fd format
Signed-off-by: James Cherry <[email protected]>
2026-07-10 18:48:14 -07:00
James Cherry f29b200bcd EvalPred::searchThru disabled loop edges
Signed-off-by: James Cherry <[email protected]>
2026-07-10 18:45:58 -07:00
James Cherry d05c37e3a6 Graph::visitFaninEdges
Signed-off-by: James Cherry <[email protected]>
2026-07-10 17:07:55 -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 55e9bb5a88 Sta::replaceEquivCellBefore
Signed-off-by: James Cherry <[email protected]>
2026-07-10 09:38:24 -07: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 <[email protected]>

* defineProperty overload

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

* define and set user property

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

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

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

* address second round comments- removed user from cmd names

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

* remove defaults, check property vals against type defined

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

* address reviews, indent

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

* indent fix

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

---------

Signed-off-by: dsengupta0628 <[email protected]>
2026-07-10 09:37:48 -07:00
James Cherry ceb7e6389d asap7_small cmmment
Signed-off-by: James Cherry <[email protected]>
2026-07-09 10:34:44 -07:00
James Cherry c4c811ad2e make instance update endpoints
Signed-off-by: James Cherry <[email protected]>
2026-07-09 10:29:46 -07:00
James Cherry 8f03c823c7 Search::findRequireds ensureSize
Signed-off-by: James Cherry <[email protected]>
2026-07-04 20:26:22 -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 900116cf72 comment
Signed-off-by: James Cherry <[email protected]>
2026-07-01 08:12:34 -07:00
Deepashree Sengupta 998806cb13 make mode/scene pass as tcl objects (#454)
* make mode/scene pass as tcl objects

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

* address review comments

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

* address review comments take 2

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

* revert to using cmd mode name

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

---------

Signed-off-by: dsengupta0628 <[email protected]>
2026-06-30 09:18:56 -07:00
James Cherry 310107acd8 revert 458c277 resolves #455
Signed-off-by: James Cherry <[email protected]>
2026-06-30 09:10:17 -07:00
James Cherry 3f5f18cb9b doc
Signed-off-by: James Cherry <[email protected]>
2026-06-27 20:43:49 -07:00
James Cherry c222b49a7a ConcreteNetwork/Library member alignment
Signed-off-by: James Cherry <[email protected]>
2026-06-26 21:11:13 -07:00
James Cherry 1796b158a2 Graph member alignment
Signed-off-by: James Cherry <[email protected]>
2026-06-26 20:20:09 -07:00
Deepashree Sengupta 37b0b20a62 fix missing path issue (#452)
Signed-off-by: dsengupta0628 <[email protected]>
2026-06-25 16:55:29 -07:00
James Cherry 666b9214d0 LibertyWriter::writeBusDcls() resolves #436
Signed-off-by: James Cherry <[email protected]>
2026-06-25 16:50:43 -07:00
James Cherry bfdd2be0ee ArrivalVisitor::srch_adj_ -> search_adj_
Signed-off-by: James Cherry <[email protected]>
2026-06-25 10:43:43 -07:00
James Cherry 0b938d71eb SearchAdjLoop predicate
Signed-off-by: James Cherry <[email protected]>
2026-06-25 10:04:39 -07:00
James Cherry 2f26c1e21a make_net check for existing
Signed-off-by: James Cherry <[email protected]>
2026-06-24 18:02:47 -07:00
James Cherry 7527553111 leak
Signed-off-by: James Cherry <[email protected]>
2026-06-24 17:00:00 -07:00
James Cherry e603b7abe0 dynamic loop do not use search pred
Signed-off-by: James Cherry <[email protected]>
2026-06-24 16:55:51 -07:00
James Cherry f1adf5b26a Graph::visitFanouts, visitFanins
Signed-off-by: James Cherry <[email protected]>
2026-06-23 15:09:08 -07:00
James Cherry a456c352cf rename LibertyCell::hasSequentials to isSequential
Signed-off-by: James Cherry <[email protected]>
2026-06-22 19:20:39 -07:00
James Cherry 458c277c80 Sta::delaysInvalidFromFanin
Signed-off-by: James Cherry <[email protected]>
2026-06-22 19:14:30 -07:00
James Cherry c81f0c169d cleanup
Signed-off-by: James Cherry <[email protected]>
2026-06-22 16:54:27 -07:00
James Cherry 0939625580 .cursor
Signed-off-by: James Cherry <[email protected]>
2026-06-22 09:31:54 -07:00
James Cherry 2349b76a95 Genclks::findFanin use queue instead of BfsIterator
Signed-off-by: James Cherry <[email protected]>
2026-06-22 09:30:45 -07:00
James Cherry 266061fcee Genclks::ensureMaster use queue instead of BfsIterator
Signed-off-by: James Cherry <[email protected]>
2026-06-22 09:08:39 -07:00
James Cherry 70e8f9f473 genclks use queue instead of bfs
Signed-off-by: James Cherry <[email protected]>
2026-06-21 20:55:57 -07:00
James Cherry 4f0c4c8bb3 gated clk activity use passes instead of enqueue
Signed-off-by: James Cherry <[email protected]>
2026-06-21 16:21:27 -07:00
dependabot[bot] 8d7babf44e Bump actions/checkout from 6 to 7 (#451)
Signed-off-by: dependabot[bot] <[email protected]>
2026-06-19 10:49:10 +08:00
James Cherry 7ca079f3f6 LibertyPort::setIsLatchOutput
Signed-off-by: James Cherry <[email protected]>
2026-06-18 14:42:12 -07:00
James Cherry 63361465e2 ChangeLog typo
Signed-off-by: James Cherry <[email protected]>
2026-06-18 14:08:43 -07:00
James Cherry 46d6ca9fc8 comment
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:47 -07:00
James Cherry 7a541edb70 levelize rm latch d->q handling
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:47 -07:00
James Cherry dea1ea2c13 rm Search::postpone_latch_outputs_
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:47 -07:00
James Cherry 1c6ab172e2 eval latches out of bfs
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:47 -07:00
James Cherry 9e39e42703 comment
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:33 -07:00
James Cherry 0e79e35d17 indent
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:33 -07:00
James Cherry 1b71a26667 Levelize::isRoot bidirect leftover
Signed-off-by: James Cherry <[email protected]>
2026-06-18 13:52:33 -07:00
James Cherry 9a11f094b9 typos/format
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 133580eeae Sta::findRequired(vertex) public
Signed-off-by: James Cherry <[email protected]>
2026-06-16 12:00:17 -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 376d86bbce rm Sdc::output_delay_ref_pin_map_
Signed-off-by: James Cherry <[email protected]>
2026-06-13 16:45:23 -07:00
James Cherry 740fa7d16c input ref pin graph edges
Signed-off-by: James Cherry <[email protected]>
2026-06-13 16:31:24 -07:00
James Cherry 4249ab7b98 set sta_pocv_mode update delays/slews
Signed-off-by: James Cherry <[email protected]>
2026-06-10 10:38:15 -07:00