Skip to content

Commit

Permalink
README: Update information about flow variant
Browse files Browse the repository at this point in the history
Signed-off-by: Eryk Szpotanski <[email protected]>
  • Loading branch information
eszpotanski authored and oharboe committed Sep 3, 2024
1 parent 56f5c77 commit 3e52e7e
Showing 1 changed file with 37 additions and 6 deletions.
43 changes: 37 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,37 @@ Abstract targets:

The example comes from the [BUILD](./BUILD) file in this repository.

To test different variants of the same design, the `orfs_flow` can be provided with an optional argument `variant`.

```starlark
orfs_flow(
name = "L1MetadataArray",
abstract_stage = "route",
macros = ["tag_array_64x184_generate_abstract"],
# [...]
variant = "test",
)
```

This definition creates similar Bazel targets with additional variant appended after the design name:

```
Dependency targets:
//:L1MetadataArray_test_canonicalize_deps
//:L1MetadataArray_test_cts_deps
//:L1MetadataArray_test_floorplan_deps
...
Stage targets:
//:L1MetadataArray_test_canonicalize
//:L1MetadataArray_test_synth
//:L1MetadataArray_test_floorplan
...
Abstract targets:
//:L1MetadataArray_test_generate_abstract
```

## Implementation

### openroad.bzl
Expand All @@ -118,9 +149,9 @@ The implementation of this macro spawns multiple `genrule` native rules which ar

These are the genrules spawned in this macro:

* ORFS stage-specific (named: `target_name + “_” + stage`)
* ORFS stage dependencies (named: `target_name + “_” + stage + “_deps”`)
* Abstract targets (named: `target_name + “_generate_abstract”`)
* ORFS stage-specific (named: `target_name + “_” + stage` or `target_name + “_” + variant + “_” + stage`)
* ORFS stage dependencies (named: `target_name + “_” + stage + “_deps”` or `target_name + “_” + variant + “_” + stage + “_deps”`)
* Abstract targets (named: `target_name + “_generate_abstract”` or `target_name + “_” + variant + “_generate_abstract”`)

### Bazel flow

Expand Down Expand Up @@ -277,15 +308,15 @@ filegroup(
### Dependency targets
The dependency targets fall under the `target_name + “_” + stage + “_deps”` naming convention, and are used to prepare the environment for running the ORFS stage targets.
The dependency targets fall under the `target_name + “_” + variant + “_” +stage + “_deps”` naming convention, and are used to prepare the environment for running the ORFS stage targets.
Each stage of the physical design flow depend on two generated `.mk` files that provide the configuration for the ORFS.
One is specific for the stage of the flow and the second one is common for the whole design being built.
They can be found under the following paths:
```bash
<path>/config.mk # Common for the whole design
<path>/results/<module>/<target>/base/<stage_number>_<stage>.short.mk # Specific for the stage
<path>/config.mk # Common for the whole design
<path>/results/<module>/<target>/<variant>/<stage_number>_<stage>.short.mk # Specific for the stage
```
Additionally, the dependency targets are responsible for constraints handling and generating the shell scripts that are used to run the ORFS stages both in the Bazel and Local flow:
Expand Down

0 comments on commit 3e52e7e

Please sign in to comment.