Skip to content

sync - #2

Open
nanocoh wants to merge 3091 commits into
keplertech:masterfrom
The-OpenROAD-Project:master
Open

sync#2
nanocoh wants to merge 3091 commits into
keplertech:masterfrom
The-OpenROAD-Project:master

Conversation

@nanocoh

@nanocoh nanocoh commented May 23, 2026

Copy link
Copy Markdown

Summary

[Describe your changes here]

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Documentation update

Impact

[How does this change the tool's behavior?]

Verification

  • I have verified that the local build succeeds (./etc/Build.sh).
  • I have run the relevant tests and they pass.
  • My code follows the repository's formatting guidelines.
  • I have included tests to prevent regressions.
  • I have signed my commits (DCO).

Related Issues

[Link issues here]

maliberty and others added 25 commits August 18, 2026 16:54
…-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>
…attern_tieh

drt: violation access points take precedent when returning from patterns
Signed-off-by: arthurjolo <arthurjl@precisioninno.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
90294a3 updated two goldens that no DPL change can affect; neither
test invokes detailed_placement.  The regression-update script saves the
local log as the golden for any test still failing after its re-run, so
both local-only failures got baked in.

replace_hier_mod6.ok: 36 last-digit STA timing values (1.70 -> 1.71).
The binary was stale relative to the tree when the script ran.  Rebuilt
at 10aa823, the test passes against the original golden.

report_writers_require_solution.ok: "spice file written before analysis"
0 -> 1.  The test leaves a spice file in results/, so it only passes on a
clean run -- verified as run1 Passed, run2 Failed.  The script runs ctest
three times without clearing results/, so it captured a second-run log.
The saved value inverts the assertion the test was added for in
2f77717.

The test/*.metrics and *.metrics_limits updates in 90294a3 are kept:
test/flow.tcl sets set_placement_padding from detail_place_pad, so those
flow tests are genuinely padding-sensitive.

Signed-off-by: Augusto Berndt <augusto.berndt@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: arthurjolo <arthurjl@precisioninno.com>
Signed-off-by: Minju Kim <mkim@precisioninno.com>
…_sta_update_0814

Update sta ptr to 08/14
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
//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
Causes excessive QoR loss.

This reverts commit 8328314, reversing
changes made to c536d9d.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
eder-matheus and others added 30 commits August 26, 2026 17:15
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>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
shapeorder was a counter reset to 0 per file instead of each
dielectric's actual index in the process stack, so lookups into the
global dielectric list grabbed the wrong layer's epsilon whenever a
file's stack didn't start at the bottom. Fixed by looking up each
dielectric's index by name instead. Raises if a name isn't found in
the process file, or if two dielectrics share a name, rather than
silently falling back to the old counter.

shapeorder+1/-1 also walked off the end of the list at the top/bottom
layer, crashing with IndexError. Clamped to the valid range instead,
reusing the boundary dielectric's own epsilon for the missing
neighbor.

processTechFile only read a dielectric's name off the "DIELECTRIC {"
line itself, but process.out puts the name on the next line. Added a
case to read it from there, matching on the line's first token rather
than a "name" substring so it can't misfire on an unrelated field or
comment. CONDUCTOR blocks have the identical format and the identical
gap, fixed the same way, though nothing currently reads a conductor's
name.

This script exists as three independent copies in the tree
(rule_scripts/, calibration/fasterCap/scripts/,
test/rcx_v2/FasterCapModel/scripts/), all with the identical bug,
patched identically here.

Adds test_dielectric_epsilon.py: shapeorder resolving to the right
global index, the boundary crash, an unmatched dielectric name
raising, and the dielectric-fill-panel code path, run against all
three copies of the script. Also tests a duplicate dielectric name
raising and the clamp helper directly, against the rule_scripts copy
(identical logic in all three).

src/rcx/test/BUILD's regression_test() call never set check_log=False
for PASSFAIL_TESTS entries, so bazel test tried to diff this test's
output against a golden file that doesn't exist for a passfail test.
Added the missing check_log = False, matching the pattern already
used for PASSFAIL tests elsewhere (e.g. src/grt/test/BUILD).

Signed-off-by: dgaddy <dgaddy@ucsc.edu>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
…ed scanline calls

Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Bump OpenSTA submodule pointer to 65bd9df5f7846015313734d08a5a6367df79453c,
the squashed revision of The-OpenROAD-Project/OpenSTA#405 after review,
to re-run OpenROAD CI and verify QoR neutrality.

Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Gate tag creation to the canonical repo only, and sync the exact tag
object to each mirror (main and PII) via the fork-sync cron's new
syncTags option, instead of letting each mirror mint its own tag
object for the same commit and break plain git fetch.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
gha: fix quarterly tag drift between upstream and mirrors
Signed-off-by: Drew Lewis <cannada@google.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
…on-lookup

Fix dielectric epsilon lookup in UniversalFormat2FasterCap_923.py
…ctions

ppl: avoid routing obstructions and via landing pads at the die boundary
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
Update sta ptr to 17a3cc8de for BFS chunking (OpenSTA#405)
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
pad/pdn: move to use odb::geom
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.