merged main
diff --git a/.github/scripts/build/run-set-id.sh b/.github/scripts/build/run-set-id.sh index 9cb87f8..1042716 100644 --- a/.github/scripts/build/run-set-id.sh +++ b/.github/scripts/build/run-set-id.sh
@@ -16,23 +16,23 @@ export UPRJ_ROOT=$(pwd) cd .. -export PDK_ROOT=$(pwd)/pdks export CARAVEL_ROOT=$(pwd)/caravel export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG +export PDK_ROOT=$(pwd)/pdks export USER_ID=00000001 -cd $UPRJ_ROOT +cd $UPRJ_ROOT || exit # Install full version of caravel -git clone https://github.com/efabless/caravel --depth 1 $CARAVEL_ROOT +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; +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 index d084c00..01ddec1 100644 --- a/.github/scripts/build/run-ship.sh +++ b/.github/scripts/build/run-ship.sh
@@ -16,14 +16,14 @@ export UPRJ_ROOT=$(pwd) cd .. -export PDK_ROOT=$(pwd)/pdks export CARAVEL_ROOT=$(pwd)/caravel export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG +export PDK_ROOT=$(pwd)/pdks -cd $UPRJ_ROOT +cd $UPRJ_ROOT || exit # Install full version of caravel -git clone https://github.com/efabless/caravel --depth 1 $CARAVEL_ROOT +git clone --depth=1 https://github.com/efabless/caravel $CARAVEL_ROOT make install_mcw @@ -32,7 +32,7 @@ SHIP_FILE=$UPRJ_ROOT/gds/caravel.gds if test -f "$SHIP_FILE"; then - exit 0 + exit 0 else - exit 2 + exit 2 fi
diff --git a/.github/scripts/build/run-xor.sh b/.github/scripts/build/run-xor.sh deleted file mode 100644 index 53ccb59..0000000 --- a/.github/scripts/build/run-xor.sh +++ /dev/null
@@ -1,36 +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) -export CARAVEL_ROOT=$(pwd)/caravel -cd .. -export PDK_ROOT=$(pwd)/pdks -export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG - -cd $UPRJ_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 $UPRJ_ROOT; export USER_ID=$USER_ID; make xor-wrapper | tee $LOG_FILE;" - -cnt=$(grep -oP '(?<=Total XOR differences = )[0-9]+' $LOG_FILE) - -echo "Total XOR differences = $cnt" - -if [[ $cnt -ne 0 ]]; then - exit 2; -fi - -exit 0
diff --git a/.github/scripts/build_pdk.sh b/.github/scripts/build_pdk.sh new file mode 100644 index 0000000..8317b6a --- /dev/null +++ b/.github/scripts/build_pdk.sh
@@ -0,0 +1,25 @@ +#!/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/pdkBuild.sh b/.github/scripts/dv/pdkBuild.sh deleted file mode 100644 index 9f9ac93..0000000 --- a/.github/scripts/dv/pdkBuild.sh +++ /dev/null
@@ -1,59 +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 RUN_ROOT=$(pwd) - - -# By default skip timing since we don't need the libs in any of the CI tests -export SKIP_TIMING=${1:-1} -export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG -docker pull $IMAGE_NAME - -cd $RUN_ROOT/.. -export PDK_ROOT=$(pwd)/pdks -mkdir $PDK_ROOT -echo $PDK_ROOT -echo $RUN_ROOT -cd $RUN_ROOT -make skywater-pdk -make skywater-library -# The following section is for running on the CI. -# If you're running locally you should replace them with: `make skywater-library` -# This is because sometimes while setting up the conda env (skywater's make timing) it fails to fetch something -# Then it exits without retrying. So, here we're retrying, and if something goes wrong it will exit after 5 retries. -# Section Begin -if [ $SKIP_TIMING -eq 0 ]; then - cnt=0 - until make skywater-timing; do - cnt=$((cnt+1)) - if [ $cnt -eq 5 ]; then - exit 2 - fi - rm -rf $PDK_ROOT/skywater-pdk - make skywater-pdk - make skywater-library - done -fi -# Section End - -make open_pdks -docker run -v $RUN_ROOT:/openLANE_flow -v $PDK_ROOT:$PDK_ROOT -e PDK_ROOT=$PDK_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME bash -c "make build-pdk" - -rm -rf $PDK_ROOT/open_pdks -rm -rf $PDK_ROOT/skywater-pdk - -echo "done installing" -cd $RUN_ROOT -exit 0 \ No newline at end of file
diff --git a/.github/scripts/dv/run-dv-wrapper.sh b/.github/scripts/dv/run-dv-wrapper.sh index c03d8e9..c602fea 100755 --- a/.github/scripts/dv/run-dv-wrapper.sh +++ b/.github/scripts/dv/run-dv-wrapper.sh
@@ -24,54 +24,50 @@ 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 +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 +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 +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" +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!" + echo "DONE!" - VERDICT_FILE=$TARGET_PATH/verilog/dv/$id.out + 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 + 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" + echo "Verdict: $cnt" - if [[ $cnt -ne 1 ]]; then - exit 2; - fi + if [[ $cnt -ne 1 ]]; then + exit 2 + fi done -exit 0; +exit 0
diff --git a/.github/scripts/dv/run-dv.sh b/.github/scripts/dv/run-dv.sh index 53b7e96..99fcd74 100755 --- a/.github/scripts/dv/run-dv.sh +++ b/.github/scripts/dv/run-dv.sh
@@ -3,9 +3,9 @@ DV_TEST_ID=$3 SIM_MODE=$4 -cd $DV_PATH +cd $DV_PATH || exit -## get the name of all subdfolders under verilog/dv +## 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) @@ -13,10 +13,9 @@ 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 +if [ $DV_TEST_ID -ge $len ]; then + echo "Error: Invalid Test ID" + exit 1 fi ## get the name corresponding to the test ID @@ -27,14 +26,14 @@ export SIM=$SIM_MODE echo "Running $PATTERN $SIM.." logFile=$DV_PATH/$PATTERN.$SIM.dv.out -cd $PATTERN +cd $PATTERN || exit echo $(pwd) make 2>&1 | tee $logFile -grep "Monitor" $logFile >> $OUT_FILE +grep "Monitor" $logFile >>$OUT_FILE make clean echo "Execution Done on $PATTERN !" cat $OUT_FILE -exit 0 \ No newline at end of file +exit 0
diff --git a/.github/scripts/install_magic.sh b/.github/scripts/install_magic.sh new file mode 100644 index 0000000..ca91137 --- /dev/null +++ b/.github/scripts/install_magic.sh
@@ -0,0 +1,24 @@ +#!/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/precheck/precheckBuild.sh b/.github/scripts/precheck/precheckBuild.sh deleted file mode 100644 index 7754922..0000000 --- a/.github/scripts/precheck/precheckBuild.sh +++ /dev/null
@@ -1,36 +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 - -# By default build pdk since we don't need the other script for the main purpose -export SKIP_PDK_BUILD=${1:-0} - -export TARGET_PATH=$(pwd) -git clone https://github.com/efabless/mpw_precheck.git - -docker pull efabless/mpw_precheck:latest - - -if [ $SKIP_PDK_BUILD -eq 0 ]; then - cd $TARGET_PATH/.. - export PDK_ROOT=$(pwd)/precheck_pdks - mkdir $PDK_ROOT - cd $TARGET_PATH/mpw_precheck/dependencies - sh build-pdk.sh - cd $TARGET_DIR - -fi - -exit 0
diff --git a/.github/scripts/precheck/run-precheck-drc.sh b/.github/scripts/precheck/run-precheck-drc.sh deleted file mode 100644 index dd38dc0..0000000 --- a/.github/scripts/precheck/run-precheck-drc.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 TARGET_PATH=$(pwd) -export CARAVEL_ROOT=$(pwd)/caravel -cd .. -export PDK_ROOT=$(pwd)/precheck_pdks -export PRECHECK_ROOT=$TARGET_PATH/mpw_precheck/ -export OUTPUT_DIRECTORY=$TARGET_PATH/checks -cd $TARGET_PATH/mpw_precheck/ - -docker run -v $PRECHECK_ROOT:$PRECHECK_ROOT -v $TARGET_PATH:$TARGET_PATH -v $CARAVEL_ROOT:$CARAVEL_ROOT -v $PDK_ROOT:$PDK_ROOT -u $(id -u $USER):$(id -g $USER) efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py magic_drc klayout_offgrid klayout_feol klayout_zeroarea klayout_pin_label_purposes_overlapping_drawing --pdk_root $PDK_ROOT --input_directory $TARGET_PATH --caravel_root $CARAVEL_ROOT --output_directory $OUTPUT_DIRECTORY" -output=$OUTPUT_DIRECTORY/logs/precheck.log - -gzipped_file=$OUTPUT_DIRECTORY/logs/precheck.log.gz - -if [[ -f $gzipped_file ]]; then - gzip -d $gzipped_file -fi - -grep "Violation Message" $output - -cnt=$(grep -c "All Checks Passed" $output) -if ! [[ $cnt ]]; then cnt=0; fi -if [[ $cnt -eq 1 ]]; then exit 0; fi -exit 2 \ No newline at end of file
diff --git a/.github/scripts/precheck/run-precheck.sh b/.github/scripts/precheck/run-precheck.sh deleted file mode 100644 index 2d9eca4..0000000 --- a/.github/scripts/precheck/run-precheck.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 TARGET_PATH=$(pwd) -export CARAVEL_ROOT=$(pwd)/caravel -cd .. -export PDK_ROOT=$(pwd)/precheck_pdks -export PRECHECK_ROOT=$TARGET_PATH/mpw_precheck/ -export OUTPUT_DIRECTORY=$TARGET_PATH/checks -cd $TARGET_PATH/mpw_precheck/ - -docker run -v $PRECHECK_ROOT:$PRECHECK_ROOT -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -e GOLDEN_CARAVEL=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) efabless/mpw_precheck:latest bash -c " cd $PRECHECK_ROOT ; python3 mpw_precheck.py license yaml manifest makefile consistency xor --pdk_root $PDK_ROOT --input_directory $TARGET_PATH --output_directory $OUTPUT_DIRECTORY" -output=$OUTPUT_DIRECTORY/logs/precheck.log - -gzipped_file=$OUTPUT_DIRECTORY/logs/precheck.log.gz - -if [[ -f $gzipped_file ]]; then - gzip -d $gzipped_file -fi - -grep "Violation Message" $output - -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/scripts/run_precheck.sh b/.github/scripts/run_precheck.sh new file mode 100644 index 0000000..16091a6 --- /dev/null +++ b/.github/scripts/run_precheck.sh
@@ -0,0 +1,31 @@ +#!/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 index 3978d7f..d9cadb3 100644 --- a/.github/workflows/caravel_build.yml +++ b/.github/workflows/caravel_build.yml
@@ -1,73 +1,53 @@ -name: Caravel Build +# name: Caravel Build +# on: +# # Runs on Every Push +# push: +# # Runs on Pull Requests +# pull_request: +# workflow_dispatch: -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 -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 QEMU +# uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Install The PDK - run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh - env: - OPENLANE_TAG: 2021.12.17_05.07.41 +# - name: Set up Docker Buildx +# uses: docker/setup-buildx-action@v1 - - 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: Install Magic +# run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Install The PDK - run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh - env: - OPENLANE_TAG: 2021.09.16_03.28.21 +# - 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 +# - name: Run make ship +# run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-ship.sh +# env: +# OPENLANE_TAG: 2021.12.17_05.07.41 - xor_wrapper: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 +# set_user_id: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Install The PDK - run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh - env: - OPENLANE_TAG: 2021.09.16_03.28.21 +# - name: Set up QEMU +# uses: docker/setup-qemu-action@v1 - - name: Run XOR Check - run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-xor.sh - env: - OPENLANE_TAG: 2021.09.16_03.28.21 +# - 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 9196114..d966d14 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml
@@ -1,33 +1,14 @@ name: CI - on: - # Runs on Every Push - push: - # Runs on Pull Requests - pull_request: - workflow_dispatch: + # Runs on Every Push + push: + # Runs on Pull Requests + pull_request: + workflow_dispatch: jobs: precheck: - runs-on: ubuntu-latest - timeout-minutes: 720 - 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 The Precheck - run: sh ${GITHUB_WORKSPACE}/.github/scripts/precheck/precheckBuild.sh - - - name: Run The Precheck - run: bash ${GITHUB_WORKSPACE}/.github/scripts/precheck/run-precheck.sh - - precheck-drc: timeout-minutes: 720 runs-on: ubuntu-latest steps: @@ -39,54 +20,62 @@ - 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 Precheck - run: sh ${GITHUB_WORKSPACE}/.github/scripts/precheck/precheckBuild.sh + run: git clone --depth=1 https://github.com/efabless/mpw_precheck.git ${GITHUB_WORKSPACE}/mpw_precheck - name: Run The Precheck - run: bash ${GITHUB_WORKSPACE}/.github/scripts/precheck/run-precheck-drc.sh - - dv_rtl: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + run: bash ${GITHUB_WORKSPACE}/.github/scripts/run_precheck.sh - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Install The PDK - run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh - env: - OPENLANE_TAG: 2021.09.16_03.28.21 - - - 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,1,2,3,4 RTL + # dv_rtl: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 - dv_gl: - 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: Install The PDK - run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh - env: - OPENLANE_TAG: 2021.09.16_03.28.21 - - - 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,1,2,3,4 GL + # - 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,1,2,3,4 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,1,2,3,4 GL
diff --git a/Makefile b/Makefile index f1d618e..79515c7 100644 --- a/Makefile +++ b/Makefile
@@ -115,15 +115,15 @@ # Default installs to the user home directory, override by "export PRECHECK_ROOT=<precheck-installation-path>" .PHONY: precheck precheck: - @git clone --depth=1 --branch mpw-5 https://github.com/efabless/mpw_precheck.git $(PRECHECK_ROOT) + @git clone --depth=1 --branch mpw-5a https://github.com/efabless/mpw_precheck.git $(PRECHECK_ROOT) @docker pull efabless/mpw_precheck:latest .PHONY: run-precheck -run-precheck: check-precheck check-pdk check-caravel +run-precheck: check-pdk check-precheck $(eval INPUT_DIRECTORY := $(shell pwd)) cd $(PRECHECK_ROOT) && \ - docker run -e INPUT_DIRECTORY=$(INPUT_DIRECTORY) -e PDK_ROOT=$(PDK_ROOT) -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) -v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) -v $(PDK_ROOT):$(PDK_ROOT) \ - -u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --pdk_root $(PDK_ROOT) --input_directory $(INPUT_DIRECTORY)" + 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 $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --input_directory $(INPUT_DIRECTORY) --pdk_root $(PDK_ROOT)" # Clean .PHONY: clean
diff --git a/docs/source/roundtrip.rst b/docs/source/roundtrip.rst index 850f2fb..eaeb478 100644 --- a/docs/source/roundtrip.rst +++ b/docs/source/roundtrip.rst
@@ -57,14 +57,9 @@ # you can install full caravel (not recommended) use ``export CARAVEL_LITE=0`` make install - # The default for the management core is litex, to install the pico version use - export MCW=pico # To install the management core for simulation make install_mcw - # To clone the management core pico for simulation - git clone git@github.com:efabless/caravel_pico.git - # Install openlane for hardening your project # make sure to change <directory_name> with the directory you created in step 1 # in this case it is caravel_tutorial