Update gds.yaml #48
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |