4BSD/usr/man/cat1/cifplot.1

Compare this file to the similar file:
Show the results in this format:




CIFPLOT(1)          UNIX Programmer's Manual           CIFPLOT(1)



NAME
     cifplot - CIF interpreter and plotter

SYNOPSIS
     cifplot [ _o_p_t_i_o_n_s ] file1.cif [ file2.cif ...  ]

DESCRIPTION
     _C_i_f_p_l_o_t takes a description in Cal-Tech Intermediate Form
     (CIF) and produces a plot.  CIF is a low-level graphics
     language suitable for describing integrated circuit layouts.
     Although CIF can be used for other graphics applications,
     for ease of discussion it will be assumed that CIF is used
     to describe integrated circuit designs.  _C_i_f_p_l_o_t interprets
     any legal CIF 2.0  description including symbol renaming and
     Delete Definition commands.  In addition, a number of local
     extensions have been added to CIF, including text on plots
     and include files.  These are discussed later.  Care has
     been taken to avoid any arbitrary restrictions on the CIF
     programs that can be plotted.

     To get a plot call _c_i_f_p_l_o_t with the name of the CIF file to
     be plotted.  If the CIF description is divided among several
     files call _c_i_f_p_l_o_t with the names of all files to be used.
     _C_i_f_p_l_o_t reads the CIF description from the files in the
     order that they appear on the command line.  Therefore the
     CIF _E_n_d command should be only in the last file since _c_i_f_-
     _p_l_o_t ignores everything after the _E_n_d command.  After read-
     ing the CIF description but before plotting, _c_i_f_p_l_o_t will
     print a estimate of the size of the plot and then ask if it
     should continue to produce a plot.  Type y to proceed and n
     to abort.  A typical run might look as follows:

          % cifplot lib.cif sorter.cif
          Window -5700 174000 -76500 168900
          Scale: 1 micron is 0.004075 inches
          The plot will be 0.610833 feet
          Do you want a plot?  y

     After typing y _c_i_f_p_l_o_t will produce a plot on the Benson-
     Varian plotter.

     _C_i_f_p_l_o_t recognizes several command line options.  These can
     be used to change the size and scale of the plot, change
     default plot options, and to select the output device.
     Several options may be selected.  A dash(-) must precede
     each option specifier.  The following is a list of options
     that may be included on the command line:

     -w  _x_m_i_n _x_m_a_x _y_m_i_n _y_m_a_x
          (window) The -w options specifies the window; by
          default the window is set to be large enough to contain
          the entire plot.  The windowing commands lets you plot



Printed 11/10/80            10/21/80                            1






