Getting Started with Cadence Virtuoso IC 23.1  

In this chapter, you learn how to set up a remote connection to Linux machines, create a working directory for Cadence, install the course configuration files, and launch Virtuoso. You need to complete these steps once before drawing your first schematic.

Once the initial setup is complete, you can use these commands to launch Virtuoso again after establishing a remote connection.

You need to use one of the two remote access options below: X11 Forwarding or NoMachine. Choose either method and then continue to the Cadence Environment Setup section.

Alternatively, you can physically go to the 12th floor of Mudd and use the machines there.

X11 Forwarding

When you want to use a piece of software, you typically install it on your own computer and run it locally. This is not the case for the Electronic Design Automation (EDA) tools used in this class (or for most chip design EDA tools). These tools are installed and run on a Linux server that users access remotely. We do this because setting up EDA tools, licenses, and process design kits (PDKs) is incredibly complex that a centrally managed computing environment is necessary.

Because the software runs on a remote server, you need a way to display its graphical user interface on your local computer. X11 forwarding is one solution to this. To use X11 forwarding, you need an SSH client and a local X11 server.

The instructions below demonstrate how to use X11 forwarding to launch Cadence Virtuoso. After setting up the VPN, follow the instructions for your operating system: macOS, a Linux-based distribution, or Windows.

1. Connect to Columbia VPN if applicable (all operating systems)

All external connections to the lab servers from off-campus network require a CUIT VPN connection. Without the VPN, you will not be able to connect to the lab servers if you are connecting from off-campus locations.

Follow the instructions on the CUIT website here to connect to the CUIT VPN.

Nevertheless, you can directly access the lab workstations without VPN if you are on campus network, i.e., Columbia U Secure, wired network, etc.

2. Set up your SSH client and X11 server

macOS

  1. In macOS, SSH clients are installed by default. You only need to install an X11 server called XQuartz. Install it here and follow its installation prompts.
  2. Open Terminal and SSH into the lab servers with X11 forwarding enabled:
ssh -X username@lab-hostname

Replace username and lab-hostname with your UNI and machine hostname.

Linux

  1. Most Linux distros come with X11 server and SSH client packages pre-installed. If your desktop uses Wayland, it needs working X11 compatibility support (such as xwayland-satellite).
  2. Open a terminal emulator and SSH into the lab servers with X11 forwarding enabled:
ssh -X username@lab-hostname

Windows

  1. Download and install MobaXterm, which includes an SSH client and an X11 server.
  2. Open MobaXterm and choose Sessions > New session, then select SSH.
  3. Enter the machine’s hostname in Remote host. Check Specify username and enter your UNI.
  4. Under Advanced SSH settings, make sure X11-Forwarding is checked.
  5. Select OK to connect. You can reopen the saved session from the left sidebar for future connections.

3. Verify X11 forwarding

Complete the login prompts. In the remote terminal, run:

gedit

A text editor window should appear on your local desktop. Press Ctrl+C in the terminal to close the test and return to the prompt.

If no window appears, check that your local X11 server is running and that you connected with -X or enabled the X11-Forwarding option in MobaXterm. Check the remote display setting with:

echo $DISPLAY

The result should not be empty. If it is empty, there's something wrong. Reconnect with X11 forwarding enabled, as SSH should set this variable automatically.

For your first session, complete the Cadence environment setup below in the remote terminal.

NoMachine

Another way to use Cadence is through a remote desktop that contains all of its graphical windows. NoMachine lets you view and control this remote desktop from your own computer.

X11 forwarding may use less bandwidth and feel more responsive because graphical elements are rendered locally rather than being transmitted as rasterized images pixel-by-pixel. However, performance can vary depending on your connection, so you may want to try both methods to see which works better for you.

To use NoMachine, follow the instructions in the EE Computing Lab Remote Access User Guide.

Cadence Environment Setup

The setup has three parts. You will create ~/Cadence, copy and check the configuration files, and log back in to use the environment.

1. Create your Cadence working directory

Connect to the lab machines using one of the methods described above. After logging in, you will be presented with a remote terminal.

Check your current directory (Linux term for a folder):

pwd

This should return the full path to your current directory, which should look something like /user/stud/.../yourUNI. This indicates that you are currently in your home directory.

The shorthand ~ refers to your home directory. Create a directory named Cadence in your home directory, then enter that directory. Run each command one line at a time.

mkdir -p ~/Cadence
cd ~/Cadence
pwd

Check: the printed path should end in /Cadence. Use this directory whenever you launch Cadence so that the program can find the course configuration.

Terminal showing the user ady2113 on cadpc08 in ~/Cadence.
The terminal title identifies the login, workstation, and working directory. In this example, ady2113 is the login, cadpc08 is the workstation, and ~/Cadence is the working directory.

2. Copy and check the configuration files

Copy the course setup files into ~/Cadence:

cp /courses/ee4321/tech/tsmc65/tsmc65_setup/* ~/Cadence

A message about omitted directories means that cp skipped subdirectories. You can ignore that message for this step, but check that the required files were copied:

cd ~/Cadence
ls

You should find these six files:

  1. bindkeys_tsmc65.il
  2. cdsinit
  3. cds.lib
  4. display.drf
  5. emxconfig.il
  6. run_virtuoso.sh

Rename cdsinit to .cdsinit. The leading dot is required for Cadence to read the initialization file at startup. In the terminal, type:

mv cdsinit .cdsinit
ls -a

Check: the listing should include .cdsinit and the other five setup files. The -a option includes hidden files, whose names begin with a dot.

3. Add the reference manual and log back in

Copy the course documentation into your working directory:

cp /courses/ee4321/tools/cds/doc/* ~/Cadence

Check that comphelp.pdf is present. This manual covers an older version of Cadence Virtuoso (IC 6.1.4) but can help with keyboard shortcuts, mouse controls, and the interface. Some menu names and windows may differ from your installation.

You may also find the Cadence Hotkeys Guide by Prof. Aditya Muppala (UC Berkeley EECS) useful.

If you are using X11 forwarding, log out of the workstation by pressing Ctrl+D. Then log back in with ssh -X or MobaXterm.

4. Launch Cadence Virtuoso

When you are ready to start Cadence, run these commands in a remote terminal:

cd ~/Cadence
./run_virtuoso.sh

Cadence windows should appear on your local desktop. Keep the SSH connection running while you work.

If you are using a high DPI display (such as a 4K monitor) you may find that the UI and text appear too small. To increase the scaling, run the following command in your remote terminal once:

sed -i '4i export QT_SCALE_FACTOR=2' ~/Cadence/run_virtuoso.sh

Close and restart Virtuoso. You will notice that the UI has been scaled by a factor of 2.

Keep these terminal commands handy

Replace italic placeholders with your own directory or file names.

TaskCommand
Show the current directorypwd
List filesls
List files, including hidden filesls -a
Go up one directorycd ..
Go to another directorycd destinationDirectory
Create a directorymkdir newname
Copy non-hidden files from A to B (excluding subdirectories)cp directoryA/* directoryB
Open a PDFacroread pdfname.pdf
Launch Cadence from ~/Cadence./run_virtuoso.sh

You are ready to draw a schematic

You have connected to a lab workstation, created a working directory, installed the configuration files, and learned how to launch Cadence Virtuoso. Remember to work in ~/Cadence each time you launch Cadence Virtuoso.

Continue to draw an inverter in the Schematic Editor.

[EE4321 HOME]