Skip to content

sync - #2

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

sync#2
nanocoh wants to merge 2401 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]

povik and others added 25 commits July 21, 2026 11:28
Signed-off-by: Martin Povišer <povik@cutebit.org>
rsz: Avoid SIGILL in net tree stitching if subtree can't build
Signed-off-by: Martin Povišer <povik@cutebit.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
…z-buffering-boost

rsz: Merge rsz-buffering-boost for Rebuffer QoR gain
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Address review: the double negative ("disable" in the command name plus -disable/-enable flags) was confusing. Rename to `set_routing_auto_taper` and require exactly one of -enable/-disable (no default), so it reads as a direct on/off switch. Behavior and the odb flag (`disable_auto_taper`) are unchanged.

Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…essed`

Address review from @mole99: the 'NDR net whose auto-taper is suppressed' predicate
was duplicated inline in three places (FlexPA_unique once, FlexPA_acc_point
twice). Extract it into `frNet::isAutoTaperSuppressed(bool auto_taper_enabled)`
and reuse it. Behavior-preserving.

Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…gument checks

Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…ble` flag

Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
set_routing_auto_taper was defined in OpenRoad.tcl but documented in
src/odb/README.md, so odb_man_tcl_check saw README count (22) != help
count (21).  Move the sta::define_cmd_args/proc into odb.tcl and renumber
its errors ORD 1016-1018 -> ODB 1023-1025 to match the odb namespace.

Also refresh the stale goldens: bump odb_readme_msgs_check.ok to 24 for
the added README section, and regenerate ndr_no_auto_taper.defok after
the QoR shift from rebasing onto master.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Address review: isAutoTaperDisabled and isAutoTaperSuppressed were too
similar and negative. The frNet per-net flag is now positive
(auto_taper_enabled_, default true) with setAutoTaperEnabled(), and the
effective query is autoTaperEnabled(bool global_enabled), matching the
existing drNet::autoTaperEnabled (which now delegates to it). Call sites
state the NDR condition explicitly. Behavior unchanged.

Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
drt: allow NDR auto-taper to be disabled per net
The LEF58_EDGETYPE macro property parser used the shared _string rule,
which requires the edge type name to start with an alphabetic character.
Numeric names such as "2" failed to parse and were rejected with
ODB-0299.

Use a rule that accepts any non-blank token for the edge type name,
matching the earlier CELLEDGESPACINGTABLE fix for issue #10668.

Fixes #10953

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
The FastRouteRenderer.h is reachable via
src/fastroute/include/FastRouteRenderer.h, but no include
path was given, so it worked by accident.
Make that explicit.

Signed-off-by: Henner Zeller <h.zeller@acm.org>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Matt Liberty <matt.liberty@gmail.com>
…dency-installer-yosys-absl

etc: fix DependencyInstaller for CMake-only Yosys and or-tools bundled Abseil
Relevant release notes:
https://github.com/hzeller/bant/releases/tag/v0.3.1

Useful new feature: select a column of the tabular outputs
right with bant without extra use of awk.

Signed-off-by: Henner Zeller <h.zeller@acm.org>
Signed-off-by: Martin Povišer <povik@cutebit.org>
gadfort and others added 30 commits August 1, 2026 09:56
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
WebSocketManager.cancel() settled the promise only for a request still in
the queue.  For one already on the wire it dropped the handler from
`pending` and returned, and the eventual reply then found no handler and
was discarded, so the caller's promise never settled at all.

That was harmless while a tile was an <img>.  A merged tile releases its
decoded ImageBitmaps in renderMergedTile's finally, and a finally does
not run while an await is still outstanding.  Every tile pruned by a pan
and every tile re-requested by refreshTiles cancels its in-flight
requests, so the sibling layers that had already decoded were stranded --
explicit close() is the entire reason this path uses ImageBitmap over
<img>, and unlike an <img> decode an ImageBitmap is not discardable by
the browser's image cache, which makes leaving it to GC weaker than what
the per-layer panes had.  The sent branch now rejects like the queued
one.  The wire accounting is unchanged: the slot still frees only when
the (still ignored) reply lands, so cancellation churn cannot re-flood
the socket.

done() also moves off the render and onto the tile.  refreshTiles
re-renders in place without a done callback, so a refresh landing before
the first paint left the handshake with the render it superseded;
Leaflet keeps a tile hidden until done() marks it loaded, so the
replacement render painted a canvas that stayed invisible until the tile
was pruned and recreated.  A superseded render now declines to report it
-- it painted nothing, so reporting there would reveal whatever the
canvas held before the refresh instead of what replaced it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
web: bound tile memory by compositing layers into N panes
web: fix debug tiles to account for DPR
dpl: updateHistCost() runtime improvement
odb: fix explicit null dereferenced flagged by Coverity on inter-chip parasitics test
Three follow-ups from the PR review:

- Derive the micron conversion from dbDatabase::getDbuPerMicron() rather
  than from a dbBlock.  A multi-die design's top chip is hierarchical and
  owns no block, so ScopedDbuFormat kept the raw-DBU formatter and the
  newly exposed layer Inspector reported pitch, width and spacing as
  unlabelled integers even with use_dbu false.

- Share a selection token across every panel that can replace the
  selection (canvas, Inspector, layer rows, fanout chart, schematic,
  rulers).  The layer row's private row-identity check could not see a
  canvas click taking over, so a straggling select_layer response could
  overwrite the newer object's Inspector, and the row kept its highlight
  while the server had moved on.

- Correct the comments claiming saved reports keep the <label> row
  behaviour; leaf rows are <div>s in both modes and only the checkboxes
  toggle, matching the Qt GUI.  Static rows keep working through their
  checkbox, which the new test covers.

Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
web: make display controls behave like GUI
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
web: cleanup inspector, honor use DBU, format strings, add tables
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
grt: implement CUGR net merge mirroring FastRoute path
rcx: add multi-chip extraction pass skeleton
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
odb, rcx: move extraction rules file path ownership from odb to rcx
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
…t_test.sh

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
…ripts

Extract submodule discovery and pathspec exclusion into bazel/git_ls_files.sh and update all Bazel lint and tidy scripts to use it.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
rcx: add ability to specify the extraction rules for the assembly kit
Fixes an issue where bazel test and run commands fail to locate the bazel/git_ls_files.sh
script after cd'ing into the downstream workspace root, by resolving the helper script path
using realpath upfront and adding it to the fix_lint data deps.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
- Use temporary directory for formatting check to avoid workspace pollution
- Fix runfiles resolution for yamlfix by preserving TOOL path
- Resolve MODULE.bazel runfiles to find WORKSPACE
- Handle case where no files are found to format to prevent infinite loops

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
bazel: exclude git submodules from file discovery in tidy and lint scripts
… linter

- Create yamlfix.toml as Source of Truth for OpenROAD YAML formatting
- Create yamlfix.ignore as single Source of Truth (DRI) for blacklisted YAML files
- Update yaml_fmt_test.sh and yaml_tidy.sh to filter files via yamlfix.ignore
- Include yamlfix.toml and yamlfix.ignore in BUILD.bazel data dependencies for fmt_yaml_test, tidy_yaml, and fix_lint

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
bazel: add yamlfix support to fix_lint and lint_test
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.