SCMacros.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Monier, July 11, 1986 10:15:48 am PDT
Last Edited by: Louis Monier July 17, 1986 1:51:37 pm PDT
DIRECTORY CD, CDIO, CDOps, CoreClasses, CoreCreate, CoreProperties, PWCore, Rope, SC;
SCMacros: CEDAR PROGRAM
IMPORTS CDIO, CDOps, PWCore, SC
= BEGIN OPEN CoreCreate;
ROPE: TYPE = Rope.ROPE;
SCLayoutAtom: ATOM ← PWCore.RegisterLayoutAtom[$SC, StandardCellLayout, NIL];
-- The cellType to layout is a record cellType containing elements from MSI; the layout proc flattens the Core description and calls the standard cell placer and router.
StandardCellLayout: PWCore.LayoutProc = {
flatCT: CellType ← FlattenCT[cellType];
cdDesign: CD.Design ← CDOps.CreateDesign[libDesign.technology];
obj ← SC.CreateLayout[
technologyKey: cdDesign.technology.key,
horizLayer: "metal",
vertLayer: "metal2",
rowDirection: horizontal,
numRows: 1,
cellType: flatCT,
cdDesign: cdDesign,
libDesign: libDesign,
name: "SCTestSmall"]
};
-- Flatten until the cellType has a $Layout property
FlattenCT: PROC [cellType: CellType] RETURNS [flatCT: CellType] ~ {
FlatInstance: CoreFlat.FlatInstanceProc = {
flatten ← CoreProperties.GetCellTypeProp[instance.type, $Layout]=NIL;
};
flatCT ← CoreFlat.Flatten[cellType, FlatInstance];
};
FlattenCT: PROC [cellType: CellType] RETURNS [flatCT: CellType] ~ {
flatCT ← cellType;
};
libName: ROPE ←"SCLibCMOSB.dale"; -- we should get rid of this design
libDesign: CD.Design ← CDIO.ReadDesign[libName]; -- schematics representation of standard cells
END.