workflow
diff --git a/.github/workflows/install-glofo.yaml b/.github/workflows/install-glofo.yaml new file mode 100644 index 0000000..b7f9abd --- /dev/null +++ b/.github/workflows/install-glofo.yaml
@@ -0,0 +1,62 @@ +name: project0-gf180 +# either manually started, or on a schedule +on: [ push, workflow_dispatch ] +jobs: + + install: + env: + OPENLANE_ROOT: /home/runner/openlane + PDK_ROOT: /home/runner/pdk + PDK: gf180mcuC + + # ubuntu + runs-on: ubuntu-latest + steps: + + # checkout the repo to get the scripts + - uses: actions/checkout@v2 + + # build the user project and wrapper + - name: pdk & openlane + run: | + cd $HOME + git clone https://github.com/efabless/caravel_user_project.git -b gfmpw-0b + cd caravel_user_project/ + make setup + + - name: user project example GDS + run: | + cd $HOME/caravel_user_project + make wrapped_vga_clock + + - name: user project wrapper GDS + run: | + cd $HOME/caravel_user_project + make user_project_wrapper + +# - name: simulation +# run: | +# cd $HOME/caravel_user_project +# make verify-io_ports-rtl + + - name: precheck + run: | + cd $HOME/caravel_user_project + rm README.md + touch README.md + make precheck + make run-precheck + + + # archive the gds and final report for the user project wrapper + - name: Archive Wrapper GDS + uses: actions/upload-artifact@v2 + with: + name: Wrapper GDS + path: /home/runner/caravel_user_project/gds/user_project_wrapper.gds + + - name: Archive Wrapper Signoff + uses: actions/upload-artifact@v2 + with: + name: Wrapper Report + path: /home/runner/caravel_user_project/openlane/user_project_wrapper/runs/user_project_wrapper/reports/final_summary_report.csv
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml deleted file mode 100644 index 0fb3ab6..0000000 --- a/.github/workflows/user_project_ci.yml +++ /dev/null
@@ -1,223 +0,0 @@ -name: CI - -on: - # Runs on Every Push - push: - # Runs on Pull Requests - pull_request: - workflow_dispatch: - -jobs: - pdk: - 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 OPENLANE ROOT - run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV - - - 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: Tarball PDK - run: | - tar -cf /tmp/pdk.tar -C $PDK_ROOT . - - - name: Upload PDK Tarball - uses: actions/upload-artifact@v2 - with: - name: pdk-tarball - path: /tmp/pdk.tar - - user_project_flow_sky130A: - 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 PATH - run: echo "PDKPATH=/home/runner/work/pdk/sky130A" >> $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 - - - 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 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 - - git clone --depth=1 -b mpw-7d 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/* - - - 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 - - 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 PATH - run: echo "PDKPATH=/home/runner/work/pdk/sky130B" >> $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 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-7d 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/* - - - 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