The method returns a vector, not a map. Align naming with existing
conventions like getCorners() which also return vectors.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
is_net was always equivalent to (master == nullptr). Removing it
reduces API surface and eliminates the risk of the two fields
getting out of sync.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Replace string fields with odb object pointers (dbITerm*, dbBTerm*,
dbMaster*) throughout TimingArcInfo, TimingPathInfo, ClockInfo, and
EndpointSlackMap so callers can use the full object API rather than
just names.
Tests verify structural invariants: slack=required-arrival, arc
delays sum to arrival, cell arc master matches instance master,
net/cell arc instance consistency, and endpoint sequential property.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Add ensureGraph() + searchPreamble() before findPathEnds() in
getTimingPaths(). Without this, calling getTimingPaths() after
getWorstSlack() or other STA queries aborts because stale search
state (path groups, filtered arrivals) is not cleaned up.
This matches the pattern used by the Qt GUI's STAGuiInterface::initSTA().
Also adds the new Timing C++ API, SWIG bindings, and header exposing
getWorstSlack, getTotalNegativeSlack, getEndpointCount,
getEndpointSlackMap, getClockInfo, and getTimingPaths to Python.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
absl::Mutex is generally optimized to reduce overhead and
minimized congestion, often it can avoid system calls.
In 'most places', as src/sta has to be dealt with
in the context of that repo.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
Refactor out check_3dblox command out of read_3dbx so we can run it
independently. Also, added tests to assert check_3dblox correctness.
Closes: #9161
Signed-off-by: Ahmed R. Mohamed <ahmed@precisioninno.com>
Having it in ord breaks layering by having tools depend on the ord
namespace. It also breaks cpp unit tests when built debug.
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2- move dbTech from dbBlock to dbChip.
3- Update dbChip and dbBlock creation APIs.
4- Update Tcl scripts and tests to reflect these changes.
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
For users who wish to add their own code to OpenROAD the exa module acts
as an example with
- Tcl & Python APIs with unit tests
- Debug graphics
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
This works better in allow various parts of the code to correctly load
files without having to introduce an ord dependency.
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>