FABulous Configuration Variables¶
FABulous can use environment variables to configure options, paths and projects. We distinguish between two types of environment variables: global and project specific environment variables.
Global environment variables are used to configure FABulous itself. They always start with
FAB_.Project specific environment variables are used to configure a specific FABulous project. They always start with
FAB_PROJ_.
All environment variables can be set in the shell before running FABulous or can be set via .env files.
.env File Locations¶
Scope |
Location |
How to use |
|---|---|---|
User global |
|
Created automatically or manually |
Global (explicit) |
Any path |
Pass via |
Project (auto-detected) |
|
Placed inside your project |
Project (explicit) |
Any path |
Pass via |
Note
Environment variables set in the shell always have the highest priority, followed by project-specific .env files, then global .env files.
Global Environment Variables¶
Variable |
Environment Variable |
Type |
Default |
User Value |
Description |
|---|---|---|---|---|---|
|
|
Path |
(dynamic) |
|
- |
|
|
Path |
None |
|
- |
|
|
Path |
yosys |
|
- |
|
|
Path |
nextpnr-generic |
|
- |
|
|
Path |
iverilog |
|
- |
|
|
Path |
vvp |
|
- |
|
|
Path |
ghdl |
|
- |
|
|
Path |
klayout |
|
- |
|
|
Path |
openroad |
|
- |
|
|
Path |
None |
|
- |
|
|
Path |
None |
|
- |
|
|
bool |
False |
|
- |
|
|
str |
None |
any string |
- |
|
|
int |
0 |
|
- |
|
|
bool |
False |
|
- |
|
|
Path |
None |
|
- |
|
|
str |
None |
any string |
- |
|
|
str |
None |
any string |
- |
|
|
tuple |
(0, 0, 1000, 1000) |
|
- |
|
|
bool |
False |
|
- |
Project Specific Environment Variables¶
Variable |
Environment Variable |
Type |
Default |
User Value |
Description |
|---|---|---|---|---|---|
|
|
Path |
(dynamic) |
|
- |
|
|
HDLType |
HDLType.VERILOG |
|
- |
|
|
Version |
0.0.1 |
|
- |
|
|
Version |
- |
|
- |
Interactive CLI Settables¶
These variables can be set and get interactively in the FABulous CLI using the set and get commands.
Usage:
FABulous> set <variable> <value>
FABulous> get <variable>
Variable |
Type |
Description |
|---|---|---|
|
Path |
The directory of the project |
|
Path |
The fabric file |
|
bool |
verbose output |
|
bool |
force execution |