| name: CI |
| |
| on: |
| # Runs on Every Push |
| push: |
| # Runs on Pull Requests |
| pull_request: |
| workflow_dispatch: |
| |
| env: |
| MPW_TAG: gfmpw-0f |
| USER_ID: '18100001' |
| CACHE_KEY: 0 |
| PDK: gf180mcuC |
| STD_CELL_LIBRARY: gf180mcu_fd_sc_mcu7t5v0 |
| STD_CELL_LIBRARY_OPT: gf180mcu_fd_sc_mcu7t5v0 |
| |
| jobs: |
| gds: |
| timeout-minutes: 360 |
| runs-on: ubuntu-latest |
| defaults: |
| run: |
| shell: bash -el {0} |
| steps: |
| - name: checkout repo |
| uses: actions/checkout@v3 |
| with: |
| submodules: true |
| |
| - name: cache conda |
| uses: actions/cache@v3 |
| with: |
| path: ~/conda_pkgs_dir |
| key: |
| ${{ runner.os }}-${{ env.CACHE_KEY }}-conda |
| |
| - name: setup miniconda |
| uses: conda-incubator/setup-miniconda@v2.2.0 |
| with: |
| installer-url: https://github.com/proppy/conda-eda/releases/download/v0.0-1452-g75fd8b9/mixed-signal.gf180mcuc-0-Linux-x86_64.sh |
| auto-activate-base: true |
| activate-environment: "" |
| channel-priority: strict |
| use-only-tar-bz2: true |
| |
| - name: setup env |
| run: | |
| echo $CONDA/bin >> $GITHUB_PATH |
| echo "PDK_ROOT=$CONDA/share/pdk" >> $GITHUB_ENV |
| echo "PDK=gf180mcuC" >> $GITHUB_ENV |
| |
| - name: test tools |
| run: | |
| yosys --version |
| openroad -version |
| magic -dnull -noconsole --version |
| netgen -batch quit |
| klayout -zz -v |
| |
| - name: run flow |
| run: | |
| #(cd gf180_teststructures && magic -T gf180mcuC -dnull -noconsole < lef.tcl) |
| (cd gf180_teststructures && magic -T gf180mcuC -dnull -noconsole < mag.tcl) |
| cp gf180_teststructures/gf180_teststructures_flat.mag mag/gf180_teststructures.mag |
| make user_project_wrapper |
| |
| - name: archive openlane runs |
| if: always() |
| uses: actions/upload-artifact@v3 |
| with: |
| name: openlane-runs |
| path: | |
| ${{ github.workspace }}/openlane/user_proj_example/runs/ |
| ${{ github.workspace }}/openlane/user_project_wrapper/runs/ |
| ${{ github.workspace }}/gds/ |
| ${{ github.workspace }}/gf180_teststructures/ |
| |
| - name: cache gds |
| uses: actions/cache@v3 |
| with: |
| path: | |
| def/ |
| gds/ |
| lef/ |
| mag/ |
| maglef/ |
| sdc/ |
| sdf/ |
| signoff/ |
| spef/ |
| spi/ |
| verilog/ |
| key: ${{ runner.os }}-gds-${{ github.run_id }} |
| |
| precheck: |
| needs: |
| - gds |
| runs-on: ubuntu-latest |
| steps: |
| - name: checkout repo |
| uses: actions/checkout@v3 |
| with: |
| submodules: true |
| |
| - name: cache conda |
| uses: actions/cache@v3 |
| with: |
| path: ~/conda_pkgs_dir |
| key: |
| ${{ runner.os }}-${{ env.CACHE_KEY }}-conda |
| |
| - name: setup miniconda |
| uses: conda-incubator/setup-miniconda@v2.2.0 |
| with: |
| installer-url: https://github.com/proppy/conda-eda/releases/download/v0.0-1452-g75fd8b9/mixed-signal.gf180mcuc-0-Linux-x86_64.sh |
| auto-activate-base: true |
| activate-environment: "" |
| channel-priority: strict |
| use-only-tar-bz2: true |
| |
| - name: setup env |
| run: | |
| echo $CONDA/bin >> $GITHUB_PATH |
| echo "PDK_ROOT=$CONDA/share/pdk" >> $GITHUB_ENV |
| echo "PDK=gf180mcuC" >> $GITHUB_ENV |
| |
| - name: test tools |
| run: | |
| yosys --version |
| openroad -version |
| magic -dnull -noconsole --version |
| netgen -batch quit |
| klayout -zz -v |
| |
| - name: restore gds cache |
| uses: actions/cache@v3 |
| with: |
| path: | |
| def/ |
| gds/ |
| lef/ |
| mag/ |
| maglef/ |
| sdc/ |
| sdf/ |
| signoff/ |
| spef/ |
| spi/ |
| verilog/ |
| key: ${{ runner.os }}-gds-${{ github.run_id }} |
| |
| - name: run precheck |
| run: | |
| python -m pip install -r requirements.mpw_precheck.txt |
| make run-precheck |
| |
| - name: archive precheck results |
| if: always() |
| uses: actions/upload-artifact@v3 |
| with: |
| name: precheck-results |
| path: | |
| ${{ github.workspace }}/gds |
| ${{ github.workspace }}/verilog |
| ${{ github.workspace }}/precheck_results/ |
| |
| tapeout: |
| needs: |
| - gds |
| runs-on: ubuntu-latest |
| steps: |
| - name: checkout repo |
| uses: actions/checkout@v3 |
| with: |
| submodules: true |
| |
| - name: cache conda |
| uses: actions/cache@v3 |
| with: |
| path: ~/conda_pkgs_dir |
| key: |
| ${{ runner.os }}-${{ env.CACHE_KEY }}-conda |
| |
| - name: setup miniconda |
| uses: conda-incubator/setup-miniconda@v2.2.0 |
| with: |
| installer-url: https://github.com/proppy/conda-eda/releases/download/v0.0-1452-g75fd8b9/mixed-signal.gf180mcuc-0-Linux-x86_64.sh |
| auto-activate-base: true |
| activate-environment: "" |
| channel-priority: strict |
| use-only-tar-bz2: true |
| |
| - name: setup env |
| run: | |
| echo $CONDA/bin >> $GITHUB_PATH |
| echo "PDK_ROOT=$CONDA/share/pdk" >> $GITHUB_ENV |
| echo "PDK=gf180mcuC" >> $GITHUB_ENV |
| |
| - name: test tools |
| run: | |
| yosys --version |
| openroad -version |
| magic -dnull -noconsole --version |
| netgen -batch quit |
| klayout -zz -v |
| |
| - name: restore gds cache |
| uses: actions/cache@v3 |
| with: |
| path: | |
| def/ |
| gds/ |
| lef/ |
| mag/ |
| maglef/ |
| sdc/ |
| sdf/ |
| signoff/ |
| spef/ |
| spi/ |
| verilog/ |
| key: ${{ runner.os }}-gds-${{ github.run_id }} |
| |
| - name: run tapeout |
| if: always() |
| run: | |
| make set_user_id |
| make gpio_defaults |
| sed -i -e "s@\$PDK_ROOT/\$PDK@$PDK_ROOT/$PDK@g" mag/*.mag |
| sed -i -e "s@\$PDKPATH@$PDK_ROOT/$PDK@g" mag/*.mag |
| sed -i -e "s@\$PDK_ROOT/\$PDK@$PDK_ROOT/$PDK@g" caravel/mag/*.mag |
| sed -i -e "s@\$PDKPATH@$PDK_ROOT/$PDK@g" caravel/mag/*.mag |
| make ship |
| |
| - name: archive caravel tapeout |
| if: always() |
| uses: actions/upload-artifact@v3 |
| with: |
| name: caravel-tapeout |
| path: | |
| ${{ github.workspace }}/gds/caravel_*.gds |
| ${{ github.workspace }}/signoff/ |