Skip to content

IIC-OSIC-TOOLS Image

The Institute for Integrated Circuits and Quantum Computing at the Johannes Kepler University Linz (IICQC at JKU) maintains the excellent IIC-OSIC-TOOLS Docker image which enables working on Digital, Analog and of course Mixed-Signal designs without going through the hassle of onstalling all the tools yourself. This image can also be used for a Development Container inside Visual Studio Code, which is how I used it.

Info

If you are an ETH user and have access to the oseda tool, please see OSEDA.

Note

To learn on how to use the IIC-OSIC-TOOLS image, take a look at its README. This is only a short summary on how to use it.

Requirements

Docker is of course required for using this image. If you are not the most comfortable with the command line, I suggest you install Docker Desktop, which provides you with a nice GUI to control your images/containers.

On Windows, this requires you to install and set up WSL2. See the installation instructions.

Starting a Container

There are basically three ways of using the image

  1. Use the image in pure shell mode. This way, you don't have access to applications with graphical user interfaces. (Not recommended)

    ./start_shell.sh
    
    .\start_shell.bat
    
  2. Use the image in VNC mode. This way, you will get your desktop environment in a browser window (http://localhost with password abc123). (Recommended)

    ./start_vnc.sh
    
    .\start_vnc.bat
    
  3. Use the image in X-server mode. This way, you will get your desktop environment via the started X server. This is significantly faster than VNC. (Not tested)

    ./start_x.sh
    
    .\start_x.bat
    

Starting a Dev Container

The image can also be used in Visual Studio Code Dev Containers. This allows working with the files as if the editor is open inside the container. GUI applications also work out of the box! I personally highly recommend this way of using the image.

Note

Dev containers also require docker. See the requirements.

To open a directory in a dev container, you need to create a devcontainer.json inside the .devcontainer/ folder. For this image, I have set it up like this:

{
    "name": "IIC-OSIC-TOOLS", //(1)!
    "image": "hpretl/iic-osic-tools:latest", //(2)!
    "customizations": {
        "vscode": {
            "extensions": [ //(3)!
                "xuanli.spice",
                "bitwisecook.tcl",
                "eirikpre.systemverilog",
                "barakh.vscode-xschem-viewer",
                "lramseyer.vaporview",
                "ms-python.python",
                "ms-toolsai.jupyter"
            ],
            "settings": {
                "files.associations": {
                    "*.spice": "spice" //(4)!
                }
            }
        }
    },
    "remoteUser": "root" //(5)!
}
  1. This is just the name of the container as we display it in VS Code. You can change this name if you want.
  2. This is the docker image, where we use the latest version.
  3. Here, we can specify VS Code extensions we want to install in the dev container. These are the ones I found essential for syntax highlighting. vaporview is especially nice; It's basically a version of GTKWave but inside VS Code.
  4. This just associates the .spice file extension (generated by xschem) with the spice file type. Normally, this is not automatically done.
  5. I used the container as root in case I wanted to install some packages or other stuff. Remove this if you do not want full root rights out of the box.

Then, you just open the command palette (Ctrl + Shift + P) and enter Dev Containers: Reopen in Container. VS Code will then setup the container with the given configuration and reopen the workspace inside the container.