CIFPLOT(1)          UNIX Programmer's Manual           CIFPLOT(1)



          just a small section of your chip, enabling you to see
          it in better detail.  _X_m_i_n, _x_m_a_x, _y_m_i_n, and _y_m_a_x should
          be specified in CIF coordinates.

     -s  _f_l_o_a_t
          (scale) The -s option sets the scale of the plot.  By
          default the scale is set so that the window will fill
          the whole page.  _F_l_o_a_t is a floating point number
          specifying the number of inches which represents 1
          micron.  A recommended size is 0.02.

     -l  _l_a_y_e_r__l_i_s_t
          (layer) Normally all layers are plotted.  The -l option
          specifies which layers NOT to plot.  The _l_a_y_e_r__l_i_s_t
          consists of the layer names separated by commas, no
          spaces.  There are two reserved names: text and bbox.
          Including the layer name text in the list suppresses
          the plotting of text; bbox suppresses the bounding box
          around symbols.

     -d  _n
          (depth) This option lets you limit the amount of detail
          plotted in a hierarchically designed chip.  It will
          only instanciate the plot down _n levels of calls.
          Sometimes too much detail can hide important features
          in a circuit.

     -g  _n
          (grid) Draw a grid over the plot with spacing every _n
          CIF units.

     -f   (fuzzy) Don't print the border outlines around the
          merged features on each layer.

     -h   (half) Plot at half normal resolution.  (_N_o_t _y_e_t _i_m_p_l_e_-
          _m_e_n_t_e_d.)

     -e   (extensions) Accept only standard CIF. User extensions
          produce warnings.

     -I   (non-Interactive) Do not ask for confirmation.  Always
          plot.

     -L   (List) Produce a listing of the CIF file on standard
          output as it is parsed.  Not recommended unless debug-
          ging hand-coded CIF since CIF code can be rather long.

     -a  _n
          (approximate) Approximate a roundflash with an _n-sided
          polygon.  By default _n equals 8.  (I.e. roundflashes
          are approximated by octagons.) If _n equals 0 then out-
          put circles for roundflashes.  (It is best not to use



Printed 11/10/80            10/21/80                            2






CIFPLOT(1)          UNIX Programmer's Manual           CIFPLOT(1)



          full circles since they significantly slow down plot-
          ting.) (_F_u_l_l _c_i_r_c_l_e_s _n_o_t _y_e_t _i_m_p_l_e_m_e_n_t_e_d.)

     -b  "_t_e_x_t"
          (banner) Print the text at the top of the plot.

     -C   (Comments) Treat comments as though they were spaces.
          Sometimes CIF files created at other universities will
          have several errors due to syntactically incorrect com-
          ments.  (I.e. the comments may appear in the middle of
          a CIF command or the comment does not end with a semi-
          colon.) Of course, CIF files should not have any errors
          and these comment related errors must be fixed before
          transmitting the file for fabrication.  But many times
          fixing these errors seems to be more trouble than it is
          worth, especially if you just want to get a plot.  This
          option is useful in getting rid of many of these com-
          ment related syntax errors.

     -r   (rotate) Rotate the plot 90 degrees.

     -V   (Varian) Send output to the varian.  (This is the
          default option.)

     -W   (Wide) Send output directly to the versatec.

     -S   (Spool) Store the output in a temporary file then dump
          the output quickly onto the Versatec.  Makes nice crisp
          plots; also takes up a lot of disk space.

     -T  _n
          (Terminal) Send output byte stream to standard output.
          Useful for setting up pipes.  _N is the number of bytes
          per line that the plotting device expects.  (_N_o_t _y_e_t
          _i_m_p_l_e_m_e_n_t_e_d.)

     -H   (HP2648) Send output to HP2648A terminal.  This
          requires that _c_i_f_p_l_o_t is running in the foreground on
          an HP2648 and that there is a scratch tape in the left
          tape drive of the terminal.  (_N_o_t _y_e_t _f_u_l_l_y _i_m_p_l_e_-
          _m_e_n_t_e_d.)

     -X  _b_a_s_e_n_a_m_e
          (eXtractor) From the CIF file create a circuit descrip-
          tion suitable for switch level simulation.  It creates
          two files: _b_a_s_e_n_a_m_e.sim which contains the circuit
          description, and _b_a_s_e_n_a_m_e.node which contains the node
          numbers and their location used in the circuit descrip-
          tion.

          When this option is invoked no plot is made.  Therefore
          it is advisable not to use any of the other options



Printed 11/10/80            10/21/80                            3






CIFPLOT(1)          UNIX Programmer's Manual           CIFPLOT(1)



          that deal only with plotting.  However, the _w_i_n_d_o_w,
          _l_a_y_e_r, and _a_p_p_r_o_x_i_m_a_t_e options are still appropriate.
          To get a plot of the circuit with the node numbers call
          _c_i_f_p_l_o_t again, without the -X option, and include
          _b_a_s_e_n_a_m_e.nodes in the list of CIF files to be plotted.
          (This file must appear in the list of files before the
          file with the CIF End command.) (_N_o_t _y_e_t _f_u_l_l_y _i_m_p_l_e_-
          _m_e_n_t_e_d.)

     -P  _p_a_t_t_e_r_n__f_i_l_e
          (Pattern) The -P option lets you specify your own
          layers and stipple patterns.  _P_a_t_t_e_r_n__f_i_l_e may contain
          an arbitrary number of layer descriptors.  A layer
          descriptor is the layer name in double quotes, followed
          by 8 integers.  Each integer specifies 32 bits where
          ones are black and zeroes are white.  Thus the 8
          integers specify a 32 by 8 bit stipple pattern.  The
          integers may be in decimal, octal, or hex.  Hex numbers
          start with '0x'; octal numbers start with '0'.  The CIF
          syntax requires that layer names be made up of only
          uppercase letters and digits, and not longer than four
          characters.  The following is example of a layer
          description for poly-silicon:

          "NP" 0x08080808  0x04040404  0x02020202  0x01010101
               0x80808080  0x40404040  0x20202020  0x10101010

     -F  _f_o_n_t__f_i_l_e
          (Font) The -F option indicates which font you want for
          your text.  The file must be in the directory
          '/usr/lib/vfont'.  The default font is Roman 6 point.
          Obviously, this option is only useful if you have text
          on your plot.

     -O  _f_i_l_e_n_a_m_e
          (Output) After parsing the CIF files, store an
          equivalent but easy to parse CIF description in the
          specified file.  This option removes the include and
          array commands (see next section) and replaces them
          with equivalent standard CIF statements.  The resulting
          file is suitable for transmission to other facilities
          for fabrication.

     In the definition of CIF provisions were made for local
     extensions.  All extension commands begin with a number.
     Part of the purpose of these extensions is to test what
     features would be suitable to include as part of the stan-
     dard language.  But it is important to realize that these
     extensions are not standard CIF and that many programs
     interpreting CIF do not recognize them.  If you use these
     extensions it is advisable to create another CIF file using
     the -O options described above before submitting your



