Commit Graph

2694 Commits

Author SHA1 Message Date
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 c222b49a7a ConcreteNetwork/Library member alignment
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-26 21:11:13 -07:00
James Cherry 1796b158a2 Graph member alignment
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-26 20:20:09 -07:00
Deepashree Sengupta 37b0b20a62
fix missing path issue (#452)
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-25 16:55:29 -07:00
James Cherry 666b9214d0 LibertyWriter::writeBusDcls() resolves #436
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-25 16:50:43 -07:00
James Cherry bfdd2be0ee ArrivalVisitor::srch_adj_ -> search_adj_
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-25 10:43:43 -07:00
James Cherry 0b938d71eb SearchAdjLoop predicate
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-25 10:04:39 -07:00
James Cherry 2f26c1e21a make_net check for existing
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-24 18:02:47 -07:00
James Cherry 7527553111 leak
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-24 17:00:00 -07:00
James Cherry e603b7abe0 dynamic loop do not use search pred
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-24 16:55:51 -07:00
James Cherry f1adf5b26a Graph::visitFanouts, visitFanins
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-23 15:09:08 -07:00
James Cherry a456c352cf rename LibertyCell::hasSequentials to isSequential
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 19:20:39 -07:00
James Cherry 458c277c80 Sta::delaysInvalidFromFanin
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 19:14:30 -07:00
James Cherry c81f0c169d cleanup
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 16:54:27 -07:00
James Cherry 0939625580 .cursor
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 09:31:54 -07:00
James Cherry 2349b76a95 Genclks::findFanin use queue instead of BfsIterator
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 09:30:45 -07:00
James Cherry 266061fcee Genclks::ensureMaster use queue instead of BfsIterator
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-22 09:08:39 -07:00
James Cherry 70e8f9f473 genclks use queue instead of bfs
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-21 20:55:57 -07:00
James Cherry 4f0c4c8bb3 gated clk activity use passes instead of enqueue
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-21 16:21:27 -07:00
dependabot[bot] 8d7babf44e
Bump actions/checkout from 6 to 7 (#451)
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-19 10:49:10 +08:00
James Cherry 7ca079f3f6 LibertyPort::setIsLatchOutput
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 14:42:12 -07:00
Matt Liberty 8572175ac4
Merge pull request #372 from The-OpenROAD-Project-staging/sta_latest_0618
Sta latest 0618
2026-06-18 21:24:54 +00:00
James Cherry 63361465e2 ChangeLog typo
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 14:08:43 -07:00
James Cherry 46d6ca9fc8 comment
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:47 -07:00
James Cherry 7a541edb70 levelize rm latch d->q handling
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:47 -07:00
James Cherry dea1ea2c13 rm Search::postpone_latch_outputs_
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:47 -07:00
James Cherry 1c6ab172e2 eval latches out of bfs
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:47 -07:00
James Cherry 9e39e42703 comment
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:33 -07:00
James Cherry 0e79e35d17 indent
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:33 -07:00
James Cherry 1b71a26667 Levelize::isRoot bidirect leftover
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-18 13:52:33 -07:00
James Cherry 9a11f094b9 typos/format
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 133580eeae Sta::findRequired(vertex) public
Signed-off-by: James Cherry <cherry@CerezoBook.local>
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 <cherry@CerezoBook.local>
2026-06-15 17:02:58 -07:00
James Cherry 376d86bbce rm Sdc::output_delay_ref_pin_map_
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-13 16:45:23 -07:00
James Cherry 740fa7d16c input ref pin graph edges
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-13 16:31:24 -07:00
Matt Liberty 244797f162
Merge pull request #370 from The-OpenROAD-Project-staging/sta_latest_0609
Sta latest 0609
2026-06-12 15:08:23 +00:00
dsengupta0628 1c7c168482 Merge remote-tracking branch 'upstream/master' into sta_latest_0609 2026-06-10 17:49:48 +00:00
James Cherry 4249ab7b98 set sta_pocv_mode update delays/slews
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-10 10:38:15 -07:00
Drew Lewis 424cb1dff1
Add native gzip compression support to write_verilog (#448) 2026-06-10 09:12:19 -07:00
dsengupta0628 772615ec8e Merge remote-tracking branch 'upstream/master' into sta_latest_0609 2026-06-10 04:15:13 +00:00
Deepashree Sengupta 65deb11d64
Address a few typos in docs related to SSTA (#447)
* Address a few typos in docs

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

* update help string for report_checks to reflect variation

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

---------

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-09 20:55:27 -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 7c2f746185 latest from 06/09 codes parallaxsw/OpensSTA
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
2026-06-09 17:43:53 +00:00
dsengupta0628 7aeca8c193 Merge remote-tracking branch 'upstream/master' into sta_latest_0609 2026-06-09 16:08:30 +00:00
James Cherry 014678a4f8 cursor
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-06 20:12:33 -07:00
Drew Lewis b3458485ba
Dont spin main for queue (#443)
* Use DynamicLatch in DispatchQueue to avoid main thread spinning

Replace the busy-yielding pending_task_count_ loop in DispatchQueue::finishTasks
with a blocking DynamicLatch. This avoids having the main thread consume CPU
cycles while waiting for dispatched tasks to complete.

The DynamicLatch implementation uses C++20 std::atomic::wait/notify_all for
efficient blocking and wakeup, with proper release-acquire semantics to ensure
task results are visible to the waiting thread.

* Reformat DynamicLatch to match DispatchQueue style

* Update attribution headers in DispatchQueue files to note modifications
2026-06-06 16:45:46 -07:00
James Cherry ffe126af2a PathGroups::inPathGroupNamed
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-06 11:55:51 -07:00
James Cherry b0869d521c comment
Signed-off-by: James Cherry <cherry@CerezoBook.local>
2026-06-04 08:54:28 -07:00