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