Commit Graph

370 Commits

Author SHA1 Message Date
Ahmed R. Mohamed
ac2e2abb03 odb: fix 3dblox verilog writer PR comments
Remove standalone tcl command

Signed-off-by: Ahmed R. Mohamed <ahmed@precisioninno.com>
2026-03-26 19:58:51 +00:00
Ahmed R. Mohamed
9eab18a5e2 odb: fix 3dblox verilog writer PR comments
Signed-off-by: Ahmed R. Mohamed <ahmed@precisioninno.com>
2026-03-26 19:23:29 +00:00
Ahmed R. Mohamed
662cfc098d odb: impl 3dblox verilog writer
Signed-off-by: Ahmed R. Mohamed <ahmed@precisioninno.com>
2026-03-26 19:23:29 +00:00
Matt Liberty
2710cc2db3 Merge remote-tracking branch 'origin/master' into web
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2026-03-21 01:59:06 +00:00
Øyvind Harboe
95fa5b920c Rename getEndpointSlackMap to getEndpointSlacks
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>
2026-03-18 20:58:32 +01:00
Øyvind Harboe
6c10df4fe2 Remove redundant is_net field from TimingArcInfo
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>
2026-03-18 20:57:47 +01:00
Øyvind Harboe
a8ab770ea2 Return odb objects instead of strings in timing structs
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>
2026-03-18 20:57:36 +01:00
Øyvind Harboe
3f2ab777e0 Fix STA search state crash in Timing Python API
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>
2026-03-18 15:55:01 +01:00
Matt Liberty
1040ba0981 clang-format OpenRoad.hh
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2026-03-13 15:14:49 +00:00
Matt Liberty
be2a93dc44 web: initial
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2026-03-08 03:22:49 +00:00
Martin Povišer
556b0819c6 Update to build with multi-mode STA
Occurrences of `sta_->cmdMode()` should be read as TODOs for proper
multi-mode handling later.

Signed-off-by: Martin Povišer <povik@cutebit.org>
2026-02-22 19:56:22 +00:00
Henner Zeller
5477201f3b Use absl::Mutex instead of std::mutex in most places.
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>
2026-02-19 09:07:52 -08:00
Ahmed R. Mohamed
7578691443 odb: create check_3dblox tcl command
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>
2025-12-30 16:49:36 +02:00
Rafael Moresco
54873221fc odb: integrate dbxWriter
Signed-off-by: Rafael Moresco <rafaelmorescovieira@gmail.com>
2025-11-26 19:09:48 -03:00
osamahammad21
c8e0c944a5 Merge remote-tracking branch 'origin/master' into dbvwriter
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
2025-11-25 00:26:08 +02:00
Peter Gadfort
81baed16b8 odb: remove create_pins option
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
2025-11-15 07:54:30 -05:00
Peter Gadfort
f547bbad27 ord: add read_3dblox_bmap command to read a bmap and create bumps
Signed-off-by: Peter Gadfort <peter.gadfort@gmail.com>
2025-11-14 17:38:47 -05:00
Rafael Moresco
334dfae124 odb: add 3dbvWriter
Signed-off-by: Rafael Moresco <rafaelmorescovieira@gmail.com>
2025-11-06 16:41:48 -03:00
Henner Zeller
fa7cb9ad6f tcl: use vendored include and fix missing includes.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
2025-10-24 09:44:08 -07:00
Brayden Louie
6e82956dd0 Merge branch 'master' into grid-branch
Signed-off-by: Brayden Louie <braydenl9988@gmail.com>
2025-09-26 15:10:21 -04:00
Matt Liberty
2479906fb2 ord: add read_3dbx/v commands
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2025-09-24 18:11:02 +00:00
Brayden Louie
8e1e8a43e2 Merge branch 'master' into grid-branch
Signed-off-by: Brayden Louie <braydenl9988@gmail.com>
2025-09-19 15:11:23 -04:00
Henner Zeller
832d7cee00 Don't use using of std::-types in headers.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
2025-09-11 08:44:17 -07:00
Osama
09d5694af6 Merge remote-tracking branch 'origin/master' into odb-read-def-update 2025-09-10 15:17:22 +03:00
Matt Liberty
e3d3adeaaf Move abcInit from ord to cut
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>
2025-09-09 04:40:25 +00:00
osamahammad21
21cfad6676 1- remove child and tech from readDef API
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>
2025-09-04 23:15:20 +03:00
osamahammad21
0fe0dbe197 odb: allow multiple chip def reads
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
2025-08-28 18:47:17 +03:00
Krzysztof Bieganski
4ad95b997f Merge remote-tracking branch 'origin/master' into cgt 2025-08-14 18:42:37 +02:00
Eder Monteiro
97e981db48 Merge branch 'master' into estimate_parasitics
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
2025-08-13 10:56:44 -03:00
osamahammad21
f039976fef utl: callback
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
2025-08-10 17:12:18 +03:00
Eder Monteiro
e1241c1a02 ord: update constructor calls
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
2025-07-30 14:20:31 -03:00
Eder Monteiro
52bb61772e ord: add EstimateParasitics object to OpenRoad
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
2025-07-30 14:20:31 -03:00
Krzysztof Bieganski
4ff1cfd126 cgt: Only init ABC once
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2025-07-28 17:30:45 +02:00
Jaehyun Kim
99749aa7ef Added a newly overloaded function for writeDef()
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2025-07-24 09:38:34 +00:00
Jaehyun Kim
9bec3b4b69 For easier call of OpenRoad::writeDef() in gdb. API prototype is changed.
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2025-07-24 05:50:39 +00:00
Matt Liberty
fa7c8c9890 ord: adopt Google-style naming
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2025-07-06 14:45:53 +00:00
Matt Liberty
aad2e4db59 exa: add an example tool skeleton
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>
2025-06-02 21:21:06 +00:00
Matt Liberty
35b543b0ec In batch mode allow a single ctrl-c to abort
There is no need for interruptible commands in batch mode.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2025-05-01 21:03:32 +00:00
Jeff Ng
2f684ec6e3 Added for-internal-use command line arg to link_design
clang formatting
updated readdb_hier okfile

