Adding in the Library
schLibrary: Rope.ROPE = "SCLibCMOSBSch";
maskLibrary: Rope.ROPE = "SCLibCMOSBMask";
MakeSCCell:
PROC [name, schName: Rope.
ROPE] ~ {
sch: Core.CellType ← LogicUtils.LibraryGet[schLibrary, schName];
PWCore.SetLayout[sch, $GetLibrary, $Library, maskLibrary];
[] ← CoreDirectory.Insert[library, name, sch];
};
[] ← PWCore.RegisterLayoutAtom[$GetLibrary, LayoutLibrary, DecorateLibrary];
Basic combinatorial cells
MakeSCCell["gnd", "gnd.sch"];
MakeSCCell["vdd", "vdd.sch"];
MakeSCCell["inv", "inv.sch"];
MakeSCCell["invBuffer", "invBuffer.sch"];
MakeSCCell["tstDriver", "tstDriver.sch"];
MakeSCCell["rec2V", "rec2V.sch"];
MakeSCCell["recTTL", "recTTL.sch"];
MakeSCCell["and2", "and2.sch"];
MakeSCCell["and3", "and3.sch"];
MakeSCCell["and4", "and4.sch"];
MakeSCCell["nand2", "nand2.sch"];
MakeSCCell["nand3", "nand3.sch"];
MakeSCCell["nand4", "nand4.sch"];
MakeSCCell["or2", "or2.sch"];
MakeSCCell["or3", "or3.sch"];
MakeSCCell["or4", "or4.sch"];
MakeSCCell["nor2", "nor2.sch"];
MakeSCCell["nor3", "nor3.sch"];
MakeSCCell["nor4", "nor4.sch"];
MakeSCCell["xor2", "xor2.sch"];
MakeSCCell["xnor2", "xnor2.sch"];
MakeSCCell["a22o2i", "a22o2i.sch"];
MakeSCCell["o22a2i", "o22a2i.sch"];
MakeSCCell["a21o2i", "a21o2i.sch"];
MakeSCCell["o21a2i", "o21a2i.sch"];
MakeSCCell["pd", "pd.sch"];
MakeSCCell["pu", "pu.sch"];
MakeSCCell["pdw", "pdw.sch"];
MakeSCCell["puw", "puw.sch"];