Files
Uri Shaked c35546a7e4 feat(tech/ihp-sg13g2): update user project .def files
This change moves the power rails to TopMetal1, and makes the TopMetal1 layer available for the user designs.

In addition, we now let LibreLane install the PDK instead of having to install it separately.
2025-11-23 19:13:21 +02:00

105 lines
3.2 KiB
YAML

name: GDS Hardening Tests
on:
push:
pull_request:
workflow_dispatch:
jobs:
harden:
strategy:
fail-fast: false
matrix:
pdk: [sky130A, ihp-sg13g2, gf180mcuD]
runs-on: ubuntu-24.04
env:
PDK: ${{ matrix.pdk }}
PDK_ROOT: /home/runner/pdk
PROJECT_DIR: /home/runner/project
LIBRELANE_VERSION: '2.4.2'
LIBRELANE_VERSION_DEV: '3.0.0.dev44'
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Install librelane
if: "${{ matrix.pdk != 'ihp-sg13g2' }}"
run: pip install librelane==${LIBRELANE_VERSION}
# LibreLane 2.4.2 does not support ihp-sg13g2. Remove once 3.0.0 is released.
- name: Install librelane 3 dev (IHP only)
if: "${{ matrix.pdk == 'ihp-sg13g2' }}"
run: pip install librelane==${LIBRELANE_VERSION_DEV}
- name: Clone the factory test
if: "${{ matrix.pdk != 'ihp-sg13g2' }}"
run: git clone https://github.com/tinytapeout/ttsky25a-factory-test ${PROJECT_DIR}
- name: Clone the factory test (ihp-sg13g2)
if: "${{ matrix.pdk == 'ihp-sg13g2' }}"
run: git clone https://github.com/TinyTapeout/ttihp25b-factory-test ${PROJECT_DIR}
- name: Configure tt_tool.py args (IHP)
if: "${{ matrix.pdk == 'ihp-sg13g2' }}"
run: echo "TT_TOOL_ARGS=--ihp" >> $GITHUB_ENV
- name: Configure tt_tool.py args (gf180mcuD)
if: "${{ matrix.pdk == 'gf180mcuD' }}"
run: echo "TT_TOOL_ARGS=--gf" >> $GITHUB_ENV
- name: Copy tt-support-tools to the project directory
run: cp -r . ${PROJECT_DIR}/tt
- name: Create user config
working-directory: ${{ env.PROJECT_DIR }}
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --create-user-config
- name: Harden
working-directory: ${{ env.PROJECT_DIR }}
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --harden
- name: Create TT submission
working-directory: ${{ env.PROJECT_DIR }}
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --create-tt-submission
- name: Print stats
working-directory: ${{ env.PROJECT_DIR }}
run: |
set -e
python ./tt/tt_tool.py $TT_TOOL_ARGS --print-stats --print-warnings --print-cell-summary --print-cell-category | tee $GITHUB_STEP_SUMMARY
- name: Create SVG render
working-directory: ${{ env.PROJECT_DIR }}
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --create-svg
- name: Upload GDS logs
uses: actions/upload-artifact@v4
with:
name: gds-${{ matrix.pdk }}
path: ${{ env.PROJECT_DIR }}/runs/wokwi
- name: Upload TT submission
uses: actions/upload-artifact@v4
with:
name: tt-submission-${{ matrix.pdk }}
path: ${{ env.PROJECT_DIR }}/tt_submission
- name: Upload SVG render
uses: actions/upload-artifact@v4
with:
name: svg-render-${{ matrix.pdk }}
path: ${{ env.PROJECT_DIR }}/gds_render.svg