DIRECTORY Core, CoreClasses, CoreProperties, CoreOps, IO, SC, SCTestUtil, ViewerIO; SCTestCoreTiny: CEDAR PROGRAM IMPORTS CoreOps, CoreProperties, SCTestUtil, SC, ViewerIO EXPORTS SCTestUtil = BEGIN debug: BOOLEAN _ FALSE; CreateCore: PUBLIC PROC [] RETURNS [Core.CellType] = BEGIN nandWires: Core.Wire _ SCTestUtil.CreateWire[LIST["InA", "InB", "Out", "Vdd", "Gnd"]]; nand: Core.CellType _ SCTestUtil.CreateRecordCell["NAND", nandWires, nandWires, NIL]; invWires: Core.Wire _ SCTestUtil.CreateWire[LIST["In", "Out", "Vdd", "Gnd"]]; inverter: Core.CellType _ SCTestUtil.CreateRecordCell["Inverter", invWires, invWires, NIL]; pubWires: Core.Wire _ SCTestUtil.CreateWire[LIST["InA", "InB", "Out", "Vdd", "Gnd"]]; privateWires: Core.Wire _ SCTestUtil.CreateWire[LIST["NOut"]]; internWires: Core.Wire _ SCTestUtil.UnionWire[pubWires, privateWires]; nandInst: CoreClasses.CellInstance _ SCTestUtil.CreateInstance[LIST["InA", "InB", "NOut", "Vdd", "Gnd"], nand, "nandInst", internWires]; invInst: CoreClasses.CellInstance _ SCTestUtil.CreateInstance[LIST["NOut", "Out", "Vdd", "Gnd"], inverter, "invInst", internWires]; SCTest: Core.CellType _ SCTestUtil.CreateRecordCell["SCTest", pubWires, internWires, LIST[nandInst, invInst]]; index: INT _ CoreOps.GetWireIndex[privateWires, "NOut"]; privateWires.elements[index].properties _ CoreProperties.PutProp[privateWires.elements[index].properties, SC.unconnectedProp, NEW[ATOM _ SC.unconnectedProp]]; IF debug THEN { out: IO.STREAM _ ViewerIO.CreateViewerStreams[ name: "Core: SCTest", viewer: NIL, editedStream: FALSE].out; CoreOps.PrintCellType[SCTest, out]}; RETURN [SCTest]; END; END. ΘSCTestCoreTiny.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Frank Bowers December 19, 1985 10:36:54 am PST Bryan Preas March 24, 1986 5:11:33 pm PST Create a Core design Κ˜˜Jšœ™šœ Οmœ1™˜>JšœF˜FJšœˆ˜ˆJšœƒ˜ƒJšœUžœ˜nJšœžœ.˜8Jšœjžœžœ˜žšžœžœ˜šœžœžœ ˜.J˜Jšœžœ˜ Jšœžœ˜—Jšœ$˜$—Jšžœ ˜Jšžœ˜J˜—Jšžœ˜J˜——…—hΘ