|
| 1 | +# Process node |
| 2 | +set ::env(PROCESS) 7 |
| 3 | +set ::env(DEF_UNITS_PER_MICRON) 1000 |
| 4 | + |
| 5 | +# Placement site for core cells |
| 6 | +# This can be found in the technology lef |
| 7 | + |
| 8 | +set ::env(VDD_PIN) "VDD" |
| 9 | +set ::env(GND_PIN) "VSS" |
| 10 | + |
| 11 | +set ::env(STD_CELL_POWER_PINS) "VDD" |
| 12 | +set ::env(STD_CELL_GROUND_PINS) "VSS" |
| 13 | + |
| 14 | +# Technology LEF |
| 15 | +set ::env(TECH_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/asap7_tech_1x_201209.lef" |
| 16 | +set ::env(CELLS_LEF) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lef/*.lef"] |
| 17 | +set ::env(GDS_FILES) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/gds/*.gds"] |
| 18 | +set ::env(STD_CELL_LIBRARY_CDL) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/cdl/$::env(STD_CELL_LIBRARY).cdl" |
| 19 | + |
| 20 | +set ::env(GPIO_PADS_LEF) "" |
| 21 | + |
| 22 | +set ::env(GPIO_PADS_VERILOG) "" |
| 23 | + |
| 24 | +# Optimization library |
| 25 | +set ::env(TECH_LEF_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/techlef/$::env(STD_CELL_LIBRARY_OPT).tlef" |
| 26 | +set ::env(CELLS_LEF_OPT) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/lef/*.lef"] |
| 27 | +set ::env(GDS_FILES_OPT) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY_OPT)/gds/*.gds"] |
| 28 | +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" |
| 29 | + |
| 30 | + |
| 31 | +# Optimization library slowest corner |
| 32 | +set tmp $::env(STD_CELL_LIBRARY) |
| 33 | +set ::env(STD_CELL_LIBRARY) $::env(STD_CELL_LIBRARY_OPT) |
| 34 | +source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY_OPT)/config.tcl" |
| 35 | +set ::env(LIB_SLOWEST_OPT) $::env(LIB_SLOWEST) |
| 36 | +set ::env(STD_CELL_LIBRARY) $tmp |
| 37 | +source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/config.tcl" |
| 38 | + |
| 39 | +set ::env(GPIO_PADS_LEF_CORE_SIDE) "" |
| 40 | + |
| 41 | +# magic setup |
| 42 | +#set ::env(MAGIC_MAGICRC) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/sky130A.magicrc" |
| 43 | +#set ::env(MAGIC_TECH_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/sky130A.tech" |
| 44 | +set ::env(RUN_MAGIC) false |
| 45 | +set ::env(RUN_KLAYOUT_XOR) false ;# nothing to XOR with from magic |
| 46 | + |
| 47 | +# Klayout setup |
| 48 | +set ::env(KLAYOUT_TECH) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/klayout/$::env(PDK).lyt" |
| 49 | +set ::env(KLAYOUT_PROPERTIES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/klayout/$::env(PDK).lyp" |
| 50 | +#set ::env(KLAYOUT_DRC_TECH_SCRIPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/klayout/$::env(PDK)_mr.drc" |
| 51 | +#set ::env(KLAYOUT_DRC_TECH) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/klayout/$::env(PDK).lydrc" |
| 52 | + |
| 53 | +# netgen setup |
| 54 | +#set ::env(NETGEN_SETUP_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/netgen/sky130A_setup.tcl" |
| 55 | + |
| 56 | +set ::env(FP_TAPCELL_DIST) 25 |
| 57 | + |
| 58 | +# Tracks info - suppress .info conversion and use make_tracks.tcl directly |
| 59 | +set ::env(TRACKS_INFO_FILE) "" |
| 60 | +set ::env(TRACKS_INFO_FILE_PROCESSED) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/make_tracks.tcl" |
| 61 | + |
| 62 | +# Latch mapping |
| 63 | +set ::env(SYNTH_LATCH_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/cells_latch.v" |
| 64 | + |
| 65 | +# Tri-state buffer mapping |
| 66 | +set ::env(TRISTATE_BUFFER_MAP) "" |
| 67 | + |
| 68 | +# Full adder mapping |
| 69 | +set ::env(FULL_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/cells_adders.v" |
| 70 | + |
| 71 | +# Ripple carry adder mapping |
| 72 | +set ::env(RIPPLE_CARRY_ADDER_MAP) "" |
| 73 | + |
| 74 | +# Carry select adder mapping |
| 75 | +set ::env(CARRY_SELECT_ADDER_MAP) "" |
| 76 | + |
| 77 | +# Default No Synth List |
| 78 | +set ::env(NO_SYNTH_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells" |
| 79 | + |
| 80 | +# Default DRC Exclude List |
| 81 | +set ::env(DRC_EXCLUDE_CELL_LIST) "" |
| 82 | + |
| 83 | +# DRC Exclude List for Optimization library |
| 84 | +set ::env(DRC_EXCLUDE_CELL_LIST_OPT) "" |
| 85 | + |
| 86 | +# Open-RCX Rules File |
| 87 | +set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rcx_patterns.rules" |
| 88 | + |
| 89 | +# VIAS RC Values |
| 90 | +set ::env(VIAS_RC) "\ |
| 91 | + V1 1.00E-02,\ |
| 92 | + V2 1.00E-02,\ |
| 93 | + V3 1.00E-02,\ |
| 94 | + V4 1.00E-02,\ |
| 95 | + V5 1.00E-02,\ |
| 96 | + V6 1.00E-02,\ |
| 97 | + V7 1.00E-02,\ |
| 98 | + V8 1.00E-02,\ |
| 99 | + V9 1.00E-02" |
| 100 | + |
| 101 | +# Layer RC Values |
| 102 | +set ::env(LAYERS_RC) "\ |
| 103 | + M1 1.1368e-01 1.3889e-01,\ |
| 104 | + M2 1.3426e-01 2.4222e-02,\ |
| 105 | + M3 1.2918e-01 2.4222e-02,\ |
| 106 | + M4 1.1396e-01 1.6778e-02,\ |
| 107 | + M5 1.3323e-01 1.4677e-02,\ |
| 108 | + M6 1.1575e-01 1.0371e-02,\ |
| 109 | + M7 1.3293e-01 9.6720e-03,\ |
| 110 | + M8 1.1822e-01 7.4310e-03,\ |
| 111 | + M9 1.3497e-01 6.8740e-03" |
| 112 | + |
| 113 | +# Extra PDN configs |
| 114 | +set ::env(FP_PDN_RAILS_LAYER) met1 |
| 115 | +set ::env(FP_PDN_LOWER_LAYER) met4 |
| 116 | +set ::env(FP_PDN_UPPER_LAYER) met5 |
| 117 | +set ::env(FP_PDN_RAIL_OFFSET) 0 |
| 118 | +set ::env(FP_PDN_VWIDTH) 1.6 |
| 119 | +set ::env(FP_PDN_HWIDTH) 1.6 |
| 120 | +set ::env(FP_PDN_VSPACING) 1.7 |
| 121 | +set ::env(FP_PDN_HSPACING) 1.7 |
| 122 | + |
| 123 | +# Core Ring PDN defaults |
| 124 | +set ::env(FP_PDN_CORE_RING_VWIDTH) 1.6 |
| 125 | +set ::env(FP_PDN_CORE_RING_HWIDTH) 1.6 |
| 126 | +set ::env(FP_PDN_CORE_RING_VSPACING) 1.7 |
| 127 | +set ::env(FP_PDN_CORE_RING_HSPACING) 1.7 |
| 128 | +set ::env(FP_PDN_CORE_RING_VOFFSET) 6 |
| 129 | +set ::env(FP_PDN_CORE_RING_HOFFSET) 6 |
| 130 | + |
| 131 | +# PDN Macro blockages list |
| 132 | +set ::env(MACRO_BLOCKAGES_LAYER) "li1 met1 met2 met3 met4" |
| 133 | + |
| 134 | +# Used for parasitics estimation, IR drop analysis, etc |
| 135 | +set ::env(WIRE_RC_LAYER) "M3" |
| 136 | +set ::env(DATA_WIRE_RC_LAYER) "M3" |
| 137 | +set ::env(CLOCK_WIRE_RC_LAYER) "M3" |
| 138 | + |
| 139 | +# I/O Layer info |
| 140 | +set ::env(FP_IO_HLAYER) "M4" |
| 141 | +set ::env(FP_IO_VLAYER) "M5" |
| 142 | + |
| 143 | +# Routing Layer Info |
| 144 | +set ::env(GLB_RT_LAYER_ADJUSTMENTS) "0.5,0.5,0.5,0.5,0.5,0.5" |
| 145 | + |
| 146 | +set ::env(RT_MIN_LAYER) "M2" |
| 147 | +set ::env(RT_MAX_LAYER) "M7" |
| 148 | + |
| 149 | +# Use OR default |
| 150 | +set ::env(FP_IO_MIN_DISTANCE) "" |
| 151 | + |
| 152 | +# Asap7 has no antenna rules nor diode cells |
| 153 | +set ::env(DIODE_INSERTION_STRATEGY) 0 |
0 commit comments