-- File: DJExtTypes.mesa -- Global types used by disjoint extractor program -- Written by Martin Newell/Dan Fitzpatrick June 1981 -- Last edited: July 31, 1981 2:48 PM DJExtTypes: DEFINITIONS = BEGIN Edge: TYPE = LONG POINTER TO EdgeRecord; EdgeRecord: TYPE = RECORD [ next: Edge, count: CARDINAL, bx, by, tx, ty: REAL, segment: Segment ]; NodeNumber: TYPE = LONG UNSPECIFIED; Node: TYPE = LONG POINTER TO NodeRecord; NodeRecord: TYPE = RECORD [ next: Node, back: Node, node: NodeNumber, type: NodeType, var: SELECT OVERLAID * FROM cap => [ cperim: ARRAY CapLayer OF REAL, carea: ARRAY CapLayer OF REAL ], trans => [ poly: NodeNumber, diff: Diffusion, x,y: REAL, -- location area: REAL, -- area of gate region perim: REAL, -- perimeter of gate region ion: BOOLEAN, -- set if any part of gate is in implant nion: BOOLEAN -- set if any part of gate is not in implant ] ENDCASE ]; NodeType: TYPE = {Transistor, Capacitor, Unknown}; CapLayer: TYPE = {Poly, Diff, Metal}; Diffusion: TYPE = LONG POINTER TO DiffusionRecord; DiffusionRecord: TYPE = RECORD [ next: Diffusion, node: NodeNumber, length: REAL ]; Position: TYPE = {Left,Bottom,Right,Top}; Segment: TYPE = LONG POINTER TO SegmentRecord; SegmentRecord: TYPE = RECORD [ next: Segment, layer: INTEGER, node: NodeNumber, pos: Position, bx, by, tx, ty: REAL ]; Box: TYPE = LONG POINTER TO BoxRecord; BoxRecord: TYPE = RECORD [ next: Box, layer: INTEGER, node: NodeNumber, l,b,r,t: REAL ]; Side: TYPE = LONG POINTER TO SideRecord; SideRecord: TYPE = RECORD [ next: Side, layer: INTEGER, node: NodeNumber, pos: Position, x,b,t: REAL ]; NodeSegment: TYPE = LONG POINTER TO NodeSegmentRecord; NodeSegmentRecord: TYPE = RECORD [ next: NodeSegment, layer: INTEGER, node: NodeNumber, left: REAL, right: REAL ]; ActualParameter: TYPE = LONG POINTER TO ActualParameterRecord; ActualParameterRecord: TYPE = RECORD [ next: ActualParameter, count: CARDINAL, node: ARRAY [0..APLimit) OF NodeNumber ]; APLimit: CARDINAL = 16; NodeLocation: TYPE = LONG POINTER TO NodeLocationRecord; NodeLocationRecord: TYPE = RECORD [ next: NodeLocation, node: NodeNumber, x,y: REAL ]; implant: CARDINAL = 0; diff: CARDINAL = 1; poly: CARDINAL = 2; cut: CARDINAL = 3; metal: CARDINAL = 4; buried: CARDINAL = 5; glass: CARDINAL = 6; gate: CARDINAL = 9; END. (1792)\169b11B577i19I24i24I24i37I24i41I