3. CLI apps#
3.1. sc-dashboard#
usage: sc-dashboard [-h] [-arg_index <str>] [-arg_step <str>] [-cfg <file>]
[-graph_cfg <str>] [-port <int>] [-design <str>]
[-jobname <str>] [-version]
-----------------------------------------------------------
SC app to open a dashboard for a given manifest.
To open and allow sc-dashboard to autoload manifest:
sc-dashboard
To open by specifying manifest:
sc-dashboard -cfg <path to manifest>
To open by specifying design and optionally jobname:
sc-dashboard -design <name>
sc-dashboard -design <name> -jobname <jobname>
To specify a different port than the default:
sc-dashboard -cfg <path to manifest> -port 10000
To include another project object to compare to:
sc-dashboard -cfg <path to manifest> -graph_cfg <name of manifest> <path to other manifest>
-graph_cfg <path to other manifest> ...
-----------------------------------------------------------
options:
-h, --help show this help message and exit
-arg_index <str> ARG: index argument
-arg_step <str> ARG: step argument
-cfg <file> configuration manifest
-graph_cfg <str> project name - optional, path to project manifest (json)
-port <int> port to open the dashboard app on
-design <str> Option: Design library name
-jobname <str> Option: job name
-version show program's version number and exit
3.2. sc-install#
usage: sc-install [-h]
[-group {asic,asic-hls,fpga,digital-simulation,analog-simulation} [{asic,asic-hls,fpga,digital-simulation,analog-simulation} ...]]
[-prefix <path>] [-build_dir <path>] [-jobs <int>] [-show]
[-debug_machine]
[{bambu,bluespec,chisel,ghdl,gtkwave,icarus,icepack,keplerformal,klayout,magic,montage,netgen,nextpnr,openroad,opensta,slurm,surelog,surfer,sv2v,vcd2fst,verible,verilator,vpr,wildebeest,xdm,xyce,yosys,yosys-moosic,yosys-slang} ...]
-----------------------------------------------------------
SC app install supported tools.
To install a single tool:
sc-install openroad
To install multiple tools:
sc-install openroad yosys klayout
To install a group of tools:
sc-install -group asic
To install tools in a different location:
sc-install -prefix /usr/local yosys
To build tools in a different location:
sc-install -build_dir /tmp yosys
To limit parallel build jobs (useful for memory-constrained systems):
sc-install yosys -jobs 4
To combine options (custom location with limited parallelism):
sc-install -prefix /opt/tools -jobs 8 openroad yosys
To show the install script:
sc-install -show openroad
To system debugging information (this should only be used to debug):
sc-install -debug_machine
-----------------------------------------------------------
Tool groups:
asic: sv2v, yosys, yosys-slang, openroad, klayout
asic-hls: bambu, yosys, yosys-slang, openroad, klayout
fpga: sv2v, yosys, yosys-slang, wildebeest, vpr, opensta
digital-simulation: verilator, icarus, surfer
analog-simulation: xyce
-----------------------------------------------------------
positional arguments:
{bambu,bluespec,chisel,ghdl,gtkwave,icarus,icepack,keplerformal,klayout,magic,montage,netgen,nextpnr,openroad,opensta,slurm,surelog,surfer,sv2v,vcd2fst,verible,verilator,vpr,wildebeest,xdm,xyce,yosys,yosys-moosic,yosys-slang}
tool to install (default: None)
options:
-h, --help show this help message and exit
-group {asic,asic-hls,fpga,digital-simulation,analog-simulation} [{asic,asic-hls,fpga,digital-simulation,analog-simulation} ...]
tool group to install (default: None)
-prefix <path> Prefix to use when installing tool (default:
/home/docs/.local)
-build_dir <path> Directory to build the tool in (default:
/home/docs/.sc/tool_build)
-jobs <int> Maximum number of parallel build jobs (default: number
of CPU cores) (default: None)
-show Show the install script and exit (default: False)
-debug_machine Show information about this machine and exit (default:
False)
3.3. sc-issue#
usage: sc-issue [-h] [-arg_index <str>] [-arg_step <str>] [-add_library <str>]
[-cfg <file>] [-exclude_libraries [<bool>]] [-file <file>]
[-hash_files [<bool>]] [-run [<bool>]] [-version]
[source ...]
-----------------------------------------------------------
Restricted SC app that generates a sharable testcase from a
failed flow or runs an issue generated with this program.
To generate a testcase, use:
sc-issue <design>.pkg.json
or with explicit flag:
sc-issue -cfg <stepdir>/outputs/<design>.pkg.json
or include a different step/index than what the cfg_file is pointing to:
sc-issue <design>.pkg.json -arg_step <step> -arg_index <index>
or include specific libraries while excluding others:
sc-issue <design>.pkg.json -exclude_libraries -add_library sram -add_library gpio
To run a testcase, use:
sc-issue -run sc_issue_<...>.tar.gz
or with explicit flag:
sc-issue -run -file sc_issue_<...>.tar.gz
-----------------------------------------------------------
positional arguments:
source Input files
options:
-h, --help show this help message and exit
-arg_index <str> ARG: index argument
-arg_step <str> ARG: step argument
-add_library <str> library to include in the testcase, if not provided
all libraries will be added according to the
-exclude_libraries flag
-cfg <file> configuration manifest
-exclude_libraries [<bool>]
flag to ensure libraries are excluded in the testcase
-file <file> filename for the generated testcase
-hash_files [<bool>] flag to hash the files in the schema before generating
the manifest
-run [<bool>] run a provided testcase
-version show program's version number and exit
3.4. sc-remote#
usage: sc-remote [-h] [-add <dir>] [-cancel [<bool>]] [-cfg <file>]
[-configure [<bool>]] [-delete [<bool>]] [-list [<bool>]]
[-reconnect [<bool>]] [-remove <dir>] [-server <str>]
[-credentials <file>] [-version]
-----------------------------------------------------------
SC app that provides an entry point to common remote / server
interactions.
To generate a configuration file, use:
sc-remote -configure
or to specify a specific server and/or port:
sc-remote -configure -server https://example.com
sc-remote -configure -server https://example.com:1234
to add or remove directories from upload whitelist, these
also support globbing:
sc-remote -configure -add ./fine_to_upload
sc-remote -configure -remove ./no_longer_okay_to_upload
to display the full configuration of the credentials file
sc-remote -configure -list
To check an ongoing job's progress, use:
sc-remote -cfg <stepdir>/outputs/<design>.pkg.json
To cancel an ongoing job, use:
sc-remote -cancel -cfg <stepdir>/outputs/<design>.pkg.json
To reconnect an ongoing job, use:
sc-remote -reconnect -cfg <stepdir>/outputs/<design>.pkg.json
To delete a job, use:
sc-remote -delete -cfg <stepdir>/outputs/<design>.pkg.json
-----------------------------------------------------------
options:
-h, --help show this help message and exit
-add <dir> path to add to the upload whitelist (only valid with
-configure)
-cancel [<bool>] cancel a running job on the remote
-cfg <file> configuration manifest
-configure [<bool>] create configuration file for the remote
-delete [<bool>] delete a job on the remote
-list [<bool>] print the current configuration (only valid with
-configure)
-reconnect [<bool>] reconnect to a running job on the remote
-remove <dir> path to remove from the upload whitelist (only valid
with -configure)
-server <str> address of server for configure (only valid with
-configure)
-credentials <file> Option: user credentials file
-version show program's version number and exit
3.5. sc-server#
usage: sc-server [-h] [-cfg <file>] [-auth [<bool>]] [-checkinterval <int>]
[-cluster <str>] [-nfsmount <dir>] [-port <int>]
[-schemaversion <str>] [-version]
---------------------------------------------------------
Silicon Compiler Collection Remote Job Server (sc-server)
---------------------------------------------------------
options:
-h, --help show this help message and exit
-cfg <file> configuration manifest
-auth [<bool>] Flag determining whether to enable authenticated and
encrypted jobs.
-checkinterval <int> Interval for client
-cluster <str> Type of compute cluster to use.
-nfsmount <dir> Directory of mounted shared NFS storage.
-port <int> Port number to run the server on.
-schemaversion <str> Schema version number
-version show program's version number and exit
3.6. sc-show#
usage: sc-show [-h] [-arg_index <str>] [-arg_step <str>] [-cfg <file>]
[-ext <str>] [-list [<bool>]] [-open [<bool>]]
[-screenshot [<bool>]] [-tool <str>] [-design <str>]
[-jobname <str>] [-version]
[source ...]
--------------------------------------------------------------
Restricted SC app that displays the layout of a design
based on a file provided or tries to display the final
layout based on loading the json manifest from:
build/<design>/job0/<design>.pkg.json
Examples:
sc-show
(displays build/adder/job0/write.gds/0/outputs/adder.gds)
sc-show -design adder
(displays build/adder/job0/write.gds/0/outputs/adder.gds)
sc-show -design adder -arg_step floorplan
(displays build/adder/job0/floorplan/0/outputs/adder.def)
sc-show -design adder -arg_step place -arg_index 1
(displays build/adder/job0/place/1/outputs/adder.def)
sc-show -design adder -jobname rtl2gds
(displays build/adder/rtl2gds/write.gds/0/outputs/adder.gds)
sc-show build/adder/rtl2gds/adder.pkg.json
(displays build/adder/rtl2gds/write.gds/0/outputs/adder.gds)
sc-show -design adder -ext odb
(displays build/adder/job0/write.views/0/outputs/adder.odb)
sc-show -design adder -tool klayout
(displays build/adder/job0/write.gds/0/outputs/adder.gds using klayout)
sc-show -design adder -ext odb -tool openroad
(displays build/adder/job0/write.views/0/outputs/adder.odb using openroad)
sc-show -design adder -tool klayout/show
(displays build/adder/job0/write.gds/0/outputs/adder.gds using klayout in show mode)
sc-show -design adder -ext def -tool openroad/show
(displays build/adder/job0/write.views/0/outputs/adder.def using openroad in show mode)
sc-show build/adder/job0/route/1/outputs/adder.def
(displays build/adder/job0/route/1/outputs/adder.def)
sc-show -list
(lists all registered show tools and their supported extensions)
sc-show -list -screenshot
(lists all registered screenshot tools and their supported extensions)
sc-show -list -open
(lists all registered open tools and their supported extensions)
sc-show -list -tool klayout
(lists only klayout show tasks and their supported extensions)
sc-show -list -tool openroad/show
(lists only the openroad/show task and its supported extensions)
sc-show -design adder -open
(opens build/adder/job0/write.gds/0/outputs/adder.gds in an interactive open tool)
positional arguments:
source Input files
options:
-h, --help show this help message and exit
-arg_index <str> ARG: index argument
-arg_step <str> ARG: step argument
-cfg <file> configuration manifest
-ext <str> Specify the extension of the file to show.
-list [<bool>] List all registered show/screenshot/open tools and
their supported extensions.
-open [<bool>] Open the file with an interactive open tool instead of
a viewer.
-screenshot [<bool>] Generate a screenshot and exit.
-tool <str> Tool to use for showing the file.
-design <str> Option: Design library name
-jobname <str> Option: job name
-version show program's version number and exit
3.7. smake#
usage: smake [-h] [--file <file>] [--directory <directory>] [--version]
<target> ...
-----------------------------------------------------------
SC app that provides a Makefile-like interface to Python
configuration files. This utility app will analyze a file
named "make.py" (or the file specified with --file) to
determine the available targets.
To view the help, use:
smake --help
To view the help for a specific target, use:
smake <target> --help
To run a target, use:
smake <target>
To run a target from a different file, use:
smake --file <file> <target>
To run a target in a different directory, use:
smake -C <directory> <target>
To run a target with arguments, use:
smake <target> --arg1 value1 --arg2 value2
-----------------------------------------------------------
positional arguments:
<target> Target to execute
options:
-h, --help show this help message and exit
--file <file>, -f <file>
Use file as makefile, default is make.py
--directory <directory>, -C <directory>
Change to directory <directory> before reading the
makefile.
--version, -v show program's version number and exit
3.8. Support apps#
3.8.1. summarize#
python3 -m siliconcompiler.apps.utils.summarize
usage: summarize [-h] [-cfg <file>] [-jobname <str>] [-version]
------------------------------------------------------------
Utility script to print job summary from a manifest
------------------------------------------------------------
options:
-h, --help show this help message and exit
-cfg <file> configuration manifest
-jobname <str> Option: job name
-version show program's version number and exit
3.8.2. replay#
python3 -m siliconcompiler.apps.utils.replay
usage: replay [-h] [-cfg <file>] [-file <file>] [-jobname <str>] [-version]
------------------------------------------------------------
Utility script to generate a replay script from a previous run.
------------------------------------------------------------
options:
-h, --help show this help message and exit
-cfg <file> configuration manifest
-file <file> Path to generate replay file to.
-jobname <str> Option: job name
-version show program's version number and exit
3.8.3. cleanup#
python3 -m siliconcompiler.apps.utils.cleanup
usage: cleanup [-h] [-days <int>] [-dryrun [<bool>]] [-cachedir <dir>]
[-version]
------------------------------------------------------------
Utility script to clean up old cache entries.
Scans the cache directory and removes entries that haven't been
accessed in the specified number of days. Uses lock file modification
times to determine access times.
------------------------------------------------------------
options:
-h, --help show this help message and exit
-days <int> Remove cache entries older than this many days.
-dryrun [<bool>] Show what would be deleted without actually deleting.
-cachedir <dir> Option: user cache directory
-version show program's version number and exit