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

Submitting Jobs (CLI)

From a directory

ssynth job submit ./my-project --project <PROJECT_ID> --top top_module --target ice40:hx8k:ct256

The CLI bundles the directory into a .tar.gz, uploads it, and creates the job. Files matching .gitignore patterns are excluded.

From an archive

ssynth job submit my-design.tar.gz --project <PROJECT_ID> --top top_module --target ecp5:85k:CABGA554

Accepts .tar.gz and .zip files.

With hwbuild.yml

If your directory contains a hwbuild.yml, the CLI reads target, top module, and other settings from it:

ssynth job submit . --project <PROJECT_ID>

See hwbuild.yml for the format.

Common options

ssynth job submit ./src \
  --project <PROJECT_ID> \
  --target ice40:hx8k:ct256 \
  --top counter \
  --seeds 8 \
  --pick best_timing \
  --priority interactive \
  --parallelism 4 \
  --steps synth,pnr,bitstream \
  --max-runtime 2h \
  --max-memory 8GB

Wait for completion

Add --wait to stream logs until the job finishes:

ssynth job submit . --project <PROJECT_ID> --wait

Idempotency

Use --idempotency-key to prevent duplicate submissions:

ssynth job submit . --project <PROJECT_ID> --idempotency-key "commit-abc123"

If a job with the same key already exists, the existing job is returned instead of creating a new one.

Setting a default project

To avoid passing --project every time:

export SSYNTH_PROJECT=<PROJECT_ID>
ssynth job submit .

Or set defaults.project_id in ~/.config/ssynth/config.toml.