Printed 11/10/80            10/21/80                            4






CIFPLOT(1)          UNIX Programmer's Manual           CIFPLOT(1)



     circuit for fabrication.  The following is a list of exten-
     sions recognized by _c_i_f_p_l_o_t.

     0I  _f_i_l_e_n_a_m_e;
          (Include) Read from the specified file as though it
          appeared in place of this command.  Include files can
          be nested up to 6 deep.

     0A  _s _m _n _d_x _d_y ;
          (Array) Repeat symbol _s _m times with _d_x spacing in the
          x-direction and _n times with _d_y spacing in the y-
          direction.  _s, _m, and _n are unsigned integers.  _d_x and
          _d_y are signed integers in CIF units.

     1  _m_e_s_s_a_g_e;
          (Print) Print out the message on standard output when
          it is read.

     2  "_t_e_x_t" _t_r_a_n_s_f_o_r_m ;

     2C  "_t_e_x_t" _t_r_a_n_s_f_o_r_m ;
          (Text on Plot) _T_e_x_t is placed on the plot at the posi-
          tion specified by the transformation.  The allowed
          transformations are the same as the those allowed for
          the Call command.  The transformation affects only the
          point at which the beginning of the text is to appear.
          The text is always plotted horizontally, thus the mir-
          ror and rotate transformations are not really of much
          use.  Normally text is placed above and to the right of
          the reference point.  The 2C command centers the text
          about the reference point.

     9  _n_a_m_e;
          (Name symbol) _n_a_m_e is associated with the current sym-
          bol.

     94  _n_a_m_e _x _y;

     94  _n_a_m_e _x _y _l_a_y_e_r;
          (Name point) _n_a_m_e is associated with the point (_x, _y).
          Any mask geometry crossing this point is also associ-
          ated with _n_a_m_e.  If _l_a_y_e_r is present then just geometry
          crossing the point on that layer is associated with
          _n_a_m_e.  For plotting this command is similar to text on
          plot.  When doing circuit extraction this command is
          used to give an explicit name to a node.  _N_a_m_e must not
          have any spaces in it, and it should not be a number.

FILES
     /usr/lib/vdump
     /usr/lib/vfont/*
     /usr/lib/vpd



Printed 11/10/80            10/21/80                            5






CIFPLOT(1)          UNIX Programmer's Manual           CIFPLOT(1)



     /usr/tmp/cif*

ALSO SEE
     _A _G_u_i_d_e _t_o _L_S_I _I_m_p_l_e_m_e_n_t_a_t_i_o_n by Hon and Sequin, Second Edi-
     tion (Xerox PARC, 1980) for a description of CIF.
     _I_n_t_r_o_d_u_c_t_i_o_n _t_o _V_L_S_I _S_y_s_t_e_m_s by Mead and Conway (Addison-
     Wesley, 1980)

AUTHOR
     Dan Fitzpatrick

BUGS
     Output should be spooled.










































Printed 11/10/80            10/21/80                            6