Skip to content

feat: do minimal DRC both with and without seal+fill #81

feat: do minimal DRC both with and without seal+fill

feat: do minimal DRC both with and without seal+fill #81

Workflow file for this run

name: gds
on:
push:
workflow_dispatch:
jobs:
gds:
runs-on: ubuntu-22.04
env:
IHP_PDK_ROOT: ${{ github.workspace}}/IHP-Open-PDK
DESIGN_CONFIG: ${{ github.workspace }}/designs/ihp-sg13g2/tt-chip/config.mk
DESIGN_HOME: ${{ github.workspace }}/designs
WORK_HOME: ${{ github.workspace }}
ORFS_COMMIT: a0615e8f0e00649cf642861e4e1e1951fa33df02
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install OpenROAD
run: |
wget https://github.com/Precision-Innovations/OpenROAD/releases/download/2024-07-12/openroad_2.0_amd64-ubuntu22.04-2024-07-12.deb
sudo apt-get install -y ./openroad_2.0_amd64-ubuntu22.04-2024-07-12.deb
echo "OPENROAD_EXE=$(command -v openroad)" >> $GITHUB_ENV
- name: Install KLayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
pip install klayout==0.29.4
- name: 'Install yosys (oss-cad-suite)'
run: |
cd /opt
wget https://github.com/YosysHQ/oss-cad-suite-build/releases/download/2024-07-16/oss-cad-suite-linux-x64-20240716.tgz
tar zxf oss-cad-suite-linux-x64-20240716.tgz && rm oss-cad-suite-linux-x64-20240716.tgz
echo "YOSYS_CMD=/opt/oss-cad-suite/bin/yosys" >> $GITHUB_ENV
- name: checkout ORFS
uses: actions/checkout@v4
with:
repository: The-OpenROAD-Project/OpenROAD-flow-scripts
ref: ${{ env.ORFS_COMMIT }}
submodules: recursive
path: 'orfs'
- name: Apply platform update
run: |
sg13g2-update/update.sh
- name: Run the flow (synth)
working-directory: 'orfs/flow'
run: |
make synth
- name: Run the flow (floorplan)
working-directory: 'orfs/flow'
run: |
make floorplan
- name: Run the flow (place)
working-directory: 'orfs/flow'
run: |
make place
- name: Run the flow (cts)
working-directory: 'orfs/flow'
run: |
make cts
- name: Run the flow (route)
working-directory: 'orfs/flow'
run: |
make route
- name: Run the flow (finish)
working-directory: 'orfs/flow'
run: |
make
make $WORK_HOME/objects/ihp-sg13g2/tt-chip/base/6_final_concat.cdl
- name: Generate seal ring
run: |
scripts/add-seal-ring.py $WORK_HOME/results/ihp-sg13g2/tt-chip/base/6_final.gds
- name: Upload flow results
uses: actions/upload-artifact@v4
if: always()
with:
name: gds
path: |
logs
objects
reports
results
gl-verification:
needs: gds
runs-on: ubuntu-22.04
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download GDS
uses: actions/download-artifact@v4
with:
name: gds
# Install iverilog, cocotb
- name: install oss-cad-suite
uses: YosysHQ/setup-oss-cad-suite@v3
with:
version: '2024-07-16'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: GL verification
working-directory: test
run: |
make clean test_mux_gl
# make will return success even if the test fails, so check for failure in the results.xml
! grep failure results.xml
- name: Publish VCD
uses: actions/upload-artifact@v4
with:
name: vcd
path: test/test_mux.vcd
fill-seal:
needs: gds
runs-on: ubuntu-22.04
env:
WORK_HOME: ${{ github.workspace }}
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download GDS
uses: actions/download-artifact@v4
with:
name: gds
- name: Install KLayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
pip install klayout==0.29.4
- name: Generate fill
run: |
scripts/add-fill.py $WORK_HOME/results/ihp-sg13g2/tt-chip/base/6_final_seal.gds
- name: Upload fill results
uses: actions/upload-artifact@v4
if: always()
with:
name: fill-seal
path: |
results/ihp-sg13g2/tt-chip/base/6_final_seal_fill.gds
fill-no-seal:
needs: gds
runs-on: ubuntu-22.04
env:
WORK_HOME: ${{ github.workspace }}
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download GDS
uses: actions/download-artifact@v4
with:
name: gds
- name: Install KLayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
pip install klayout==0.29.4
- name: Generate fill
run: |
scripts/add-fill.py $WORK_HOME/results/ihp-sg13g2/tt-chip/base/6_final.gds
- name: Upload fill results
uses: actions/upload-artifact@v4
if: always()
with:
name: fill-no-seal
path: |
results/ihp-sg13g2/tt-chip/base/6_final_fill.gds
drc-minimal:
needs: fill-seal
runs-on: ubuntu-22.04
env:
WORK_HOME: ${{ github.workspace }}
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download GDS
uses: actions/download-artifact@v4
with:
name: fill-seal
path: results/ihp-sg13g2/tt-chip/base
- name: Install KLayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
pip install klayout==0.29.4
- name: Run DRC
run: |
klayout -b -r ./IHP-Open-PDK/ihp-sg13g2/libs.tech/klayout/tech/drc/sg13g2_minimal.lydrc -rd cell=tt_top -rd report_file=sg13g2_minimal.lyrdb ./results/ihp-sg13g2/tt-chip/base/6_final_seal_fill.gds
- name: Upload DRC results
uses: actions/upload-artifact@v4
if: always()
with:
name: drc-minimal-results
path: sg13g2_minimal.lyrdb
- name: install xmllint
run: |
sudo apt-get update
sudo apt-get install -y libxml2-utils
- name: DRC summary
if: always()
run: |
scripts/drc-summary.sh sg13g2_minimal.lyrdb >> $GITHUB_STEP_SUMMARY
drc-minimal-raw:
needs: gds
runs-on: ubuntu-22.04
env:
WORK_HOME: ${{ github.workspace }}
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download GDS
uses: actions/download-artifact@v4
with:
name: gds
- name: Install KLayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
- name: Run DRC
run: |
klayout -b -r ./IHP-Open-PDK/ihp-sg13g2/libs.tech/klayout/tech/drc/sg13g2_minimal.lydrc -rd cell=tt_top -rd report_file=sg13g2_minimal_raw.lyrdb ./results/ihp-sg13g2/tt-chip/base/6_final.gds
- name: Upload DRC results
uses: actions/upload-artifact@v4
if: always()
with:
name: drc-minimal-raw-results
path: sg13g2_minimal_raw.lyrdb
- name: install xmllint
run: |
sudo apt-get update
sudo apt-get install -y libxml2-utils
- name: DRC summary
if: always()
run: |
scripts/drc-summary.sh sg13g2_minimal_raw.lyrdb >> $GITHUB_STEP_SUMMARY
drc-maximal-raw:
needs: gds
runs-on: ubuntu-22.04
env:
WORK_HOME: ${{ github.workspace }}
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download GDS
uses: actions/download-artifact@v4
with:
name: gds
- name: Install KLayout
run: |
wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
- name: Run DRC
run: |
klayout -b -r ./IHP-Open-PDK/ihp-sg13g2/libs.tech/klayout/tech/drc/sg13g2_maximal.lydrc -rd cell=tt_top -rd report_file=sg13g2_maximal_raw.lyrdb ./results/ihp-sg13g2/tt-chip/base/6_final.gds
- name: Upload DRC results
uses: actions/upload-artifact@v4
if: always()
with:
name: drc-maximal-raw-results
path: sg13g2_maximal_raw.lyrdb
- name: install xmllint
run: |
sudo apt-get update
sudo apt-get install -y libxml2-utils
- name: DRC summary
if: always()
run: |
scripts/drc-summary.sh sg13g2_maximal_raw.lyrdb >> $GITHUB_STEP_SUMMARY
# lvs:
# needs: gds
# runs-on: ubuntu-22.04
# env:
# WORK_HOME: ${{ github.workspace }}
#
# steps:
# - name: checkout repo
# uses: actions/checkout@v4
# with:
# submodules: recursive
#
# - name: Download GDS
# uses: actions/download-artifact@v4
# with:
# name: gds
#
# - name: Install KLayout
# run: |
# wget https://www.klayout.org/downloads/Ubuntu-22/klayout_0.29.4-1_amd64.deb
# sudo apt-get install -y ./klayout_0.29.4-1_amd64.deb
#
# - name: Run LVS
# run: |
# klayout -b -r ./IHP-Open-PDK/ihp-sg13g2/libs.tech/klayout/tech/lvs/sg13g2_full.lylvs -rd cdl_file=$WORK_HOME/objects/ihp-sg13g2/tt-chip/base/6_final_concat.cdl -rd report_file=sg13g2_lvs.lvsdb ./results/ihp-sg13g2/tt-chip/base/6_final.gds
#
# - name: Upload LVS results
# uses: actions/upload-artifact@v4
# if: always()
# with:
# name: lvs-results
# path: sg13g2_lvs.lvsdb