@@ -47,7 +47,7 @@ MCW_ROOT?=$(PWD)/mgmt_core_wrapper
47
47
MCW ?=LITEX_VEXRISCV
48
48
49
49
# PDK switch varient
50
- export PDK_VARIENT ? =sky130B
50
+ export PDK ? =sky130B
51
51
52
52
# Install lite version of caravel, (1): caravel-lite, (0): caravel
53
53
MCW_LITE? =1
@@ -128,7 +128,7 @@ __ship:
128
128
exit;" > $(UPRJ_ROOT)/mag/mag2gds_caravel.tcl
129
129
# ## Runs from CARAVEL_ROOT
130
130
@mkdir -p ./signoff/build
131
- @cd $(CARAVEL_ROOT)/mag && PDKPATH=${PDK_ROOT}/$(PDK_VARIENT ) magic -noc -dnull $(UPRJ_ROOT)/mag/mag2gds_caravel.tcl 2>&1 | tee $(UPRJ_ROOT)/signoff/build/make_ship.out
131
+ @cd $(CARAVEL_ROOT)/mag && PDKPATH=${PDK_ROOT}/$(PDK ) magic -noc -dnull $(UPRJ_ROOT)/mag/mag2gds_caravel.tcl 2>&1 | tee $(UPRJ_ROOT)/signoff/build/make_ship.out
132
132
# ## @rm $(UPRJ_ROOT)/mag/mag2gds_caravel.tcl
133
133
134
134
truck : check-env uncompress uncompress-caravel
@@ -171,7 +171,7 @@ __truck:
171
171
exit;" > $(UPRJ_ROOT)/mag/mag2gds_caravan.tcl
172
172
# ## Runs from CARAVEL_ROOT
173
173
@mkdir -p ./signoff/build
174
- @cd $(CARAVEL_ROOT)/mag && PDKPATH=${PDK_ROOT}/$(PDK_VARIENT ) magic -noc -dnull $(UPRJ_ROOT)/mag/mag2gds_caravan.tcl 2>&1 | tee $(UPRJ_ROOT)/signoff/build/make_truck.out
174
+ @cd $(CARAVEL_ROOT)/mag && PDKPATH=${PDK_ROOT}/$(PDK ) magic -noc -dnull $(UPRJ_ROOT)/mag/mag2gds_caravan.tcl 2>&1 | tee $(UPRJ_ROOT)/signoff/build/make_truck.out
175
175
# ## @rm $(UPRJ_ROOT)/mag/mag2gds_caravan.tcl
176
176
177
177
.PHONY : clean
@@ -259,7 +259,7 @@ xor-wrapper: uncompress uncompress-caravel
259
259
-o signoff/user_project_wrapper_xor/total.txt
260
260
# ## screenshot the result for convenience
261
261
sh $(CARAVEL_ROOT)/utils/scrotLayout.sh \
262
- $(PDK_ROOT)/$(PDK_VARIENT )/libs.tech/klayout/$(PDK_VARIENT ).lyt \
262
+ $(PDK_ROOT)/$(PDK )/libs.tech/klayout/$(PDK ).lyt \
263
263
signoff/user_project_wrapper_xor/user_project_wrapper.xor.gds
264
264
@cat signoff/user_project_wrapper_xor/total.txt
265
265
@@ -285,7 +285,7 @@ xor-analog-wrapper: uncompress uncompress-caravel
285
285
-o signoff/user_analog_project_wrapper_xor/total.txt
286
286
# ## screenshot the result for convenience
287
287
sh $(CARAVEL_ROOT)/utils/scrotLayout.sh \
288
- $(PDK_ROOT)/$(PDK_VARIENT )/libs.tech/klayout/$(PDK_VARIENT ).lyt \
288
+ $(PDK_ROOT)/$(PDK )/libs.tech/klayout/$(PDK ).lyt \
289
289
signoff/user_analog_project_wrapper_xor/user_analog_project_wrapper.xor.gds
290
290
@cat signoff/user_analog_project_wrapper_xor/total.txt
291
291
@@ -316,7 +316,7 @@ $(LVS_BLOCKS): lvs-% : ./mag/%.mag ./verilog/gl/%.v
316
316
exit ; " > ./mag/extract_$* .tcl
317
317
cd mag && \
318
318
export MAGTYPE=maglef; \
319
- magic -rcfile ${PDK_ROOT} /$(PDK_VARIENT ) /libs.tech/magic/$(PDK_VARIENT ) .magicrc -noc -dnull extract_$* .tcl < /dev/null
319
+ magic -rcfile ${PDK_ROOT} /$(PDK ) /libs.tech/magic/$(PDK ) .magicrc -noc -dnull extract_$* .tcl < /dev/null
320
320
mv ./mag/$* .spice ./spi/lvs
321
321
rm ./mag/* .ext
322
322
mv -f ./mag/extract_$* .tcl ./mag/tmp
@@ -353,7 +353,7 @@ $(LVS_GDS_BLOCKS): lvs-gds-% : ./gds/%.gds ./verilog/gl/%.v
353
353
feedback save extract_$* .log; \
354
354
exit ; " > ./gds/extract_$* .tcl
355
355
cd gds && \
356
- magic -rcfile ${PDK_ROOT} /$(PDK_VARIENT ) /libs.tech/magic/$(PDK_VARIENT ) .magicrc -noc -dnull extract_$* .tcl < /dev/null
356
+ magic -rcfile ${PDK_ROOT} /$(PDK ) /libs.tech/magic/$(PDK ) .magicrc -noc -dnull extract_$* .tcl < /dev/null
357
357
mv ./gds/$* .spice ./spi/lvs
358
358
rm ./gds/* .ext
359
359
mv -f ./gds/extract_$* .tcl ./gds/tmp
@@ -416,7 +416,7 @@ DRC_BLOCKS = $(foreach block, $(BLOCKS), drc-$(block))
416
416
$(DRC_BLOCKS ) : drc-% : ./gds/% .gds
417
417
echo " Running DRC on $* "
418
418
mkdir -p ./gds/tmp
419
- cd gds && export DESIGN_IN_DRC=$* && export MAGTYPE=mag; magic -rcfile ${PDK_ROOT} /$(PDK_VARIENT ) /libs.tech/magic/$(PDK_VARIENT ) .magicrc -noc -dnull $(CARAVEL_ROOT ) /gds/drc_on_gds.tcl < /dev/null
419
+ cd gds && export DESIGN_IN_DRC=$* && export MAGTYPE=mag; magic -rcfile ${PDK_ROOT} /$(PDK ) /libs.tech/magic/$(PDK ) .magicrc -noc -dnull $(CARAVEL_ROOT ) /gds/drc_on_gds.tcl < /dev/null
420
420
@echo " DRC result: ./gds/tmp/$* .drc"
421
421
422
422
# Antenna
@@ -425,7 +425,7 @@ ANTENNA_BLOCKS = $(foreach block, $(BLOCKS), antenna-$(block))
425
425
$(ANTENNA_BLOCKS ) : antenna-% : ./gds/% .gds
426
426
echo " Running Antenna Checks on $* "
427
427
mkdir -p ./gds/tmp
428
- cd gds && export DESIGN_IN_ANTENNA=$* && export MAGTYPE=mag; magic -rcfile ${PDK_ROOT} /$(PDK_VARIENT ) /libs.tech/magic/$(PDK_VARIENT ) .magicrc -noc -dnull $(CARAVEL_ROOT ) /gds/antenna_on_gds.tcl < /dev/null 2>&1 | tee ./tmp/$* .antenna
428
+ cd gds && export DESIGN_IN_ANTENNA=$* && export MAGTYPE=mag; magic -rcfile ${PDK_ROOT} /$(PDK ) /libs.tech/magic/$(PDK ) .magicrc -noc -dnull $(CARAVEL_ROOT ) /gds/antenna_on_gds.tcl < /dev/null 2>&1 | tee ./tmp/$* .antenna
429
429
mv -f ./gds/* .ext ./gds/tmp/
430
430
@echo " Antenna result: ./gds/tmp/$* .antenna"
431
431
@@ -444,7 +444,7 @@ $(MAG_BLOCKS): mag2gds-% : ./mag/%.mag uncompress
444
444
expand; \
445
445
gds write $* .gds; \
446
446
exit ; " > ./mag/mag2gds_$* .tcl
447
- cd ./mag && magic -rcfile ${PDK_ROOT} /$(PDK_VARIENT ) /libs.tech/magic/$(PDK_VARIENT ) .magicrc -noc -dnull mag2gds_$* .tcl < /dev/null
447
+ cd ./mag && magic -rcfile ${PDK_ROOT} /$(PDK ) /libs.tech/magic/$(PDK ) .magicrc -noc -dnull mag2gds_$* .tcl < /dev/null
448
448
rm ./mag/mag2gds_$* .tcl
449
449
mv -f ./mag/$* .gds ./gds/
450
450
@@ -460,7 +460,7 @@ $(MAG_BLOCKS): mag2lef-% : ./mag/%.mag uncompress
460
460
load $* ; \
461
461
lef write $* .lef; \
462
462
exit ; " > ./mag/mag2lef_$* .tcl
463
- cd ./mag && magic -rcfile ${PDK_ROOT} /$(PDK_VARIENT ) /libs.tech/magic/$(PDK_VARIENT ) .magicrc -noc -dnull mag2lef_$* .tcl < /dev/null
463
+ cd ./mag && magic -rcfile ${PDK_ROOT} /$(PDK ) /libs.tech/magic/$(PDK ) .magicrc -noc -dnull mag2lef_$* .tcl < /dev/null
464
464
rm ./mag/mag2lef_$* .tcl
465
465
mv -f ./mag/$* .lef ./lef/
466
466
@@ -476,12 +476,12 @@ $(RCX_BLOCKS): rcx-% : ./def/%.def
476
476
echo " Running RC Extraction on $* "
477
477
mkdir -p ./def/tmp
478
478
# merge techlef and standard cell lef files
479
- python3 $(OPENLANE_ROOT ) /scripts/mergeLef.py -i $(PDK_ROOT ) /$(PDK_VARIENT ) /libs.ref/$(STD_CELL_LIBRARY ) /techlef/$(STD_CELL_LIBRARY ) .tlef $(PDK_ROOT ) /$(PDK_VARIENT ) /libs.ref/$(STD_CELL_LIBRARY ) /lef/* .lef -o ./def/tmp/merged.lef
479
+ python3 $(OPENLANE_ROOT ) /scripts/mergeLef.py -i $(PDK_ROOT ) /$(PDK ) /libs.ref/$(STD_CELL_LIBRARY ) /techlef/$(STD_CELL_LIBRARY ) .tlef $(PDK_ROOT ) /$(PDK ) /libs.ref/$(STD_CELL_LIBRARY ) /lef/* .lef -o ./def/tmp/merged.lef
480
480
echo " \
481
- read_liberty $(PDK_ROOT ) /$(PDK_VARIENT ) /libs.ref/$(STD_CELL_LIBRARY ) /lib/$(STD_CELL_LIBRARY ) __tt_025C_1v80.lib; \
482
- read_liberty $(PDK_ROOT ) /$(PDK_VARIENT ) /libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib; \
481
+ read_liberty $(PDK_ROOT ) /$(PDK ) /libs.ref/$(STD_CELL_LIBRARY ) /lib/$(STD_CELL_LIBRARY ) __tt_025C_1v80.lib; \
482
+ read_liberty $(PDK_ROOT ) /$(PDK ) /libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib; \
483
483
set std_cell_lef ./def/tmp/merged.lef; \
484
- set sram_lef $(PDK_ROOT ) /$(PDK_VARIENT ) /libs.ref/sky130_sram_macros/lef/sky130_sram_2kbyte_1rw1r_32x512_8.lef; \
484
+ set sram_lef $(PDK_ROOT ) /$(PDK ) /libs.ref/sky130_sram_macros/lef/sky130_sram_2kbyte_1rw1r_32x512_8.lef; \
485
485
if {[catch {read_lef \$ $std_cell_lef } errmsg]} {\
486
486
puts stderr \$$errmsg;\
487
487
exit 1;\
@@ -520,15 +520,15 @@ $(RCX_BLOCKS): rcx-% : ./def/%.def
520
520
set_wire_rc -signal -layer met2;\
521
521
set_wire_rc -clock -layer met5;\
522
522
define_process_corner -ext_model_index 0 X;\
523
- extract_parasitics -ext_model_file ${PDK_ROOT}/$(PDK_VARIENT )/libs.tech/openlane/rcx_rules.info -corner_cnt 1 -max_res 50 -coupling_threshold 0.1 -cc_model 10 -context_depth 5;\
523
+ extract_parasitics -ext_model_file ${PDK_ROOT}/$(PDK )/libs.tech/openlane/rcx_rules.info -corner_cnt 1 -max_res 50 -coupling_threshold 0.1 -cc_model 10 -context_depth 5;\
524
524
write_spef ./spef/$*.spef" > ./def/tmp/rcx_$*.tcl
525
525
# # Generate Spef file
526
526
docker run -it -v $(OPENLANE_ROOT):/openlane -v $(PDK_ROOT):$(PDK_ROOT) -v $(PWD):/caravel -e PDK_ROOT=$(PDK_ROOT) -u $(shell id -u $(USER)):$(shell id -g $(USER)) $(OPENLANE_IMAGE_NAME) \
527
527
sh -c " cd /caravel; openroad -exit ./def/tmp/rcx_$*.tcl |& tee ./def/tmp/rcx_$*.log"
528
528
# # Run OpenSTA
529
529
echo "\
530
530
set std_cell_lef ./def/tmp/merged.lef;\
531
- set sram_lef $(PDK_ROOT)/$(PDK_VARIENT )/libs.ref/sky130_sram_macros/lef/sky130_sram_2kbyte_1rw1r_32x512_8.lef;\
531
+ set sram_lef $(PDK_ROOT)/$(PDK )/libs.ref/sky130_sram_macros/lef/sky130_sram_2kbyte_1rw1r_32x512_8.lef;\
532
532
if {[catch {read_lef \$$std_cell_lef} errmsg]} {\
533
533
puts stderr \$$errmsg;\
534
534
exit 1;\
@@ -544,8 +544,8 @@ $(RCX_BLOCKS): rcx-% : ./def/%.def
544
544
}\
545
545
};\
546
546
set_cmd_units -time ns -capacitance pF -current mA -voltage V -resistance kOhm -distance um;\
547
- read_liberty $(PDK_ROOT)/$(PDK_VARIENT )/libs.ref/$(STD_CELL_LIBRARY)/lib/$(STD_CELL_LIBRARY)__tt_025C_1v80.lib;\
548
- read_liberty $(PDK_ROOT)/$(PDK_VARIENT )/libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib;\
547
+ read_liberty $(PDK_ROOT)/$(PDK )/libs.ref/$(STD_CELL_LIBRARY)/lib/$(STD_CELL_LIBRARY)__tt_025C_1v80.lib;\
548
+ read_liberty $(PDK_ROOT)/$(PDK )/libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib;\
549
549
read_verilog ./verilog/gl/$*.v;\
550
550
link_design $*;\
551
551
read_spef ./spef/$*.spef;\
@@ -563,8 +563,8 @@ mgmt_core_wrapper_timing: ./verilog/gl/mgmt_core_wrapper.v ./spef/mgmt_core_wrap
563
563
mkdir -p ./def/tmp
564
564
# # Run OpenSTA
565
565
echo "\
566
- read_liberty $(PDK_ROOT)/$(PDK_VARIENT )/libs.ref/$(STD_CELL_LIBRARY)/lib/$(STD_CELL_LIBRARY)__ss_100C_1v60.lib;\
567
- read_liberty $(PDK_ROOT)/$(PDK_VARIENT )/libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib;\
566
+ read_liberty $(PDK_ROOT)/$(PDK )/libs.ref/$(STD_CELL_LIBRARY)/lib/$(STD_CELL_LIBRARY)__ss_100C_1v60.lib;\
567
+ read_liberty $(PDK_ROOT)/$(PDK )/libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib;\
568
568
read_verilog ./verilog/gl/mgmt_core.v;\
569
569
read_verilog ./verilog/gl/DFFRAM.v;\
570
570
read_verilog ./verilog/gl/mgmt_core_wrapper.v;\
@@ -667,12 +667,12 @@ skywater-library: check-env $(PDK_ROOT)/skywater-pdk
667
667
git submodule update --init libraries/$(SPECIAL_VOLTAGE_LIBRARY ) /latest && \
668
668
git submodule update --init libraries/$(PRIMITIVES_LIBRARY ) /latest
669
669
670
- gen-sources : $(PDK_ROOT ) /$(PDK_VARIENT )
671
- touch $(PDK_ROOT ) /$(PDK_VARIENT ) /SOURCES
672
- echo -ne " skywater-pdk " >> $(PDK_ROOT ) /$(PDK_VARIENT ) /SOURCES
673
- cd $(PDK_ROOT ) /skywater-pdk && git rev-parse HEAD >> $(PDK_ROOT ) /$(PDK_VARIENT ) /SOURCES
674
- echo -ne " open_pdks " >> $(PDK_ROOT ) /$(PDK_VARIENT ) /SOURCES
675
- cd $(PDK_ROOT ) /open_pdks && git rev-parse HEAD >> $(PDK_ROOT ) /$(PDK_VARIENT ) /SOURCES
670
+ gen-sources : $(PDK_ROOT ) /$(PDK )
671
+ touch $(PDK_ROOT ) /$(PDK ) /SOURCES
672
+ echo -ne " skywater-pdk " >> $(PDK_ROOT ) /$(PDK ) /SOURCES
673
+ cd $(PDK_ROOT ) /skywater-pdk && git rev-parse HEAD >> $(PDK_ROOT ) /$(PDK ) /SOURCES
674
+ echo -ne " open_pdks " >> $(PDK_ROOT ) /$(PDK ) /SOURCES
675
+ cd $(PDK_ROOT ) /open_pdks && git rev-parse HEAD >> $(PDK_ROOT ) /$(PDK ) /SOURCES
676
676
677
677
skywater-timing : check-env $(PDK_ROOT ) /skywater-pdk
678
678
cd $(PDK_ROOT ) /skywater-pdk && \
@@ -689,10 +689,10 @@ open_pdks: check-env $(PDK_ROOT)/open_pdks
689
689
690
690
.PHONY : build-pdk
691
691
build-pdk : check-env $(PDK_ROOT ) /open_pdks $(PDK_ROOT ) /skywater-pdk
692
- [ -d $( PDK_ROOT) /$( PDK_VARIENT ) ] && \
693
- (echo " Warning: A $( PDK_VARIENT ) build already exists under $( PDK_ROOT) . It will be deleted first!" && \
692
+ [ -d $( PDK_ROOT) /$( PDK ) ] && \
693
+ (echo " Warning: A $( PDK ) build already exists under $( PDK_ROOT) . It will be deleted first!" && \
694
694
sleep 5 && \
695
- rm -rf $(PDK_ROOT ) /$(PDK_VARIENT ) ) || \
695
+ rm -rf $(PDK_ROOT ) /$(PDK ) ) || \
696
696
true
697
697
cd $(PDK_ROOT ) /open_pdks && \
698
698
./configure --enable-sky130-pdk=$(PDK_ROOT ) /skywater-pdk/libraries --with-sky130-local-path=$(PDK_ROOT ) --enable-sram-sky130=$(INSTALL_SRAM ) && \
0 commit comments