TECC(1ICD)

NAME
tecc - technology compiler for space

SYNOPSIS
tecc [-sn] [-p process] file

OPTIONS
The following options can be specified: Silent mode. Do not compress table-format element-definition file. This option is useful during element-definition file development. It makes tecc run faster, and space somewhat slower. Specifies the process. The default process is determined by the current project directory.

DESCRIPTION
The program tecc acts as a pre-processor for technology descriptions for the circuit extraction program space. From a user-defined element-definition file, tecc produces a table-format element-definition file that can be used as input for space.

The user-defined input file should have the extension '.s', while the table-format output file will be called to the input file with '.t' substituted for '.s'.

THE ELEMENT DEFINITION FILE
In the user-defined element-definition file the elements are listed that can be recognized from the layout description. For each of the elements, at least a name and a condition list has to be specified.

The name of an element is used to identify the element when error messages are generated or, for transistor elements, to identify the element in the circuit that is extracted. It is not allowed to use the same name in more than one element definition.

A condition list specifies how the presence of a particular element depends on the presence or absence of the different masks. To denote that an element requires the presence of a mask, this mask has to be included in its condition list as a single mask name. To denote that an element requires the absence of a certain mask, this mask has to be included in its condition list as a mask name preceded with a '!' sign. When the presence of the element does not depend on the mask, the mask should simply be omitted from the condition list. Alternative condition lists might be specified for an element definition by separating them with a '|' character.

References to masks in adjacent areas can be made by preceding the mask names with a '-' character, or a '=' character. The following (cross-section) gives an example.
   ------------+                +-------------
       =in     |                |    -in
   ------------+                +-------------

               +------------------------------
               |        ps           -ps
               +------------------------------
    ------------------------------------------
                     substrate
When preceding the mask name with a '-' character, a reference is made to a mask that is in an adjacent area. When preceding the mask name with a '=' character, a reference is made to a mask that is in an area that is opposite to the area that contains the masks preceded with the '-' sign. The above can be used to define the elements that are present on the boundary between two regions of different mask combinations (e.g. edge capacitances) or elements that are present between the boundaries themselves (e.g. lateral capacitances between parallel wires).

In the following, the syntax and semantics of the element-definition file is described. The element-definition file may contain specifications for the key list, the units, the conductor elements, the transistor elements, the contact elements and the capacitance elements. Each of these specifications is optional but their order is fixed.

  The key list:

keys: mask1 mask2 ... maskN

In the key list the masks are enumerated that should be used as key masks during element recognition. Based on the key masks tecc produces a hash table that allows space to find circuit elements without separately checking the element conditions that refer to the presence or absence of the key masks. Adjacent masks (that are specified by preceding them with a '-' or '=' character) might also be used as a key mask. By carefully choosing the key masks, the speed of element recognition will be optimal, while the hash table will be not too large (the size of the hash table will be equal to 2 ^ N, where N is the number of key masks).

When no key list is specified, but

maxkeys N

is specified instead, tecc will select the key masks itself. Up to a maximum of N, tecc will select the masks that are most frequently used for specifying the element conditions.

When neither a key list nor a maximum number of keys is specified, tecc will assume that maxkeys is equal to 10.

  Unit specification:

unit variable value
  .
  .

With one of the above commands, the unit of a variable in the conductor list, the contact list or the capacitance list is specified. The string variable can be either resistance to specify the unit for sheet resistance, c_resistance to specify the unit for contact resistance, a_capacitance to specify the unit for area capacitance, e_capacitance to specify the unit for edge capacitance or capacitance to specify the unit for capacitance. The unit of each variable is specified by value, expressed in S.I. units.

  The conductor list:

conductors:

   name : condition_list(s) : mask : sheet-resistivity
     .
     .

The conductor list contains the definitions for the conducting layers in the circuit. For each conductor specification, a specification of the actual conductor mask and a specification of the sheet-resistivity (in ohms) is required.

  The transistor list

transistors:

   name : condition_list(s) : mask_g mask_ds
     .
     .

For a transistor, the name and the condition list are followed by a specification of the gate mask mask_g and the drain/source mask mask_ds. Both the gate mask and the drain/source mask should have been defined as a conductor mask.

  The contact list

contacts:

   name : condition_list(s) : mask1 mask2 : contact-resistance
     .
     .

