-- definitions module for random logic layout subroutine -- written by Petit, September 26, 1981 6:35 PM DIRECTORY SegmentDefs, ppdefs; rldefs: DEFINITIONS IMPORTS SegmentDefs, ppdefs = BEGIN OPEN ppdefs, SegmentDefs; -- gate stuff: gateCharac:TYPE = RECORD[inCnt,norCnt:INTEGER,-- norCnt is maxCnt for Sequence ands:SEQUENCE COMPUTED CARDINAL OF [0..255] ]; gate:TYPE = RECORD [nxt:LONG POINTER TO gate, charac:LONG POINTER TO gateCharac, firstInTopAvail:BOOLEAN, lSpac,rSpac:[0..7], parmNum:[0..255], cell:LONG POINTER TO cList, inCnt:INTEGER,-- this is the maxCount for the Sequence gnd:Point, firstInTop:Point, out:Point, ins:SEQUENCE COMPUTED CARDINAL OF Point ]; GateList:TYPE = RECORD[nxt:LONG POINTER TO GateList, gat:LONG POINTER TO gate, x,y:locNum, outNode:INTEGER, nodes:SEQUENCE nodeCnt:CARDINAL OF [0..255] ]; mContProcd:TYPE = PROCEDURE[lCnt,rCnt,x,y,maxy:INTEGER, lp:LONG POINTER TO list,totIns:INTEGER] RETURNS[dx,wid:INTEGER,nl:LONG POINTER TO list]; mAndProcd:TYPE = PROCEDURE[aCnt,x,y:INTEGER,lp:LONG POINTER TO list, inputs:INTEGER,gat:LONG POINTER TO gate,totIns:INTEGER] RETURNS[dx,wid:INTEGER,nl:LONG POINTER TO list]; mTWProcd:TYPE = PROCEDURE[x:INTEGER,lp:LONG POINTER TO list,totIns:INTEGER] RETURNS[dx:INTEGER,nl:LONG POINTER TO list]; mPuProcd:TYPE = PROCEDURE[x1,x2,mx:INTEGER, lp:LONG POINTER TO list,gat:LONG POINTER TO gate,totIns:INTEGER] RETURNS[dx:INTEGER,nl:LONG POINTER TO list]; calcMyProcd:TYPE = PROCEDURE[gc:LONG POINTER TO gateCharac] RETURNS[my:INTEGER]; parmaCnt:TYPE = [1..5]; gateTypeRecord:TYPE = RECORD[ wWid,mwWid:INTEGER, norWireOff:INTEGER, standWidth:INTEGER, strtY,invOff:INTEGER, putWid,putLen:INTEGER, makAnd:mAndProcd, makPu:mPuProcd, makConts:mContProcd, makTopWire:mTWProcd, calcMaxy:calcMyProcd ]; downWireRec:TYPE = RECORD [ node,x,y,tx,ty:INTEGER, fixed:BOOLEAN,leftEnd,rightEnd,andCnt:[0..31], wiredLeft,topWireable:BOOLEAN,dwLeft:[0..37777B], wiredRight:BOOLEAN,dwRight:[0..37777B] ]; blockageType:TYPE = {none,met,poly,cell}; hLineRec:TYPE = RECORD [ btyp:blockageType,distance:[-20..5000] ]; -- ****** Stuff From rlgate.mesa: getGate:PROCEDURE[gc:LONG POINTER TO gateCharac,parms:INTEGER] RETURNS[gat:LONG POINTER TO gate] ; -- ****** Stuff From rlin.mesa: myZone: UNCOUNTED ZONE ; fileErr: SIGNAL; abbrt: SIGNAL; inputCircuit:PROCEDURE RETURNS[pnt:LONG POINTER TO GateList, dwCnt,maxNN:INTEGER]; END.