2. Installation

2.1. Python

Before installing the SiliconCompiler package you will need to set up a Python environment. Currently Python 3.6-3.10 is supported.

2.1.1. Ubuntu (>=18.04)

Open up a terminal and enter the following command sequence.

python3 --version                                      # check for Python 3.6 - 3.10
sudo apt update                                        # update package information
sudo apt install python3-dev python3-pip python3-venv  # install dependencies
python3 -m venv  ./venv                                # create a virtual env
source ./venv/bin/activate                             # active virtual env (bash/zsh)

2.1.2. RHEL (>=RHEL 7)

Open up a terminal and enter the following command sequence.

sudo subscription-manager repos --enable rhel-server-rhscl-7-rpms  # enable Red Hat Software Collections repository
sudo yum -y install rh-python36                                    # install Python 3.6
scl enable rh-python36 bash                                        # enable Python in current environment
python3 --version                                                  # check for Python 3.6 - 3.10
python3 -m venv ./venv                                             # create a virtual env
source ./venv/bin/activate                                         # active virtual env (bash/zsh)
pip install --upgrade pip                                          # upgrade Pip

2.1.3. macOS (>=10.15)

Open up a terminal and enter the following command sequence.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
brew update
brew install python
python3 --version                                      # check for Python 3.6 - 3.10
python3 -m venv  ./venv                                # create a virtual env
source ./venv/bin/activate                             # active virtual env

2.1.4. Windows (>= Windows 10)

Install the latest Python package from Python.org using the Windows installer. Open up a Windows shell by:

  1. Pressing the ‘Windows’ key

  2. Typing ‘cmd’, and pressing enter.

From the command shell, enter the following sequence to create and activate a virtual environment.

python -m venv  .\venv
.\venv\Scripts\activate

2.2. SiliconCompiler

SiliconCompiler is installed directly from pypi.org using pip. Activate your Python Virtual Environment and follow the instructions below. (identical for Windows, Linux, and macOS).

(venv) pip install --upgrade pip                # upgrade pip in virtual env
(venv) pip list                                 # show installed packages in venv
(venv) pip install --upgrade siliconcompiler    # install SiliconCompiler in venv
(venv) python -m pip show siliconcompiler       # will display  SiliconCompiler package information
(venv) python -c "import siliconcompiler;print(siliconcompiler.__version__)"

The expected version should be printed to the display:

0.9.5

To exit the Python virtual environment, type ‘deactivate’ and hit enter.

You can also install SiliconCompiler from the latest SiliconCompiler GitHub Repository. This option is currently only supported on Linux/MacOS platforms.

git clone https://github.com/siliconcompiler/siliconcompiler
cd siliconcompiler
git submodule update --init --recursive third_party/tools/openroad
pip install -r requirements.txt
python -m pip install -e .

2.2.1. Offline Install (Linux only)

We also provide packages that bundle SC with all of its Python dependencies to enable installation on machines without an external internet connection. They can be found under the “Artifacts” section of any passing nightly or release build on our builds page. The packages are named scdeps-<pyversion>.tar.gz, depending on which Python version they are associated with.

To install from a bundle, create a Python virtual environment following the instructions above, then perform the following commands.

tar -xzvf scdeps-<pyversion>.tar.gz
pip install --upgrade pip --no-index --find-links scdeps
pip install siliconcompiler --no-index --find-links scdeps

2.3. Cloud Access

Remote server access requires a credentials text file located at ~/.sc/credentials on Linux or macOS, or at C:\Users\USERNAME\.sc\credentials on Windows. The credentials file is a JSON formatted file containing information about the remote server address, username, and password.

{
"address": "your-server",
"username": "your-username",
"password": "your-key"
}

Use a text editor to create the credentials file. Alternatively you can use ‘sc-configure’ app to generate it from the command line.

(venv) sc-configure
Remote server address: your-server
Remote username: your-username
Remote password: your-key
Remote configuration saved to: /home/<USER>/.sc/credentials

To verify that your credentials file and server is configured correctly, run the sc-ping command.

(venv) sc-ping
User myname validated successfully!
Remaining compute time: 1440.00 minutes
Remaining results bandwidth: 5242880 KiB

Once you have verified that your remote configuration works, try compiling a simple design:

(venv) curl https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/user_guide/examples/heartbeat.v > heartbeat.v
(venv) sc heartbeat.v -remote

2.4. Layout Viewer

To view IC layout files (DEF, GDSII) we recommend installing the open source multi-platform ‘klayout’ viewer (available for Windows, Linux, and macOS). Installation instructions for klayout can be found HERE.

To test the klayout installation, run the ‘sc-show’ to display the ‘heartbeat’ layout:

(venv) sc-show -design heartbeat

2.5. External Tools

To run compilation locally (instead of remotely), you will need to install a number of tools. For reference, we have provided install scripts for many of these tools. Unless otherwise specified in the script name, these scripts target Ubuntu 20.04.

In addition, links to installation documentation written by the original authors of all supported tools can be found in the tools directory of the reference manual here.