# ******************************************************************* # File: neumos.ext # Based on: scga.ext 3.0 # Technology Setup File: neumos.tdb # LVS element definition file: neumos.elm # Vendor: MOSIS # Technology: 2.0U Generic Technology (Lambda = 1.0um, Technology = SCGA) # copyleft 1993 - Bhusan Gupta / Caltech # tobi added buster's moscaps 7/93 # tobi fixed problem with poly 2 over poly 1 channels, turned on bhusan's # resistors, capacitors, added tetrodes - 11/93 # updated file for cns184 - 2/95 # Matt Clapp added pbase tran, and tunjunct, made everything unique, # and added derived layer explanations - 8/95 # ******************************************************************* # Here are some derived layer definitions: # ---------------------------------------- # xxxx not resistor = xxxx & NOT resistor ID # field active = NOT(all poly) & active # native diffusion = Select & field active # substrate = NOT well # other diffusion = field active & NOT select # all bulks = well | substrate # real Pbase xsistor = gate & real PBase # real native xsistor = gate & substrate & NOT PBase # real other xsistor = gate & Well & NOT Select # real NPN xsistor = real Pbase & Well & native diffusion # tunnode = other transistor & Select & NOT Pbase # # Note: 'real' also denotes " & NOT 'extractor ignore'" connect(Well not resistor, native diffusion, not PBase) #connect(Well, native diffusion, not PBase) connect(substrate, other diffusion, other diffusion) connect(other diffusion, PBase, other diffusion) connect(PBase, substrate, PBase) connect(native diffusion, Metal1, ActiveContact) connect(other diffusion, Metal1, ActiveContact) connect(poly not resistor, Metal1, PolyContact) #connect(Poly, Metal1, PolyContact) connect(Poly2, Metal1, Poly2Contact) connect(poly2 not poly, Poly2, Poly2) connect(Metal1, Metal2, Via) connect(all bulks, substrate, substrate) # preceding statement connects substrate even when # separated by a ring of well diffusion # this is necessary to handle NPN's correctly. # but requires connection between Gnd and Padgnd, for example. # to make this connection, place only ONE of these in # the port statement, but NOT both. then connect the two labels # with a wire - tobi # PBase MOS transistor with poly1 gate device = SUBCKT( RLAYER = real PBase transistor; Drain = native diffusion, WIDTH; Gate = poly not resistor; Source = native diffusion, WIDTH; Bulk = all bulks; MODEL = pbase; ) # NMOS transistor with poly1 gate device = MOSFET( RLAYER=real native transistor; Drain=native diffusion, WIDTH; Gate=poly not resistor; Source=native diffusion, WIDTH; Bulk=substrate; MODEL=NMOS1; ) # PMOS transistor with poly1 gate device = MOSFET( RLAYER=real other transistor; Drain=other diffusion, WIDTH; Gate=poly not resistor; Source=other diffusion, WIDTH; Bulk=Well not resistor; MODEL=PMOS1; ) # NMOS transistor with poly2 gate device = MOSFET( RLAYER=real native transistor; Drain=native diffusion, WIDTH; Gate=poly2 not poly; Source=native diffusion, WIDTH; Bulk=substrate; MODEL=NMOS1; ) # PMOS transistor with poly2 gate device = MOSFET( RLAYER=real other transistor; Drain=other diffusion, WIDTH; Gate=poly2 not poly; Source=other diffusion, WIDTH; Bulk=Well not resistor; MODEL=PMOS1; ) # NPN transistor device = BJT( RLAYER=real NPN transistor; Coll=Well not resistor; Base=PBase; Emit=native diffusion; Subs=all bulks; MODEL=NPN1; ) # # Poly resistor device = RES( RLAYER=Resistor ID; Plus=poly not resistor, WIDTH; Minus=poly not resistor, WIDTH; MODEL=; ) # # Well resistor device = RES( RLAYER=well resistor ID; Plus=Well not resistor, WIDTH; Minus=Well not resistor, WIDTH; MODEL=; ) # Poly-Poly2 capacitor device = CAP( RLAYER=Capacitor ID; Plus=poly not resistor; Minus=Poly2; MODEL=; ) # Bonding Area device = SUBCKT( RLAYER=PadComment; Pin1=Metal1; MODEL= PADBOND; ) # MOSCAPX is a MOS capacitor where X is channel type (N or P) device = SUBCKT( RLAYER=real native transistor; Gate=poly not resistor; Diff=native diffusion, WIDTH; Bulk=substrate; MODEL=MOSCAPN; ) device = SUBCKT( RLAYER=real native transistor; Gate2=poly2 not poly; Diff2=native diffusion, WIDTH; Bulk2=substrate; MODEL=MOSCAPN; ) device = SUBCKT( RLAYER=real other transistor; Gate=poly not resistor; Diff=other diffusion, WIDTH; Bulk=Well not resistor; MODEL=MOSCAPP; ) device = SUBCKT( RLAYER=real other transistor; Gate2=poly2 not poly; Diff2=other diffusion, WIDTH; Bulk2=Well not resistor; MODEL=MOSCAPP; ) # tetrodes - transistors with overlapping Poly and Poly2 gates device = SUBCKT( RLAYER=real native transistor; Source=native diffusion, WIDTH; Gate1=poly not resistor; Gate2=poly2 not poly; Drain=native diffusion, WIDTH; Bulk=substrate; MODEL=TETRODEN; ) device = SUBCKT( RLAYER=real other transistor; Source=other diffusion, WIDTH; Gate1=poly not resistor; Gate2=poly2 not poly; Drain=other diffusion, WIDTH; Bulk=Well not resistor; MODEL=TETRODEP; ) device = SUBCKT( RLAYER=tunnode; Tun=Well not resistor; FloatingGate=poly not resistor; MODEL=tunjunct; )