Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup update #348

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
204 changes: 47 additions & 157 deletions .github/workflows/user_project_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
workflow_dispatch:

jobs:
download_caravel:
download_deps:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Expand All @@ -33,95 +33,71 @@ jobs:
run: |
sudo mkdir -p ${{ env.PDK_ROOT }}
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
make install
make setup
cd ${{ env.MCW_ROOT }}
rm -rf gds maglef openlane spi LICENSE manifest docs litex lvs .git
cd ${{ env.CARAVEL_ROOT }}
rm -rf gds maglef openlane spi LICENSE manifest .git

- name: Tarball Caravel
run: |
tar -cf /tmp/caravel.tar -C $CARAVEL_ROOT .
tar -cf /tmp/caravel.tar -C ${{ env.CARAVEL_ROOT }} .

- name: Upload Caravel Tarball
uses: actions/upload-artifact@v2
with:
name: caravel-tarball
path: /tmp/caravel.tar

download_deps:
runs-on: ubuntu-latest
strategy:
matrix:
targets: ["pdk-with-volare", "install_mcw", "openlane", "setup-timing-scripts", "precheck"]
needs: [download_caravel]
steps:
- uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Tarball mgmt_core_wrapper
run: |
tar -cf /tmp/mgmt_core_wrapper.tar -C ${{ env.MCW_ROOT }} .

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Upload mgmt_core_wrapper Tarball
uses: actions/upload-artifact@v2
with:
name: mgmt_core_wrapper-tarball
path: /tmp/mgmt_core_wrapper.tar

- name: Setup Environment Variables
- name: Tarball openlane
run: |
echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV
echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV
echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV
echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV
echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV
echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV
echo "MPW_TAG=main" >> $GITHUB_ENV

- name: Get dependencies name
run: |
if [[ "${{ matrix.targets }}" == "install_mcw" ]]; then
echo "dep_name=mgmt_core_wrapper" >> $GITHUB_ENV
echo "dep_root=${{ env.MCW_ROOT }}" >> $GITHUB_ENV
elif [[ "${{ matrix.targets }}" == "openlane" ]]; then
echo "dep_name=openlane" >> $GITHUB_ENV
echo "dep_root=${{ env.OPENLANE_ROOT }}" >> $GITHUB_ENV
elif [[ "${{ matrix.targets }}" == "pdk-with-volare" ]]; then
echo "dep_name=pdk" >> $GITHUB_ENV
echo "dep_root=${{ env.PDK_ROOT }}" >> $GITHUB_ENV
elif [[ "${{ matrix.targets }}" == "setup-timing-scripts" ]]; then
echo "dep_name=timing-scripts" >> $GITHUB_ENV
echo "dep_root=${{ env.TIMING_ROOT }}" >> $GITHUB_ENV
elif [[ "${{ matrix.targets }}" == "precheck" ]]; then
echo "dep_name=precheck" >> $GITHUB_ENV
echo "dep_root=${{ env.PRECHECK_ROOT }}" >> $GITHUB_ENV
fi
tar -cf /tmp/openlane.tar -C ${{ env.OPENLANE_ROOT }} .

- name: Download caravel Tarball
uses: actions/download-artifact@v2
- name: Upload openlane Tarball
uses: actions/upload-artifact@v2
with:
name: caravel-tarball
path: /tmp
name: openlane-tarball
path: /tmp/openlane.tar

- name: Unpack caravel Tarball
- name: Tarball pdk
run: |
sudo mkdir -p ${{ env.CARAVEL_ROOT }}
sudo chown -R $USER:$USER ${{ env.CARAVEL_ROOT }}
tar -xf /tmp/caravel.tar -C $CARAVEL_ROOT .
tar -cf /tmp/pdk.tar -C ${{ env.PDK_ROOT }} .

- name: Install dependencies
- name: Upload pdk Tarball
uses: actions/upload-artifact@v2
with:
name: pdk-tarball
path: /tmp/pdk.tar

- name: Tarball timing_scripts
run: |
sudo mkdir -p ${{ env.PDK_ROOT }}
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
make ${{ matrix.targets }}
if [[ "${{ env.dep_name }}" == "mgmt_core_wrapper" ]]; then
cd ${{ env.dep_root }}
rm -rf gds maglef openlane spi LICENSE manifest docs litex lvs .git
fi
tar -cf /tmp/timing-scripts.tar -C ${{ env.TIMING_ROOT }} .

- name: Tarball Dependencies
- name: Upload timing_scripts Tarball
uses: actions/upload-artifact@v2
with:
name: timing-scripts-tarball
path: /tmp/timing-scripts.tar

- name: Tarball precheck
run: |
tar -cf /tmp/${{ env.dep_name }}.tar -C ${{ env.dep_root }} .
tar -cf /tmp/precheck.tar -C ${{ env.PRECHECK_ROOT }} .

