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 @@
- 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 @@
- 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 @@
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 @@
- 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 @@
- 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 @@
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 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 @@
# 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 @@
# set PDK_ROOT to the path you wish to use for the pdk
export PDK_ROOT=<pdk-installation-path>
+
+ # 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=<pdk_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 @@
.. code:: bash
- git clone -b mpw-6c <your github repo URL> caravel_example
+ git clone -b mpw-7a <your github repo URL> caravel_example
#. Now that your git environment is setup, it's time to setup your local environment by running.
@@ -51,11 +51,14 @@
cd caravel_example
- # make sure to change <directory_name> with the directory you created in step 2
+ # make sure to change <directory_name> with the directory you created in step 2
# in this case it is caravel_tutorial
- export OPENLANE_ROOT=~/<directory_name>/openlane # you need to export this whenever you start a new shell
-
+
+ export OPENLANE_ROOT=~/<directory_name>/openlane_src # you need to export this whenever you start a new shell
export PDK_ROOT=~/<directory_name>/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