Merge pull request #20 from efabless/volare_integration
use pdk-with-volare
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml
index 330d845..fd620d2 100644
--- a/.github/workflows/user_project_ci.yml
+++ b/.github/workflows/user_project_ci.yml
@@ -8,74 +8,48 @@
workflow_dispatch:
jobs:
- precheck:
- runs-on: ubuntu-latest
- timeout-minutes: 720
- steps:
- - uses: actions/checkout@v2
+ mpw_precheck:
+ timeout-minutes: 720
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v1
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
- - name: Install Magic
- run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
+ - name: Export PDK ROOT
+ run: |
+ echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV
- - name: Build PDK
- run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
+ - name: Export PDKPATH
+ run: echo "PDKPATH=/home/runner/work/pdk/sky130A" >> $GITHUB_ENV
- - name: Install The Precheck
- run: git clone --depth=1 https://github.com/efabless/mpw_precheck.git ${GITHUB_WORKSPACE}/mpw_precheck
+ - name: Download PDK
+ run: |
+ MPW_TAG=main CARAVEL_LITE=0 make install
+ make pdk-with-volare
+
+ - name: Run MPW-Precheck
+ run: |
+ export INPUT_DIRECTORY=$(pwd)
+ export PRECHECK_ROOT=$INPUT_DIRECTORY/mpw_precheck
+ export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
+ export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
+ git clone --depth=1 -b mpw-5b https://github.com/efabless/mpw_precheck.git
+ docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "${{ env.PDK_ROOT }}":"${{ env.PDK_ROOT }}" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="${{ env.PDK_ROOT }}" -e PDKPATH="${{ env.PDKPATH }}" -u $(id -u "$USER"):$(id -g "$USER") efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_root ${{ env.PDK_ROOT }} --output_directory $OUTPUT_DIRECTORY license makefile consistency xor magic_drc klayout_beol klayout_feol klayout_met_min_ca_density klayout_offgrid klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"
+ cnt=$(grep -c "All Checks Passed" "$OUTPUT")
+ if ! [[ $cnt ]]; then cnt=0; fi
+ if [[ $cnt -eq 1 ]]; then exit 0; fi
+ exit 2
- - name: Run The Precheck
- run: bash ${GITHUB_WORKSPACE}/.github/scripts/run_precheck.sh
+ - name: upload failure logs
+ if: failure()
+ uses: actions/upload-artifact@v2
+ with:
+ name: error
+ path: |
+ /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/*
- # dv_rtl:
- # runs-on: ubuntu-latest
- # steps:
- # - uses: actions/checkout@v2
-
- # - name: Set up QEMU
- # uses: docker/setup-qemu-action@v1
-
- # - name: Set up Docker Buildx
- # uses: docker/setup-buildx-action@v1
-
- # - name: Install Magic
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
-
- # - name: Build PDK
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
-
- # - name: Install The Dockerized DV Setup
- # run: docker pull efabless/dv_setup:latest
-
- # - name: Run DV tests
- # # Run test number 0,1,2,3,4 in one job <test-ids> <sim-mode>
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/run-dv-wrapper.sh 0 RTL
-
- # dv_gl:
- # runs-on: ubuntu-latest
- # steps:
- # - uses: actions/checkout@v2
-
- # - name: Set up QEMU
- # uses: docker/setup-qemu-action@v1
-
- # - name: Set up Docker Buildx
- # uses: docker/setup-buildx-action@v1
-
- # - name: Install Magic
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
-
- # - name: Build PDK
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
-
- # - name: Install The Dockerized DV Setup
- # run: docker pull efabless/dv_setup:latest
-
- # - name: Run DV tests
- # # Run test number 0,1,2,3,4 in one job <test-ids> <sim-mode>
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/run-dv-wrapper.sh 0 GL
diff --git a/Makefile b/Makefile
index 37b341c..84dd315 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,7 @@
PRECHECK_ROOT?=${HOME}/mpw_precheck
SIM ?= RTL
+export OPEN_PDKS_COMMIT?=7519dfb04400f224f140749cda44ee7de6f5e095
# Install lite version of caravel, (1): caravel-lite, (0): caravel
CARAVEL_LITE?=1
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 0a7c0c7..1467d4c 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -128,18 +128,16 @@
Building the PDK
================
-Make sure you have `Magic VLSI Layout Tool <http://opencircuitdesign.com/magic/index.html>`__ `version 8.3.265 <https://github.com/RTimothyEdwards/magic/tree/8.3.265>`__ installed on your machine before building the pdk.
+For more information about volare click `here <https://github.com/efabless/volare>`__
.. code:: bash
# set PDK_ROOT to the path you wish to use for the pdk
- export PDK_ROOT=<pdk-installation-path>
+ export PDK_ROOT=<pdk-installation-path
- # you can optionally specify skywater-pdk and open-pdks commit used
- # by setting and exporting SKYWATER_COMMIT and OPEN_PDKS_COMMIT
- # if you do not set them, they default to the last verfied commits tested for this project
-
- make pdk
+ # use volare to download the pdk
+ # To change the default pdk version you can export OPEN_PDKS_COMMIT=<pdk_commit>
+ make pdk-with-volare