hwbuild.yml
Place a hwbuild.yml in your project root to define default synthesis parameters. The CLI reads it automatically when you ssynth job submit a directory.
All CLI flags override hwbuild.yml values.
Example
top_module: top
target:
family: ice40
device: hx8k
package: ct256
constraints:
- pins.pcf
seeds: 4
pick: best_timing
priority: standard
parallelism: 2
steps:
- synth
- pnr
- bitstream
max_runtime: "2h"
max_memory: "8GB"
Fields
| Field | Type | Description |
|---|---|---|
top_module | string | Top-level module name. Alias: top |
target.family | string | ice40 or ecp5 |
target.device | string | Device code (e.g., hx8k, 85k) |
target.package | string | Package code (e.g., ct256, CABGA554) |
target.board | string | Optional board name |
constraints | list | Constraint files relative to project root |
seeds | integer | Number of seeds (1-32) |
pick | string | best_timing or best_area |
priority | string | interactive, standard, or batch |
parallelism | integer | Concurrent seed count (1-16) |
steps | list | Subset of: synth, pnr, bitstream |
max_runtime | string | Duration: "2h", "30m", "1h30m" |
max_memory | string | Memory: "8GB", "4096MB" |
Target resolution order
- CLI
--targetflag hwbuild.ymltargetsection- Project’s default target
- Error if none specified