Command Reference
ALY provides a comprehensive CLI for all HDL development tasks.
Command Overview
Figure 24 CLI Command Structure
Global Options
These options are available for all commands:
--help, -h Show help message and exit
Use aly --help or aly <command> --help for detailed command options.
init
Initialize a new ALY project.
Usage:
aly init [OPTIONS] [PATH]
Arguments:
|
Directory to create project in (default: current directory) |
Options:
|
Template to use (default: rv64i) |
|
Default firmware toolchain (default: riscv64) |
|
List available templates |
|
Skip git initialization |
|
Set template variable (can be used multiple times) |
|
Custom templates directory (default: built-in templates) |
Examples:
# Create project in current directory
aly init
# Create project in specified directory
aly init my_project
# Use specific template
aly init my_soc -t rv64i
# List available templates
aly init --list-templates
# Pass template variables
aly init my_cpu --var language=verilog --var toolchain=riscv32
# Use custom templates directory
aly init my_project --template-dir /path/to/templates --template custom
sim
Run RTL simulation.
Usage:
aly sim [OPTIONS]
Options:
|
Simulator to use (xsim, verilator, questa, modelsim, iverilog) |
|
Top-level testbench module |
|
Enable waveform dumping |
|
Open simulator GUI |
|
Pass plusarg to simulator (KEY=VALUE format) |
|
Simulation timeout in seconds |
|
Display simulation log output |
|
Launch GTKWave after simulation |
|
Run all tests in regression mode |
|
Run a specific test suite |
|
Run a specific testbench by name |
|
Number of parallel jobs (default: 1) |
|
Stop on first test failure |
|
List available testbenches |
|
List tests by tag |
|
List test suites |
Examples:
# Basic simulation
aly sim --top tb_counter
# With waveforms using Verilator
aly sim --top tb_alu --tool verilator --waves
# Run test suite
aly sim --suite regression
# Run all tests in parallel
aly sim --regress -j 4
# With plusargs
aly sim --top tb_cpu --plusargs FIRMWARE=boot.hex
# List available tests
aly sim --list
Figure 25 Simulation Flow
synth
Synthesize design for FPGA or ASIC.
Usage:
aly synth [OPTIONS]
Options:
|
RTL module to synthesize |
|
Synthesis tool (vivado, yosys) |
|
Top-level module name |
|
FPGA part number |
|
Constraint files |
|
Number of parallel jobs |
|
Show synthesis reports |
Examples:
# Synthesize with default tool
aly synth --module cpu_core --top cpu_top
# Synthesize for specific FPGA
aly synth --tool vivado --part xc7a100tcsg324-1
# Use Yosys for ASIC
aly synth --tool yosys --top my_design
# Show reports
aly synth --module cpu_core --report
lint
Run linting and static analysis.
Usage:
aly lint [OPTIONS] [FILES...]
Arguments:
|
Specific files to lint (optional) |
Options:
|
Linter to use (verilator, slang). Default: verilator |
|
Lint specific module (required when no files given) |
|
Top-level module name for linting context |
|
Suppress warnings (errors only) |
Note
Either --module or specific files must be provided.
Examples:
# Lint specific module
aly lint --module alu
# Lint with slang linter
aly lint --module cpu_core --tool slang
# Lint specific files
aly lint rtl/cpu.sv rtl/alu.sv
# Errors only (no warnings)
aly lint --module alu --no-warnings
firmware
Build embedded firmware.
Usage:
aly firmware [BUILD_NAME] [OPTIONS]
Arguments:
|
Firmware build name from manifest (optional) |
Options:
|
Output directory |
|
Override toolchain |
|
Skip memory file generation |
|
Memory file format (mem, hex, coe) |
|
Memory word width (8, 16, 32, 64) |
|
Byte order (little, big) |
|
List available builds |
Examples:
# Build all firmware
aly firmware
# Build specific target
aly firmware bootloader
# Build with specific output directory
aly firmware bootloader -o build/fw
# List available builds
aly firmware --list
# Build with custom memory format
aly firmware bootloader --mem-format hex --word-width 32
program (still under development)
Program FPGA device.
Usage:
aly program [OPTIONS]
Options:
|
List available programming targets |
|
Target board/device name |
|
Path to bitstream file |
|
Programming tool (vivado, openocd) |
|
Program to flash memory |
|
Verify after programming |
Examples:
# Program default board
aly program
# Specific bitstream
aly program -b build/synth/fpga_top.bit
# Program to flash
aly program -b bitstream.bit --flash
# List available targets
aly program --list
config
Manage project configuration.
Usage:
aly config [SUBCOMMAND] [OPTIONS]
Subcommands:
|
Display current configuration |
|
Validate configuration files |
|
Get specific config value |
|
Set config value |
|
Open config file in editor |
|
Initialize config file |
|
List config files |
Examples:
# Show all config
aly config show
# Validate config
aly config validate
# Get specific value
aly config get defaults.simulator
# Set value
aly config set defaults.simulator verilator
# Edit config file
aly config edit
# List config files
aly config list
rtl
RTL management commands.
Usage:
aly rtl [SUBCOMMAND] [OPTIONS]
Subcommands:
|
Initialize RTL manifest |
|
Add files to module |
|
List RTL modules |
|
Show module details |
|
List package files |
Examples:
# Initialize RTL manifest
aly rtl init
# List all modules
aly rtl list
# Show module details
aly rtl show cpu_core
# Add files to module
aly rtl add --module cpu_core rtl/cpu/*.sv
# List packages
aly rtl packages
ip
IP block management.
Usage:
aly ip [SUBCOMMAND] [OPTIONS]
Subcommands:
|
Initialize IP manifest |
|
List available IP blocks |
|
Show IP details |
|
Add IP to project |
|
Remove IP from project |
|
Create new IP block |
|
Package IP for distribution |
|
Update IP version |
Examples:
# List available IP
aly ip list
# Show IP details
aly ip show uart
# Create new IP block
aly ip create my_uart
# Add existing IP
aly ip add vendor/uart
# Package IP
aly ip package uart
constraints
Manage design constraints.
Usage:
aly constraints [SUBCOMMAND] [OPTIONS]
Subcommands:
|
Initialize constraints configuration |
|
List constraint sets |
|
Show constraint set details |
|
Validate constraint files |
Examples:
# List constraint sets
aly constraints list
# Show specific constraint set
aly constraints show arty_a7
# Validate constraints
aly constraints validate
Exit Codes
ALY uses standard exit codes:
Code |
Meaning |
|---|---|
0 |
Success |
1 |
General error |
2 |
Command line usage error |
3 |
Configuration error |
4 |
Build/compilation error |
5 |
Test failure |
Utility Commands
Additional utility commands:
|
Show project information |
|
Clean build artifacts |
|
Refresh project cache |
|
Show ALY version |
Examples:
# Show project info
aly info
# Clean build directory
aly clean
# Show version
aly version
Next Steps
Configuration - Configuration options
API Reference - Python API
Examples - Example workflows