Skip to content

Commit f5ebf9f

Browse files
optimize memory and performance of CI
1 parent a2fa088 commit f5ebf9f

File tree

2 files changed

+107
-10
lines changed

2 files changed

+107
-10
lines changed

.github/workflows/user_project_ci.yml

Lines changed: 98 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,67 @@ jobs:
4343
name: pdk-tarball
4444
path: /tmp/pdk.tar
4545

46+
- name: Tarball OpenLane
47+
run: |
48+
tar -cf /tmp/openlane.tar -C $OPENLANE_ROOT .
49+
50+
- name: Upload OpenLane Tarball
51+
uses: actions/upload-artifact@v2
52+
with:
53+
name: openlane-tarball
54+
path: /tmp/openlane.tar
55+
56+
dependencies:
57+
timeout-minutes: 720
58+
runs-on: ubuntu-latest
59+
steps:
60+
- uses: actions/checkout@v2
61+
62+
- name: Set up QEMU
63+
uses: docker/setup-qemu-action@v1
64+
65+
- name: Set up Docker Buildx
66+
uses: docker/setup-buildx-action@v1
67+
68+
- name: Export env variables
69+
run: |
70+
echo "CARAVEL_ROOT=/home/runner/work/caravel_user_project/caravel" >> $GITHUB_ENV
71+
echo "MCW_ROOT=/home/runner/work/caravel_user_project/mgmt_core_wrapper" >> $GITHUB_ENV
72+
73+
- name: Install dependencies
74+
run: |
75+
make install
76+
make install_mcw
77+
make install-cocotb
78+
make simenv
79+
80+
- name: Tarball caravel
81+
run: |
82+
tar -cf /tmp/caravel.tar -C $CARAVEL_ROOT .
83+
84+
- name: Upload caravel Tarball
85+
uses: actions/upload-artifact@v2
86+
with:
87+
name: caravel-tarball
88+
path: /tmp/caravel.tar
89+
90+
- name: Tarball mgmt_core_wrapper
91+
run: |
92+
tar -cf /tmp/mgmt_core_wrapper.tar -C $MCW_ROOT .
93+
94+
- name: Upload mgmt_core_wrapper Tarball
95+
uses: actions/upload-artifact@v2
96+
with:
97+
name: mgmt_core_wrapper-tarball
98+
path: /tmp/mgmt_core_wrapper.tar
99+
46100
user_project_flow:
47101
timeout-minutes: 720
48102
runs-on: ubuntu-latest
49103
strategy:
50104
matrix:
51105
pdk: ["sky130A", "sky130B"]
52-
needs: [pdk]
106+
needs: [pdk, dependencies]
53107
steps:
54108
- uses: actions/checkout@v2
55109

@@ -68,6 +122,11 @@ jobs:
68122
- name: Export OPENLANE ROOT
69123
run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV
70124

125+
- name: Export env variables
126+
run: |
127+
echo "CARAVEL_ROOT=/home/runner/work/caravel_user_project/caravel" >> $GITHUB_ENV
128+
echo "MCW_ROOT=/home/runner/work/caravel_user_project/mgmt_core_wrapper" >> $GITHUB_ENV
129+
71130
- name: Download PDK Tarball
72131
uses: actions/download-artifact@v2
73132
with:
@@ -80,12 +139,41 @@ jobs:
80139
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
81140
tar -xf /tmp/pdk.tar -C $PDK_ROOT .
82141
83-
- name: Install dependencies
142+
- name: Download OpenLane Tarball
143+
uses: actions/download-artifact@v2
144+
with:
145+
name: openlane-tarball
146+
path: /tmp
147+
148+
- name: Unpack OpenLane Tarball
84149
run: |
85-
make install
86-
make install_mcw
87-
make openlane
88-
make setup-cocotb
150+
sudo mkdir -p ${{ env.OPENLANE_ROOT }}
151+
sudo chown -R $USER:$USER ${{ env.OPENLANE_ROOT }}
152+
tar -xf /tmp/openlane.tar -C $OPENLANE_ROOT .
153+
154+
- name: Download caravel Tarball
155+
uses: actions/download-artifact@v2
156+
with:
157+
name: caravel-tarball
158+
path: /tmp
159+
160+
- name: Unpack caravel Tarball
161+
run: |
162+
sudo mkdir -p ${{ env.CARAVEL_ROOT }}
163+
sudo chown -R $USER:$USER ${{ env.CARAVEL_ROOT }}
164+
tar -xf /tmp/caravel.tar -C $CARAVEL_ROOT .
165+
166+
- name: Download mgmt_core_wrapper Tarball
167+
uses: actions/download-artifact@v2
168+
with:
169+
name: mgmt_core_wrapper-tarball
170+
path: /tmp
171+
172+
- name: Unpack mgmt_core_wrapper Tarball
173+
run: |
174+
sudo mkdir -p ${{ env.MCW_ROOT }}
175+
sudo chown -R $USER:$USER ${{ env.MCW_ROOT }}
176+
tar -xf /tmp/mgmt_core_wrapper.tar -C $MCW_ROOT .
89177
90178
- name: Harden using Openlane
91179
run: |
@@ -117,6 +205,10 @@ jobs:
117205
path: |
118206
/home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/*
119207
208+
- name: setup cocotb environment
209+
run: |
210+
make setup-cocotb-env
211+
120212
- name: Run DV RTL tests
121213
run: |
122214
make cocotb-verify-all-rtl

Makefile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ install:
105105
.PHONY: simenv
106106
simenv:
107107
docker pull efabless/dv:latest
108+
docker pull efabless/dv:cocotb
108109

109110
.PHONY: setup
110111
setup: check_dependencies install check-env install_mcw openlane pdk-with-volare setup-timing-scripts setup-cocotb
@@ -321,12 +322,16 @@ setup-timing-scripts: $(TIMING_ROOT)
321322
@( cd $(TIMING_ROOT) && git pull )
322323
@#( cd $(TIMING_ROOT) && git fetch && git checkout $(MPW_TAG); )
323324

324-
.PHONY: setup-cocotb
325-
setup-cocotb:
325+
.PHONY: install-cocotb
326+
install-cocotb:
326327
@pip install caravel-cocotb==1.0.0
328+
329+
.PHONY: setup-cocotb-env
330+
setup-cocotb-env:
327331
@(python3 $(PROJECT_ROOT)/verilog/dv/setup-cocotb.py $(CARAVEL_ROOT) $(MCW_ROOT) $(PDK_ROOT) $(PDK) $(PROJECT_ROOT))
328-
@docker pull efabless/dv:latest
329-
@docker pull efabless/dv:cocotb
332+
333+
.PHONY: setup-cocotb
334+
setup-cocotb: install-cocotb setup-cocotb-env simenv
330335

331336
.PHONY: cocotb-verify-all-rtl
332337
cocotb-verify-all-rtl:

0 commit comments

Comments
 (0)