2023-09-06 07:14:55 +00:00
---
gitea: none
title: hello
include_toc: true
---
2023-09-06 14:09:37 +00:00
[![License: MIT ](https://img.shields.io/badge/License-MIT-blue.svg )](https://opensource.org/license/mit/)
2023-09-06 07:14:55 +00:00
2023-08-07 06:38:14 +00:00
# OSIC Stacks
2023-09-06 04:02:53 +00:00
*Open Source Integrated Circuits Docker Stacks*
2023-08-07 06:38:14 +00:00
2023-09-03 22:50:12 +00:00
## Stacks
2023-08-07 06:38:14 +00:00
2023-09-06 21:14:41 +00:00
- **analog-xk**: Analog workflow using XSchem & KLayout
- **analog-xm**: Analog workflow using XSchem & Magic
2023-09-06 20:42:51 +00:00
- **analog-heavy**: Workflow with all the analog tools
2023-09-06 04:02:53 +00:00
- **digital-ator**: Digital workflow using Verilator & Yosys
- **digital-icarus**: Digital workflow using Icarus & Yosys
2023-09-06 20:42:51 +00:00
- **digital-heavy**: Workflow with all the digital tools
2023-09-06 04:02:53 +00:00
- **heavy**: Workflow with all the previous tools
2023-09-03 22:50:12 +00:00
## Usage
2023-09-06 06:55:42 +00:00
Follow these 3 steps to get your container ready.
2023-09-03 22:50:12 +00:00
2023-09-06 06:55:42 +00:00
### 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.
2023-09-06 04:02:53 +00:00
#### Windows
2023-09-03 22:50:12 +00:00
2023-09-03 23:17:58 +00:00
Execute the next script in powershell.
```pwsh
2023-09-12 19:04:44 +00:00
& ([scriptblock]::Create((irm https://git.1159.cl/Mario1159/osic-stacks/raw/branch/main/run.ps1))) -remote
2023-09-03 23:17:58 +00:00
```
This script will run the container inside wsl and bind the enviroments variables for [wslg ](https://github.com/microsoft/wslg/blob/main/samples/container/Containers.md ).
2023-09-03 22:50:12 +00:00
2023-09-06 04:02:53 +00:00
#### Linux
2023-09-07 20:03:26 +00:00
Execute the next script in your terminal replacing `<container_name>` and `<git.1159.cl/mario1159/image>` .
2023-09-06 04:02:53 +00:00
```sh
2023-09-07 20:03:26 +00:00
docker run -it --name < container_name > -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix < git.1159.cl / mario1159 / image >
2023-09-06 04:02:53 +00:00
```
2023-09-03 22:50:12 +00:00
2023-09-07 20:03:26 +00:00
> For Wayland compositors make sure you have XWayland installed
#### macOS / OS X
Install `Xquartz` and run the linux previous command.
2023-09-06 06:55:42 +00:00
### 2. Connecting to the container
After creating and starting the container, enter to it executing a shell with docker.
2023-09-06 04:02:53 +00:00
```sh
docker exec -it < container_name > bash
```
2023-09-06 06:55:42 +00:00
### 3. Configure Volare
List the available PDKs and choose one to install.
```sh
2023-09-12 20:16:32 +00:00
export PDK=< sky130A / sky130B / gf180mcuA / gf180mcuB / gf180mcuC >
2023-09-06 06:55:42 +00:00
volare ls-remote --pdk < sky130 / gf180mcu >
volare enable --pdk < sky130 / gf180mcu > < version_id >
```
After you have set up the PDK, you can finally start developing your own designs!
2023-09-03 22:50:12 +00:00
## Build
A singular stack image can be builded using docker in the following way.
> Note: Each stack image requires their correspondent base image installed.
2023-09-06 04:02:53 +00:00
```sh
docker build -t < tag > -f < arch / jammy > .Dockerfile < path >
```
2023-09-03 22:50:12 +00:00
## Custom Images