Skip to content

Commit f35a744

Browse files
committed
Merge remote-tracking branch 'origin/master' into HEAD
2 parents b9f84f6 + 140df62 commit f35a744

File tree

241 files changed

+184815
-13775
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

241 files changed

+184815
-13775
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
{
5-
"image": "ghcr.io/the-openroad-project/openroad-flow-scripts:lxqt",
5+
"image": "docker.io/openroad/orfs-lxqt:latest",
66
"forwardPorts": [6080],
77
"portsAttributes": {
88
"6080": {

bazel/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# OpenROAD-flow-scripts and Bazel integration
2+
3+
`bazel-orfs` is a Bazel package containing the definitions and logic governing the build process of ORFS designs.
4+
The module uses the `openroad/orfs` docker image to extract the flow scripts with dependencies, builds the Bazel environment around them and defines the methods of calling the ORFS Makefiles with selected designs.
5+
6+
## Run examples
7+
8+
`flow/BUILD.bazel` contains definitions for various flows to serve as examples.
9+
10+
It is recommended to run the utility [Bazelisk](https://github.com/bazelbuild/bazelisk) to manage the version of `bazel` installed on the system.
11+
Details on installation can be found in the `bazel-orfs` [README](https://github.com/The-OpenROAD-Project/bazel-orfs?tab=readme-ov-file#requirements)
12+
13+
The flow can be ran with the following call structure:
14+
15+
```bash
16+
bazel build <target_name>_<stage_name>
17+
```
18+
19+
For example, to run the stage `final`, along with all the dependent stages, call:
20+
```bash
21+
bazel build gcd_final
22+
```
23+
24+
Details on usage and defining of the flows are presented in the Usage section of the `bazel-orfs` [README](https://github.com/The-OpenROAD-Project/bazel-orfs?tab=readme-ov-file#usage)
25+
26+
## Dependency version management
27+
28+
In the flow scipts, the `bazel-orfs` version is defined as
29+
30+
```starlark
31+
bazel_dep(name = "bazel-orfs")
32+
git_override(
33+
module_name = "bazel-orfs",
34+
commit = "<Hash of the default bazel-orfs commit>",
35+
remote = "https://github.com/The-OpenROAD-Project/bazel-orfs.git",
36+
)
37+
```
38+
However, as the referenced documentation shows, the git-based dependency can be overridden with a local repository.
39+
First, remove the `git_override` call entirely and replace it with a `local_path_override` call following this convention:
40+
41+
```starlark
42+
local_path_override(
43+
module_name = "bazel-orfs",
44+
path = "/replace/with/path/to/local/orfs/repository"
45+
)
46+
```
47+
48+
`bazel-orfs` sets a default version of the docker image used to create the Bazel environment.
49+
This selection can be overridden by a following snippet inserted below the `bazel-orfs` declaration and override.
50+
51+
```starlark
52+
orfs = use_extension("@bazel-orfs//:extension.bzl", "orfs_repositories")
53+
orfs.default(
54+
image = "tag-name",
55+
sha256 = "the-hash",
56+
)
57+
```
58+
59+
Substitute `tag-name` with the tag of the version needed and `the-hash` with the digest corresponding to the selected tag (without the `sha256:` prefix).
60+

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def setup(app):
159159
get_file_from_url(url, "contrib/GitGuide.md")
160160

161161
# Temporarily using commit number, will change once OR commit merged.
162-
url = "https://raw.githubusercontent.com/The-OpenROAD-Project/OpenROAD/3563176d00daeb613eed2ccf9442137b0ae2cad3/docs/index.md"
162+
url = "https://raw.githubusercontent.com/The-OpenROAD-Project/OpenROAD/master/docs/index.md"
163163
get_file_from_url(url, "SupportedOS.md")
164164

165165
# edit OpenROAD to OpenROAD-flow-scripts for GitGuide

docs/revert-links.py

100644100755
File mode changed.

docs/tutorials/FlowTutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ The table below briefly describes the reports directory files.
361361

362362
| File Name | Description |
363363
|------------------------|----------------------------------------------------------|
364-
| `congestion.rpt` | Gloabl routing congestion if occurred. |
364+
| `congestion.rpt` | Global routing congestion if occurred. |
365365
| `5_route_drc.rpt` | DRC violations if occurred. |
366366
| `final_clocks.webp` | OR extracted image reference after clock tree synthesis. |
367367
| `final_resizer.webp` | OR extracted image reference after resizer. |

docs/user/BuildLocally.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
The `setup.sh` script installs all of the dependencies, including OpenROAD dependencies, if they are not already installed.
66

7-
Supported configurations are: CentOS 7, Ubuntu 20.04, Ubuntu 22.04, RHEL 8,
7+
Supported configurations are: CentOS 7, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 22.04(aarch64), RHEL 8,
88
Debian 10 and Debian 11.
99

1010
``` shell

docs/user/BuildWithPrebuilt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Export path variables accordingly.
5757
```
5858
# these variables are used in flow/Makefile. Do make sure the yosys path is sourced.
5959
export OPENROAD_EXE=$(command -v openroad)
60-
export YOSYS_CMD=$(command -v yosys)
60+
export YOSYS_EXE=$(command -v yosys)
6161
6262
# only if KLayout is built from source
6363
export LD_LIBRARY_PATH="<klayout_location>/bin:$PATH"

docs/user/DockerShell.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ If you have built your OpenROAD Docker image using prebuilt binaries,
4040
you might want to source custom paths for your modules as follows.
4141

4242
```
43-
OR_IMAGE=openroad_prebuilt_image YOSYS_CMD=/oss-cad-suite/bin/yosys util/docker_shell make
43+
OR_IMAGE=openroad_prebuilt_image YOSYS_EXE=/oss-cad-suite/bin/yosys util/docker_shell make
4444
```
4545

4646
Using `docker_shell` from outside of `OpenROAD-flow-scripts/flow` folder

docs/user/FlowVariables.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ platform, design and tool specific variables to allow finer control and
66
user overrides at various flow stages. These are defined in the
77
`config.mk` file located in the platform and design specific directories.
88

9-
### General variables for all stages
9+
### General variables
1010

1111
| Variable | Description |
1212
|------------------|------------------------------------------------------------------------------------|
1313
| `SKIP_REPORT_METRICS` | If set to 1, then metrics, report_metrics does nothing. Useful to speed up builds. |
14+
| `DETAILED_METRICS` | If set, then calls report_metrics prior to repair operations in the CTS and global route stages |
15+
| `GENERATE_ARTIFACTS_ON_FAILURE` | Used with non-Makefile build systems, such as Bazel. If set to 1, artifacts are generated even if a step failed, such a failed global routing will generate a .odb file and an .rpt file. The subsequent step will not proceed, thus detecting the error. |
1416

1517
## Platform
1618

@@ -76,15 +78,14 @@ Note:
7678
| `PLACE_DENSITY` | ?= | ?= | ?= | ?= | ?= |
7779
| `WIRE_RC_LAYER` | = | = | = | = | = |
7880
| Clock Tree Synthesis | | | | | |
79-
| `CTS_BUF_CELL` | = | = | = | = | = |
8081
| `CTS_BUF_DISTANCE` | N/A | N/A | N/A | = | = |
81-
| `FILL_CELLS` | = | = | = | = | = |
8282
| `SKIP_GATE_CLONING` | ?= | ?= | ?= | ?= | ?= |
8383
| `SKIP_PIN_SWAP` | ?= | ?= | ?= | ?= | ?= |
8484
| `TNS_END_PERCENT` | ?= | ?= | | ?= | ?= |
8585
| `EQUIVALENCE_CHECK` | ?= | ?= | ?= | ?= | ?= |
8686
| `REMOVE_CELLS_FOR_EQY` | ?= | ?= | ?= | ?= | ?= |
8787
| Routing | | | | | |
88+
| `FILL_CELLS` | = | = | = | = | = |
8889
| `KLAYOUT_TECH_FILE` | = | = | = | = | = |
8990
| `MAX_ROUTING_LAYER` | = | = | = | = | ?= |
9091
| `MIN_ROUTING_LAYER` | = | = | = | = | ?= |
@@ -159,7 +160,7 @@ Note:
159160
| `PLACE_DENSITY` | The desired placement density of cells. It reflects how spread the cells would be on the core area. 1.0 = closely dense. 0.0 = widely spread. |
160161
| `PLACE_DENSITY_LB_ADDON` | Check the lower boundary of the PLACE_DENSITY and add PLACE_DENSITY_LB_ADDON if it exists. |
161162
| `REPAIR_PDN_VIA_LAYER` | Remove power grid vias which generate DRC violations after detailed routing. |
162-
| `GLOBAL_PLACEMENT_ARGS` | Use additional tuning parameters during global placement other than default args defined in gloabl_place.tcl. |
163+
| `GLOBAL_PLACEMENT_ARGS` | Use additional tuning parameters during global placement other than default args defined in global_place.tcl. |
163164
| `ENABLE_DPO` | Enable detail placement with improve_placement feature. |
164165
| `DPO_MAX_DISPLACEMENT` | Specifies how far an instance can be moved when optimizing. |
165166
| `GPL_TIMING_DRIVEN` | Specifies whether the placer should use timing driven placement. |
@@ -174,8 +175,6 @@ Note:
174175
| Variable | Description |
175176
|-----------------------|--------------------------------------------------------------------------------------------------------------|
176177
| `CTS_ARGS` | Override `clock_tree_synthesis` arguments |
177-
| `CTS_BUF_CELL` | The buffer cell used in the clock tree. |
178-
| `FILL_CELLS` | Fill cells are used to fill empty sites. |
179178
| `HOLD_SLACK_MARGIN` | Specifies a time margin for the slack when fixing hold violations. This option allow you to overfix. |
180179
| `SETUP_SLACK_MARGIN` | Specifies a time margin for the slack when fixing setup violations. |
181180
| `SKIP_GATE_CLONING` | Do not use gate cloning transform to fix timing violations (default: use gate cloning) |
@@ -190,6 +189,7 @@ Note:
190189

191190
| Variable | Description |
192191
|-----------------------|---------------------------------------------------------------------------------------------------|
192+
| `FILL_CELLS` | Fill cells are used to fill empty sites. |
193193
| `MIN_ROUTING_LAYER` | The lowest metal layer name to be used in routing. |
194194
| `MAX_ROUTING_LAYER` | The highest metal layer name to be used in routing. |
195195
| `DETAILED_ROUTE_ARGS` | Add additional arguments for debugging purpose during detail route. |
@@ -274,33 +274,35 @@ configuration file.
274274
| `MACRO_HALO_X` | Set macro halo for x-direction. Only available for ASAP7 PDK. |
275275
| `MACRO_HALO_Y` | Set macro halo for y-direction. Only available for ASAP7 PDK. |
276276

277-
## Placement
277+
#### Placement
278278

279279

280280
| Variable | Description |
281281
|--------------------------|----------------------------------------------------------------------------------------------------|
282282
| `MACRO_WRAPPERS` | The wrapper file that replace existing macros with their wrapped version. |
283283

284284

285-
## Clock Tree Synthesis
285+
#### Clock Tree Synthesis
286286

287287

288288
| Variable | Description |
289289
|--------------------------|----------------------------------------------------------------------------------------------------|
290-
| `CTS_BUF_DISTANCE` | Distance (in microns) between buffers. |
290+
| `CTS_BUF_DISTANCE` | Distance (in microns) between buffers. |
291291
| `CTS_CLUSTER_DIAMETER` | Maximum diameter (in microns) of sink cluster. Default 20. |
292-
| `CTS_CLUSTER_SIZE` | Maximum number of sinks per cluster. Default 50.
292+
| `CTS_CLUSTER_SIZE` | Maximum number of sinks per cluster. Default 50. |
293+
| `CTS_SNAPSHOT` | Creates ODB/SDC files prior to clock net and setup/hold repair. |
294+
| `POST_CTS_TCL` | Specifies a Tcl script with commands to run after CTS is completed. |
293295

294296

295-
## Routing
297+
#### Routing
296298

297299

298300
| Variable | Description |
299301
|--------------------------|----------------------------------------------------------------------------------------------------|
300-
| `FASTROUTE_TCL` | Specifies a Tcl scripts with commands to run before FastRoute. |
302+
| `FASTROUTE_TCL` | Specifies a Tcl scripts with commands to run before FastRoute. |
301303

302304

303-
## GDS Streamout
305+
#### GDS Streamout
304306

305307

306308
| Variable | Description |

docs/user/InstructionsForAutoTuner.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ For Global Routing parameters that are set on `fastroute.tcl` you can use:
9898
* `_FR_GR_SEED`
9999
- Global route random seed. This will create a copy of `_FR_FILE_PATH` and modify the global route random seed.
100100

101-
102101
## How to use
103102

104103
### General Information

0 commit comments

Comments
 (0)