diff --git a/README.md b/README.md index 3d36908a..f814f367 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,37 @@ Abstract targets: The example comes from the [BUILD](./BUILD) file in this repository. +To test different variant of the same design, the `orfs_flow` macro can receive optional `variant`. + +
+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
@@ -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
@@ -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
-