FeliciaG | 594100d | 2023-05-04 15:23:24 -0700 | [diff] [blame^] | 1 | ;; This skill file compiles schematic PCells for BAG primitives for MIM |
| 2 | |
| 3 | lib_obj = ddGetObj("BAG_prim") |
| 4 | |
| 5 | |
| 6 | ; mim_standard/xcmimc2 |
| 7 | pcDefinePCell( |
| 8 | list( lib_obj "mim_standard" "schematic" "schematic") |
| 9 | ((unit_width string "1u") |
| 10 | (unit_height string "1u") |
| 11 | (num_rows string "1") |
| 12 | (num_cols string "1") |
| 13 | ) |
| 14 | let((inst iopin_master io_net io_pin) |
| 15 | wval = cdfParseFloatString(unit_width) * 1e6 |
| 16 | lval = cdfParseFloatString(unit_height) * 1e6 |
| 17 | rval = atoi(num_rows) |
| 18 | cval = atoi(num_cols) |
| 19 | inst = dbCreateParamInstByMasterName( pcCellView "s8phirs_10r" "cmimc" "symbol" |
| 20 | "C0" 0:0 "R0" 1 |
| 21 | list(list("ctype" "string" "xcmimc2") |
| 22 | list("cw" "string" sprintf(nil "%0.2f" wval)) |
| 23 | list("cl" "string" sprintf(nil "%0.2f" lval)) |
| 24 | list("nrow" "string" num_rows) |
| 25 | list("ncol" "string" num_cols) |
| 26 | list("cm" "string" sprintf(nil "%d" rval * cval))) |
| 27 | ) |
| 28 | iopin_master = dbOpenCellViewByType("basic" "iopin" "symbolr" nil "r") |
| 29 | io_net = dbCreateNet(pcCellView "TOP") |
| 30 | io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "TOP" 0:0.5 "R0") |
| 31 | "TOP" dbCreateTerm(io_net "TOP" "inputOutput")) |
| 32 | dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c0")) |
| 33 | io_net = dbCreateNet(pcCellView "BOT") |
| 34 | io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "BOT" 0:-0.75 "R0") |
| 35 | "BOT" dbCreateTerm(io_net "BOT" "inputOutput")) |
| 36 | dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c1")) |
| 37 | ) |
| 38 | ) |
| 39 | |
| 40 | ; mim_45/xcmimc2 |
| 41 | pcDefinePCell( |
| 42 | list( lib_obj "mim_45" "schematic" "schematic") |
| 43 | ((unit_width string "1u") |
| 44 | (unit_height string "1u") |
| 45 | (num_rows string "1") |
| 46 | (num_cols string "1") |
| 47 | ) |
| 48 | let((inst iopin_master io_net io_pin) |
| 49 | wval = cdfParseFloatString(unit_width) * 1e6 |
| 50 | lval = cdfParseFloatString(unit_height) * 1e6 |
| 51 | rval = atoi(num_rows) |
| 52 | cval = atoi(num_cols) |
| 53 | inst = dbCreateParamInstByMasterName( pcCellView "s8phirs_10r" "cmimc" "symbol" |
| 54 | "C0" 0:0 "R0" 1 |
| 55 | list(list("ctype" "string" "xcmimc2") |
| 56 | list("cw" "string" sprintf(nil "%0.2f" wval)) |
| 57 | list("cl" "string" sprintf(nil "%0.2f" lval)) |
| 58 | list("nrow" "string" num_rows) |
| 59 | list("ncol" "string" num_cols) |
| 60 | list("cm" "string" sprintf(nil "%d" rval * cval))) |
| 61 | ) |
| 62 | iopin_master = dbOpenCellViewByType("basic" "iopin" "symbolr" nil "r") |
| 63 | io_net = dbCreateNet(pcCellView "TOP") |
| 64 | io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "TOP" 0:0.5 "R0") |
| 65 | "TOP" dbCreateTerm(io_net "TOP" "inputOutput")) |
| 66 | dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c0")) |
| 67 | io_net = dbCreateNet(pcCellView "BOT") |
| 68 | io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "BOT" 0:-0.75 "R0") |
| 69 | "BOT" dbCreateTerm(io_net "BOT" "inputOutput")) |
| 70 | dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c1")) |
| 71 | ) |
| 72 | ) |
| 73 | |
| 74 | ; mim_34/xcmimc1 |
| 75 | pcDefinePCell( |
| 76 | list( lib_obj "mim_34" "schematic" "schematic") |
| 77 | ((unit_width string "1u") |
| 78 | (unit_height string "1u") |
| 79 | (num_rows string "1") |
| 80 | (num_cols string "1") |
| 81 | ) |
| 82 | let((inst iopin_master io_net io_pin) |
| 83 | wval = cdfParseFloatString(unit_width) * 1e6 |
| 84 | lval = cdfParseFloatString(unit_height) * 1e6 |
| 85 | rval = atoi(num_rows) |
| 86 | cval = atoi(num_cols) |
| 87 | inst = dbCreateParamInstByMasterName( pcCellView "s8phirs_10r" "cmimc" "symbol" |
| 88 | "C0" 0:0 "R0" 1 |
| 89 | list(list("ctype" "string" "xcmimc1") |
| 90 | list("cw" "string" sprintf(nil "%0.2f" wval)) |
| 91 | list("cl" "string" sprintf(nil "%0.2f" lval)) |
| 92 | list("nrow" "string" num_rows) |
| 93 | list("ncol" "string" num_cols) |
| 94 | list("cm" "string" sprintf(nil "%d" rval * cval))) |
| 95 | ) |
| 96 | iopin_master = dbOpenCellViewByType("basic" "iopin" "symbolr" nil "r") |
| 97 | io_net = dbCreateNet(pcCellView "TOP") |
| 98 | io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "TOP" 0:0.5 "R0") |
| 99 | "TOP" dbCreateTerm(io_net "TOP" "inputOutput")) |
| 100 | dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c0")) |
| 101 | io_net = dbCreateNet(pcCellView "BOT") |
| 102 | io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "BOT" 0:-0.75 "R0") |
| 103 | "BOT" dbCreateTerm(io_net "BOT" "inputOutput")) |
| 104 | dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c1")) |
| 105 | ) |
| 106 | ) |