- name: Upload Dependencies Tarball
- name: Upload precheck Tarball
uses: actions/upload-artifact@v2
with:
name: ${{ env.dep_name }}-tarball
path: /tmp/${{ env.dep_name }}.tar
name: precheck-tarball
path: /tmp/precheck.tar

hardening:
timeout-minutes: 720
Expand Down Expand Up @@ -177,10 +153,11 @@ jobs:

- name: Harden using Openlane
run: |
curl https://raw.githubusercontent.com/efabless/central_CI/main/tools.json > tool_versions.json
python3 $GITHUB_WORKSPACE/.github/scripts/get_designs.py --design $GITHUB_WORKSPACE
for word in $(cat harden_sequence.txt); do
echo "CURRENT_DESIGN=${word}" >> $GITHUB_ENV
make $word
DISABLE_VERSION_CHECK=1 make $word
done
rm -rf openlane/user_proj_example/runs openlane/user_project_wrapper/runs pdk openlane_src caravel mgmt_core_wrapper timing-scripts mpw_precheck

Expand Down Expand Up @@ -272,7 +249,7 @@ jobs:

- name: install cocotb
run: |
make setup-cocotb
DISABLE_VERSION_CHECK=1 make setup-cocotb

- name: run RTL verification
run: |
Expand Down Expand Up @@ -449,12 +426,13 @@ jobs:

- name: Run STA
run: |
curl https://raw.githubusercontent.com/efabless/central_CI/main/tools.json > tool_versions.json
export CUP_ROOT=$GITHUB_WORKSPACE
export PROJECT_ROOT=$GITHUB_WORKSPACE
cd $CUP_ROOT
make extract-parasitics
make create-spef-mapping
make caravel-sta
DISABLE_VERSION_CHECK=1 make extract-parasitics
DISABLE_VERSION_CHECK=1 make create-spef-mapping
DISABLE_VERSION_CHECK=1 make caravel-sta
tar -cf /tmp/timing.tar $CUP_ROOT/signoff/caravel/openlane-signoff/timing
find $CUP_ROOT/signoff/caravel/openlane-signoff/timing/*/ -name "summary.log" | head -n1 \
| xargs head -n5 | tail -n1 > $CUP_ROOT/signoff/caravel/openlane-signoff/timing/all-summary.rpt
Expand All @@ -469,91 +447,3 @@ jobs:
echo "STA run passed"
exit 0
fi

# GL-verification:
# timeout-minutes: 720
# runs-on: ubuntu-latest
# strategy:
# matrix:
# pdk: ["sky130A", "sky130B"]
# needs: [download_deps]
# 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 ENVIRONMENT VARIABLES
# run: |
# echo "PDK=${{ matrix.pdk }}" >> $GITHUB_ENV
# echo "PDKPATH=$GITHUB_WORKSPACE/pdk/${{ matrix.pdk }}" >> $GITHUB_ENV
# echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV
# echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV
# echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV
# echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV
# echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV
# echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV
# echo "MPW_TAG=main" >> $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: Download caravel Tarball
# uses: actions/download-artifact@v2
# with:
# name: caravel-tarball
# path: /tmp

# - name: Unpack caravel Tarball
# run: |
# sudo mkdir -p ${{ env.CARAVEL_ROOT }}
# sudo chown -R $USER:$USER ${{ env.CARAVEL_ROOT }}
# tar -xf /tmp/caravel.tar -C $CARAVEL_ROOT .

# - name: Download mgmt_core_wrapper Tarball
# uses: actions/download-artifact@v2
# with:
# name: mgmt_core_wrapper-tarball
# path: /tmp

# - name: Unpack mgmt_core_wrapper Tarball
# run: |
# sudo mkdir -p ${{ env.MCW_ROOT }}
# sudo chown -R $USER:$USER ${{ env.MCW_ROOT }}
# tar -xf /tmp/mgmt_core_wrapper.tar -C $MCW_ROOT .

# # - name: Download Design Tarball
# # uses: actions/download-artifact@v2
# # with:
# # name: design-tarball
# # path: /tmp

# # - name: Unpack Design Tarball
# # run: |
# # sudo mkdir -p $GITHUB_WORKSPACE
# # sudo chown -R $USER:$USER $GITHUB_WORKSPACE
# # tar -xf /tmp/design.tar -C $GITHUB_WORKSPACE .

# - name: install cocotb
# run: |
# make setup-cocotb

# - name: run RTL verification
# run: |
# cd $GITHUB_WORKSPACE/verilog/dv/cocotb && $GITHUB_WORKSPACE/venv-cocotb/bin/caravel_cocotb -tl user_proj_tests/user_proj_tests_gl.yaml -verbosity debug --CI -tag gl_verification
# cnt=$(grep -c "failed" "$GITHUB_WORKSPACE/verilog/dv/cocotb/sim/gl_verification/runs.log")
# if ! [[ $cnt ]]; then cnt=0; fi
# if [[ $cnt -eq 1 ]]; then exit 0; fi
# exit 2
Loading
Loading