Signed-off-by: Jeff Ng <jeffng@precisioninno.com>
2025-04-25 13:40:40 -07:00
Osama
6dd2c8ec77 Merge remote-tracking branch 'origin/master' into dpl-dpo-merge 2025-04-22 14:48:41 +02:00
Osama
191d391e01 remove dpo remainings
Signed-off-by: Osama <osama21@aucegypt.edu>
2025-04-21 17:46:46 +02:00
Osama
25e116c1c0 dpl: builds successfully without dpo exposure yet
Signed-off-by: Osama <osama21@aucegypt.edu>
2025-04-20 13:36:44 +02:00
Matt Liberty
827e1e511e Merge branch 'master' into secure-path-rewrite with many updates
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2025-04-15 18:49:18 +00:00
Matt Liberty
9b959ab15f Various: start converting to the new license format
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2025-04-05 06:55:44 +00:00
Krzysztof Bieganski
cbb9e28df0 cgt: Clock gating
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2025-03-28 14:04:15 +01:00
Matt Liberty
06d657df28 ord/odb: move lef/def/odb load observer callback from ord to odb
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>
2025-03-24 21:07:22 +00:00
Eren Dogan
8b14f5fbdd Python API: Don't cast PVT to string
Signed-off-by: Eren Dogan <work@edogan.us>
2025-03-12 14:58:56 -07:00
Eren Dogan
beba1588dd Python API: Add nominal corner values
Signed-off-by: Eren Dogan <work@edogan.us>
2025-03-12 14:25:26 -07:00
Eren Dogan
db36fbacc6 Python API: Add technology unit scales
Signed-off-by: Eren Dogan <work@edogan.us>
2025-03-12 14:25:26 -07:00
Matt Liberty
b28eb3d0c4 odb: rm dbDatabase::diff & dbBlock:differences
These APIs are unused and not very useful.  The diff is very strict
and unrevealing.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
2025-02-18 06:04:43 +00:00