blob: 4b1d981c3e1958e636415040fe34c2eec60aecf1 [file] [log] [blame]
FeliciaG594100d2023-05-04 15:23:24 -07001;; This skill file compiles schematic PCells for BAG primitives for MIM
2
3lib_obj = ddGetObj("BAG_prim")
4
5
6; mim_standard/xcmimc2
7pcDefinePCell(
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
41pcDefinePCell(
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
75pcDefinePCell(
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)