Merge tag 'mpw-6b'
diff --git a/.github/scripts/build/run-set-id.sh b/.github/scripts/build/run-set-id.sh deleted file mode 100644 index 1042716..0000000 --- a/.github/scripts/build/run-set-id.sh +++ /dev/null
@@ -1,38 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2020 Efabless Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# SPDX-License-Identifier: Apache-2.0 - -export UPRJ_ROOT=$(pwd) -cd .. -export CARAVEL_ROOT=$(pwd)/caravel -export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG -export PDK_ROOT=$(pwd)/pdks -export USER_ID=00000001 - -cd $UPRJ_ROOT || exit - -# Install full version of caravel -git clone --depth=1 https://github.com/efabless/caravel $CARAVEL_ROOT - -LOG_FILE=out.log -docker run -v $UPRJ_ROOT:$UPRJ_ROOT -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -e UPRJ_ROOT=$UPRJ_ROOT -e PDK_ROOT=$PDK_ROOT -e CARAVEL_ROOT=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME bash -c "cd $CARAVEL_ROOT; make uncompress; cd $UPRJ_ROOT; export USER_ID=$USER_ID; make set_user_id | tee $LOG_FILE;" - -cnt=$(grep "Done" $LOG_FILE -s | wc -l) - -if [[ $cnt -ne 3 ]]; then - exit 2 -fi - -exit 0
diff --git a/.github/scripts/build/run-ship.sh b/.github/scripts/build/run-ship.sh deleted file mode 100644 index 01ddec1..0000000 --- a/.github/scripts/build/run-ship.sh +++ /dev/null
@@ -1,38 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2020 Efabless Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# SPDX-License-Identifier: Apache-2.0 - -export UPRJ_ROOT=$(pwd) -cd .. -export CARAVEL_ROOT=$(pwd)/caravel -export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG -export PDK_ROOT=$(pwd)/pdks - -cd $UPRJ_ROOT || exit - -# Install full version of caravel -git clone --depth=1 https://github.com/efabless/caravel $CARAVEL_ROOT - -make install_mcw - -docker run -v $UPRJ_ROOT:$UPRJ_ROOT -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -e UPRJ_ROOT=$UPRJ_ROOT -e PDK_ROOT=$PDK_ROOT -e CARAVEL_ROOT=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME bash -c "cd $CARAVEL_ROOT; make uncompress; cd $UPRJ_ROOT; make -f $CARAVEL_ROOT/Makefile ship;" - -SHIP_FILE=$UPRJ_ROOT/gds/caravel.gds - -if test -f "$SHIP_FILE"; then - exit 0 -else - exit 2 -fi
diff --git a/.github/scripts/build_pdk.sh b/.github/scripts/build_pdk.sh deleted file mode 100644 index 8317b6a..0000000 --- a/.github/scripts/build_pdk.sh +++ /dev/null
@@ -1,25 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2020 Efabless Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# SPDX-License-Identifier: Apache-2.0 -git clone --depth=1 https://github.com/efabless/caravel-lite.git - -export HOME=$(pwd) -cd .. -export PDK_ROOT=$(pwd)/pdks && mkdir "$PDK_ROOT" -cd "$HOME"/caravel-lite/ || exit - -make skywater-pdk skywater-library open_pdks build-pdk gen-sources - -exit 0
diff --git a/.github/scripts/dv/run-dv-wrapper.sh b/.github/scripts/dv/run-dv-wrapper.sh deleted file mode 100755 index c602fea..0000000 --- a/.github/scripts/dv/run-dv-wrapper.sh +++ /dev/null
@@ -1,73 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2020 Efabless Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# SPDX-License-Identifier: Apache-2.0 - -# comma seperated test ids -IDS=$1 -# simulation mode : RTL/GL -SIM_MODE=$2 - -DV_TEST_IDS=(${IDS//,/ }) - -export TARGET_PATH=$(pwd) -export CARAVEL_ROOT=$(pwd)/caravel - -if [ ! -d $TARGET_PATH ]; then - echo "Directory target /path/to/dir DOES NOT exists." - exit 9999 -fi - -cd .. - -export PDK_ROOT=$(pwd)/pdks -if [ ! -d $PDK_ROOT ]; then - echo "Directory pdk /path/to/dir DOES NOT exists." - exit 9999 -fi - -DV_PATH=$TARGET_PATH/verilog/dv -if [ ! -d $DV_PATH ]; then - echo "Directory /path/to/dir DOES NOT exists." - exit 9999 -fi - -for id in "${DV_TEST_IDS[@]}"; do - docker run -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT \ - -v $CARAVEL_ROOT:$CARAVEL_ROOT \ - -e TARGET_PATH=$TARGET_PATH -e PDK_ROOT=$PDK_ROOT \ - -e CARAVEL_ROOT=$CARAVEL_ROOT \ - -u $(id -u $USER):$(id -g $USER) efabless/dv_setup:latest \ - bash -c "bash $TARGET_PATH/.github/scripts/dv/run-dv.sh $PDK_ROOT $DV_PATH $id $SIM_MODE" - - echo "DONE!" - - VERDICT_FILE=$TARGET_PATH/verilog/dv/$id.out - - if [ -f $VERDICT_FILE ]; then - cnt=$(grep "Pass" $VERDICT_FILE -s | wc -l) - if ! [[ $cnt ]]; then cnt = 0; fi - else - echo "DV check failed due to subscript failure. Please review the logs" - exit 2 - fi - - echo "Verdict: $cnt" - - if [[ $cnt -ne 1 ]]; then - exit 2 - fi -done - -exit 0
diff --git a/.github/scripts/dv/run-dv.sh b/.github/scripts/dv/run-dv.sh deleted file mode 100755 index 99fcd74..0000000 --- a/.github/scripts/dv/run-dv.sh +++ /dev/null
@@ -1,39 +0,0 @@ -PDK_ROOT=$1 -DV_PATH=$2 -DV_TEST_ID=$3 -SIM_MODE=$4 - -cd $DV_PATH || exit - -## get the name of all subdfolders under verilog/dv -ALL_DV_TESTS="$(find * -maxdepth 0 -type d)" -## convert all ALL_DV_TESTS to an array -TESTS_ARR=($ALL_DV_TESTS) -## get length of the TESTS array -len=${#TESTS_ARR[@]} - -## make sure that the test ID is less than the array length -if [ $DV_TEST_ID -ge $len ]; then - echo "Error: Invalid Test ID" - exit 1 -fi - -## get the name corresponding to the test ID -PATTERN=${TESTS_ARR[$DV_TEST_ID]} - -OUT_FILE=$DV_PATH/$DV_TEST_ID.out - -export SIM=$SIM_MODE -echo "Running $PATTERN $SIM.." -logFile=$DV_PATH/$PATTERN.$SIM.dv.out -cd $PATTERN || exit -echo $(pwd) -make 2>&1 | tee $logFile -grep "Monitor" $logFile >>$OUT_FILE -make clean - -echo "Execution Done on $PATTERN !" - -cat $OUT_FILE - -exit 0
diff --git a/.github/scripts/install_magic.sh b/.github/scripts/install_magic.sh deleted file mode 100644 index ca91137..0000000 --- a/.github/scripts/install_magic.sh +++ /dev/null
@@ -1,24 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2020 Efabless Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# SPDX-License-Identifier: Apache-2.0 -sudo apt-get install -y csh freeglut3-dev libncurses5-dev libncursesw5-dev libglu1-mesa-dev libx11-dev mesa-common-dev tcl tcl-dev tk tk-dev - -git clone --depth=1 --branch 8.3.265 https://github.com/RTimothyEdwards/magic.git -cd magic || exit -sudo ./configure --disable-locking --prefix=/usr CFLAGS='-g -O0 -m64 -fPIC' -sudo make -j4 -sudo make install - -exit 0
diff --git a/.github/scripts/run_precheck.sh b/.github/scripts/run_precheck.sh deleted file mode 100644 index 16091a6..0000000 --- a/.github/scripts/run_precheck.sh +++ /dev/null
@@ -1,31 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: 2020 Efabless Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# SPDX-License-Identifier: Apache-2.0 -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 -cd .. -export PDK_ROOT=$(pwd)/pdks -cd "$PRECHECK_ROOT" || exit - -docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "$PDK_ROOT":"$PDK_ROOT" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="$PDK_ROOT" -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 $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
diff --git a/.github/workflows/caravel_build.yml b/.github/workflows/caravel_build.yml deleted file mode 100644 index d9cadb3..0000000 --- a/.github/workflows/caravel_build.yml +++ /dev/null
@@ -1,53 +0,0 @@ -# name: Caravel Build - -# on: -# # Runs on Every Push -# push: -# # Runs on Pull Requests -# pull_request: -# workflow_dispatch: - -# jobs: -# make_ship: -# 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: Run make ship -# run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-ship.sh -# env: -# OPENLANE_TAG: 2021.12.17_05.07.41 - -# set_user_id: -# 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: Run Set User ID -# run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-set-id.sh -# env: -# OPENLANE_TAG: 2021.09.16_03.28.21
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index d966d14..d3e9f0c 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml
@@ -8,8 +8,7 @@ workflow_dispatch: jobs: - precheck: - timeout-minutes: 720 + pdk: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -20,62 +19,141 @@ - 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: Export OPENLANE ROOT + run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV - - name: Build PDK - run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh + - name: Install dependencies + run: | + sudo mkdir -p ${{ env.PDK_ROOT }} + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + make install + make openlane + make pdk-with-volare - - name: Install The Precheck - run: git clone --depth=1 https://github.com/efabless/mpw_precheck.git ${GITHUB_WORKSPACE}/mpw_precheck + - name: Tarball PDK + run: | + tar -cf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . - - name: Run The Precheck - run: bash ${GITHUB_WORKSPACE}/.github/scripts/run_precheck.sh + - name: Upload PDK Tarball + uses: actions/upload-artifact@v2 + with: + name: pdk-tarball + path: /tmp/sky130A.tar - # dv_rtl: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v2 - # - name: Set up QEMU - # uses: docker/setup-qemu-action@v1 + mpw_precheck: + timeout-minutes: 720 + runs-on: ubuntu-latest + needs: [pdk] + steps: + - uses: actions/checkout@v2 - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v1 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 - # - name: Install Magic - # run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - # - name: Build PDK - # run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh + - name: Export PDK ROOT + run: | + echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV + + - name: Export PDKPATH + run: echo "PDKPATH=/home/runner/work/pdk/sky130A" >> $GITHUB_ENV - # - name: Install The Dockerized DV Setup - # run: docker pull efabless/dv_setup:latest + - name: Download PDK Tarball + uses: actions/download-artifact@v2 + with: + name: pdk-tarball + path: /tmp - # - 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,1,2,3,4 RTL + - name: Unpack PDK Tarball + run: | + sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + - 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 + export PDKPATH=$PDK_ROOT/sky130A - # dv_gl: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v2 + git clone --depth=1 -b mpw-5b https://github.com/efabless/mpw_precheck.git - # - name: Set up QEMU - # uses: docker/setup-qemu-action@v1 + 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" - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v1 + cnt=$(grep -c "All Checks Passed" "$OUTPUT") + if ! [[ $cnt ]]; then cnt=0; fi + if [[ $cnt -eq 1 ]]; then exit 0; fi + exit 2 + - 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/* - # - name: Install Magic - # run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh + user_project_flow: + timeout-minutes: 720 + runs-on: ubuntu-latest + needs: [pdk] + steps: + - uses: actions/checkout@v2 - # - name: Build PDK - # run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 - # - name: Install The Dockerized DV Setup - # run: docker pull efabless/dv_setup:latest + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - # - 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,1,2,3,4 GL + - name: Export PDK ROOT + run: echo "PDK_ROOT=/home/runner/work/pdk" >> $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 }}/sky130A + sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} + tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A . + + - 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
diff --git a/Makefile b/Makefile index e787f93..b6043f6 100644 --- a/Makefile +++ b/Makefile
@@ -21,14 +21,15 @@ SIM?=RTL export SKYWATER_COMMIT=c094b6e83a4f9298e47f696ec5a7fd53535ec5eb -export OPEN_PDKS_COMMIT=7519dfb04400f224f140749cda44ee7de6f5e095 +export OPEN_PDKS_COMMIT?=7519dfb04400f224f140749cda44ee7de6f5e095 export PDK_MAGIC_COMMIT=7d601628e4e05fd17fcb80c3552dacb64e9f6e7b export OPENLANE_TAG=2022.02.23_02.50.41 +export MISMATCHES_OK=1 # Install lite version of caravel, (1): caravel-lite, (0): caravel CARAVEL_LITE?=1 -MPW_TAG ?= mpw-5c +MPW_TAG ?= mpw-6b ifeq ($(CARAVEL_LITE),1) CARAVEL_NAME := caravel-lite @@ -60,12 +61,12 @@ docker pull efabless/dv_setup:latest .PHONY: setup -setup: install check-env install_mcw pdk openlane +setup: install check-env install_mcw openlane pdk-with-volare # Openlane blocks=$(shell cd openlane && find * -maxdepth 0 -type d) .PHONY: $(blocks) -$(blocks): +$(blocks): % : export CARAVEL_ROOT=$(CARAVEL_ROOT) && cd openlane && $(MAKE) $* dv_patterns=$(shell cd verilog/dv && find * -maxdepth 0 -type d) @@ -93,7 +94,16 @@ harden: $(blocks) .PHONY: verify -verify: $(dv-targets) +verify: $(dv-targets-rtl) + +.PHONY: verify-all-rtl +verify-all-rtl: $(dv-targets-rtl) + +.PHONY: verify-all-gl +verify-all-gl: $(dv-targets-gl) + +.PHONY: verify-all-gl-sdf +verify-all-gl-sdf: $(dv-targets-gl-sdf) $(dv-targets-rtl): SIM=RTL $(dv-targets-rtl): verify-%-rtl: $(dv_base_dependencies) @@ -159,7 +169,7 @@ # Default installs to the user home directory, override by "export PRECHECK_ROOT=<precheck-installation-path>" .PHONY: precheck precheck: - @git clone --depth=1 --branch mpw-5a https://github.com/efabless/mpw_precheck.git $(PRECHECK_ROOT) + @git clone --depth=1 --branch $(MPW_TAG) https://github.com/efabless/mpw_precheck.git $(PRECHECK_ROOT) @docker pull efabless/mpw_precheck:latest .PHONY: run-precheck @@ -200,4 +210,3 @@ @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' -
diff --git a/docs/source/index.rst b/docs/source/index.rst index 052fcf7..e756a3f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst
@@ -55,7 +55,9 @@ Prerequisites ============= -- Docker +- Docker: `Linux <https://hub.docker.com/search?q=&type=edition&offering=community&operating_system=linux&utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ || `Windows <https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ || `Mac with Intel Chip <https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ || `Mac with M1 Chip <https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ + +- Python 3.6+ with PIP Install Caravel =============== @@ -163,19 +165,16 @@ Building the PDK ================ -Make sure you have `Magic VLSI Layout Tool <http://opencircuitdesign.com/magic/index.html>`__ installed on your machine before building the pdk. -The pdk build is tested with magic version ``8.3.265``. +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> - # 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 Running Full Chip Simulation ============================ @@ -193,10 +192,8 @@ .. code:: bash export PDK_ROOT=<pdk-installation-path> - # specify simulation mode: RTL/GL - export SIM=RTL # Run RTL simulation on IO ports testbench, make verify-io_ports - make verify-<testbench-name> + make verify-<testbench-name>-rtl Once you have the physical implementation done and you have the gate-level netlists ready, it is crucial to run full gate-level simulations to make sure that your design works as intended after running the physical implementation. @@ -205,10 +202,8 @@ .. code:: bash export PDK_ROOT=<pdk-installation-path> - # specify simulation mode: RTL/GL - export SIM=GL # Run RTL simulation on IO ports testbench, make verify-io_ports - make verify-<testbench-name> + make verify-<testbench-name>-gl This sample project comes with four example testbenches to test the IO port connection, wishbone interface, and logic analyzer. The test-benches are under the
diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index 051bcbf..3ca86c0 100644 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst
@@ -27,6 +27,8 @@ - Docker: `Linux <https://hub.docker.com/search?q=&type=edition&offering=community&operating_system=linux&utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ || `Windows <https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ || `Mac with Intel Chip <https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ || `Mac with M1 Chip <https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=dd-smartbutton&utm_location=header>`_ +- Python 3.6+ with PIP + =============================================================================================================================================================== --------------------- @@ -51,7 +53,7 @@ .. code:: bash # Make sure that "caravel_example" matches the empty github repo name in step 1 - git clone -b mpw-5c https://github.com/efabless/caravel_user_project caravel_example + git clone -b mpw-6b https://github.com/efabless/caravel_user_project caravel_example cd caravel_example git remote rename origin upstream @@ -93,7 +95,7 @@ make <module_name> .. - For an example of hardening a project please refer to `user_project_example <https://github.com/efabless/caravel_user_project/blob/dv-documentation-update/docs/source/index.rst#running-openlane>`_ + For an example of hardening a project please refer to `user_project_example <https://github.com/efabless/caravel_user_project/blob/main/docs/source/index.rst#hardening-the-user-project-using-openlane>`_ #. Integrate modules into the user_project_wrapper