Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

FieldTypeDescription
top_modulestringTop-level module name. Alias: top
target.familystringice40 or ecp5
target.devicestringDevice code (e.g., hx8k, 85k)
target.packagestringPackage code (e.g., ct256, CABGA554)
target.boardstringOptional board name
constraintslistConstraint files relative to project root
seedsintegerNumber of seeds (1-32)
pickstringbest_timing or best_area
prioritystringinteractive, standard, or batch
parallelismintegerConcurrent seed count (1-16)
stepslistSubset of: synth, pnr, bitstream
max_runtimestringDuration: "2h", "30m", "1h30m"
max_memorystringMemory: "8GB", "4096MB"

Target resolution order

  1. CLI --target flag
  2. hwbuild.yml target section
  3. Project’s default target
  4. Error if none specified