Docker development environments for integrated circuits design.
Go to file
2023-09-19 18:59:35 -03:00
base Add Git LFS 2023-09-13 17:07:10 -03:00
scripts Change again endings 2023-09-13 08:36:56 -03:00
stacks Solve pcell parameter problem 2023-09-12 16:04:44 -03:00
.gitattributes Add Git LFS 2023-09-19 18:59:35 -03:00
LICENSE Initial commit 2023-08-07 06:36:35 +00:00
README.md Update README 2023-09-15 04:59:31 -03:00
run.ps1 Add spaces to additional options 2023-09-12 22:14:14 -03:00

Table of Contents

License: MIT

OSIC Stacks

Open Source Integrated Circuits Docker Stacks

Highlights

  • Simple by design, intended for ease to use.
  • IC design tools evolve quickly, a rolling release distribution allows you to have the latest version of your tool set.
  • Docker images can be heavy, thus these images are distributed in stacks, choose the best fit for your task.
  • Flexible, these containers doesn't restrict you to extend your development environment, feel free to install your own packages.

Stacks

  • analog-xk: Analog workflow using XSchem & KLayout
  • analog-xm: Analog workflow using XSchem & Magic
  • analog-heavy: Workflow with all the analog tools
  • digital-ator: Digital workflow using Verilator & Yosys
  • digital-icarus: Digital workflow using Icarus & Yosys
  • digital-heavy: Workflow with all the digital tools
  • heavy: Workflow with all the previous tools

Usage

Follow these 3 steps to get your container ready.

1. Starting a container with graphics output

Scripts are provided for creating the containers in both Windows and Linux. These scripts automate the binding of graphics environment variables to the container in order to enable graphics inside the docker container.

Windows

Execute the next script in powershell.

& ([scriptblock]::Create((irm https://git.1159.cl/Mario1159/osic-stacks/raw/branch/main/run.ps1))) -remote

This script will run the container inside wsl and bind the enviroments variables for wslg.

Linux

Execute the next script in your terminal replacing <container_name> and <git.1159.cl/mario1159/image>.

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name <container_name> <git.1159.cl/mario1159/image>

For Wayland compositors make sure you have XWayland installed

macOS / OS X

Install Xquartz and run the linux previous command.

2. Connecting to the container

After creating and starting the container, enter to it executing a shell with docker.

docker exec -it <container_name> bash

3. Configure Volare

List the available PDKs and choose one to install.

PDK Technology PDK Variant
sky130 sky130A
sky130B
gf180mcu gf180mcuA
gf180mcuB
gf180mcuC

Replace <pdk_variant> and <pdk_tech> correspondingly by one of the PDKs listed above.

echo 'export PDK=<pdk_variant>' >> ~/.bashrc 
volare ls-remote --pdk <pdk_tech>
volare enable --pdk <pdk_tech> <version_id>

After you have set up the PDK, you can finally start developing your own designs!

Installing additional packages

For the arch based images you can install packages from the official arch repository using pacman.

pacman -S <package_name>

or you can also install packages from the AUR using paru.

paru <package_name>

Custom Images

For creating an image with your own pre-installed set of packages for your team you can create your own docker image extending the stacks, just as the stacks extend the base image. For reference check the stacks dockerfiles.

Build

A singular stack image can be builded using docker in the following way from the repository root path.

docker build -t osicstacks-base-arch -f base/Dockerfile .
docker build -t <tag> -f stacks/<stack>/arch.Dockerfile .

Local Run

Images can be tested and runned in the following way.

Windows

powershell.exe -ExecutionPolicy Bypass run.ps1

Linux

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name <container_name> <tag>