Skip to content

Update gds.yaml

Update gds.yaml #42

Workflow file for this run

# TODO steps for each type
name: gds
on:
push:
workflow_dispatch:
jobs:
gds:
runs-on: ubuntu-latest
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up environment variables
shell: bash
env:
FLOW: openlane2
run: |
# REMINDER: When updating the OpenLane version do not forget to change the PDKs used for
# other actions in this repository precheck/action.yml, gl_test/action.yml,
# and eqy_test/action.yml
# PDK_VERSION=cd1748bb197f9b7af62a54507de6624e30363943
cat << EOF >> $GITHUB_ENV
OPENLANE_TAG=2024.04.22
OPENLANE_IMAGE_NAME=efabless/openlane:2024.04.22
OPENLANE_ROOT=/home/runner/openlane
OPENLANE2_TAG=2.0.8
PDK_ROOT=/home/runner/pdk
PDK=sky130A
FLOW=$FLOW
EOF
echo "FLOW_ARG=--openlane2" >> $GITHUB_ENV
# Install packages for 'Render PNG from GDS' step:
- name: Install prerequisites
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: librsvg2-bin pngquant # librsvg2-bin for rsvg-convert; pngquant for heavy PNG compression.
version: tt09 # I think naming a version builds a reusable packages cache for that name.
- name: Checkout tt-support-tools repo
uses: actions/checkout@v4
with:
repository: "TinyTapeout/tt-support-tools"
path: tt
ref: "tt09"
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip' # caching pip dependencies
- name: Install tt-support-tools dependencies
shell: bash
run: pip install -r tt/requirements.txt
- name: Fetch verilog and build config
shell: bash
run: ./tt/tt_tool.py --create-user-config $FLOW_ARG
- name: Install OpenLane
shell: bash
run: pip install openlane==$OPENLANE2_TAG
- name: Make GDS with OpenLane
shell: bash
run: |
sudo apt update
sudo apt install -y nix
cp tt/precheck/default.nix .
nix-build
TOP_MODULE=$(./tt/tt_tool.py --print-top-module --openlane2)
pip install gdspy gdstk
make tt_harden_top ttlogo
cp runs/wokwi/final/gds/* gds/final/
cp runs/wokwi/final/mag/* mag/final/
cp runs/wokwi/final/lef/* lef/final/
nix-shell --run "PURE_ART=1 TOP_NAME=$TOP_MODULE MACRO_NAME=ttlogo magic -noconsole -dnull ./tcl/place_power_pins.tcl"
cp {gds,lef}/final/${TOP_MODULE}.* tt_submission/
- name: Show build files (for debugging)
shell: bash
run: find runs/wokwi/
- name: Show submission build files (for debugging)
shell: bash
run: find tt_submission/
precheck:
needs: gds
runs-on: ubuntu-latest
steps:
- name: Run Tiny Tapeout Precheck
uses: TinyTapeout/tt-gds-action/precheck@tt09
with:
tools-ref: tt08-micro-tiles-experiment
viewer:
needs: gds
runs-on: ubuntu-latest
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
steps:
- uses: TinyTapeout/tt-gds-action/viewer@tt09