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