Skip to content

Commit 672fa6f

Browse files
committed
docs: flow variables more background
Signed-off-by: Øyvind Harboe <[email protected]>
1 parent 6c0fe8f commit 672fa6f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

docs/user/FlowVariables.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,26 @@ The actual value used is determined by the priority rules set by `make`:
1818
3. **Environment Variables**: Variables exported in the shell environment are used if not overridden by the command line.
1919
4. **Default Values**: Variables defined with the `?=` operator in the `Makefile` are used only if the variable is not already defined elsewhere.
2020

21+
## Effects of variables
22+
23+
The variables for ORFS are not fully independent and can interact in complex ways. Small changes to a combination of variables can have large consequences, such as on macro placement, which can lead to vastly different quality of results.
24+
25+
Due to the large number of variables, some of which are continuous and require long runtimes, other discrete, it is not feasible to perform an exhaustive end-to-end search for the best combination of variables.
26+
27+
Instead, the following approaches are used to determine reasonable values, up to a point of diminishing returns:
28+
29+
- **Experience**: Leveraging domain expertise to set initial values.
30+
- **AI**: Using machine learning techniques to explore variable combinations.
31+
- **Parameter Sweeps**: Testing a smaller subset of variables to identify optimal ranges.
32+
33+
These values are then set in configuration files and kept under source control alongside the RTL input.
34+
2135
## Types of variables
2236

2337
Variables values are set in ORFS scripts or `config.mk` files and are kept in source control together with configuration files and RTL.
2438

39+
It is an ongoing effort to move variables upwards in the categories below.
40+
2541
| Category | Definition | User Involvement | Examples | Automation Potential | Notes |
2642
|--------------------|----------------------------------------------------------------------------|----------------------------------------|-----------------------------------------|-----------------------------|-----------------------------------------------------------------------|
2743
| **Trivial** | Automatically determined by tool with near-optimal results. | None (unless debugging) | Buffer sizing, default layers | **High** – can be hidden | Best if invisible; surfaced only in debug or verbose mode. |

0 commit comments

Comments
 (0)