sync - #2
Open
nanocoh wants to merge 2811 commits into
Open
Conversation
…ered nodes The three writers derive their output from a solution and all reached into currents_/voltages_ with at(), so calling one before analyze_power_grid threw a bare std::out_of_range with nothing to act on. write_pg_spice threw after it had already written the resistive network, leaving a syntactically valid spice deck with no sources and no sinks -- a floating network a simulator solves to nonsense rather than rejects. Each writer now calls ensureSolution() before creating its file, which reports the net and corner and names analyze_power_grid. writeSpiceFile additionally looked up every ITermNode in the per-node current map with at(). That map is sparse by construction: generateCurrentMap() inserts only nodes of instances returned by getInstancePower(), so a filler, tap or decap has no entry. solve() reads the same map with find() and a zero default, so the sparse case was already handled twenty lines of context away. The lookup now matches, and skips a node with no current the way the neighbouring kSpiceFileMinCurrent guard already skips a negligible one. Adds report_writers_require_solution, covering write_pg_spice before a solution exists -- including that no file is left behind -- and all three writers after one. Fixes #11098 Signed-off-by: Shivaram Mysore <shivaram.mysore@gmail.com>
The ensureSolution comment ran to 81 columns against the 80-column limit. Verified with the same clang-format CI uses, Ubuntu 18.1.3, via --dry-run -Werror on both changed files. Signed-off-by: Shivaram Mysore <shivaram.mysore@gmail.com>
ord: register Tech for Python global APIs
odb: ensure chip has a name and not a nullptr
Addresses both review comments on #11103. hasSolution() requires the current map to be non-empty, so a grid solved with no powered instances -- a DEF-only or floorplanning analysis, where the solve populates voltages and generateCurrentMap() inserts nothing -- would have been rejected by the guard immediately after a successful solve. Voltages are still reportable in that case. Each writer now tests the map it actually reads: the voltage and EM writers require node voltages, and the spice writer requires the current map, whose emptiness is already handled by the find() lookup over ITerm nodes. The helper is renamed reportNoSolution() since it no longer decides, only reports. Also registers report_writers_require_solution in src/psm/test/BUILD. It was added to the CMake list only, so Bazel generated no target for it and Bazel CI could not run the regression. AGENTS.md asks for dual CMake+Bazel registration. Signed-off-by: Shivaram Mysore <shivaram.mysore@gmail.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
tap: fix overlapping endcap cells at macro boundary jogs
psm: error early when a report writer has no solution, and skip unpowered nodes
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
…y wire RC by tech" This reverts commit dcd6b63. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
dpl: ensure site exists for one site gap check
dpl: draw diamond search as a per-instance outline
Revert "est: skip parasitic estimation for timing-irrelevant nets; key wire RC by tech"
When buf_dist evaluates to a fractional value strictly between 0.0 and 1.0 (in DBU), integer truncation causes length -= buf_dist to remain unchanged. Previously, the zero_advance detection only caught buf_dist <= 0.0. This fix broadens the condition to buf_dist < 1.0 to correctly detect lack of progress caused by integer truncation, preventing an infinite loop and subsequent stack overflow. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Allow trailing whitespace after the terminating semicolon in LEF58_MINWIDTH rules so properties like "MINWIDTH 1.0 WRONGDIRECTION ; " parse cleanly. Add C++ and Tcl regression tests with a multiline LEF58_MINWIDTH property matching production tech LEF formatting. Fixes #4252 Signed-off-by: Tyrone Marhguy <tyronemarhguy@gmail.com>
Signed-off-by: Tyrone Marhguy <tyronemarhguy@gmail.com>
Simplify trailing-whitespace handling per review feedback on #11107. Signed-off-by: Tyrone Marhguy <tyronemarhguy@gmail.com>
Fix integer truncation bug in RepairDesign::repairNetWire
web: fix bbox and add debugPrints
Register the tests from regression_tests_large.tcl (macro01-03, medium01-06, large01-02) as Bazel regression_test targets tagged 'manual' so they are excluded from the default 'bazel test //...' wildcard. Add a :large_tests test_suite to run them explicitly and update their stale golden .ok files to match current GPL log output. Run with: bazel test //src/gpl/test:large_tests Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
docs: fix stale references and broken links
…page-coverage docs: fix man page generation coverage, noise and reproducibility
Signed-off-by: Bernardo Borges Sandoval <39677852+bnmfw@users.noreply.github.com>
…-est Reapply "est: skip parasitic estimation for timing-irrelevant nets; k…
…e on 3D pass Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
…Net soft-NDR, hot-path lambda Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
misc: coverity fixes
…attern_tieh drt: violation access points take precedent when returning from patterns
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
…ate/OpenROAD into grt_cugr_jumper_insertion Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com> # Conflicts: # src/grt/test/repair_antennas2_cugr.guideok # src/grt/test/repair_antennas4_cugr.guideok
…heck Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
web: add rudy heatmap view as save_image -web display option
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Minju Kim <mkim@precisioninno.com>
…_sta_update_0814 Update sta ptr to 08/14
…ROAD into cts-improve-cg-ndr
//docs:man_pages produced no man3 pages at all. md_roff_compat.py read ../src/<module>/messages.txt from the source tree, but those files are generated: CMake writes them in-tree while bazel writes them under bazel-out, and the unsandboxed action sees only declared inputs. Every message page was skipped with "doesn't exist. Continuing". cat3 and html3 now hold 3408 pages each, up from 0. md_roff_compat.py takes the layout root from MESSAGES_ROOT_DIR, defaulting to the repository root so the CMake paths are unchanged, and man_pages.bzl points it at the bin dir, whose layout already matches. Two inputs had nowhere to come from: the ORD messages, which live in src/ itself and had no bazel target, and //src/gui:messages_txt, which existed but was not visible to //docs. The generated messages.txt were incomplete as well. The messages_txt glob was not recursive and omitted .cxx and .i, so modules keeping logger calls below src/ lost them: 311 in drt, 90 in grt, 74 in dpl, 21 in rsz, 18 in utl, 15 in gui. The default glob now recurses over the extension set find_messages.py scans, and sub-packages hand their sources over through a shared message_srcs macro, new for dft's seven and replacing three divergent hand-written extension lists in odb and syn. cut and tst join the documented modules. cut's messages() call was the only one in a src/<module>/src/CMakeLists.txt without OUTPUT_DIR .., so CMake wrote src/cut/src/messages.txt where every other module writes src/<module>/messages.txt; tst had no messages() call. Neither exposes Tcl commands, so both are excluded from man2. tst's one logger call named utl::RSZ 0, which is not a resizer message, and is now utl::TST 1. //:dup_id_test passed unconditionally. It ran find_messages.py -d src from its runfiles directory, which holds only the script, so it walked a nonexistent path, found zero messages and exited 0; an injected duplicate left it green. It now resolves the workspace through its MODULE.bazel runfiles symlink, the handle the lint tests already use. That single walk also covers cross-module collisions, which the per-module genrules cannot see: each module's messages.txt is individually duplicate-free when the two sites sit in different modules. The lint and format tests shared the resulting caching hole. They scan the git worktree rather than declared inputs, so nothing invalidates a cached result and all five reported "(cached) PASSED" after a source edit. Tagging them external forces a re-run. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…3-messages docs: generate man3 pages in the bazel man page build
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
rcx: fix bench_wires segfault on duplicate pattern names
rcx: create struct for the unit scale factors to avoid duplicated code on 3D pass
Revert "Merge pull request #11066 from oharboe/rsz-futility-limit"
…ve-cg-ndr CTS: improve NDR for clock nets
…jumper_insertion grt/cugr: enable jumper insertion on repair_antennas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
[Describe your changes here]
Type of Change
Impact
[How does this change the tool's behavior?]
Verification
./etc/Build.sh).Related Issues
[Link issues here]