!******************************************************************************* %routine %spec crest (%integer xsize, ysize) %routine %spec text %alias "ILAPTEXT" (%string (31) name, %string (255) text, %integer xsize, ysize) !******************************************************************************* ! Declarations for using ILAP included. %constant %string (2) blue ="M", metal ="M", nm="M" %constant %string (2) green ="D", diffusion="D", nd="D" %constant %string (2) red ="P", poly ="P", np="P" %constant %string (2) implant ="I", ni="I" %constant %string (2) glass ="G", ng="G" %constant %string (2) contact ="C", nc="C" %constant %string (2) buried ="B", nb="B" %constant %integer true = 0, false = 1 %external %routine %spec first cell number (%integer num) %external %routine %spec set lambda (%integer l) %external %integer %map %spec buried contacts %external %integer %map %spec ILAP control %constant %integer no warnings = 1 %constant %integer monitor endsym = 2 %constant %integer give times = 4 %constant %integer merge cif = 8 %constant %integer design rule check = 16 %constant %integer circuit analysis = 32 %constant %integer give node list = 64 %constant %integer give tran list = 128 %constant %integer give node plot = 256 %external %routine %spec merge on %external %routine %spec merge off %external %routine %spec drc on %external %routine %spec drc off %external %routine %spec initialise %alias "INITIALISENMOS" (%string (255) s) %external %routine %spec finish %external %routine %spec give statistics %external %routine %spec end symbol %external %routine %spec symbol (%string (31) name) %external %routine %spec symbol spec (%string (31) name, %integer xl, yl, xu, yu) %external %routine %spec external symbol spec (%string (31) name, %integer number, %integer xl, yl, xu, yu) %external %routine %spec box %alias "ILAPBOX" (%integer xl, yl, xu, yu) %external %routine %spec polygon %alias "ILAPPOLYGON" (%real x, y) %external %routine %spec line %alias "ILAPLINE" (%real x, y) %external %routine %spec wirex (%integer x, y, l) %external %routine %spec wirey (%integer x, y, l) %external %routine %spec ETPX (%string (31) name, %integer x, y, l) %external %routine %spec ETPY (%string (31) name, %integer x, y, l) %external %routine %spec ETDX (%string (31) name, %integer x, y, l) %external %routine %spec ETDY (%string (31) name, %integer x, y, l) %external %routine %spec DTPX (%string (31) name, %integer x, y, l) %external %routine %spec DTPY (%string (31) name, %integer x, y, l) %external %routine %spec DTDX (%string (31) name, %integer x, y, l) %external %routine %spec DTDY (%string (31) name, %integer x, y, l) %external %routine %spec DTDBX (%string (31) name, %integer x, y, l) %external %routine %spec DTDBY (%string (31) name, %integer x, y, l) %external %routine %spec ax (%integer u) %external %routine %spec ay (%integer v) %external %routine %spec axy (%real x, y) %external %routine %spec dx (%integer u) %external %routine %spec dy (%integer v) %external %routine %spec dxy (%real x, y) %external %routine %spec layer (%string (4) colour) %external %string (4) %function %spec clayer %external %routine %spec width (%integer size) %external %integer %function %spec cwidth %external %routine %spec cifcomment (%string (255) s) %external %routine %spec user extension (%integer no, %string (255) s) %external %routine %spec draw (%string (31) name, %integer x, y) %external %routine %spec drawmx (%string (31) name, %integer x, y) %external %routine %spec drawmy (%string (31) name, %integer x, y) %external %routine %spec drawrot (%string (31) name, %integer x, y, rot) %external %routine %spec draw mx rot (%string (31) name, %integer x, y, rot) %external %routine %spec draw my rot (%string (31) name, %integer x, y, rot) %external %integer %function %spec SX (%string (31) name) %external %integer %function %spec SY (%string (31) name) %external %integer %function %spec LX (%string (31) name) %external %integer %function %spec LY (%string (31) name) %external %integer %function %spec symbol exists (%string (31) name) %external %routine %spec dm (%integer x, y) %external %routine %spec pm (%integer x, y) %external %routine %spec pdms (%integer x, y) %external %routine %spec pdmn (%integer x, y) %external %routine %spec pdmw (%integer x, y) %external %routine %spec pdme (%integer x, y) %external %routine %spec pdbn (%integer x, y) %external %routine %spec pdbs (%integer x, y) %external %routine %spec pdbe (%integer x, y) %external %routine %spec pdbw (%integer x, y) %external %routine %spec pdcn (%integer x, y) %external %routine %spec pdcs (%integer x, y) %external %routine %spec pdce (%integer x, y) %external %routine %spec pdcw (%integer x, y) %external %routine %spec pdbns (%integer x, y) %external %routine %spec pdbew (%integer x, y) %external %routine %spec tpla (%string (31) name, %string (127) file, %integer %name phi1y, phi2y, %integer %array %name inx, outx) %external %routine %spec epla (%string (31) name, %string (127) file, %integer %name phi1y, phi2y, %integer %array %name inx, outx) %external %routine %spec equate (%string (255) parm) %external %routine %spec table (%string (255) parm) %external %routine %spec rom (%string (31) name, %string (127) file, %integer %name phi1y, phi2y, %integer %array %name inx, outx) %external %routine %spec stack (%string (31) name, %integer bits, words, %integer %name controlx, controly, pushcony, popcony, phi1x, phi2x, phi3x, phi4x, %integer %array %name pushy, popy) %record %format port (%integer x, w) %external %integer %function %spec route (%string (31) name, %record (port) %array %name a, b, %integer n, %string (4) layer, %integer twid, tsep, sepn) %external %routine %spec croute (%string(31) name, %record(port)%arrayname a,b, %integer n,ya,xb,%string(4) lay,%integer twid,tsep) %external %routine %spec padvdd %external %routine %spec padgnd %external %routine %spec padin (%integername padinx) %external %routine %spec padout (%integername padoutx) %external %routine %spec padclout (%integername padcloutx, padcloutclx) %external %routine %spec padinout (%integername padinoutinx, padinoutoutx, padinoutenx) %record %format connf (%integer type, side, C, W, %string (4) LAYER) %external %routine %spec placepads (%string (31) chipname, cellname, %record (connf) %array %name P, %integer N) !*******************************************************************************