Skip to content

Update gds.yaml

Update gds.yaml #48

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: |
TOP_MODULE=$(./tt/tt_tool.py --print-top-module --openlane2)
pip install gdspy gdstk
./tt/tt_tool.py --harden --openlane2
cp runs/wokwi/final/gds/* gds/final/
cp runs/wokwi/final/mag/* mag/final/
cp runs/wokwi/final/lef/* lef/final/
- uses: cachix/install-nix-action@v18
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Post-process Pure Art Design
uses: workflow/nix-shell-action@v3
env:
PDK_ROOT: /home/runner/pdk
PDK: sky130A
PURE_ART: 1
MACRO_NAME: ttlogo
TOP_NAME: tt_um_macro_test_wrapper
with:
packages: magic-vlsi
script: |
magic -noconsole -dnull ./tcl/place_power_pins.tcl
- name: Copy submission files
shell: bash
run: 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
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