cleaned history
diff --git a/pcell_setup/mim_pcell.il b/pcell_setup/mim_pcell.il
new file mode 100644
index 0000000..4b1d981
--- /dev/null
+++ b/pcell_setup/mim_pcell.il
@@ -0,0 +1,106 @@
+;; This skill file compiles schematic PCells for BAG primitives for MIM
+
+lib_obj = ddGetObj("BAG_prim")
+
+
+; mim_standard/xcmimc2
+pcDefinePCell(
+ list( lib_obj "mim_standard" "schematic" "schematic")
+ ((unit_width string "1u")
+ (unit_height string "1u")
+ (num_rows string "1")
+ (num_cols string "1")
+ )
+ let((inst iopin_master io_net io_pin)
+ wval = cdfParseFloatString(unit_width) * 1e6
+ lval = cdfParseFloatString(unit_height) * 1e6
+ rval = atoi(num_rows)
+ cval = atoi(num_cols)
+ inst = dbCreateParamInstByMasterName( pcCellView "s8phirs_10r" "cmimc" "symbol"
+ "C0" 0:0 "R0" 1
+ list(list("ctype" "string" "xcmimc2")
+ list("cw" "string" sprintf(nil "%0.2f" wval))
+ list("cl" "string" sprintf(nil "%0.2f" lval))
+ list("nrow" "string" num_rows)
+ list("ncol" "string" num_cols)
+ list("cm" "string" sprintf(nil "%d" rval * cval)))
+ )
+ iopin_master = dbOpenCellViewByType("basic" "iopin" "symbolr" nil "r")
+ io_net = dbCreateNet(pcCellView "TOP")
+ io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "TOP" 0:0.5 "R0")
+ "TOP" dbCreateTerm(io_net "TOP" "inputOutput"))
+ dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c0"))
+ io_net = dbCreateNet(pcCellView "BOT")
+ io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "BOT" 0:-0.75 "R0")
+ "BOT" dbCreateTerm(io_net "BOT" "inputOutput"))
+ dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c1"))
+ )
+)
+
+; mim_45/xcmimc2
+pcDefinePCell(
+ list( lib_obj "mim_45" "schematic" "schematic")
+ ((unit_width string "1u")
+ (unit_height string "1u")
+ (num_rows string "1")
+ (num_cols string "1")
+ )
+ let((inst iopin_master io_net io_pin)
+ wval = cdfParseFloatString(unit_width) * 1e6
+ lval = cdfParseFloatString(unit_height) * 1e6
+ rval = atoi(num_rows)
+ cval = atoi(num_cols)
+ inst = dbCreateParamInstByMasterName( pcCellView "s8phirs_10r" "cmimc" "symbol"
+ "C0" 0:0 "R0" 1
+ list(list("ctype" "string" "xcmimc2")
+ list("cw" "string" sprintf(nil "%0.2f" wval))
+ list("cl" "string" sprintf(nil "%0.2f" lval))
+ list("nrow" "string" num_rows)
+ list("ncol" "string" num_cols)
+ list("cm" "string" sprintf(nil "%d" rval * cval)))
+ )
+ iopin_master = dbOpenCellViewByType("basic" "iopin" "symbolr" nil "r")
+ io_net = dbCreateNet(pcCellView "TOP")
+ io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "TOP" 0:0.5 "R0")
+ "TOP" dbCreateTerm(io_net "TOP" "inputOutput"))
+ dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c0"))
+ io_net = dbCreateNet(pcCellView "BOT")
+ io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "BOT" 0:-0.75 "R0")
+ "BOT" dbCreateTerm(io_net "BOT" "inputOutput"))
+ dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c1"))
+ )
+)
+
+; mim_34/xcmimc1
+pcDefinePCell(
+ list( lib_obj "mim_34" "schematic" "schematic")
+ ((unit_width string "1u")
+ (unit_height string "1u")
+ (num_rows string "1")
+ (num_cols string "1")
+ )
+ let((inst iopin_master io_net io_pin)
+ wval = cdfParseFloatString(unit_width) * 1e6
+ lval = cdfParseFloatString(unit_height) * 1e6
+ rval = atoi(num_rows)
+ cval = atoi(num_cols)
+ inst = dbCreateParamInstByMasterName( pcCellView "s8phirs_10r" "cmimc" "symbol"
+ "C0" 0:0 "R0" 1
+ list(list("ctype" "string" "xcmimc1")
+ list("cw" "string" sprintf(nil "%0.2f" wval))
+ list("cl" "string" sprintf(nil "%0.2f" lval))
+ list("nrow" "string" num_rows)
+ list("ncol" "string" num_cols)
+ list("cm" "string" sprintf(nil "%d" rval * cval)))
+ )
+ iopin_master = dbOpenCellViewByType("basic" "iopin" "symbolr" nil "r")
+ io_net = dbCreateNet(pcCellView "TOP")
+ io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "TOP" 0:0.5 "R0")
+ "TOP" dbCreateTerm(io_net "TOP" "inputOutput"))
+ dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c0"))
+ io_net = dbCreateNet(pcCellView "BOT")
+ io_pin = dbCreatePin(io_net dbCreateInst(pcCellView iopin_master "BOT" 0:-0.75 "R0")
+ "BOT" dbCreateTerm(io_net "BOT" "inputOutput"))
+ dbCreateInstTerm(io_net inst dbFindTermByName(inst~>master "c1"))
+ )
+)