replaced CI
diff --git a/.github/workflows/multi_tool.yaml b/.github/workflows/multi_tool.yaml new file mode 100644 index 0000000..42b2b2f --- /dev/null +++ b/.github/workflows/multi_tool.yaml
@@ -0,0 +1,119 @@ +name: multi_tool +# either manually started, or on a schedule +on: [ push, workflow_dispatch ] +jobs: + multi_tool: + env: + OPENLANE_ROOT: /home/runner/openlane + PDK_ROOT: /home/runner/pdk + PDK: sky130A + # ubuntu + runs-on: ubuntu-latest + steps: + # need the repo checked out + - name: checkout repo + uses: actions/checkout@v2 + + # build pdk + - name: pdk & openlane & precheck + run: | + make setup + make precheck + + - name: multi tools + run: | + cd $HOME + git clone https://github.com/mattvenn/multi_project_tools.git + + # need python + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: '3.7.7' + cache: 'pip' + - run: pip install -r $HOME/multi_project_tools/requirements.txt + + # install riscv gcc + - name: riscv gcc + run: | + cd $HOME + wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14.tar.gz + tar -xzf riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14.tar.gz + + # pwd + - name: pwd + run: | + pwd # /home/runner/work/zero_to_asic_mpw6/zero_to_asic_mpw6 + + # remove existing compressed gds + - name: remove compressed gds + run: | + rm -f gds/*gz + + # install oss fpga tools + - name: install oss-cad-suite + uses: YosysHQ/setup-oss-cad-suite@v1 + with: + python-override: true # don't want to use that python + - run: | + yosys --version + iverilog -V + + # fetch the repos + - name: fetch all + run: python $HOME/multi_project_tools/multi_tool.py --clone-repos --clone-shared-repos --openram + + # install projects + - name: install project + run: python $HOME/multi_project_tools/multi_tool.py --create-openlane-config --copy-project --openram --copy-gds --force + + # tests + - name: test gds + run: python $HOME/multi_project_tools/multi_tool.py --test-gds + + - name: test prove tristate + run: python $HOME/multi_project_tools/multi_tool.py --prove-tristate --openram + + - name: test ports + run: python $HOME/multi_project_tools/multi_tool.py --test-ports + + - name: test module + run: python $HOME/multi_project_tools/multi_tool.py --test-module + + - name: prove wrapper + run: python $HOME/multi_project_tools/multi_tool.py --prove-wrapper + +# needs netgen +# - name: lvs +# run: python ./multi_tool.py --test-lvs --local github_local.yaml + +# needs local directory from multi_project +# - name: tristate-z +# run: python $HOME/multi_project_tools/multi_tool.py --test-tristate-z + + - name: docs + run: python $HOME/multi_project_tools/multi_tool.py --generate-doc --openram --force + + # run the caravel test + - name: caravel test + run: python $HOME/multi_project_tools/multi_tool.py --test-caravel + + # build gds + - name: user project wrapper GDS + run: make user_project_wrapper + + - name: precheck + run: 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: gds/user_project_wrapper.gds + + - name: Archive Wrapper Signoff + uses: actions/upload-artifact@v2 + with: + name: Wrapper Report + path: 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 fd56dd9..0000000 --- a/.github/workflows/user_project_ci.yml +++ /dev/null
@@ -1,224 +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 - - - mpw_precheck: - 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 PDKPATH - run: echo "PDKPATH=/home/runner/work/pdk/sky130A" >> $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: 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 - - 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/* - - 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 - 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 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 - 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