Sign inSign up

darpaalign/align-public

By darpaalign

•Updated 13 days ago

https://github.com/ALIGN-analoglayout/ALIGN-public

Image
1

2.5K

darpaalign/align-public repository overview

srampr/align-public has the latest version of ALIGN-public⁠ installed on Ubuntu 22.04(latest) images.

⁠Ubuntu 22.04 image

To pull this image use:

docker pull darpaalign/align-public:latest 

⁠Building a personalized image

Create a Dockerfile in an empty directory in your machine with the following contents:

FROM darpaalign/align-public:latest AS env
ARG UID=0
ARG GID=0
RUN if [ "$GID" -ne "0" ] ; then echo $GID && groupadd -g $GID -o align; else  echo 1000 && groupadd -g 1000 -o align; fi
RUN if [ "$UID" -ne "0" ] ; then useradd -m -u $UID -g $GID -p align -o -s /bin/bash align; else useradd -m -u 1000 -g 1000 -p align -o -s /bin/bash align; fi
RUN chown -R align /work
USER align
WORKDIR /work

Use the command:

docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t align_$(whoami) .

to build an image with the name align_${USER}. This ensures that the files generated inside the docker image have the same permission as you on your host system.

⁠Source code

The source code of the ALIGN version installed is in the directory /ALIGN-public in the docker image. The examples and mock PDK that are packaged with ALIGN are available in this directory.

⁠Mount host directories inside the image

Use the following command to mount a custom PDK / schematic directory in the host machine inside the docker image:

docker run -i -t --mount src=<absolute_path>/<PDK_DIR>,target=/<PDK_DIR>,type=bind \
                 --mount src=<absolute_path>/<SCH_DIR>,target=/<SCH_DIR>,type=bind  \
                 --mount src=<RUN_DIR>,target=/work,type=bind \
                 -w /work align_${USER} bash

The paths in the host machine appear as mounted volumes inside the docker container.

⁠Run

To run ALIGN, use schematic2layout.py -p /<PDK_DIR> /<SCH_DIR> in the bash shell inside the docker container. Refer to ALIGN-public⁠ for detailed documentation on the usage of schematic2layout.py.

⁠GUI from the container

To run ALIGN GUI from inside the container, schematic2layout.py -p /<PDK_DIR> /<SCH_DIR> --port <container_port> --gui in the bash shell inside the docker container.

docker run -i -t --mount src=<absolute_path>/<PDK_DIR>,target=/<PDK_DIR>,type=bind \
                 --mount src=<absolute_path>/<SCH_DIR>,target=/<SCH_DIR>,type=bind  \
                 --mount src=<RUN_DIR>,target=/work,type=bind \
                 -p <host_port>:<container_port> \ 
                 -w /work align_${USER} bash

⁠Batch mode

run_align is a script inside docker that runs ALIGN on a schematic/PDK directory specified using the env variables ALIGN_CKT_DIR/ALIGN_PDK_DIR respectively. Usage:

docker run -e ALIGN_PDK_DIR=/<PDK_DIR> -e ALIGN_CKT_DIR=/<SCH_DIR> \
                 --mount src=<absolute_path>/<PDK_DIR>,target=/<PDK_DIR>,type=bind \
                 --mount src=<absolute_path>/<SCH_DIR>,target=/<SCH_DIR>,type=bind  \
                 --mount src=<RUN_DIR>,target=/work,type=bind \
                 -w /work align_${USER} run_align

This command will automatically generate the ALIGN outputs in the <RUN_DIR>.

⁠Skywater 130nm PDK

ALIGN version of the Skywater130 PDK (https://github.com/ALIGN-analoglayout/ALIGN-pdk-sky130⁠) is installed in the directory /ALIGN-pdk-sky130 in the docker image.

⁠RHEL9 image

This is a slightly outdated image. Use this if only if you have issues with the Ubuntu image. To pull this image use:

docker pull darpaalign/align-public:rhel9

Tag summary

Content type

Image

Digest

sha256:1bce2d822…

Size

2.1 GB

Last updated

13 days ago

docker pull darpaalign/align-public