<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://gicl.cs.drexel.edu/wiki-data/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://gicl.cs.drexel.edu/wiki-data/index.php?title=Caltech_Intermediate_Form&amp;feed=atom&amp;action=history</id>
		<title>Caltech Intermediate Form - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://gicl.cs.drexel.edu/wiki-data/index.php?title=Caltech_Intermediate_Form&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki-data/index.php?title=Caltech_Intermediate_Form&amp;action=history"/>
		<updated>2013-05-22T01:45:18Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.2</generator>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki-data/index.php?title=Caltech_Intermediate_Form&amp;diff=20818&amp;oldid=prev</id>
		<title>Jmo34 at 18:54, 20 June 2008</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki-data/index.php?title=Caltech_Intermediate_Form&amp;diff=20818&amp;oldid=prev"/>
				<updated>2008-06-20T18:54:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox file format&lt;br /&gt;
| name = Caltech Intermediate Form(at)&lt;br /&gt;
| extension = .cif&lt;br /&gt;
| mime = &lt;br /&gt;
| owner = &lt;br /&gt;
| creatorcode = strubin&lt;br /&gt;
| genre = [[electronic design automation|EDA]] file format&lt;br /&gt;
| containerfor = &lt;br /&gt;
| containedby = &lt;br /&gt;
| extendedfrom = &lt;br /&gt;
| extendedto = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Caltech Intermediate Form''' ('''CIF''') is a [[file format]] for describing [[integrated circuit]]s.&lt;br /&gt;
CIF provides a limited set of graphics primitives that are useful for describing the two-dimensional&lt;br /&gt;
shapes on the different layers of a chip.&lt;br /&gt;
The format allows hierarchical description, which makes the representation concise.&lt;br /&gt;
In addition, it is a terse but [[human-readable]] text format.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Each statement in CIF consists of a keyword or letter followed by parameters and terminated&lt;br /&gt;
with a semicolon.&lt;br /&gt;
Spaces must separate the parameters but there are no restrictions on the number of statements&lt;br /&gt;
per line or of the particular columns of any field.&lt;br /&gt;
Comments can be inserted anywhere by enclosing them in parenthesis. &lt;br /&gt;
&lt;br /&gt;
There are only a few CIF statements and they fall into one of two categories: geometry or control.&lt;br /&gt;
The geometry statements are: &amp;lt;CODE&amp;gt;LAYER&amp;lt;/CODE&amp;gt; to switch mask layers, &amp;lt;CODE&amp;gt;BOX&amp;lt;/CODE&amp;gt; to draw a&lt;br /&gt;
rectangle, &amp;lt;CODE&amp;gt;WIRE&amp;lt;/CODE&amp;gt; to draw a path, &amp;lt;CODE&amp;gt;ROUNDFLASH&amp;lt;/CODE&amp;gt; to draw a circle, &amp;lt;CODE&amp;gt;POLYGON&amp;lt;/CODE&amp;gt; to draw an arbitrary&lt;br /&gt;
figure, and &amp;lt;CODE&amp;gt;CALL&amp;lt;/CODE&amp;gt; to draw a subroutine of other geometry statements.&lt;br /&gt;
The control statements are &amp;lt;CODE&amp;gt;DS&amp;lt;/CODE&amp;gt; to start the definition of a subroutine, &amp;lt;CODE&amp;gt;DF&amp;lt;/CODE&amp;gt; to finish the&lt;br /&gt;
definition of a subroutine, &amp;lt;CODE&amp;gt;DD&amp;lt;/CODE&amp;gt; to delete the definition of subroutines, &amp;lt;CODE&amp;gt;0&amp;lt;/CODE&amp;gt; through &amp;lt;CODE&amp;gt;9&amp;lt;/CODE&amp;gt; to&lt;br /&gt;
include additional user-specified information, and &amp;lt;CODE&amp;gt;END&amp;lt;/CODE&amp;gt; to terminate a CIF file.&lt;br /&gt;
All of these keywords are usually abbreviated to one or two letters that are unique.&lt;br /&gt;
&lt;br /&gt;
== Geometry ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;CODE&amp;gt;LAYER&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;L&amp;lt;/CODE&amp;gt;) sets the mask layer to be used&lt;br /&gt;
for all subsequent geometry until the next such statement.&lt;br /&gt;
Following the &amp;lt;CODE&amp;gt;LAYER&amp;lt;/CODE&amp;gt; keyword comes a single layer-name parameter.&lt;br /&gt;
For example, the command: &lt;br /&gt;
    L CC;&lt;br /&gt;
sets the layer to be the CMOS contact cut (see Fig. B.1 for some typical MOS layer names).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CENTER&amp;gt;&amp;lt;TABLE BORDER=1&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;&amp;lt;TABLE&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;NM&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS metal&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;NP&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS polysilicon&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;ND&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS diffusion&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;NC&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS contact&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;NI&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS implant&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;NB&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS buried&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;NG&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;nMOS overglass&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD COLSPAN=2&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CMF&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS metal 1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CMS&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS metal 2&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CPG&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS polysilicon&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CAA&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS active&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CSG&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS select&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CWG&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS well&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CC&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS contact&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;CVA&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS via&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;COG&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;CMOS overglass&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;&amp;lt;B&amp;gt;FIGURE B.1 &amp;lt;/B&amp;gt;CIF layer names for MOS processes.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;/CENTER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;CODE&amp;gt;BOX&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;B&amp;lt;/CODE&amp;gt;) is the most commonly used way of&lt;br /&gt;
specifying geometry.&lt;br /&gt;
It describes a rectangle by giving its length, width, center position, and an optional rotation.&lt;br /&gt;
The format is as follows: &lt;br /&gt;
    B length width xpos ypos [rotation] ;&lt;br /&gt;
Without the rotation field, the four numbers specify a box the center of which is&lt;br /&gt;
at (''xpos'', ''ypos'') and is ''length'' across in x and ''width'' tall in y.&lt;br /&gt;
All numbers in CIF are integers that refer to centimicrons of distance, unless subroutine&lt;br /&gt;
scaling is specified (described later).&lt;br /&gt;
The optional ''rotation'' field contains two numbers that define a vector endpoint&lt;br /&gt;
starting at the origin.&lt;br /&gt;
The default value of this field is (1, 0), which is a right-pointing vector.&lt;br /&gt;
Thus the rotation clause &amp;lt;CODE&amp;gt;10 5&amp;lt;/CODE&amp;gt; defines a 30-degree counterclockwise rotation from the normal.&lt;br /&gt;
Similarly, &amp;lt;CODE&amp;gt;10 -10&amp;lt;/CODE&amp;gt; will rotate clockwise by 45 degrees.&lt;br /&gt;
Note that the magnitude of this rotation vector has no meaning.&lt;br /&gt;
&lt;br /&gt;
[[Image:CIFfigb02.gif|thumb|333px|right|FIGURE B.2 A sample CIF &amp;quot;wire&amp;quot; statement. The statement is: W25 100 200 100 100 200 200 300 200;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;CODE&amp;gt;WIRE&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;W&amp;lt;/CODE&amp;gt;) is used to construct a&lt;br /&gt;
path that runs between a set of points.&lt;br /&gt;
The path can have a nonzero width and has rounded corners.&lt;br /&gt;
After the &amp;lt;CODE&amp;gt;WIRE&amp;lt;/CODE&amp;gt; keyword comes the width value and then an arbitrary&lt;br /&gt;
number of coordinate pairs that describe the endpoints.&lt;br /&gt;
Figure B.2 shows a sample wire.&lt;br /&gt;
Note that the endpoint and corner rounding are implicitly handled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;CODE&amp;gt;ROUNDFLASH&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;R&amp;lt;/CODE&amp;gt;) draws a filled&lt;br /&gt;
circle, given the diameter and the center coordinate. For example, the statement: &lt;br /&gt;
    R 20 30 40;&lt;br /&gt;
will draw a circle that has a radius of 10 (diameter of 20), centered at (30, 40).&lt;br /&gt;
&lt;br /&gt;
[[Image:CIFfigb03.gif|thumb|175px|right|FIGURE B.3 A sample CIF &amp;quot;polygon&amp;quot; statement. The statement is: P 150 100 200 200 200 300 100 300 100 200;]]&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;CODE&amp;gt;POLYGON&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;P&amp;lt;/CODE&amp;gt;) takes a series of&lt;br /&gt;
coordinate pairs and draws a filled polygon from them.&lt;br /&gt;
Since filled polygons must be closed, the first and last coordinate points are&lt;br /&gt;
implicitly connected and need not be the same.&lt;br /&gt;
Polygons can be arbitrarily complex, including concavity and self-intersection.&lt;br /&gt;
Figure B.3 illustrates a polygon statement.&lt;br /&gt;
&lt;br /&gt;
== Hierarchy ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;CODE&amp;gt;CALL&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;C&amp;lt;/CODE&amp;gt;) invokes a collection&lt;br /&gt;
of other statements that have been packaged with &amp;lt;CODE&amp;gt;DS&amp;lt;/CODE&amp;gt; and &amp;lt;CODE&amp;gt;DF&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
All subroutines are given numbers when they are defined and these numbers are used in&lt;br /&gt;
the &amp;lt;CODE&amp;gt;CALL&amp;lt;/CODE&amp;gt; to identify them.&lt;br /&gt;
If, for example, a &amp;lt;CODE&amp;gt;LAYER&amp;lt;/CODE&amp;gt; statement and a &amp;lt;CODE&amp;gt;BOX&amp;lt;/CODE&amp;gt; statement are&lt;br /&gt;
packaged into subroutine 4, then the statement: &lt;br /&gt;
    C 4;&lt;br /&gt;
will cause the box to be drawn on that layer. &lt;br /&gt;
&lt;br /&gt;
In addition to simply invoking the subroutine, a &amp;lt;CODE&amp;gt;CALL&amp;lt;/CODE&amp;gt; statement can include&lt;br /&gt;
transformations to affect the geometry inside the subroutine.&lt;br /&gt;
Three transformations can be applied to a subroutine in CIF: translation, rotation, and mirroring.&lt;br /&gt;
Translation is specified as the letter &amp;lt;CODE&amp;gt;T&amp;lt;/CODE&amp;gt; followed by an x, y offset.&lt;br /&gt;
These offsets will be added to all coordinates in the subroutine, to translate its&lt;br /&gt;
graphics across the mask.&lt;br /&gt;
Rotation is specified as the letter &amp;lt;CODE&amp;gt;R&amp;lt;/CODE&amp;gt; followed by an x, y vector endpoint&lt;br /&gt;
that, much like the rotation clause in the &amp;lt;CODE&amp;gt;BOX&amp;lt;/CODE&amp;gt; statement, defines a line to the origin.&lt;br /&gt;
The unrotated line has the endpoint (1, 0), which points to the right.&lt;br /&gt;
Mirroring is available in two forms: &amp;lt;CODE&amp;gt;MX&amp;lt;/CODE&amp;gt; to mirror in x and &amp;lt;CODE&amp;gt;MY&amp;lt;/CODE&amp;gt; to mirror in y.&lt;br /&gt;
Mirroring is a bit confusing, because &amp;lt;CODE&amp;gt;MX&amp;lt;/CODE&amp;gt; causes a negation of the x&lt;br /&gt;
coordinate, which effectively mirrors about the y axis.&lt;br /&gt;
&lt;br /&gt;
[[Image:CIFfigb04.gif|thumb|262px|right|FIGURE B.4 The transformations of a CIF &amp;quot;call&amp;quot;: (a) Subroutine 10: BOX 100 200 50 50; WIRE 10 50 50 100 150; (b) Invocation: C 10 T -50 0 MX MY; (c) Invocation: C 10 R 0 -1 MX; (d) Invocation: C 10 MX R 0 -1;]]&lt;br /&gt;
&lt;br /&gt;
Any number of transformations can be applied to an object and their listed order&lt;br /&gt;
is the sequence that will be used to apply them.&lt;br /&gt;
Figure B.4 shows some examples, illustrating the importance of ordering the&lt;br /&gt;
transformations (notice that Figs. B.4c and B.4d produce different results by&lt;br /&gt;
rearranging the transformations).&lt;br /&gt;
&lt;br /&gt;
Defining subroutines for use in a &amp;lt;CODE&amp;gt;CALL&amp;lt;/CODE&amp;gt; statement is quite simple.&lt;br /&gt;
The statements to be packaged are enclosed between &amp;lt;CODE&amp;gt;DS&amp;lt;/CODE&amp;gt; (definition&lt;br /&gt;
start) and &amp;lt;CODE&amp;gt;DF&amp;lt;/CODE&amp;gt; (definition finish) statements.&lt;br /&gt;
Arguments to the &amp;lt;CODE&amp;gt;DS&amp;lt;/CODE&amp;gt; statement are the subroutine number and a subroutine scaling factor.&lt;br /&gt;
There are no arguments to the &amp;lt;CODE&amp;gt;DF&amp;lt;/CODE&amp;gt; statement.&lt;br /&gt;
The scaling factor for a subroutine consists of a numerator followed by a denominator&lt;br /&gt;
that will be applied to all values inside the subroutine.&lt;br /&gt;
This scaling allows large numbers to be expressed with fewer digits and allows ease&lt;br /&gt;
of rescaling a design.&lt;br /&gt;
The scale factor cannot be changed for each invocation of the subroutine since it&lt;br /&gt;
is applied to the definition.&lt;br /&gt;
As an example, the subroutine of Fig. B.4 can be described formally as follows: &lt;br /&gt;
    DS 10 20 2;&lt;br /&gt;
      B10 20 5 5;&lt;br /&gt;
      W1 5 5 10 15;&lt;br /&gt;
    DF;&lt;br /&gt;
Note that the scale factor is 20/2, which allows the trailing zero to be dropped&lt;br /&gt;
from all values inside the subroutine. &lt;br /&gt;
&lt;br /&gt;
Arbitrary depth of hierarchy is allowed in CIF subroutines.&lt;br /&gt;
Forward references are allowed provided that a subroutine is defined before it is used.&lt;br /&gt;
Thus the sequence: &lt;br /&gt;
    DS 10;&lt;br /&gt;
       ...&lt;br /&gt;
      C 11;&lt;br /&gt;
    DF;&lt;br /&gt;
    DS 11;&lt;br /&gt;
       ...&lt;br /&gt;
    DF;&lt;br /&gt;
    C 10;&lt;br /&gt;
is legal, but the sequence: &lt;br /&gt;
    C 11;&lt;br /&gt;
    DS 11;&lt;br /&gt;
       ...&lt;br /&gt;
    DF;&lt;br /&gt;
is not. This is because the actual invocation of subroutine 11 does&lt;br /&gt;
not occur until after its definition in the first example.&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
CIF subroutines can be overwritten by deleting them and then redefining them.&lt;br /&gt;
The &amp;lt;CODE&amp;gt;DD&amp;lt;/CODE&amp;gt; statement (delete definition) takes a single parameter and&lt;br /&gt;
deletes every subroutine that has a number greater than or equal to this value.&lt;br /&gt;
The statement is useful when merging multiple CIF files because designs can be&lt;br /&gt;
defined, invoked, and deleted without causing naming conflicts.&lt;br /&gt;
However, it is not recommended for general use by CAD systems. &lt;br /&gt;
&lt;br /&gt;
Extensions to CIF can be done with the numeric statements &amp;lt;CODE&amp;gt;0&amp;lt;/CODE&amp;gt; through &amp;lt;CODE&amp;gt;9&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
Although not officially part of CIF, certain conventions have evolved for the&lt;br /&gt;
use of these extensions (see Fig. B.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CENTER&amp;gt;&amp;lt;TABLE BORDER=1&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;&amp;lt;TABLE&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;0&amp;lt;/CODE&amp;gt; x y layer &amp;lt;CODE&amp;gt;N&amp;lt;/CODE&amp;gt; name&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Set named node on specified layer and position&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;0V&amp;lt;/CODE&amp;gt; x1 y1 x2 y2 ... xn yn&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Draw vectors&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;2A&amp;lt;/CODE&amp;gt; &amp;quot;msg&amp;quot; &amp;lt;CODE&amp;gt;T&amp;lt;/CODE&amp;gt; x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place message above specified location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;2B&amp;lt;/CODE&amp;gt; &amp;quot;msg&amp;quot; &amp;lt;CODE&amp;gt;T&amp;lt;/CODE&amp;gt; x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place message below specified location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;2C&amp;lt;/CODE&amp;gt; &amp;quot;msg&amp;quot; &amp;lt;CODE&amp;gt;T&amp;lt;/CODE&amp;gt; x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place message centered at specified location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;2L&amp;lt;/CODE&amp;gt; &amp;quot;msg&amp;quot; &amp;lt;CODE&amp;gt;T&amp;lt;/CODE&amp;gt; x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place message left of specified location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;2R&amp;lt;/CODE&amp;gt; &amp;quot;msg&amp;quot; &amp;lt;CODE&amp;gt;T&amp;lt;/CODE&amp;gt; x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place message right of specified location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;4A&amp;lt;/CODE&amp;gt; lowx lowy highx highy&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Declare cell boundary&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;4B&amp;lt;/CODE&amp;gt; instancename&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Attach instance name to cell&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;4N&amp;lt;/CODE&amp;gt; signalname x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Labels a signal at a location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;9&amp;lt;/CODE&amp;gt; cellname&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Declare cell name&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;91&amp;lt;/CODE&amp;gt; instancename&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Attach instance name to cell&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;94&amp;lt;/CODE&amp;gt; label x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place label in specified location&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;&amp;lt;CODE&amp;gt;95&amp;lt;/CODE&amp;gt; label length width x y&amp;lt;CODE&amp;gt;;&amp;lt;/CODE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD ALIGN=LEFT&amp;gt;Place label in specified area&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;&amp;lt;B&amp;gt;FIGURE B.5 &amp;lt;/B&amp;gt;Typical user extensions to CIF.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;/CENTER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final statement in a CIF file is the &amp;lt;CODE&amp;gt;END&amp;lt;/CODE&amp;gt; statement (or the letter &amp;lt;CODE&amp;gt;E&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
It takes no parameters and typically does not include a semicolon.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[http://www.rulabinsky.com/cavd/text/chapb.html Computer Aids for VLSI Design - Appendix B: Caltech Intermediate Format by Steven M. Rubin]&lt;br /&gt;
*Hon, Robert W. and Sequin, Carlo H., &amp;quot;A Guide to LSI Implementation,&amp;quot; 2nd Edition, Xerox Palo Alto Research Center technical memo SSL-79-7, January 1980.&lt;br /&gt;
&lt;br /&gt;
[[Category:CAD file formats]]&lt;br /&gt;
[[Category:Electronic design automation software]]&lt;br /&gt;
&lt;br /&gt;
[[de:Caltech Intermediate Form]]&lt;br /&gt;
[[es:CIF]]&lt;br /&gt;
[[ja:CIF]]&lt;/div&gt;</summary>
		<author><name>Jmo34</name></author>	</entry>

	</feed>