Skip to content

astli

Modern SystemVerilog toolchain: format, lint, check, elaborate, and manage dependencies.

  • Usage: astli [FLAGS] <SUBCOMMAND>

Global Flags

  • -q --quiet — Suppress informational output and print only errors or explicit results
  • -j --jobs <JOBS> — Number of worker threads to run in parallel (0 uses all available CPU cores)

Default: 0

Environment Variable: ASTLI_JOBS - --diag <FMT> — Diagnostic output format

Choices: pretty, short, github

Default: pretty

Environment Variable: ASTLI_DIAGNOSTICS - --color <WHEN> — When to colour the output

Choices: auto, always, never

Default: auto - --locked — Require astli.lock to be up to date; exit with an error instead of modifying the lockfile

Flags

  • -h --help — Print help
  • -V --version — Print version

astli fmt

  • Usage: astli fmt [FLAGS] [FILES]…

Format SystemVerilog source files in place (use - to format stdin to stdout)

Arguments

  • [FILES]… — Source files to process

Flags

  • -f --filelist <FILELIST> — Filelist (.f) with paths relative to current working directory
  • -F --filelist-relative <FILELIST> — Filelist (.f) with paths relative to the filelist itself
  • --check — Check formatting and exit with an error if any files require changes, without modifying them
  • --diff — Display formatting diffs without modifying files on disk
  • --config <FILE> — Path to a custom configuration file instead of searching for astli.toml
  • -h --help — Print help

astli lint

  • Usage: astli lint [FLAGS] [ARGS]…

Lint SystemVerilog source files for syntax issues, coding style, and common bugs

Arguments

  • [FILES]… — Source files to process
  • [+incdir++incdir+DIR+...]… — Add include search path(s), separated by '+'
  • [+define++define+NAME[=VALUE]+...]… — Define preprocessor macro(s), separated by '+'

Flags

  • -f --filelist <FILELIST> — Filelist (.f) with paths relative to current working directory
  • -F --filelist-relative <FILELIST> — Filelist (.f) with paths relative to the filelist itself
  • --features <FEATURE> — Enable a package feature (can be repeated)
  • --all-features — Enable all package features by default; pass --no-features to disable them unless explicitly selected

Default: true - -A --allow <RULE> — Silence a lint rule or entire rule group (can be repeated) - -W --warn <RULE> — Set a lint rule or entire rule group to emit warnings (can be repeated) - -D --deny <RULE> — Set a lint rule or entire rule group to emit fatal errors (can be repeated) - --config <FILE> — Path to a custom configuration file instead of searching for astli.toml - --list — List all available lint rules with their rule group and default severity level - --top <TOP> — Elaborate from the specified root module for rules requiring hierarchy information (can be repeated) - -I --incdir <INCDIR> — Add directory to the include search path (can be repeated) - --define <DEFINE> — Define preprocessor macro as NAME or NAME=VALUE (can be repeated) - -h --help — Print help

astli check

  • Usage: astli check [FLAGS] [ARGS]…

Verify design semantics, port connections, parameter overrides, and undeclared identifiers

Arguments

  • [FILES]… — Source files to process
  • [+incdir++incdir+DIR+...]… — Add include search path(s), separated by '+'
  • [+define++define+NAME[=VALUE]+...]… — Define preprocessor macro(s), separated by '+'

Flags

  • -f --filelist <FILELIST> — Filelist (.f) with paths relative to current working directory
  • -F --filelist-relative <FILELIST> — Filelist (.f) with paths relative to the filelist itself
  • --features <FEATURE> — Enable a package feature (can be repeated)
  • --all-features — Enable all package features by default; pass --no-features to disable them unless explicitly selected

Default: true - --top <TOP> — Elaborate hierarchy starting from the specified root module, interface, or program (can be repeated) - -I --incdir <INCDIR> — Add directory to the include search path (can be repeated) - -D --define <DEFINE> — Define preprocessor macro as NAME or NAME=VALUE (can be repeated) - -h --help — Print help

astli files

  • Usage: astli files [FLAGS] [ARGS]…

Prune and topologically sort filelists based on symbol dependencies

Arguments

  • [FILES]… — Source files to process
  • [+incdir++incdir+DIR+...]… — Add include search path(s), separated by '+'
  • [+define++define+NAME[=VALUE]+...]… — Define preprocessor macro(s), separated by '+'

Flags

  • -f --filelist <FILELIST> — Filelist (.f) with paths relative to current working directory
  • -F --filelist-relative <FILELIST> — Filelist (.f) with paths relative to the filelist itself
  • --features <FEATURE> — Enable a package feature (can be repeated)
  • --all-features — Enable all package features by default; pass --no-features to disable them unless explicitly selected

Default: true - --top <TOP> — Retain only the files required to build the specified top-level module (can be repeated) - --order — Topologically sort files so dependencies precede their dependents (always, for a package) - --emit <EMIT> — Format of output to emit

