<> <> <> <> <<>> <> <<>> DIRECTORY Core USING [CellType, ROPE, Wire], CoreClasses USING [CellInstance, TransistorType]; CoreBeau: CEDAR DEFINITIONS = BEGIN <> CellType: TYPE = Core.CellType; ROPE: TYPE = Core.ROPE; Wire: TYPE = Core.Wire; CellInstance: TYPE = CoreClasses.CellInstance; TransistorType: TYPE = CoreClasses.TransistorType; <> WR: TYPE = REF; <> <<>> WireList: PROC [wrs: LIST OF WR _ NIL] RETURNS [Wire]; <> <<>> Wires: PROC [wr1, wr2, wr3, wr4, wr5, wr6, wr7, wr8, wr9, wr10, wr11, wr12, wr13: WR _ NIL] RETURNS [Wire]; <> <<>> Seq: PROC [wr: WR, size: NAT] RETURNS [Wire]; <> <<>> Index: PROC [wr: WR, index: NAT] RETURNS [WR]; <> <<>> Indexes: PROC [wr: WR, start: NAT _ 0, length: NAT] RETURNS [Wire]; <> <<>> <> PA: TYPE = RECORD [public, actual: WR]; <> <<>> Instance: PROC [type: CellType, pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9, pa10, pa11, pa12, pa13: PA _ []] RETURNS [CellInstance]; <> <<>> Cell: PROC [name: ROPE _ NIL, public, onlyInternal: Wire _ NIL, instances: LIST OF CellInstance] RETURNS [CellType]; <> <> Transistor: PROC [name: ROPE _ NIL, type: TransistorType _ nE, length: NAT _ 2, width: NAT _ 4] RETURNS [CellType]; <> <<>> SequenceCell: PROC [name: ROPE _ NIL, baseCell: CellType, count: NAT, sequencePorts: Wire _ NIL] RETURNS [CellType]; <> <> FindWire: PROC [cell: CellType, wr: WR] RETURNS [Wire]; <> END.