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,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,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 -cfg <stepdir>/outputs/<design>.pkg.json
or include a different step/index than what the cfg_file is pointing to:
sc-issue -cfg <otherdir>/outputs/<design>.pkg.json -arg_step <step> -arg_index <index>
or include specific libraries while excluding others:
sc-issue -cfg <stepdir>/outputs/<design>.pkg.json -exclude_libraries -add_library sram -add_library gpio
To run a testcase, use:
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>] [-screenshot [<bool>]] [-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 build/adder/job0/route/1/outputs/adder.def
(displays build/adder/job0/route/1/outputs/adder.def)
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.
-screenshot [<bool>] Generate a screenshot and exit.
-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