sync - #2
Open
nanocoh wants to merge 3454 commits into
Open
Conversation
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
Also resolve the chiplet prefix before searching the blocks, and skip pins that have no location. Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
…_actions/actions/cache/save-6.1.0 build(deps): bump actions/cache/save from 5.0.5 to 6.1.0
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
…only for rerouted nets Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…all slacks Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
Signed-off-by: Vitor Bandeira <vvbandeira@baldr.local>
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
…tree-virtual-clock-ord2018 gui: fix two empty-container dereferences in ClockTree
Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Add logger_->metric() calls for the GPL-1001, GPL-1005, GPL-1011, GPL-1012, GPL-1013, GPL-1014, and GPL-1017 log messages so these values are available in the metrics JSON output (via -metrics), not just the log. GPL-1018 (final HPWL) is already covered by #11201. Fixes #11234 Signed-off-by: Adityaa Mehra <adirakash@gmail.com>
…ROAD into grt-fr-full-res-aware-init
gpl: report internal metrics for iterations and area
The move to Bazel removed the orVersion build argument. The Docker build context has no .git directory, so the Bazel stamp cannot read the version. A release image then reports its version as "unknown". The status script now uses OPENROAD_VERSION when it is set. CMake has the same override in -DOPENROAD_VERSION. The Dockerfile passes orVersion to the build in this variable. Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
…ection-4872 dbSta: check LEF/Liberty pin consistency
pdn: account for pad blockages to avoid shorting straps through pads
gpl: opt-in GPU build under Bazel (Kokkos/CUDA)
…s row With -verbose, repair_timing prints a progress row every ten passes and once after every endpoint it visits. Each row filled its StTNS column by calling collectViolatingStartpoints(), which iterated every vertex in the timing graph to find the startpoints before reading a slack for each. The row's cost was therefore proportional to the design size, paid once per endpoint visited: on a 149k-instance asap7 design the rows were 88% of a 221 s floorplan repair_timing call that accepted 21 moves, and 10-48% of the setup repair on the other asap7 designs where repair grinds (measured with scoped timers around the row). The startpoint set does not change during setup repair: buffers are inserted and removed, gates resized, cloned and pin-swapped, and none of that creates or removes a top-level input or a register output. So the vertex walk runs once per collector and later rows only re-read the slacks of the cached vertices. The vector keeps graph iteration order, so the stable sort that follows sees the same input and the printed values are unchanged. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Every -verbose progress row of repair_timing called computeDesignArea(), a walk over every instance in the block, to print the area growth column. Rows are printed every ten passes and once per endpoint visited, and most of them follow passes that accepted no move: on riscv32i's cts repair 217 of 1181 passes accepted one. The area cannot have changed between two rows unless the netlist was edited in between, so the walk now runs only when the committer's edit count has moved since the row that last computed it. The printed value is the same. The key is a monotonic count of accepted and reverted moves rather than the per-type move totals: a journal restore followed by a different accepted move can leave those totals where they were while the area has changed (repair_setup_invalid_phase shows exactly that, one pin swap reverted and one resize accepted between two rows). Resizer::design_area_ exists and is incremented by replaceCell, but buffer insertion does not go through designAreaIncr, which is why designArea() re-derives it on every call and why this caches the computed value rather than trusting the tracked one. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Review feedback on the startpoint cache: replacing a register's cell can delete and recreate its graph vertices, so a cached sta::Vertex* may dangle. Cache the pin and which of its vertices was the startpoint, and look the vertex up again per row; a pin that has lost its vertex is skipped. The cache is also rebuilt on every init(), so a collector that is re-initialised after netlist changes starts from the graph as it is. Same values printed; the per-row cost stays proportional to the number of startpoints, not to the graph. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* origin/master: (49 commits) build(deps): bump idna from 3.11 to 3.15 in /bazel build(deps): bump urllib3 from 2.6.3 to 2.7.0 in /bazel psm: remove pointless obs bypass psm: account for polygon mpins build(Build.sh): stamp the git version into Bazel installs psm: remove stale markers psm: invalidate solvers on fill creation update sta odb: properly initialize all Terminal member pointers rcx,pdn,grt: fix the undefined behavior ubsan reports docs: record the tsan sweep findings ci(coverity): default a missing capture percentage to 0 build(deps): bump the npm group across 2 directories with 1 update dst: stop and join the io_context thread in TestBalancer test: run the sanitizer configs against an instrumented openroad odb: rename tmg_conn's terminals and shorts to Terminal and Short test(coverity): add script test entrypoint ci(coverity): add Bazel capture mode docs: note that a full tsan run may need throttling test: tag regression tests with their language ... Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com> # Conflicts: # docs/user/Bazel.md
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
psm: expand pin vias into per-layer boxes in the short check
Frame the design rect instead of the tile georeference rect, size tiles so the fit lands on a whole zoom level, and take Qt's outline colour, hatch and draw order. Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com> # Conflicts: # src/web/src/tile_generator.cpp
Fix the unreachable loop increment, the by-value custom-UI item, the copied label anchor, the unpinned umask and the unchecked temp-file removal. Signed-off-by: Jorge Ferreira <jorge.ferreira@precisioninno.com>
…nt set Two review findings on the progress-row caching. The area cache is keyed on MoveCommitter::netlistEdits(), which counts only edits made through the committer. GlobalSizingPolicy replaces cells directly in applyPresize() and applyDecisions(), so with a phase list such as "LEGACY GLOBAL_SIZING WNS" the counter stood still while the area moved and the later phase printed the pre-sizing area. The cache is now invalidated in OptimizationPolicy::start(), which every policy chains to, so each phase recomputes the area on its first row. That is one walk per phase, and it stays correct for any future phase that edits outside the committer rather than relying on that phase to bump a counter. The startpoint cache rests on the invariant that no setup move creates or removes a startpoint, which until now was only asserted in a comment. The graph walk is split out as walkStartpoints() and a debug-gated checkStartpointCache() re-walks and compares the fresh set against the cache on every row that uses it. It is gated on the violator_collector debug flag at level 2 rather than on NDEBUG: a re-walk per row in every debug build is the cost this series removes. The comment now also names the guard that keeps gate cloning out of the set, CloneGenerator's isSingleOutputCombinational() check, and records why a startpoint whose vertex has disappeared is skipped rather than treated as a stale cache. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
pdn: drop a grid's previous vias from their shapes before regenerating them
rsz: repair_timing up to 88% faster on non-trivial designs by not walking the design for every -verbose progress row
rcx: adds support for 3D-IC extraction
…ernization-opt Optimize dbBox serialization and deserialization
…I-Coverity-Scan Web GUI: address Coverity Scan findings
drawDebugOverlay derived its CSS scale as buffer_dim / kTileSizeInPixel, which only equals the device-pixel ratio while the client's tile is 256 CSS px. The client picks its own size -- 240 by default, and a fitted size when zoom-to-fit needs one -- so the 20 px label and 4 px inset came out scaled by the tile choice instead of by the display. Pass the effective dpr in from renderTileBuffer, which already has it. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…ity-WebGUI-F02 web: bind the web server to loopback by default
Signed-off-by: Matt Liberty <mliberty@precisioninno.com> # Conflicts: # src/web/src/request_handler.cpp # src/web/test/cpp/TestRequestHandler.cpp
…I-outlines WebGUI: fix zoom-to-fit, blockage drawing, and outlines
The test includes boost/json.hpp, gui/gui.h and gui/heatMap.h but the target only depended on //src/gui:gui_stub, which does not export those headers. This failed the layering_check feature. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Renderer::checkDisplayControl routes through Gui::checkDisplayControlsVisible, which was only defined in the Qt build, leaving the no-Qt openroad binary with an undefined symbol at link time. Mirror the headless branch of gui.cpp: forward to the headless viewer, or report visible when no viewer is installed. Route Gui::setDisplayControlsVisible to the viewer as well so the getter and setter agree. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…ity-WebGUI-F01 web: reject cross-origin WebSocket handshakes
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Leaflet reads options.keyboardPanDelta once, in Keyboard.initialize, so a live map's arrow-key distance lives only in the keyboard handler's key map and has to be pushed there through _setPanDelta. That was already what setArrowStep did, but nothing recorded why, and a reviewer reasonably read the option write as the missing piece -- the reverse of how Leaflet works. Extract the push as applyArrowStep so it can be tested at all (main.js imports from a CDN and the test runner cannot load it) and comment the constraint at the point that depends on it. The tests model Leaflet 1.9.4's Map.Keyboard.js, rebuilding _panKeys from the argument, so they assert how far an arrow press pans rather than which function was called: an option-write-only implementation fails them. No behavior change. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…ebGUI-menu-toolbar feat(web): Options menu preferences and full gui::Renderer support
build(docker): install OpenROAD with Bazel
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]