sky130: add io config, update scl configs Signed-off-by: Leo Moser <leomoser99@gmail.com>
diff --git a/sky130/Makefile.in b/sky130/Makefile.in index ac7515d..3c28456 100644 --- a/sky130/Makefile.in +++ b/sky130/Makefile.in
@@ -1247,7 +1247,7 @@ fi ; \ fi -librelane-%: librelane/config.tcl librelane/sky130_fd_sc_hd/config.tcl librelane/sky130_fd_sc_hs/config.tcl librelane/sky130_fd_sc_ms/config.tcl librelane/sky130_fd_sc_ls/config.tcl librelane/sky130_fd_sc_hdll/config.tcl librelane/sky130_osu_sc_t18/config.tcl +librelane-%: librelane/config.tcl librelane/sky130_fd_sc_hd/config.tcl librelane/sky130_fd_sc_hs/config.tcl librelane/sky130_fd_sc_ms/config.tcl librelane/sky130_fd_sc_ls/config.tcl librelane/sky130_fd_sc_hdll/config.tcl librelane/sky130_osu_sc_t18/config.tcl librelane/sky130_ef_io/config.tcl mkdir -p ${LIBRELANETOP_STAGING_$*} mkdir -p ${LIBRELANE_STAGING_$*} rm -rf ${LIBRELANE_STAGING_$*}/custom_cells/* @@ -1258,6 +1258,7 @@ mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl mkdir -p ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18 + mkdir -p ${LIBRELANE_STAGING_$*}/sky130_ef_io rm -f ${LIBRELANE_STAGING_$*}/common_pdn.info rm -f ${LIBRELANE_STAGING_$*}/config.tcl for file in ${LIBRELANE_COMMON} ; do \ @@ -1281,6 +1282,9 @@ for file in ${LIBRELANE_COMMON} ; do \ rm -f ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/$$file ; \ done + for file in ${LIBRELANE_COMMON} ; do \ + rm -f ${LIBRELANE_STAGING_$*}/sky130_ef_io/$$file ; \ + done rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic @@ -1356,6 +1360,9 @@ ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_osu_sc_t18/tracks.info \ ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/tracks.info + ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_ef_io/config.tcl \ + ${LIBRELANE_STAGING_$*}/sky130_ef_io/config.tcl + # NOTE: ReRAM is not in variant A so there is no reram-build-A. vendor-A: primitive-build-A io-build-A sram-build-A sram-space-build-A digital-hd-build-A digital-hvl-build-A digital-hdll-build-A digital-lp-build-A digital-hs-build-A digital-ms-build-A digital-ls-build-A alpha-build-A osu-t12-build-A osu-t15-build-A osu-t18-build-A
diff --git a/sky130/librelane/config.tcl b/sky130/librelane/config.tcl index a18f5c0..0d3973c 100755 --- a/sky130/librelane/config.tcl +++ b/sky130/librelane/config.tcl
@@ -5,8 +5,9 @@ if { ![info exist ::env(STD_CELL_LIBRARY)] } { set ::env(STD_CELL_LIBRARY) sky130_fd_sc_hd } -if { ![info exist ::env(STD_CELL_LIBRARY_OPT)] } { - set ::env(STD_CELL_LIBRARY_OPT) sky130_fd_sc_hd + +if { ![info exist ::env(PAD_CELL_LIBRARY)] } { + set ::env(PAD_CELL_LIBRARY) sky130_ef_io } # Placement site for core cells @@ -20,43 +21,59 @@ set ::env(STD_CELL_POWER_PINS) "VPWR VPB" set ::env(STD_CELL_GROUND_PINS) "VGND VNB" + # Technology LEF -set ::env(TECH_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY)__nom.tlef" -set ::env(TECH_LEF_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY)__min.tlef" -set ::env(TECH_LEF_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY)__max.tlef" -set ::env(CELLS_LEF) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lef/*.lef"] -set ::env(GDS_FILES) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/gds/*.gds"] -set ::env(STD_CELL_LIBRARY_CDL) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/cdl/$::env(STD_CELL_LIBRARY).cdl" +set ::env(TECH_LEFS) [dict create] +dict set ::env(TECH_LEFS) "nom_*" [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY)__nom.tlef"] +dict set ::env(TECH_LEFS) "min_*" [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY)__min.tlef"] +dict set ::env(TECH_LEFS) "max_*" [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY)__max.tlef"] -set ::env(GPIO_PADS_LEF) "\ - $::env(PDK_ROOT)/$::env(PDK)/libs.ref/sky130_fd_io/lef/sky130_fd_io.lef\ - $::env(PDK_ROOT)/$::env(PDK)/libs.ref/sky130_fd_io/lef/sky130_ef_io.lef\ -" -# sky130_fd_io.v is not parsable by yosys, so it cannot be included it here just yet... -set ::env(GPIO_PADS_VERILOG) "\ - $::env(PDK_ROOT)/$::env(PDK)/libs.ref/sky130_fd_io/verilog/sky130_ef_io.v +# Corners +set ::env(STA_CORNERS) "\ + nom_tt_025C_1v80 \ + nom_ss_100C_1v60 \ + nom_ff_n40C_1v95 \ + min_tt_025C_1v80 \ + min_ss_100C_1v60 \ + min_ff_n40C_1v95 \ + max_tt_025C_1v80 \ + max_ss_100C_1v60 \ + max_ff_n40C_1v95 \ " -set ::env(GPIO_PADS_PREFIX) "sky130_fd_io sky130_ef_io" +set ::env(DEFAULT_CORNER) "nom_tt_025C_1v80" -# Optimization library -set ::env(TECH_LEF_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/techlef/$::env(STD_CELL_LIBRARY_OPT)__nom.tlef" -set ::env(CELLS_LEF_OPT) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/lef/*.lef"] -set ::env(GDS_FILES_OPT) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/gds/*.gds"] -set ::env(STD_CELL_LIBRARY_OPT_CDL) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/cdl/$::env(STD_CELL_LIBRARY_OPT).cdl" +# Check all timing corners +set ::env(TIMING_VIOLATION_CORNERS) "*" -# Optimization library slowest corner -set tmp $::env(STD_CELL_LIBRARY) -set ::env(STD_CELL_LIBRARY) $::env(STD_CELL_LIBRARY_OPT) -source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY_OPT)/config.tcl" -set ::env(LIB_SLOWEST_OPT) $::env(LIB_SLOWEST) -set ::env(STD_CELL_LIBRARY) $tmp -source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/config.tcl" - -set ::env(GPIO_PADS_LEF_CORE_SIDE) "\ - $::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/custom_cells/lef/sky130_fd_io_core.lef\ - $::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/custom_cells/lef/sky130_ef_io_core.lef\ +# Technology lib +set ::env(CELL_LIBS) [dict create] +dict set ::env(CELL_LIBS) "*_tt_025C_1v80" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)__tt_025C_1v80.lib\ " +dict set ::env(CELL_LIBS) "*_ff_n40C_1v95" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)__ff_n40C_1v95.lib\ +" +dict set ::env(CELL_LIBS) "*_ss_100C_1v60" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)__ss_100C_1v60.lib\ +" + +# Standard cells +set ::env(CELL_LEFS) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lef/*.lef"] +set ::env(CELL_GDS) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/gds/*.gds"] +set ::env(CELL_VERILOG_MODELS) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/verilog/$::env(STD_CELL_LIBRARY).v" +set ::env(CELL_SPICE_MODELS) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/spice/*.spice"] +set ::env(CELL_CDLS) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/cdl/$::env(STD_CELL_LIBRARY).cdl" + +# Pad cells +set ::env(PAD_LEFS) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/lef/*.lef"] +set ::env(PAD_GDS) "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/gds/sky130_fd_io.gds \ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/gds/sky130_ef_io.gds \ +" +set ::env(PAD_VERILOG_MODELS) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/verilog/$::env(PAD_CELL_LIBRARY)__blackbox_pp.v" +set ::env(PAD_SPICE_MODELS) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/spice/$::env(PAD_CELL_LIBRARY).spice" +set ::env(PAD_CDLS) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/cdl/*.cdl"] # magic setup set ::env(MAGIC_MAGICRC) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/TECHNAME.magicrc" @@ -101,9 +118,6 @@ # Default DRC Exclude List set ::env(DRC_EXCLUDE_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/drc_exclude.cells" -# DRC Exclude List for Optimization library -set ::env(DRC_EXCLUDE_CELL_LIST_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY_OPT)/drc_exclude.cells" - # Open-RCX Rules File set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).nom.spef_extractor" set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).min.spef_extractor"
diff --git a/sky130/librelane/sky130_ef_io/config.tcl b/sky130/librelane/sky130_ef_io/config.tcl new file mode 100644 index 0000000..0a214a1 --- /dev/null +++ b/sky130/librelane/sky130_ef_io/config.tcl
@@ -0,0 +1,58 @@ +set current_folder [file dirname [file normalize [info script]]] + +# Pad IO sites +set ::env(PAD_SITE_NAME) "sky130_io" +set ::env(PAD_CORNER_SITE_NAME) "sky130_io_corner" + +set ::env(PAD_FAKE_SITES) [dict create] +dict set ::env(PAD_FAKE_SITES) "sky130_io" "1.0, 200" +dict set ::env(PAD_FAKE_SITES) "sky130_io_corner" "200.0, 204.0" + +set ::env(PAD_ROTATION_HORIZONTAL) "R180" +set ::env(PAD_ROTATION_VERTICAL) "R180" +set ::env(PAD_ROTATION_CORNER) "R180" + +# Set IO pad information +set ::env(PAD_CELLS) [dict create] +dict set ::env(PAD_CELLS) "sky130_io*" "80, 200" +set ::env(PAD_CORNER) "sky130_ef_io__corner_pad" +set ::env(PAD_FILLERS) "\ + sky130_ef_io__com_bus_slice_20um\ + sky130_ef_io__com_bus_slice_10um\ + sky130_ef_io__com_bus_slice_5um\ + sky130_ef_io__com_bus_slice_1um\ +" + +# Technology lib +set ::env(PAD_LIBS) [dict create] +dict set ::env(PAD_LIBS) "*_tt_025C_1v80" "\ + [glob $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/lib/$::env(PAD_CELL_LIBRARY)__*_tt_025C_1v80_3v30*.lib] \ +" +dict set ::env(PAD_LIBS) "*_ff_n40C_1v95" "\ + [glob $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/lib/$::env(PAD_CELL_LIBRARY)__*_ff_n40C_1v95_5v50*.lib] \ +" +dict set ::env(PAD_LIBS) "*_ss_100C_1v60" "\ + [glob $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(PAD_CELL_LIBRARY)/lib/$::env(PAD_CELL_LIBRARY)__*_ss_100C_1v60_3v00*.lib] \ +" + +# Pad bondpad information (if needed) +#set ::env(PAD_BONDPAD_NAME) "bondpad_70x70" +#set ::env(PAD_BONDPAD_WIDTH) "70" +#set ::env(PAD_BONDPAD_HEIGHT) "70" +#set ::env(PAD_BONDPAD_OFFSETS) [dict create] +#dict set ::env(PAD_BONDPAD_OFFSETS) "sg13g2_IOPad*" "5.0, -70.0" + +# Pad io terminals (if needed) +set ::env(PAD_PLACE_IO_TERMINALS) "\ + sky130_fd_io__top_gpiov2/PAD\ + sky130_ef_io__gpiov2_pad/PAD\ + sky130_ef_io__vccd_lvc_pad/VCCD_PAD\ + sky130_ef_io__vssd_lvc_pad/VSSD_PAD\ + sky130_ef_io__vddio_lvc_pad/VDDIO_PAD\ + sky130_ef_io__vssio_lvc_pad/VSSIO_PAD\ +" + +# Sealring is added afterwards +set ::env(PAD_EDGE_SPACING) "0" + +#set ::env(KLAYOUT_SEALRING_SCRIPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/klayout/tech/scripts/sealring.py"
diff --git a/sky130/librelane/sky130_fd_sc_hd/config.tcl b/sky130/librelane/sky130_fd_sc_hd/config.tcl index 37c4402..edf96fa 100755 --- a/sky130/librelane/sky130_fd_sc_hd/config.tcl +++ b/sky130/librelane/sky130_fd_sc_hd/config.tcl
@@ -1,12 +1,6 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hd__tt_025C_1v80.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hd__ff_n40C_1v95.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hd__ss_100C_1v60.lib" - -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) - # MUX4 mapping set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
diff --git a/sky130/librelane/sky130_fd_sc_hdll/config.tcl b/sky130/librelane/sky130_fd_sc_hdll/config.tcl index 8ff1459..3bd0830 100755 --- a/sky130/librelane/sky130_fd_sc_hdll/config.tcl +++ b/sky130/librelane/sky130_fd_sc_hdll/config.tcl
@@ -1,12 +1,6 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hdll__tt_025C_1v80.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hdll__ff_n40C_1v95.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hdll__ss_100C_1v60.lib" - -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) - # MUX2 mapping set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
diff --git a/sky130/librelane/sky130_fd_sc_hs/config.tcl b/sky130/librelane/sky130_fd_sc_hs/config.tcl index 8c7322d..467fc6f 100755 --- a/sky130/librelane/sky130_fd_sc_hs/config.tcl +++ b/sky130/librelane/sky130_fd_sc_hs/config.tcl
@@ -1,12 +1,6 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hs__tt_025C_1v80.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hs__ff_n40C_1v95.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hs__ss_100C_1v60.lib" - -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) - # MUX4 mapping set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
diff --git a/sky130/librelane/sky130_fd_sc_hvl/config.tcl b/sky130/librelane/sky130_fd_sc_hvl/config.tcl index 4550f89..753090e 100644 --- a/sky130/librelane/sky130_fd_sc_hvl/config.tcl +++ b/sky130/librelane/sky130_fd_sc_hvl/config.tcl
@@ -1,15 +1,36 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hvl__tt_025C_3v30.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hvl__ff_n40C_5v50.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hvl__ss_150C_1v65.lib" - -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) - set ::env(VDD_PIN_VOLTAGE) "3.30" set ::env(GND_PIN_VOLTAGE) "0.00" +# Corners +set ::env(STA_CORNERS) "\ + nom_tt_025C_3v30 \ + nom_ss_150C_1v65 \ + nom_ff_n40C_5v50 \ + min_tt_025C_3v30 \ + min_ss_150C_1v65 \ + min_ff_n40C_5v50 \ + max_tt_025C_3v30 \ + max_ss_150C_1v65 \ + max_ff_n40C_5v50 \ +" + +set ::env(DEFAULT_CORNER) "nom_tt_025C_3v30" + +# Technology lib +set ::env(CELL_LIBS) [dict create] +dict set ::env(CELL_LIBS) "*_tt_025C_3v30" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)__tt_025C_3v30.lib\ +" +dict set ::env(CELL_LIBS) "*_ff_n40C_5v50" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)__ff_n40C_5v50.lib\ +" +dict set ::env(CELL_LIBS) "*_ss_150C_1v65" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)__ss_150C_1v65.lib\ +" + # MUX4 mapping set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
diff --git a/sky130/librelane/sky130_fd_sc_ls/config.tcl b/sky130/librelane/sky130_fd_sc_ls/config.tcl index c344d3b..57baf56 100755 --- a/sky130/librelane/sky130_fd_sc_ls/config.tcl +++ b/sky130/librelane/sky130_fd_sc_ls/config.tcl
@@ -1,12 +1,6 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ls__tt_025C_1v80.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ls__ff_n40C_1v95.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ls__ss_100C_1v60.lib" - -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) - # MUX4 mapping set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
diff --git a/sky130/librelane/sky130_fd_sc_ms/config.tcl b/sky130/librelane/sky130_fd_sc_ms/config.tcl index 15b0fd7..dd28eda 100755 --- a/sky130/librelane/sky130_fd_sc_ms/config.tcl +++ b/sky130/librelane/sky130_fd_sc_ms/config.tcl
@@ -1,12 +1,6 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ms__tt_025C_1v80.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ms__ff_n40C_1v95.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ms__ss_100C_1v60.lib" - -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) - # MUX4 mapping set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
diff --git a/sky130/librelane/sky130_osu_sc_t18/config.tcl b/sky130/librelane/sky130_osu_sc_t18/config.tcl index 6109dd8..2d94031 100755 --- a/sky130/librelane/sky130_osu_sc_t18/config.tcl +++ b/sky130/librelane/sky130_osu_sc_t18/config.tcl
@@ -1,11 +1,32 @@ set current_folder [file dirname [file normalize [info script]]] # Technology lib -set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_osu_sc_TT_1P8_25C.lib" -set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_osu_sc_FF_1P8_25C.lib" -set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_osu_sc_SS_1P8_25C.lib" +# Corners +set ::env(STA_CORNERS) "\ + nom_TT_1P8_25C \ + nom_FF_1P8_25C \ + nom_SS_1P8_25C \ + min_TT_1P8_25C \ + min_FF_1P8_25C \ + min_SS_1P8_25C \ + max_TT_1P8_25C \ + max_FF_1P8_25C \ + max_SS_1P8_25C \ +" -set ::env(LIB_TYPICAL) $::env(LIB_SYNTH) +set ::env(DEFAULT_CORNER) "nom_TT_1P8_25C" + +# Technology lib +set ::env(CELL_LIBS) [dict create] +dict set ::env(CELL_LIBS) "*_TT_1P8_25C" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)_TT_1P8_25C.lib\ +" +dict set ::env(CELL_LIBS) "*_FF_1P8_25C" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)_FF_1P8_25C.lib\ +" +dict set ::env(CELL_LIBS) "*_SS_1P8_25C" "\ + $::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/$::env(STD_CELL_LIBRARY)_SS_1P8_25C.lib\ +" # Placement site for core cells # This can be found in the technology lef (SITE)