From 34b6b5cad9ec89062b4647df8da18a0b3ffffbe0 Mon Sep 17 00:00:00 2001 From: Jeff DiCorpo <42048757+jeffdi@users.noreply.github.com> Date: Wed, 28 Sep 2022 13:05:25 -0700 Subject: [PATCH 1/3] Revert "added PDK variable" --- .github/workflows/user_project_ci.yml | 47 +------------------ Makefile | 7 ++- mag/example_por.mag | 2 +- mag/sky130_fd_pr__cap_mim_m3_1_WRT4AW.mag | 2 +- mag/sky130_fd_pr__cap_mim_m3_2_W5U4AW.mag | 2 +- mag/sky130_fd_pr__nfet_g5v0d10v5_PKVMTM.mag | 2 +- mag/sky130_fd_pr__nfet_g5v0d10v5_TGFUGS.mag | 2 +- mag/sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC.mag | 2 +- mag/sky130_fd_pr__pfet_g5v0d10v5_3YBPVB.mag | 2 +- mag/sky130_fd_pr__pfet_g5v0d10v5_YEUEBV.mag | 2 +- mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPBG.mag | 2 +- mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPXE.mag | 2 +- mag/sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ.mag | 2 +- ...sky130_fd_pr__res_xhigh_po_0p69_S5N9F3.mag | 2 +- mag/user_analog_proj_example.mag | 2 +- mag/user_analog_project_wrapper.mag | 2 +- mag/user_analog_project_wrapper_empty.mag | 2 +- netgen/run_lvs_por.sh | 2 +- netgen/run_lvs_wrapper_verilog.sh | 2 +- netgen/run_lvs_wrapper_xschem.sh | 2 +- verilog/dv/README.md | 6 +-- verilog/dv/mprj_por/Makefile | 8 ++-- 22 files changed, 28 insertions(+), 76 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 3317f6d5..f9fa46fd 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -8,7 +8,7 @@ on: workflow_dispatch: jobs: - mpw_precheck_sky130A: + mpw_precheck: timeout-minutes: 720 runs-on: ubuntu-latest steps: @@ -53,48 +53,3 @@ jobs: path: | /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/* - mpw_precheck_sky130B: - 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 Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Export PDK ROOT - run: | - echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV - - - name: Export PDKPATH - run: echo "PDKPATH=/home/runner/work/pdk/sky130B" >> $GITHUB_ENV - - - 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-7a 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_path ${{ env.PDKPATH }} --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: 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/* - diff --git a/Makefile b/Makefile index bc049d44..b5bfde42 100644 --- a/Makefile +++ b/Makefile @@ -18,13 +18,12 @@ CARAVEL_ROOT?=$(PWD)/caravel PRECHECK_ROOT?=${HOME}/mpw_precheck SIM ?= RTL -export OPEN_PDKS_COMMIT?=41c0908b47130d5675ff8484255b43f66463a7d6 -export PDK?=sky130B -export PDKPATH?=$(PDK_ROOT)/$(PDK) +export OPEN_PDKS_COMMIT?=7519dfb04400f224f140749cda44ee7de6f5e095 +export PDKPATH?=$(PDK_ROOT)/sky130A # Install lite version of caravel, (1): caravel-lite, (0): caravel CARAVEL_LITE?=1 -MPW_TAG ?= mpw-7a +MPW_TAG ?= mpw-6c ifeq ($(CARAVEL_LITE),1) CARAVEL_NAME := caravel-lite diff --git a/mag/example_por.mag b/mag/example_por.mag index 1b8c9bac..76d1d787 100644 --- a/mag/example_por.mag +++ b/mag/example_por.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1620310959 << nwell >> diff --git a/mag/sky130_fd_pr__cap_mim_m3_1_WRT4AW.mag b/mag/sky130_fd_pr__cap_mim_m3_1_WRT4AW.mag index f3164a46..c4fedfdc 100644 --- a/mag/sky130_fd_pr__cap_mim_m3_1_WRT4AW.mag +++ b/mag/sky130_fd_pr__cap_mim_m3_1_WRT4AW.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606502073 << metal3 >> diff --git a/mag/sky130_fd_pr__cap_mim_m3_2_W5U4AW.mag b/mag/sky130_fd_pr__cap_mim_m3_2_W5U4AW.mag index 88818f69..59928eb9 100644 --- a/mag/sky130_fd_pr__cap_mim_m3_2_W5U4AW.mag +++ b/mag/sky130_fd_pr__cap_mim_m3_2_W5U4AW.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606502073 << metal4 >> diff --git a/mag/sky130_fd_pr__nfet_g5v0d10v5_PKVMTM.mag b/mag/sky130_fd_pr__nfet_g5v0d10v5_PKVMTM.mag index 508a2da9..7be65d40 100644 --- a/mag/sky130_fd_pr__nfet_g5v0d10v5_PKVMTM.mag +++ b/mag/sky130_fd_pr__nfet_g5v0d10v5_PKVMTM.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A timestamp 1606063140 << pwell >> rect -154 -229 154 229 diff --git a/mag/sky130_fd_pr__nfet_g5v0d10v5_TGFUGS.mag b/mag/sky130_fd_pr__nfet_g5v0d10v5_TGFUGS.mag index dbb8180a..0fc9bf58 100644 --- a/mag/sky130_fd_pr__nfet_g5v0d10v5_TGFUGS.mag +++ b/mag/sky130_fd_pr__nfet_g5v0d10v5_TGFUGS.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606063140 << pwell >> diff --git a/mag/sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC.mag b/mag/sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC.mag index 64df3887..eb312e63 100644 --- a/mag/sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC.mag +++ b/mag/sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A timestamp 1605994897 << pwell >> rect -154 -229 154 229 diff --git a/mag/sky130_fd_pr__pfet_g5v0d10v5_3YBPVB.mag b/mag/sky130_fd_pr__pfet_g5v0d10v5_3YBPVB.mag index cda05e3e..e0b02192 100644 --- a/mag/sky130_fd_pr__pfet_g5v0d10v5_3YBPVB.mag +++ b/mag/sky130_fd_pr__pfet_g5v0d10v5_3YBPVB.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606063140 << nwell >> diff --git a/mag/sky130_fd_pr__pfet_g5v0d10v5_YEUEBV.mag b/mag/sky130_fd_pr__pfet_g5v0d10v5_YEUEBV.mag index 07202c97..08a17b00 100644 --- a/mag/sky130_fd_pr__pfet_g5v0d10v5_YEUEBV.mag +++ b/mag/sky130_fd_pr__pfet_g5v0d10v5_YEUEBV.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606063140 << nwell >> diff --git a/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPBG.mag b/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPBG.mag index ceaf9693..eb421da8 100644 --- a/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPBG.mag +++ b/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPBG.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606063140 << error_p >> diff --git a/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPXE.mag b/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPXE.mag index 23ef8753..19fe8984 100644 --- a/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPXE.mag +++ b/mag/sky130_fd_pr__pfet_g5v0d10v5_YUHPXE.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606063140 << error_p >> diff --git a/mag/sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ.mag b/mag/sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ.mag index f094850b..b8eb64f1 100644 --- a/mag/sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ.mag +++ b/mag/sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606063140 << nwell >> diff --git a/mag/sky130_fd_pr__res_xhigh_po_0p69_S5N9F3.mag b/mag/sky130_fd_pr__res_xhigh_po_0p69_S5N9F3.mag index dbaae870..5bd3cec2 100644 --- a/mag/sky130_fd_pr__res_xhigh_po_0p69_S5N9F3.mag +++ b/mag/sky130_fd_pr__res_xhigh_po_0p69_S5N9F3.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1606074388 << pwell >> diff --git a/mag/user_analog_proj_example.mag b/mag/user_analog_proj_example.mag index fcac6f82..7d277924 100644 --- a/mag/user_analog_proj_example.mag +++ b/mag/user_analog_proj_example.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1639841760 << error_p >> diff --git a/mag/user_analog_project_wrapper.mag b/mag/user_analog_project_wrapper.mag index f1198f16..a4f3d928 100644 --- a/mag/user_analog_project_wrapper.mag +++ b/mag/user_analog_project_wrapper.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A magscale 1 2 timestamp 1639841760 << mvpsubdiff >> diff --git a/mag/user_analog_project_wrapper_empty.mag b/mag/user_analog_project_wrapper_empty.mag index 0dc5bd59..02dbe79c 100644 --- a/mag/user_analog_project_wrapper_empty.mag +++ b/mag/user_analog_project_wrapper_empty.mag @@ -1,5 +1,5 @@ magic -tech $PDK +tech sky130A timestamp 1632839657 << checkpaint >> rect -680 351370 292680 352680 diff --git a/netgen/run_lvs_por.sh b/netgen/run_lvs_por.sh index be822b51..1d1ad9f7 100755 --- a/netgen/run_lvs_por.sh +++ b/netgen/run_lvs_por.sh @@ -21,4 +21,4 @@ # includes used by the testbench simulation are picked up. Otherwise, the LVS # itself compares just the simple_por subcircuit from the testbench. #-------------------------------------------------------------------------------- -netgen -batch lvs "example_por.spice example_por" "../xschem/example_por_tb.spice example_por" $PDK_ROOT/$PDK/libs.tech/netgen/$PDK\_setup.tcl comp.out +netgen -batch lvs "example_por.spice example_por" "../xschem/example_por_tb.spice example_por" /usr/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out diff --git a/netgen/run_lvs_wrapper_verilog.sh b/netgen/run_lvs_wrapper_verilog.sh index 5c63236d..e54f6f60 100755 --- a/netgen/run_lvs_wrapper_verilog.sh +++ b/netgen/run_lvs_wrapper_verilog.sh @@ -19,4 +19,4 @@ # top-level verilog module. # #-------------------------------------------------------------------------------- -netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../verilog/rtl/user_analog_project_wrapper.v user_analog_project_wrapper" $PDK_ROOT/$PDK/libs.tech/netgen/$PDK\_setup.tcl comp.out +netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../verilog/rtl/user_analog_project_wrapper.v user_analog_project_wrapper" /usr/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out diff --git a/netgen/run_lvs_wrapper_xschem.sh b/netgen/run_lvs_wrapper_xschem.sh index 2fa97c03..2e5828c5 100755 --- a/netgen/run_lvs_wrapper_xschem.sh +++ b/netgen/run_lvs_wrapper_xschem.sh @@ -19,4 +19,4 @@ # top-level xschem subcircuit from the wrapper testbench. # #-------------------------------------------------------------------------------- -netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../xschem/analog_wrapper_tb.spice user_analog_project_wrapper" $PDK_ROOT/$PDK/libs.tech/netgen/$PDK\_setup.tcl comp.out +netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../xschem/analog_wrapper_tb.spice user_analog_project_wrapper" /usr/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out diff --git a/verilog/dv/README.md b/verilog/dv/README.md index f69808a6..6be9cd39 100644 --- a/verilog/dv/README.md +++ b/verilog/dv/README.md @@ -80,8 +80,7 @@ make -j$(nproc) First, you will need to export a number of environment variables: ```bash -export PDK=sky130B -export PDK_PATH=/$PDK +export PDK_PATH= export CARAVEL_ROOT= export UPRJ_ROOT= ``` @@ -106,8 +105,7 @@ You will need to export these environment variables: ```bash export GCC_PATH= -export PDK=sky130B -export PDK_PATH=/$PDK +export PDK_PATH= ``` Then, follow the instruction at [Both](#both) to run RTL/GL simulation. diff --git a/verilog/dv/mprj_por/Makefile b/verilog/dv/mprj_por/Makefile index 6d8e9c44..5d0825f7 100644 --- a/verilog/dv/mprj_por/Makefile +++ b/verilog/dv/mprj_por/Makefile @@ -15,7 +15,7 @@ # SPDX-License-Identifier: Apache-2.0 ## PDK -PDK_PATH = $(PDK_ROOT)/$(PDK) +PDK_PATH = $(PDK_ROOT)/sky130A ## Caravel Pointers CARAVEL_ROOT ?= ../../../caravel @@ -77,14 +77,14 @@ check-env: ifndef PDK_ROOT $(error PDK_ROOT is undefined, please export it before running make) endif -ifeq (,$(wildcard $(PDK_ROOT)/$(PDK))) - $(error $(PDK_ROOT)/$(PDK) not found, please install pdk before running make) +ifeq (,$(wildcard $(PDK_ROOT)/sky130A)) + $(error $(PDK_ROOT)/sky130A not found, please install pdk before running make) endif ifeq (,$(wildcard $(GCC_PATH)/$(GCC_PREFIX)-gcc )) $(error $(GCC_PATH)/$(GCC_PREFIX)-gcc is not found, please export GCC_PATH and GCC_PREFIX before running make) endif # check for efabless style installation -ifeq (,$(wildcard $(PDK_ROOT)/$(PDK)/libs.ref/*/verilog)) +ifeq (,$(wildcard $(PDK_ROOT)/sky130A/libs.ref/*/verilog)) SIM_DEFINES := ${SIM_DEFINES} -DEF_STYLE endif From a5837c3af374200941f5407b14292a8885df9bce Mon Sep 17 00:00:00 2001 From: Marwan Abbas Date: Fri, 7 Oct 2022 10:51:45 +0200 Subject: [PATCH 2/3] removed mag files from the PR --- .github/workflows/user_project_ci.yml | 47 ++++++++++++++++++++++++++- netgen/run_lvs_por.sh | 2 +- netgen/run_lvs_wrapper_verilog.sh | 2 +- netgen/run_lvs_wrapper_xschem.sh | 2 +- verilog/dv/README.md | 6 ++-- verilog/dv/mprj_por/Makefile | 8 ++--- 6 files changed, 57 insertions(+), 10 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index f9fa46fd..3317f6d5 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -8,7 +8,7 @@ on: workflow_dispatch: jobs: - mpw_precheck: + mpw_precheck_sky130A: timeout-minutes: 720 runs-on: ubuntu-latest steps: @@ -53,3 +53,48 @@ jobs: path: | /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/* + mpw_precheck_sky130B: + 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 Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Export PDK ROOT + run: | + echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV + + - name: Export PDKPATH + run: echo "PDKPATH=/home/runner/work/pdk/sky130B" >> $GITHUB_ENV + + - 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-7a 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_path ${{ env.PDKPATH }} --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: 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/* + diff --git a/netgen/run_lvs_por.sh b/netgen/run_lvs_por.sh index 1d1ad9f7..be822b51 100755 --- a/netgen/run_lvs_por.sh +++ b/netgen/run_lvs_por.sh @@ -21,4 +21,4 @@ # includes used by the testbench simulation are picked up. Otherwise, the LVS # itself compares just the simple_por subcircuit from the testbench. #-------------------------------------------------------------------------------- -netgen -batch lvs "example_por.spice example_por" "../xschem/example_por_tb.spice example_por" /usr/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out +netgen -batch lvs "example_por.spice example_por" "../xschem/example_por_tb.spice example_por" $PDK_ROOT/$PDK/libs.tech/netgen/$PDK\_setup.tcl comp.out diff --git a/netgen/run_lvs_wrapper_verilog.sh b/netgen/run_lvs_wrapper_verilog.sh index e54f6f60..5c63236d 100755 --- a/netgen/run_lvs_wrapper_verilog.sh +++ b/netgen/run_lvs_wrapper_verilog.sh @@ -19,4 +19,4 @@ # top-level verilog module. # #-------------------------------------------------------------------------------- -netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../verilog/rtl/user_analog_project_wrapper.v user_analog_project_wrapper" /usr/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out +netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../verilog/rtl/user_analog_project_wrapper.v user_analog_project_wrapper" $PDK_ROOT/$PDK/libs.tech/netgen/$PDK\_setup.tcl comp.out diff --git a/netgen/run_lvs_wrapper_xschem.sh b/netgen/run_lvs_wrapper_xschem.sh index 2e5828c5..2fa97c03 100755 --- a/netgen/run_lvs_wrapper_xschem.sh +++ b/netgen/run_lvs_wrapper_xschem.sh @@ -19,4 +19,4 @@ # top-level xschem subcircuit from the wrapper testbench. # #-------------------------------------------------------------------------------- -netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../xschem/analog_wrapper_tb.spice user_analog_project_wrapper" /usr/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out +netgen -batch lvs "user_analog_project_wrapper.spice user_analog_project_wrapper" "../xschem/analog_wrapper_tb.spice user_analog_project_wrapper" $PDK_ROOT/$PDK/libs.tech/netgen/$PDK\_setup.tcl comp.out diff --git a/verilog/dv/README.md b/verilog/dv/README.md index 6be9cd39..f69808a6 100644 --- a/verilog/dv/README.md +++ b/verilog/dv/README.md @@ -80,7 +80,8 @@ make -j$(nproc) First, you will need to export a number of environment variables: ```bash -export PDK_PATH= +export PDK=sky130B +export PDK_PATH=/$PDK export CARAVEL_ROOT= export UPRJ_ROOT= ``` @@ -105,7 +106,8 @@ You will need to export these environment variables: ```bash export GCC_PATH= -export PDK_PATH= +export PDK=sky130B +export PDK_PATH=/$PDK ``` Then, follow the instruction at [Both](#both) to run RTL/GL simulation. diff --git a/verilog/dv/mprj_por/Makefile b/verilog/dv/mprj_por/Makefile index 5d0825f7..6d8e9c44 100644 --- a/verilog/dv/mprj_por/Makefile +++ b/verilog/dv/mprj_por/Makefile @@ -15,7 +15,7 @@ # SPDX-License-Identifier: Apache-2.0 ## PDK -PDK_PATH = $(PDK_ROOT)/sky130A +PDK_PATH = $(PDK_ROOT)/$(PDK) ## Caravel Pointers CARAVEL_ROOT ?= ../../../caravel @@ -77,14 +77,14 @@ check-env: ifndef PDK_ROOT $(error PDK_ROOT is undefined, please export it before running make) endif -ifeq (,$(wildcard $(PDK_ROOT)/sky130A)) - $(error $(PDK_ROOT)/sky130A not found, please install pdk before running make) +ifeq (,$(wildcard $(PDK_ROOT)/$(PDK))) + $(error $(PDK_ROOT)/$(PDK) not found, please install pdk before running make) endif ifeq (,$(wildcard $(GCC_PATH)/$(GCC_PREFIX)-gcc )) $(error $(GCC_PATH)/$(GCC_PREFIX)-gcc is not found, please export GCC_PATH and GCC_PREFIX before running make) endif # check for efabless style installation -ifeq (,$(wildcard $(PDK_ROOT)/sky130A/libs.ref/*/verilog)) +ifeq (,$(wildcard $(PDK_ROOT)/$(PDK)/libs.ref/*/verilog)) SIM_DEFINES := ${SIM_DEFINES} -DEF_STYLE endif From 58c897294f40dee229475b82785c7113857979bf Mon Sep 17 00:00:00 2001 From: Marwan Abbas Date: Fri, 7 Oct 2022 10:53:29 +0200 Subject: [PATCH 3/3] checked out Makefile --- Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index b5bfde42..bc049d44 100644 --- a/Makefile +++ b/Makefile @@ -18,12 +18,13 @@ CARAVEL_ROOT?=$(PWD)/caravel PRECHECK_ROOT?=${HOME}/mpw_precheck SIM ?= RTL -export OPEN_PDKS_COMMIT?=7519dfb04400f224f140749cda44ee7de6f5e095 -export PDKPATH?=$(PDK_ROOT)/sky130A +export OPEN_PDKS_COMMIT?=41c0908b47130d5675ff8484255b43f66463a7d6 +export PDK?=sky130B +export PDKPATH?=$(PDK_ROOT)/$(PDK) # Install lite version of caravel, (1): caravel-lite, (0): caravel CARAVEL_LITE?=1 -MPW_TAG ?= mpw-6c +MPW_TAG ?= mpw-7a ifeq ($(CARAVEL_LITE),1) CARAVEL_NAME := caravel-lite