forked from Mario1159/osic-stacks
Update README
This commit is contained in:
parent
f80da4da79
commit
59e261a445
198
README.md
198
README.md
@ -1,78 +1,120 @@
|
|||||||
---
|
---
|
||||||
gitea: none
|
gitea: none
|
||||||
title: hello
|
title: hello
|
||||||
include_toc: true
|
include_toc: true
|
||||||
---
|
---
|
||||||
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/license/mit/)
|
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/license/mit/)
|
||||||
|
|
||||||
|
|
||||||
# OSIC Stacks
|
# OSIC Stacks
|
||||||
*Open Source Integrated Circuits Docker Stacks*
|
*Open Source Integrated Circuits Docker Stacks*
|
||||||
|
|
||||||
## Stacks
|
## Highlights
|
||||||
|
|
||||||
- **analog-xk**: Analog workflow using XSchem & KLayout
|
- Simple by design, intended for ease to use.
|
||||||
- **analog-xm**: Analog workflow using XSchem & Magic
|
- IC design tools evolve quickly, a rolling release distribution allows you to have the latest version of your tool set.
|
||||||
- **analog-heavy**: Workflow with all the analog tools
|
- Docker images can be heavy, thus these images are distributed in stacks, choose the best fit for your task.
|
||||||
- **digital-ator**: Digital workflow using Verilator & Yosys
|
- Flexible, these containers doesn't restrict you to extend your development environment, feel free to install your own packages.
|
||||||
- **digital-icarus**: Digital workflow using Icarus & Yosys
|
|
||||||
- **digital-heavy**: Workflow with all the digital tools
|
## Stacks
|
||||||
- **heavy**: Workflow with all the previous tools
|
|
||||||
|
- **analog-xk**: Analog workflow using XSchem & KLayout
|
||||||
## Usage
|
- **analog-xm**: Analog workflow using XSchem & Magic
|
||||||
|
- **analog-heavy**: Workflow with all the analog tools
|
||||||
Follow these 3 steps to get your container ready.
|
- **digital-ator**: Digital workflow using Verilator & Yosys
|
||||||
|
- **digital-icarus**: Digital workflow using Icarus & Yosys
|
||||||
### 1. Starting a container with graphics output
|
- **digital-heavy**: Workflow with all the digital tools
|
||||||
|
- **heavy**: Workflow with all the previous tools
|
||||||
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.
|
## Usage
|
||||||
|
|
||||||
#### Windows
|
Follow these 3 steps to get your container ready.
|
||||||
|
|
||||||
Execute the next script in powershell.
|
### 1. Starting a container with graphics output
|
||||||
```pwsh
|
|
||||||
& ([scriptblock]::Create((irm https://git.1159.cl/Mario1159/osic-stacks/raw/branch/main/run.ps1))) -remote
|
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.
|
||||||
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).
|
|
||||||
|
#### Windows
|
||||||
#### Linux
|
|
||||||
Execute the next script in your terminal replacing `<container_name>` and `<git.1159.cl/mario1159/image>`.
|
Execute the next script in powershell.
|
||||||
```sh
|
```pwsh
|
||||||
docker run -it --name <container_name> -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix <git.1159.cl/mario1159/image>
|
& ([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](https://github.com/microsoft/wslg/blob/main/samples/container/Containers.md).
|
||||||
> For Wayland compositors make sure you have XWayland installed
|
|
||||||
|
#### Linux
|
||||||
#### macOS / OS X
|
Execute the next script in your terminal replacing `<container_name>` and `<git.1159.cl/mario1159/image>`.
|
||||||
|
```sh
|
||||||
Install `Xquartz` and run the linux previous command.
|
docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name <container_name> <git.1159.cl/mario1159/image>
|
||||||
|
```
|
||||||
### 2. Connecting to the container
|
|
||||||
After creating and starting the container, enter to it executing a shell with docker.
|
> For Wayland compositors make sure you have XWayland installed
|
||||||
```sh
|
|
||||||
docker exec -it <container_name> bash
|
#### macOS / OS X
|
||||||
```
|
|
||||||
|
Install `Xquartz` and run the linux previous command.
|
||||||
### 3. Configure Volare
|
|
||||||
|
### 2. Connecting to the container
|
||||||
List the available PDKs and choose one to install.
|
After creating and starting the container, enter to it executing a shell with docker.
|
||||||
|
```sh
|
||||||
```sh
|
docker exec -it <container_name> bash
|
||||||
export PDK=<sky130A/sky130B/gf180mcuA/gf180mcuB/gf180mcuC>
|
```
|
||||||
volare ls-remote --pdk <sky130/gf180mcu>
|
|
||||||
volare enable --pdk <sky130/gf180mcu> <version_id>
|
### 3. Configure Volare
|
||||||
```
|
|
||||||
|
List the available PDKs and choose one to install.
|
||||||
After you have set up the PDK, you can finally start developing your own designs!
|
|
||||||
|
| PDK Technology | PDK Variant |
|
||||||
## Build
|
|----------------|-------------|
|
||||||
|
| sky130 | sky130A |
|
||||||
A singular stack image can be builded using docker in the following way.
|
| | sky130B |
|
||||||
> Note: Each stack image requires their correspondent base image installed.
|
| gf180mcu | gf180mcuA |
|
||||||
|
| | gf180mcuB |
|
||||||
```sh
|
| | gf180mcuC |
|
||||||
docker build -t <tag> -f <arch/jammy>.Dockerfile <path>
|
|
||||||
```
|
Replace `<pdk_variant>` and `<pdk_tech>` correspondingly by one of the PDKs listed above.
|
||||||
|
```sh
|
||||||
## Custom Images
|
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.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
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
|
||||||
|
```pwsh
|
||||||
|
powershell.exe -ExecutionPolicy Bypass run.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Linux
|
||||||
|
```sh
|
||||||
|
docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --name <container_name> <tag>
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user