You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`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
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).
|`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. |
14
16
15
17
## Platform
16
18
@@ -76,15 +78,14 @@ Note:
76
78
|`PLACE_DENSITY`| ?= | ?= | ?= | ?= | ?= |
77
79
|`WIRE_RC_LAYER`| = | = | = | = | = |
78
80
| Clock Tree Synthesis ||||||
79
-
|`CTS_BUF_CELL`| = | = | = | = | = |
80
81
|`CTS_BUF_DISTANCE`| N/A | N/A | N/A | = | = |
81
-
|`FILL_CELLS`| = | = | = | = | = |
82
82
|`SKIP_GATE_CLONING`| ?= | ?= | ?= | ?= | ?= |
83
83
|`SKIP_PIN_SWAP`| ?= | ?= | ?= | ?= | ?= |
84
84
|`TNS_END_PERCENT`| ?= | ?= || ?= | ?= |
85
85
|`EQUIVALENCE_CHECK`| ?= | ?= | ?= | ?= | ?= |
86
86
|`REMOVE_CELLS_FOR_EQY`| ?= | ?= | ?= | ?= | ?= |
87
87
| Routing ||||||
88
+
|`FILL_CELLS`| = | = | = | = | = |
88
89
|`KLAYOUT_TECH_FILE`| = | = | = | = | = |
89
90
|`MAX_ROUTING_LAYER`| = | = | = | = | ?= |
90
91
|`MIN_ROUTING_LAYER`| = | = | = | = | ?= |
@@ -159,7 +160,7 @@ Note:
159
160
|`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. |
160
161
|`PLACE_DENSITY_LB_ADDON`| Check the lower boundary of the PLACE_DENSITY and add PLACE_DENSITY_LB_ADDON if it exists. |
161
162
|`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. |
163
164
|`ENABLE_DPO`| Enable detail placement with improve_placement feature. |
164
165
|`DPO_MAX_DISPLACEMENT`| Specifies how far an instance can be moved when optimizing. |
165
166
|`GPL_TIMING_DRIVEN`| Specifies whether the placer should use timing driven placement. |
0 commit comments