Choices: filelist, files, incdirs, tops

Default: filelist - --why <FILE> — Trace dependency path showing why the top module requires this specific file - -I --incdir <INCDIR> — Add directory to the include search path (can be repeated) - -D --define <DEFINE> — Define preprocessor macro as NAME or NAME=VALUE (can be repeated) - -h --help — Print help

astli pickle

  • Usage: astli pickle [FLAGS] [ARGS]…

Bundle design sources into a single self-contained SystemVerilog file

Arguments

  • [FILES]… — Source files to process
  • [+incdir++incdir+DIR+...]… — Add include search path(s), separated by '+'
  • [+define++define+NAME[=VALUE]+...]… — Define preprocessor macro(s), separated by '+'

Flags

  • -f --filelist <FILELIST> — Filelist (.f) with paths relative to current working directory
  • -F --filelist-relative <FILELIST> — Filelist (.f) with paths relative to the filelist itself
  • --top <TOP> — Retain only the files required to build the specified top-level module (can be repeated)
  • --order — Topologically sort files so dependencies precede their dependents
  • --expand — Fully expand macros, inline includes, and evaluate conditional compilation branches
  • --prefix <PREFIX> — Prefix all declared modules, interfaces, packages, and classes
  • --suffix <SUFFIX> — Suffix all declared modules, interfaces, packages, and classes
  • --exclude-rename <NAME> — Prevent renaming of the specified symbol (can be repeated)
  • -I --incdir <INCDIR> — Add directory to the include search path (can be repeated)
  • -D --define <DEFINE> — Define preprocessor macro as NAME or NAME=VALUE (can be repeated)
  • -h --help — Print help

astli elab

  • Usage: astli elab [FLAGS] [ARGS]…

Inspect the elaborated instance hierarchy for a top-level module

Arguments

  • [FILES]… — Source files to process
  • [+incdir++incdir+DIR+...]… — Add include search path(s), separated by '+'
  • [+define++define+NAME[=VALUE]+...]… — Define preprocessor macro(s), separated by '+'

Flags

  • -f --filelist <FILELIST> — Filelist (.f) with paths relative to current working directory
  • -F --filelist-relative <FILELIST> — Filelist (.f) with paths relative to the filelist itself
  • --top <TOP> — Top-level module, interface, or program to elaborate (can be repeated)
  • -I --incdir <INCDIR> — Add directory to the include search path (can be repeated)
  • -D --define <DEFINE> — Define preprocessor macro as NAME or NAME=VALUE (can be repeated)
  • -h --help — Print help

astli init

  • Usage: astli init [--bender]

Initialize a new astli.toml manifest in the current directory

Flags

  • --bender — Import dependencies from Bender.yml into astli.toml
  • -h --help — Print help

astli update

  • Usage: astli update [NAME]…

Re-resolve dependencies and record pinned versions in astli.lock

Arguments

  • [NAME]… — Update only the specified packages while keeping all other locked dependencies pinned

Flags

  • -h --help — Print help

astli fetch

  • Usage: astli fetch
  • Aliases: checkout

Download and check out dependencies into the shared cache for offline use

Flags

  • -h --help — Print help

astli tree

  • Usage: astli tree

Display the resolved dependency tree and package hierarchy

Flags

  • -h --help — Print help

astli path

  • Usage: astli path <NAME>…

Print filesystem paths to checked-out dependency packages

Arguments

  • <NAME>… — Names of dependencies as declared in the package manifest

Flags

  • -h --help — Print help

astli patch

  • Usage: astli patch [--remove] <NAME> [DIR]
  • Aliases: clone

Override a dependency with a local checkout, cloning it if necessary

Arguments

  • <NAME> — Name of the dependency to patch
  • [DIR] — Local directory path for the checkout (cloned at the locked commit if non-existent) [default: .astli/patch/NAME]

Flags

  • --remove — Remove the active patch and return to the locked dependency version
  • -h --help — Print help

astli snapshot

  • Usage: astli snapshot <NAME>

Pin a patched dependency to its current commit in astli.toml and remove the patch

Arguments

  • <NAME> — Name of the patched dependency to snapshot

Flags

  • -h --help — Print help

astli cache

  • Usage: astli cache <SUBCOMMAND>

Inspect or clean the shared dependency cache

Flags

  • -h --help — Print help

astli cache clean

  • Usage: astli cache clean

Clear cached repositories (packages will be re-downloaded when needed)

Flags

  • -h --help — Print help

astli cache dir

  • Usage: astli cache dir

Print the absolute path to the local dependency cache directory

Flags

  • -h --help — Print help

astli completion

  • Usage: astli completion <SHELL>

Generate shell completion scripts.

Arguments

  • <SHELL> — Target shell to generate completions for

Choices: bash, zsh, fish

Flags

  • -h --help — Print help