Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
EXT(5)			       File Formats Manual			  EXT(5)

NAME
     ext - format of .ext files produced by Magic's hierarchical extractor

DESCRIPTION
     Magic's  extractor produces a .ext file for each cell in a hierarchical de-
     sign.  The .ext file for cell name is name.ext.  This file  contains  three
     kinds of information: environmental information (scaling, timestamps, etc),
     the  extracted circuit corresponding to the mask geometry of cell name, and
     the connections between this mask geometry and the subcells of name.

     A .ext file consists of a series of lines, each of which begins with a key-
     word.  The keyword beginning a line determines how  the  remainder  of  the
     line  is interpreted.  The following set of keywords define the environmen-
     tal information:

     tech techname
	    Identifies the technology of cell name as techname, e.g, nmos, cmos.

     timestamp time
	    Identifies the time when cell name was  last  modified.   The  value
	    time  is the time stored by Unix, i.e, seconds since 00:00 GMT Janu-
	    ary 1, 1970.  Note that this is not the time name was extracted, but
	    rather the timestamp value stored in the .mag file.  The incremental
	    extractor compares the timestamp in each .ext file	with  the  time-
	    stamp  in  each  .mag file in a design; if they differ, that cell is
	    re-extracted.

     version version
	    Identifies the version of .ext format used to write  name.ext.   The
	    current version is 5.1.

     style style
	    Identifies the style that the cell has been extracted with.

     scale rscale cscale lscale
	    Sets  the  scale to be used in interpreting resistance, capacitance,
	    and linear dimension values in the remainder of the .ext file.  Each
	    resistance value must be multiplied by rscale to give the  real  re-
	    sistance in milliohms.  Each capacitance value must be multiplied by
	    cscale  to give the real capacitance in attofarads.  Each linear di-
	    mension (e.g, width, height, transform coordinates) must  be  multi-
	    plied  by  lscale to give the real linear dimension in centimicrons.
	    Also, each area dimension (e.g, transistor	channel  area)	must  be
	    multiplied	by  scale*scale to give the real area in square centimi-
	    crons.  At most one scale line may appear in a .ext file.	If  none
	    appears, all of rscale, cscale, and lscale default to 1.

     resistclasses r1 r2 ...
	    Sets  the  resistance  per square for the various resistance classes
	    appearing in the technology file.  The values r1, r2,  etc.  are  in
	    milliohms;	they  are not scaled by the value of rscale specified in
	    the scale line above.  Each node in a .ext file has a perimeter  and
	    area for each resistance class; the values r1, r2, etc.  are used to
	    convert  these  perimeters	and  areas into actual node resistances.
	    See ``Magic Tutorial #8: Circuit Extraction'' for a  description  of
	    how  resistances  are computed from perimeters and areas by the pro-
	    gram ext2sim.

     The following keywords define the circuit formed by the mask information in
     cell name.  This circuit is extracted independently of  any  subcells;  its
     connections  to  subcells	are handled by the keywords in the section after
     this one.

     node name R C x y type a1 p1 a2 p2 ... aN pN
	    Defines an electrical node in name.  This node is referred to by the
	    name name in subsequent equiv lines, connections to the terminals of
	    transistors in fet lines, and hierarchical	connections  or  adjust-
	    ments  using  merge  or adjust.  The node has a total capacitance to
	    ground of C attofarads, and a lumped resistance of R milliohms.  For
	    purposes of going back from the node name to the  geometry	defining
	    the  node,	(x,y)  is the coordinate of a point inside the node, and
	    type is the layer on which this point appears.  The values	a1,  p1,
	    ...  aN,  pN  are the area and perimeter for the material in each of
	    the resistance classes described by the resistclasses  line  at  the
	    beginning  of  the	.ext  file; these values are used to compute ad-
	    justed hierarchical resistances more accurately.  NOTE:  since  many
	    analysis  tools  compute transistor gate capacitance themselves from
	    the transistor's area and perimeter, the capacitance between a  node
	    and  substrate (GND!) normally does not include the capacitance from
	    transistor gates connected to that node.  If the .sim file was  pro-
	    duced by ext2sim(1), check the technology file that was used to pro-
	    duce  the original .ext files to see whether transistor gate capaci-
	    tance is included or excluded; see ``Magic Maintainer's  Manual  #2:
	    The Technology File'' for details.

     attr name xl yl xh yh type text
	    One  of  these  lines appears for each label ending in the character
	    ``@'' that was attached to geometry in the node name.  The	location
	    of	each  attribute  label (xl yl xh yh) and the type of material to
	    which it was attached (type) are given along with the  text  of  the
	    label minus the trailing ``@'' character (text).

     equiv node1 node2
	    Defines  two  node names in cell name as being equivalent: node1 and
	    node2.  In a collection of node names related by  equiv  lines,  ex-
	    actly one must be defined by a node line described above.

     fet type xl yl xh yh area perim sub GATE T1 T2 ...
	    Defines  a	transistor  in	name.  The kind of transistor is type, a
	    string that comes from the technology file and is intended	to  have
	    meaning  to  simulation  programs.	 The coordinates of a square en-
	    tirely contained in the gate region of the transistor  are	(xl, yl)
	    for its lower-left and (xh, yh) for its upper-right.  All four coor-
	    dinates are in the name's coordinate space, and are subject to scal-
	    ing  as described in scale above.  The gate region of the transistor
	    has area area square centimicrons and perimeter perim  centimicrons.
	    The substrate of the transistor is connected to node sub.

	    The  remainder  of a fet line consists of a series of triples: GATE,
	    T1, ....  Each describes one of the terminals of the transistor; the
	    first describes the gate, and the remainder  describe  the	transis-
	    tor's  non-gate terminals (e.g, source and drain).	Each triple con-
	    sists of the name of a node connecting to that terminal, a	terminal
	    length,  and  an attribute list.  The terminal length is in centimi-
	    crons; it is the length of that segment  of  the  channel  perimeter
	    connecting to adjacent material, such as polysilicon for the gate or
	    diffusion for a source or drain.

	    The  attribute list is either the single token ``0'', meaning no at-
	    tributes, or a comma-separated list of strings.  The strings in  the
	    attribute list come from labels attached to the transistor.  Any la-
	    bel ending in the character ``^'' is considered a gate attribute and
	    appears  on  the  gate's  attribute  list, minus the trailing ``^''.
	    Gate attributes may lie either along the border of a channel  or  in
	    its interior.  Any label ending in the character ``$'' is considered
	    a  non-gate attribute.  It appears on the list of the terminal along
	    which it lies, also minus the trailing ``$''.   Non-gate  attributes
	    may only lie on the border of the channel.

     The keywords in this section describe information that is not processed hi-
     erarchically:  path  lengths  and accurate resistances that are computed by
     flattening an entire node and then producing  a  value  for  the  flattened
     node.

     killnode node
	    During  resistance	extraction, it is sometimes necessary to break a
	    node up into several smaller nodes.  The appearance  of  a	killnode
	    line during the processing of a .ext file means that all information
	    currently  accumulated  about  node, along with all fets that have a
	    terminal connected to node, should be thrown out;  it  will  be  re-
	    placed by information later in the .ext file.  The order of process-
	    ing  .ext  files  is  important  in order for this to work properly:
	    children are processed before their parents, so a killnode in a par-
	    ent overrides one in a child.

     resist node1 node2 R
	    Defines a resistor of R milliohms between the two  nodes  node1  and
	    node2.  Both names are hierarchical.

     distance name1 name2 dmin dmax
	    Gives the distance between two electrical terminals name1 (a driver)
	    and  name2	(a  receiver).	 Note  that  these are terminals and not
	    nodes: the names (which are hierarchical label names)  are	used  to
	    specify  two  different  locations on the same electrical node.  The
	    two distances, dmin and dmax, are the lengths  (in	lambda)  of  the
	    shortest and longest acyclic paths between the driver and receiver.

     The  keywords  in this last section describe the subcells used by name, and
     how connections are made to and between them.

     use def use-id TRANSFORM
	    Specifies that cell def with instance identifier use-id is a subcell
	    of cell name.  If cell def is arrayed, then use-id will be	followed
	    by	two  bracketed	subscript  ranges of the form: [lo,hi,sep].  The
	    first range is for x, and the second for y.  The  subscripts  for  a
	    given  dimension are lo through hi inclusive, and the separation be-
	    tween adjacent array elements is sep centimicrons.

	    TRANSFORM is a set of six integers that describe how coordinates  in
	    def  are to be transformed to coordinates in the parent name.  It is
	    used by ext2sim(1) in transforming transistor locations  to  coordi-
	    nates  in  the  root  of  a  design.   The six integers of TRANSFORM
	    (ta, tb, tc, td, te, tf) are interpreted as components in  the  fol-
	    lowing  transformation  matrix,  by which all coordinates in def are
	    post-multiplied to get coordinates in name:

				ta   td   0
				tb   te   0
				tc   tf   1

     merge path1 path2 C a1 p1 a2 p2  ... aN pN
	    Used to specify a connection between two subcells, or between a sub-
	    cell and mask information of name.	Both path1 and path2 are hierar-
	    chical node names.	To refer to a node  in	cell  name  itself,  its
	    pathname  is just its node name.  To refer to a node in a subcell of
	    name, its pathname consists of the use-id of the subcell (as it  ap-
	    peared  in	a  use line above), followed by a slash (/), followed by
	    the node name in the subcell.  For example, if name contains subcell
	    sub with use identifier sub-id, and sub contains node  n,  the  full
	    pathname of node n relative to name will be sub-id/n.

     Connections  between  adjacent elements of an array are represented using a
     special syntax that takes advantage of the regularity of arrays.  A  use-id
     in a path may optionally be followed by a range of the form [lo:hi] (before
     the  following  slash).   Such  a	use-id is interpreted as the elements lo
     through hi inclusive of a one-dimensional array.  An element of  a  two-di-
     mensional array may be subscripted with two such ranges: first the y range,
     then the x range.

     Whenever  one  path  in  a  merge line contains such a subscript range, the
     other must contain one of comparable size.  For example,

	       merge  sub-id[1:4,2:8]/a  sub-id[2:5,1:7]/b

     is acceptable because the range 1:4 is the same size as 2:5, and the  range
     2:8 is the same size as 1:7.

     When  a  connection occurs between nodes in different cells, it may be that
     some resistance and capacitance has been recorded redundantly.   For  exam-
     ple, polysilicon in one cell may overlap polysilicon in another, so the ca-
     pacitance	to  substrate  will have been recorded twice.  The values C, a1,
     p1, etc. in a merge line provide a way of compensating  for  such	overlap.
     Each of a1, p1, etc. (usually negative) are added to the area and perimeter
     for  material of each resistance class to give an adjusted area and perime-
     ter for the aggregate node.  The value C attofarads (also usually negative)
     is added to the sum of the capacitances (to substrate) of nodes  path1  and
     path2 to give the capacitance of the aggregate node.

     cap node1 node2 C
	    Defines  a capacitor between the nodes node1 and node2, with capaci-
	    tance C.  This construct is used to specify both internodal  capaci-
	    tance within a single cell and between cells.

AUTHOR
     Walter Scott

SEE ALSO
     ext2sim(1), magic(1)

4th Berkeley Distribution						  EXT(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ext&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help