Integrated Circuits and Systems group, IIT Madras

EE5311 Digital IC Design Lab Setup (July-Nov 2026)

Prerequisites

1. Docker

Install Docker on your machine using the instructions from:

  • macOS: mac-install
    • Linux users ensure you are able to run docker as non-root user by following the instructions here. Other steps described below do not work for the root user.
  • Windows: win-install

2. VNC client/viewer

Download a VNC client/viewer for your platform to interact with the image.

Suggested VNC viewers:

  • Windows: TightVNC
  • macOS has a couple of inbuilt VNC viewers: (a) Connect to server option in Finder (shortcut: ⌘+K) (b) Screen Sharing application
  • Most Linux distros come pre-packaged with Remmina. If you are not a fan, try TigerVNC.

Downloading the docker image

The image can downloaded from two sources:

  1. EE VLSI website:
    1. Intel/AMD CPU users : EE5311 AMD64 docker image
    2. ARM CPU users : EE5311 ARM64 docker image (M1 or later macs and Windows on ARM)

Images from both sources are identical. The recommended option, especially within the IITM network, is the first one, given the size of the compressed image (~600MB). Use the second option if you are outside the IITM network or if the first one is inaccessible.

Download the compose script for your platform:

  • Linux and MacOS users:
    1. Download compose.sh.
    2. Add executable permissions to compose.sh using: chmod +x compose.sh.
  • Windows users: Download compose.bat.

If you chose:

  • the first option (downloading the local image),
    1. Install the image using:
      • Intel/AMD : docker load -i ee5311_iitm.tar.gz
      • ARM : docker load -i ee5311_iitm_arm64.tar.gz.
    2. Ensure that the image is installed using the docker images command in terminal. It should list an image named srampr/ee5311_iitm:jul_nov_2026.
    3. You can optionally delete the ee5311_iitm.tar.gz/ee5311_iitm_arm64.tar.gz file to save space after installing and verifying it.
  • the second option (using Docker Hub), the first time you invoke the compose.sh/compose.bat script, the image will be automatically downloaded from Docker hub.

Compose Script Usage

The compose script (compose.sh for Linux/macOS and compose.bat for Windows) takes the following arguments:

Switch Description
up Starts a saved container if one exists; otherwise, starts a new one.
down Saves the running container and shuts it down.
fresh Forces a new container to start, ignoring any saved container.
save Force-saves the running container.
pause Freezes the running container (will be erased if you restart your machine).
resume Unfreezes the paused container.

The only arguments you typically need to use are up to start and down to terminate your sessions.

  • Linux and macOS users: ./compose.sh up or ./compose.sh down.
  • Windows users: .\compose.bat up or .\compose.bat down.

This will run the container in the background using Docker Compose.

  • The running container should start a VNC session in the background in your machine at the port localhost:99.
  • To connect to this session, open the VNC viewer you installed in Step 2 of Prerequisites. Use localhost:99 as the address to connect.

If you are unable to connect to this VNC session in your first attempt, run ./compose down, then ./compose.sh fresh, and then try connecting to the VNC session.

WARNING:
pause and resume will save and restore the session exactly as you left it, including the GUI state. Catch is that pause and resume states are erased if you restart your machine. save does not preserve your GUI state but is persistent across machine restarts. save and up together behave like logging out of and logging back into your computer.

Password

ee5311 is the password for both the VNC session and the local user inside the image.

Data

All schematic, simulation, and layout results are stored in the ee5311 directory in your home directory (both inside the docker container and in your machine). You can change this path in compose.sh (or compose.bat) if you would like them stored elsewhere.