https://github.com/ALIGN-analoglayout/ALIGN-public
2.5K
srampr/align-public has the latest version of ALIGN-public installed on Ubuntu 22.04(latest) images.
To pull this image use:
docker pull darpaalign/align-public:latest
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.
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.
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.
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.
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
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>.
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.
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
Content type
Image
Digest
sha256:1bce2d822…
Size
2.1 GB
Last updated
13 days ago
docker pull darpaalign/align-public