The contact elements connect different conductors that are on top of each other. Mask1 and mask2 are the conductor masks that are connected by the contact. The parameter at the end of the specification specifies the contact resistance in ohm for a (hypothetical) contact of 1 meter * 1 meter.

  The capacitance list

capacitances:

   name : condition_list(s) : mask1 [ mask2 ] : capacitivity
     .
     .

In the capacitance list, both ground and coupling capacitances can be defined. Ground capacitances are defined by specifying only mask1, while coupling capacitances are defined by specifying both mask1 and mask2.

Furthermore, capacitances are distinguished between surface capacitances, edge capacitances and lateral capacitances. To define edge capacitance, masks preceded with a '-' character are used in the condition list, and either mask1 or mask2 has to be preceded with a '-' character. To define lateral capacitances, masks preceded with a '-' character and mask preceded with a '=' character are used in the condition list, and mask1 is preceded with a '-' character while mask2 is preceded with a '=' character.

For surface capacitances, capacitivity is the capacitance per square meter. For edge capacitances, capacitivity is the capacitance per meter edge length. For lateral capacitances, capacitivity is the capacitance for a configuration where the spacing between two parallel wires is equal to length of the two wires. (It is assumed the lateral coupling capacitance is proportional to length of the shading area between the two wires and inverse proportional to their spacing.)

  Comment
Comments can be included in the element-definition file by preceding them with a '#' character. All text following the '#' character, until the end of the line, will be skipped as comment.

EXAMPLE
The following gives an example of a complete element-definition file for a cmos process.
# process : c5th
# author  : A.J. van Genderen, TU-Delft
# date    : Feb. 15, 1988
unit resistance    1     # Ohm
unit c_resistance  1e-12 # Ohm per meter ^ 2
unit a_capacitance 1e-3  # Farad per meter ^ 2
unit e_capacitance 1e-9  # Farad per meter
unit e_capacitance 1e-18 # Farad
conductors :
    condM  : in         : in : 0.040
    condP1 : ps sp      : ps : 33
    condP2 : ps sn      : ps : 30
    condP3 : ps !sn !sp : ps : 20
    condD1 : od !ps sp  : od : 45    # p+
    condD2 : od !ps sn  : od : 30    # n+
    condD3 : od !ps !sn !sp  : od : 38    # terminal
transistors :
    nenh : ps od sn !sp !nw !cop !con !cps : ps od
    penh : nw ps od sp !sn !cop !con !cps  : ps od
contacts :
    contP  : cps in ps !od : in ps : 90
    contD1 : con in od !ps : in od : 270
    contD2 : cop in od !ps : in od : 90
capacitances :
  # ground capacitances
    capM  : in !ps !od      : in  : 0.036
    capMe : !in -in !ps !od : -in : 0.080
    capP  : ps !od      : ps  : 0.069
    capPe : !ps -ps !od : -ps : 0.051
    capD1  : od !ps sn        : od  : 0.041   # diff - substr
    capD1e : !od !-ps -od -sn : -od : 0.21    # diff - substr
    capD2  : od !ps sp        : od  : 0.120   # diff - well
    capD2e : !od !-ps -od -sp : -od : 0.80    # diff - well
  # coupling capacitances
    capMP  : in      ps : in ps  : 0.075
    capMPe : !in -in ps : -in ps : 0.090
    capMD1  : in      !ps od sn :  in od : 0.065
    capMD1e : !in -in !ps od sn : -in od : 0.090
    capMD2  : in      !ps od sp :  in od : 0.066
    capMD2e : !in -in !ps od sp : -in od : 0.090
  # lateral coupling capacitances
    capMeMe : -in !in =in : -in =in : 2.4
    capPePe : -ps !ps =ps : -ps =ps : 1.8
    capMePe : -in !in !ps =ps : -in =ps : 1.2

AUTHOR
A.J. van Genderen.

FILES
file.s	input file
file.t	output file

SEE ALSO
space(1ICD),

DIAGNOSTICS
When no silent mode is specified, tecc will print information about the hash table that is being constructed for element recognition. This information can be used to tune the specification of the key masks.

Furthermore, tecc will check if legal mask names are used and if conductor masks are used with transistor, contact and capacitance definitions. During extraction itself it will be checked if appropriate conductor elements are present; for transistor elements and capacitance elements this required, for contact elements this is not required.