From f9230df5c60c29e941b391d046bbc8723aab6cae Mon Sep 17 00:00:00 2001 From: Jeff DiCorpo <42048757+jeffdi@users.noreply.github.com> Date: Jul 01 2022 14:34:11 +0000 Subject: Merge branch 'main' into EF-3367 --- diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 671fe30..a78c4d6 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -35,13 +35,13 @@ jobs: - name: Tarball PDK run: | - tar -cf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + tar -cf /tmp/pdk.tar -C $PDK_ROOT . - name: Upload PDK Tarball uses: actions/upload-artifact@v2 with: name: pdk-tarball - path: /tmp/sky130A.tar + path: /tmp/pdk.tar mpw_precheck: @@ -72,9 +72,9 @@ jobs: - name: Unpack PDK Tarball run: | - sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A + sudo mkdir -p ${{ env.PDK_ROOT }} sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} - tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + tar -xf /tmp/pdk.tar -C $PDK_ROOT . - name: Run MPW-Precheck run: | export INPUT_DIRECTORY=$(pwd) @@ -99,7 +99,7 @@ jobs: path: | /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/* - user_project_flow: + user_project_flow_sky130A: timeout-minutes: 720 runs-on: ubuntu-latest needs: [pdk] @@ -115,6 +115,9 @@ jobs: - name: Export PDK ROOT run: echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV + - name: Export PDK + run: echo "PDK=sky130A" >> $GITHUB_ENV + - name: Export OPENLANE ROOT run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV @@ -126,9 +129,9 @@ jobs: - name: Unpack PDK Tarball run: | - sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A + sudo mkdir -p ${{ env.PDK_ROOT }} sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} - tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + tar -xf /tmp/pdk.tar -C $PDK_ROOT . - name: Install dependencies run: | @@ -157,3 +160,65 @@ jobs: make verify-la_test2-gl make verify-mprj_stimulus-gl make verify-wb_port-gl + + user_project_flow_sky130B: + timeout-minutes: 720 + runs-on: ubuntu-latest + needs: [pdk] + 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: Export PDK ROOT + run: echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV + + - name: Export PDK + run: echo "PDK=sky130B" >> $GITHUB_ENV + + - name: Export OPENLANE ROOT + run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV + + - name: Download PDK Tarball + uses: actions/download-artifact@v2 + with: + name: pdk-tarball + path: /tmp + + - name: Unpack PDK Tarball + run: | + sudo mkdir -p ${{ env.PDK_ROOT }} + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + tar -xf /tmp/pdk.tar -C $PDK_ROOT . + + - name: Install dependencies + run: | + make install + make install_mcw + make openlane + make simenv + + - name: Harden using Openlane + run: | + make user_proj_example + make user_project_wrapper + + - name: Run DV RTL tests + run: | + make verify-io_ports-rtl + make verify-la_test1-rtl + make verify-la_test2-rtl + make verify-mprj_stimulus-rtl + make verify-wb_port-rtl + + - name: Run DV GL tests + run: | + make verify-io_ports-gl + make verify-la_test1-gl + make verify-la_test2-gl + make verify-mprj_stimulus-gl + make verify-wb_port-gl \ No newline at end of file diff --git a/Makefile b/Makefile index 6fd78e0..65179e8 100644 --- a/Makefile +++ b/Makefile @@ -25,14 +25,17 @@ export OPEN_PDKS_COMMIT?=7519dfb04400f224f140749cda44ee7de6f5e095 export PDK_MAGIC_COMMIT=7d601628e4e05fd17fcb80c3552dacb64e9f6e7b export OPENLANE_TAG=2022.02.23_02.50.41 export MISMATCHES_OK=1 -export PDKPATH?=$(PDK_ROOT)/sky130A -export PDK?=sky130A # Install lite version of caravel, (1): caravel-lite, (0): caravel CARAVEL_LITE?=1 +# PDK switch varient +export PDK?=sky130B +export PDKPATH?=$(PDK_ROOT)/$(PDK) + MPW_TAG ?= mpw-7a + ifeq ($(CARAVEL_LITE),1) CARAVEL_NAME := caravel-lite CARAVEL_REPO := https://github.com/efabless/caravel-lite @@ -140,6 +143,11 @@ what: # Install Openlane .PHONY: openlane openlane: + @if [ "$$(realpath $${OPENLANE_ROOT})" = "$$(realpath $$(pwd)/openlane)" ]; then\ + echo "OPENLANE_ROOT is set to '$$(pwd)/openlane' which contains openlane config files"; \ + echo "Please set it to a different directory"; \ + exit 1; \ + fi cd openlane && $(MAKE) openlane #### Not sure if the targets following are of any use diff --git a/docs/source/index.rst b/docs/source/index.rst index e756a3f..90a41d9 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -171,6 +171,9 @@ For more information about volare click `here + + # set the PDK variant depending on your shuttle, if you don't know leave it as default + export PDK=sky130B # use volare to download the pdk # To change the default pdk version you can export OPEN_PDKS_COMMIT= diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index 099afe5..1dd2008 100644 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst @@ -43,7 +43,7 @@ Starting your project .. code:: bash - git clone -b mpw-6c caravel_example + git clone -b mpw-7a caravel_example #. Now that your git environment is setup, it's time to setup your local environment by running. @@ -51,11 +51,14 @@ Starting your project cd caravel_example - # make sure to change with the directory you created in step 2 + # make sure to change with the directory you created in step 2 # in this case it is caravel_tutorial - export OPENLANE_ROOT=~//openlane # you need to export this whenever you start a new shell - + + export OPENLANE_ROOT=~//openlane_src # you need to export this whenever you start a new shell export PDK_ROOT=~//pdks # you need to export this whenever you start a new shell + + # export the PDK variant depending on your shuttle, if you don't know leave it to the default + export PDK=sky130B make setup diff --git a/openlane/user_proj_example/config.tcl b/openlane/user_proj_example/config.tcl index c9266ee..b216984 100755 --- a/openlane/user_proj_example/config.tcl +++ b/openlane/user_proj_example/config.tcl @@ -13,7 +13,7 @@ # limitations under the License. # SPDX-License-Identifier: Apache-2.0 -set ::env(PDK) "sky130A" +set ::env(PDK) $::env(PDK) set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hd" set script_dir [file dirname [file normalize [info script]]] diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl index f720e39..f0d44fa 100755 --- a/openlane/user_project_wrapper/config.tcl +++ b/openlane/user_project_wrapper/config.tcl @@ -16,7 +16,7 @@ # Base Configurations. Don't Touch # section begin -set ::env(PDK) "sky130A" +set ::env(PDK) $::env(PDK) set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hd" # YOU ARE NOT ALLOWED TO CHANGE ANY VARIABLES DEFINED IN THE FIXED WRAPPER CFGS