@@ -31,20 +31,26 @@ SPLIT_FILES := $(shell find . -type f -name "*.$(ARCHIVE_EXT).00.split")
31
31
SPLIT_FILES_SOURCES := $(basename $(basename $(basename $(SPLIT_FILES ) ) ) )
32
32
33
33
# Needed to uncompress the existing archives
34
- ARCHIVES := $(shell find . -type f -not -path "./signoff/ * " -not -path "./mgmt_core_wrapper /signoff/* " -name "* .$(ARCHIVE_EXT ) ")
34
+ ARCHIVES := $(shell find . -type f -not -path "* /signoff/* " -name "* .$(ARCHIVE_EXT ) ")
35
35
ARCHIVE_SOURCES := $(basename $(ARCHIVES ) )
36
36
37
37
# Needed to compress and split files/archives that are too large
38
38
LARGE_FILES := $(shell find ./gds -type f -name "* .gds")
39
- LARGE_FILES += $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB ) M -not -path "./signoff/* " -not -path "./mgmt_core_wrapper/signoff/* " -not -path "./.git/* " -not -path "./* /.git/* " -not -path "./gds/* " -not -path "./tapeout/outputs/oas/* " -not -path "./openlane/* ")
39
+ LARGE_FILES += $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB ) M \
40
+ -not -path "* /signoff/* " \
41
+ -not -path "* /.git/* " \
42
+ -not -path "./gds/* " \
43
+ -not -path "./tapeout/outputs/oas/* " \
44
+ -not -path "* /openlane/* " \
45
+ -not -name "* .$(ARCHIVE_EXT ) ")
40
46
LARGE_FILES_GZ := $(addsuffix .$(ARCHIVE_EXT ) , $(LARGE_FILES ) )
41
47
LARGE_FILES_GZ_SPLIT := $(addsuffix .$(ARCHIVE_EXT ) .00.split, $(LARGE_FILES ) )
42
48
# consider splitting existing archives
43
49
LARGE_FILES_GZ_SPLIT += $(addsuffix .00.split, $(ARCHIVES ) )
44
50
45
51
MCW_ROOT? =$(PWD ) /mgmt_core_wrapper
46
52
MCW ?=LITEX_VEXRISCV
47
- MPW_TAG ?= mpw-9c
53
+ MPW_TAG ?= 2024.09.12-1
48
54
49
55
PYTHON_BIN ?= python3
50
56
@@ -56,12 +62,12 @@ MCW_LITE?=1
56
62
57
63
ifeq ($(MCW ) ,LITEX_VEXRISCV)
58
64
MCW_NAME := mcw-litex-vexriscv
59
- MCW_REPO : = https://github.com/efabless/caravel_mgmt_soc_litex
60
- MCW_TAG : = $(MPW_TAG)
65
+ MCW_REPO ? = https://github.com/efabless/caravel_mgmt_soc_litex
66
+ MCW_TAG ? = $(MPW_TAG)
61
67
else
62
68
MCW_NAME := mcw-pico
63
- MCW_REPO : = https://github.com/efabless/caravel_pico
64
- MCW_TAG : = $(MPW_TAG)
69
+ MCW_REPO ? = https://github.com/efabless/caravel_pico
70
+ MCW_TAG ? = $(MPW_TAG)
65
71
endif
66
72
67
73
# Install caravel as submodule, (1): submodule, (0): clone
@@ -92,7 +98,7 @@ SPECIAL_VOLTAGE_LIBRARY ?= sky130_fd_sc_hvl
92
98
IO_LIBRARY ?= sky130_fd_io
93
99
PRIMITIVES_LIBRARY ?= sky130_fd_pr
94
100
SKYWATER_COMMIT ?= f70d8ca46961ff92719d8870a18a076370b85f6c
95
- OPEN_PDKS_COMMIT ?= 0059588eebfc704681dc2368bd1d33d96281d10f
101
+ OPEN_PDKS_COMMIT ?= 12df12e2e74145e31c5a13de02f9a1e176b56e67
96
102
# = 1.0.303
97
103
PDK_MAGIC_COMMIT ?= 085131b090cb511d785baf52a10cf6df8a657d44
98
104
# = 8.3.294
@@ -194,6 +200,47 @@ __truck:
194
200
@cd $(CARAVEL_ROOT)/mag && PDKPATH=${PDK_ROOT}/$(PDK) MAGTYPE=mag magic -noc -dnull -rcfile ./.magicrc $(UPRJ_ROOT)/mag/mag2gds_caravan.tcl 2>&1 | tee $(UPRJ_ROOT)/signoff/build/make_truck.out
195
201
# ## @rm $(UPRJ_ROOT)/mag/mag2gds_caravan.tcl
196
202
203
+ .PHONY : openframe
204
+ openframe : check-env uncompress uncompress-caravel
205
+ ifeq ($(FOREGROUND ) ,1)
206
+ @echo "Running make openframe in the foreground..."
207
+ $(MAKE) -f $(CARAVEL_ROOT)/Makefile __openframe
208
+ @echo "Make openframe completed." 2>&1 | tee -a ./signoff/build/make_openframe.out
209
+ else
210
+ @echo "Running make openframe in the background..."
211
+ nohup $(MAKE) -f $(CARAVEL_ROOT)/Makefile __openframe >/dev/null 2>&1 &
212
+ tail -f signoff/build/make_openframe.out
213
+ @echo "Make openframe completed." 2>&1 | tee -a ./signoff/build/make_openframe.out
214
+ endif
215
+
216
+ __openframe :
217
+ @echo " ###############################################"
218
+ @echo " Generating Caravel GDS (sources are in the 'gds' directory)"
219
+ @sleep 1
220
+ # ### Runs from the CARAVEL_ROOT mag directory
221
+ @echo "\
222
+ drc off; \
223
+ crashbackups stop; \
224
+ addpath hexdigits; \
225
+ addpath $(UPRJ_ROOT)/mag; \
226
+ load openframe_project_wrapper; \
227
+ property LEFview true; \
228
+ property GDS_FILE $(UPRJ_ROOT)/gds/openframe_project_wrapper.gds; \
229
+ property GDS_START 0; \
230
+ load $(UPRJ_ROOT)/mag/user_id_programming; \
231
+ load $(UPRJ_ROOT)/mag/user_id_textblock; \
232
+ load $(CARAVEL_ROOT)/maglef/simple_por; \
233
+ load caravel_openframe -dereference; \
234
+ select top cell; \
235
+ expand; \
236
+ cif *hier write disable; \
237
+ cif *array write disable; \
238
+ gds write $(UPRJ_ROOT)/gds/caravel_openframe.gds; \
239
+ quit -noprompt;" > $(UPRJ_ROOT)/mag/mag2gds_caravel_openframe.tcl
240
+ # ## Runs from CARAVEL_ROOT
241
+ @mkdir -p ./signoff/build
242
+ @cd $(CARAVEL_ROOT)/mag && PDKPATH=${PDK_ROOT}/$(PDK) MAGTYPE=mag magic -noc -dnull -rcfile ${PDK_ROOT}/$(PDK)/libs.tech/magic/$(PDK).magicrc $(UPRJ_ROOT)/mag/mag2gds_caravel_openframe.tcl 2>&1 | tee $(UPRJ_ROOT)/signoff/build/make_openframe.out
243
+
197
244
.PHONY : clean
198
245
clean :
199
246
cd $(CARAVEL_ROOT ) /verilog/dv/caravel/mgmt_soc/ && \
@@ -1173,7 +1220,7 @@ update_caravel:
1173
1220
.PHONY : install_mcw
1174
1221
install_mcw :
1175
1222
if [ -d " $( MCW_ROOT) " ]; then \
1176
- echo " Deleting exisiting $( MCW_ROOT) " && \
1223
+ echo " Deleting existing $( MCW_ROOT) " && \
1177
1224
rm -rf $(MCW_ROOT ) && sleep 2; \
1178
1225
fi
1179
1226
ifeq ($(SUBMODULE ) ,1)
@@ -1250,7 +1297,7 @@ clean-pdk:
1250
1297
.PHONY : skywater-pdk
1251
1298
skywater-pdk :
1252
1299
if [ -d " $( PDK_ROOT) /skywater-pdk" ]; then\
1253
- echo " Deleting exisiting $( PDK_ROOT) /skywater-pdk" && \
1300
+ echo " Deleting existing $( PDK_ROOT) /skywater-pdk" && \
1254
1301
rm -rf $(PDK_ROOT ) /skywater-pdk && sleep 2; \
1255
1302
fi
1256
1303
git clone https://github.com/google/skywater-pdk.git $(PDK_ROOT ) /skywater-pdk
@@ -1267,7 +1314,7 @@ skywater-pdk:
1267
1314
.PHONY : open-pdks
1268
1315
open-pdks :
1269
1316
if [ -d " $( PDK_ROOT) /open_pdks" ]; then \
1270
- echo " Deleting exisiting $( PDK_ROOT) /open_pdks" && \
1317
+ echo " Deleting existing $( PDK_ROOT) /open_pdks" && \
1271
1318
rm -rf $(PDK_ROOT ) /open_pdks && sleep 2; \
1272
1319
fi
1273
1320
git clone git://opencircuitdesign.com/open_pdks $(PDK_ROOT ) /open_pdks
@@ -1278,7 +1325,7 @@ open-pdks:
1278
1325
.PHONY : sky130
1279
1326
sky130 :
1280
1327
if [ -d " $( PDK_ROOT) /$( PDK) " ]; then \
1281
- echo " Deleting exisiting $( PDK_ROOT) /$( PDK) " && \
1328
+ echo " Deleting existing $( PDK_ROOT) /$( PDK) " && \
1282
1329
rm -rf $(PDK_ROOT ) /$(PDK ) && sleep 2; \
1283
1330
fi
1284
1331
docker run --rm\
0 commit comments