feat: update project tt_um_cm_1 from N0vaPixel/tt07-cm-1 #237
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
name: gds | |
on: | |
workflow_dispatch: | |
push: | |
# Don't run on project submissions: | |
branches-ignore: | |
- projects/tt_um_* | |
pull_request: | |
# Don't run on project submissions: | |
paths-ignore: | |
- projects/tt_um_*/** | |
jobs: | |
gds: | |
env: | |
PYTHONIOENCODING: utf-8 | |
PDK_ROOT: ${{ github.workspace }}/pdk | |
TT_CONFIG: sky130.yaml | |
# Uncomment the following line to build only the specified projects: | |
#TT_ONLY_PROJECTS: tt_um_chip_rom,tt_um_factory_test | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout repo | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Load OpenLane environment variables | |
run: cat .github/config/openlane.txt | tee -a $GITHUB_ENV | |
- name: Checkout OpenLane 2 repo | |
uses: actions/checkout@v4 | |
with: | |
repository: efabless/openlane2 | |
path: openlane2 | |
ref: ${{ env.OPENLANE_TAG }} | |
- name: Patch OpenLane 2 repo | |
working-directory: openlane2 | |
run: | |
git apply --allow-empty ../patches/openlane2.patch | |
- name: setup python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
cache: 'pip' | |
- run: pip install -r tt-multiplexer/py/requirements.txt -r tt/requirements.txt | |
- name: Update caravel configuration | |
run: python ./tt/configure.py --update-shuttle | |
- uses: cachix/install-nix-action@v26 | |
- uses: cachix/cachix-action@v14 | |
with: | |
name: ${{ vars.CACHIX_CACHE || 'tinytapeout' }} | |
extraPullNames: ${{ vars.CACHIX_CACHE_EXTRA || 'openlane' }} | |
authToken: ${{ secrets.CACHIX_TOKEN }} | |
- name: Install Sky130 PDK | |
uses: TinyTapeout/volare-action@v2 | |
with: | |
pdk_name: sky130 | |
pdk_version: ${{ env.SKY130_PDK_VERSION }} | |
pdk_root: ${{ env.PDK_ROOT }} | |
# run OpenLane to build the GDS | |
- name: Harden Chip ROM | |
run: nix-shell $GITHUB_WORKSPACE/openlane2/shell.nix --run "python -m openlane tt/rom/config.json" | |
- name: Harden tt_ctrl | |
working-directory: tt-multiplexer/ol2/tt_ctrl | |
run: nix-shell $GITHUB_WORKSPACE/openlane2/shell.nix --run "python build.py" | |
- name: Harden tt_mux | |
working-directory: tt-multiplexer/ol2/tt_mux | |
run: nix-shell $GITHUB_WORKSPACE/openlane2/shell.nix --run "python build.py" | |
- name: Copy macros | |
run: python ./tt/configure.py --copy-macros | |
- name: Harden tt_top | |
working-directory: tt-multiplexer/ol2/tt_top | |
run: nix-shell $GITHUB_WORKSPACE/openlane2/shell.nix --run "python build.py --skip-xor-checks" | |
- name: Copy final results | |
run: python ./tt/configure.py --copy-final-results | |
- name: Create eFabless submission | |
run: python ./tt/configure.py --create-efabless-submission | |
- name: upload GDS artifact | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: GDS | |
path: tt-multiplexer/ol2/tt_top/runs/RUN_*/* | |
- name: upload macros artifact | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macros | |
path: | | |
tt-multiplexer/cfg/*.yaml | |
tt-multiplexer/ol2/tt_top/gds/* | |
tt-multiplexer/ol2/tt_top/lef/* | |
tt-multiplexer/ol2/tt_top/spef/* | |
tt-multiplexer/ol2/tt_top/verilog/* | |
- name: upload shuttle_index.json | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: shuttle_index | |
path: shuttle_index.json | |
- name: upload Efabless submission directory | |
uses: actions/upload-artifact@v4 | |
with: | |
name: efabless_submission | |
path: efabless | |
# Install iverilog, cocotb (required for GL test) | |
- name: install oss-cad-suite | |
uses: YosysHQ/setup-oss-cad-suite@v3 | |
with: | |
version: '2023-05-27' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: GL simulation | |
working-directory: verilog/dv/mux | |
env: | |
EXPECTED_REPO: ${{ github.repository }} | |
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 |