ðð
Introduction

 Introduction

  The program LASIDRC.EXE is a new addition to the LASI utility programs
  that should be valuable for finding various layout errors that often
  evade normal human visual inspection.

  The program can find:

    1. Minimum spacing errors on a single layer (intra-layer).
    2. Minimum spacing errors between layers (inter-layer).
    3. Minimum width errors on a layer.
    4. Minimum coverage of one layer over another.
    5. Minimum overlap of one layer over another.


  The program acts on the drawing cells in the default directory (drawing
  directory). Errors may be displayed either on a monitor, may be stored in
  a disk file, or may be printed on a line printer, either dot matrix or
  LaserJet.


  Liability

  The LASIDRC.EXE program is furnished on an "as is" basis. LASIDRC will
  make a "best effort" to call to attention any possible layout errors.
  Experience should confirm that it doesn't miss much. However, the author
  or anyone distributing the program cannot assume responsibility for how
  the program is used or for the results of its use. The program cannot be
  absolutely guaranteed to find all instances in a layout that may result
  in incorrect function of an integrated circuit or other device. LASIDRC
  is to be considered as a valuable aid to actual visual inspection and the
  users own knowledge.

Description of Checks

 Description of Checks

  Intra-Layer Check

    LASIDRC looks for spacings between areas on the main layer and flags
    any place where it thinks that things are too close. An example would
    be spacings between runs on a metal layer.


  Inter-Layer Check

    LASIDRC looks for intersections of one layer in another. Both layer
    patterns are expanded and the intersection is flagged with a solid fill
    indicator. An example might be spacing between base and isolation in a
    bipolar IC process.


  Minimum Width Check

    LASIDRC checks the width of areas on the main layer and flags anything
    that is too narrow. This is useful for layers that have irregular
    shapes that may become too narrow in places that are not obvious. An
    example would be polysilicon or metal interconnection areas that may be
    made from polygons with possible narrow sections.


  Minimum Coverage Check

    LASIDRC checks if the main layer covers the second layer by some
    minimum distance in all directions. If the second layer is not covered
    by the main layer, the area not covered is flagged with a solid fill.
    When set to zero distance, coincident areas are not flagged. An example
    would be minimum contact coverage by a metal layer, or checking if two
    identical areas on different layers cover completely.


  Minimum Overlap Check

    LASIDRC looks if one layer extends a minimum distance into another
    layer. Which layer is which makes no difference. This check is almost
    like an inter-layer spacing check where the spacing is negative. An
    example is where you expect one layer to overlap enough to contact
    another, as with two layers of interconnecting metal.

Running LASIDRC

 Running LASIDRC

  LASIDRC will run in NORMAL or BATCH mode.

  To run the program, log into the drawing directory and type "LASIDRC".
  LASIDRC will come up in a setup display, providing it finds the drawing
  files: FORM.DBD, CELLS4.DBD and CONSTS4.DBD. It will also allocate memory
  for LASI objects and its bitmaps. If any of this fails, it will tell you
  so and will return to DOS.

  When the setup display comes up, you can enter or change any parameters
  by moving around using the up, down, left, right or ENTER keys and then
  typing in any value. The values will be changed if any characters are
  typed and the location is then moved. You can step around and around
  until you have the parameters as you want them.

  The "Batch File Name" parameter determines if LASIDRC runs normally or
  takes its parameters from a batch file. LASIDRC will look for a batch
  file if the parameter is not "*". If a batch file is found, the
  parameters will be overlayed by the file parameters. (See Writing a Batch
  File.)

  To start checking, press F10. Once you start checking, the parameters are
  saved in the LASIDRC.SET file and are returned when LASIDRC is run again.

  If you are running a batch, the batch parameters will flash up for a
  short time. You may jump to the next batch setup by pressing F10 again.


  Some parameters need a little explanation:

  1. The Type of Checks determines how LASIDRC configures itself. You can
     do only ONE kind of check at a time.

  2. The "Pass Distance" parameter is the minimum distance that you want to
     pass when checking.

  3. The "Precision" parameter is the smallest distance that you want
     LASIDRC to check for when doing its tests.

  4. The "Start at:" parameters are the bottom-left corner of the first
     area that you want to be checked. LASIDRC will then proceed to check
     areas from there, until a cell is completely checked. If you want to
     start at the bottom-left of a cell, set these parameters to "*".

  The setup is slightly "smart"; it checks and adjusts parameters to
  conform to LASIDRC's checking rules. You will notice that Precision
  adjusts Pass Distance, and that units are automatically added to any
  dimensions. You will also notice that where "y" or "n" is wanted, only
  one "y" will be allowed.

  Yes/No rules:

  1. If a "y,n" sequence contains characters other than "y" or "n" the
     characters will be changed to "n".

  2. If a "y,n" sequence contains more than one "y" then the first one will
     be kept.

  3. If a "y,n" sequence contains no "y's" then the first one will be
     changed to "y".

Optimizing Parameters

 Optimizing Parameters

  Making the Precision larger causes the checking to be done much faster
  because larger pieces of a drawing can be checked at a time and less
  iterations are necessary when checking. The time required to check is
  roughly in inverse proportion to the 3rd power of the Precision. That is,
  is you halve your Precision it will run about 8 times faster. Unless you
  have a very fast computer, the highest Precision is best used on small
  cells.

  Making Precision too large can cause errors to be missed because details
  cannot be resolved smaller than that size and roundoffs will occur. If
  you set a Precision that can cause roundoff errors, "?" will appear after
  the Precision. However, scanning for gross errors can quickly be done
  using a larger Precision.

  Precision can be made as small as the basic units used in a drawing. Pass
  Distance will be automatically be adjusted to multiples of the Precision.

Screen Saver

 Screen Saver

  When LASIDRC runs it goes to a screen saver mode and dispalys only status
  information on a moving line. Press SPACE and LASIDRC will flash the
  setup screen for a few seconds so you can examine the parameters, see the
  proportion of the drawing that has been checked, or determine if any
  areas have been flagged.

Aborting Checking

 Aborting Checking

  You can abort the checking if necessary by pressing ESC. If you are
  running in NORMAL mode, the last window will be saved in the LASIDRC.SET
  file and will be returned as the "Start at" parameters when you run the
  program again.

  If you are using BATCH mode, ESC will abort the entire batch process and
  return you to DOS. Press F10 to jump to the next batch setup in the batch
  file. You may step through the batch tests one at a time. The original
  setup is always saved, not any batch parameters from the batch file.

Displaying Errors

 Displaying Errors

  When LASIDRC finds an error, it has several ways of recording it:

  1. In a summary file, it can record the areas where an error is found.
     The file is always named LASIDRC.SUM and is in the drawing directory.
     This is an append-only file to which information is added and must be
     erased to be cleared.

  2. On a color VGA or EGA monitor, it will display the maps of the
     layer(s) as filled patterns in grey or white and error flags as bright
     yellow pixels. The program will automatically detect VGA or EGA and
     adjust accordingly.

  3. On a line printer, it will print the area summary information just as
     it does to a file.

  4. On a line printer, it will print a dotted bitmap of the layer(s) and
     will flag the suspected error with heavy dark dots.

  Only one of the above choices is allowed.

  If a line printer is used to make bitmaps, LASIDRC must also be told what
  kind it is. The present types are: "gen" (generic), "fx", "lq" (Epson dot
  matrix standard) and "lj" (LaserJet). The generic option uses the
  simplest bitmap codes that are fairly universal and produces a map at
  120dpi horizontally and 72dpi vertically. It will therefore have an
  incorrect aspect ratio.

How LASIDRC Works

 How LASIDRC Works

  LASIDRC works by 2-dimensional bitmap logic. It creates filled layer
  bitmaps in memory, does logical operations on them and then does
  progressive expansions using an "octogonal" expansion algorithm. When
  working on a single layer, it looks for single bit disappearances as bit
  patterns merge. When working with two layers it simply ANDs bits as
  patterns merge. It keeps a bitmap of these possible errors for display.
  It also saves bitmaps to the hard disk in the LASIDRC1.TMP and
  LASIDRC2.TMP files which can be erased when checking is finished.


                                            * * * * *
          Octagonal point expansion       *          *
          by distance = d               *   \   d  /    *
                                        *               *
                                        * <- d  *  d -> *
                                        *               *
                                        *   /   d   \   *
                                          *          *
                                            * * * * *

Missed and False Errors

 Missed and False Errors

  LASIDRC should find an flag distances <= (Pass Distance - Precision). For
  example, a 10 um Pass Distance and a Precision of .5um should find
  anything less than or equal to 9.5um. Note that as the Precision
  approaches zero, this distance approaches the Pass Distance.

  This does not mean that all distances will be accepted if they are
  greater than (Pass Distance - Precision). For 45 deg. diagonal distances,
  there can be an uncertainty that is less than +/- half the Precision, due
  partly to the way that LASIDRC works and due partly to numerical roundoff
  problems. For angles that are in a range centered around odd multiples of
  22.5 deg. ( 22.5, 67.5, etc.) there is an exaggeration of the expansion
  distance. This may flag oddly shaped objects. Since LASIDRC expands areas
  using an octogonal pattern, these exaggerations correspond to the octogon
  vertex peaks or about an 8 percent exaggeration at most.

  Since LASIDRC looks for single bits, once in a while on odd shapes, the
  fill map can produce single bit extensions or notches. LASIDRC will find
  these and will flag them, even though they are an artifact. You should
  examine these and see if there really is anything wrong. In fact, the way
  that LASIDRC works often picks out patterns that are not good layout
  practice.

  LASIDRC works in such a way that sharp corners tend to be rounded, just
  as actual photomasking and etching might do. Keep this in mind when
  setting the Pass Distance parameter. For example, the distance between
  two adjacent corners will be seen by LASIDRC as a little more than the
  actual tip to tip distance.

  The method by which LASIDRC works is sensitive to gross errors which are
  well beyond the actual flagging threshold. It is virtually impossible for
  LASIDRC to miss these.

  At the moment when checking single layers, LASIDRC does not find "near
  miss" errors where there is a gap between filled areas that is less than
  or equal to the value set as the Precision. When LASIDRC fills an area,
  each line is considered to have a width equal to the Precision, which may
  merge with previous areas and eliminate the gap. When maskmaking is done,
  a similar effect occurs. This may or may not be a problem depending on
  the maskmaking equipment used.

Writing a Batch File

 Writing a Batch File

  There are two ways to make a batch file. You can do it using LASIDRC or
  you can write it manually. If you run LASIDRC in the setup display, by
  pressing F8 you can append the displayed setup information to the batch
  file whose name appears in the Batch File Name entry. You can then build
  a complete batch file by changing the setup information and appending it
  to the previous setups in the file.

  To write a batch file manually , you use a simple ASCII text editor such
  as DOS5's EDIT. The name of the file can be any DOS name, but the
  extension must be ".DRC". The file must be located in the drawing
  directory. Each checking operation is a single line in the file. You
  simply write in the 17 setup parameters starting with the cell name and
  separate them by commas. Characters may be upper or lower case, but will
  be displayed as lowercase.

  Example:

          opamp,y,n,n,n,n,8,.5,8,1,y,n,n,n,fx,*,*


  will do an intra-layer spacing check on a cell named opamp, on layer 8,
  with a Pass Distance of 8um and a Precision of .5um. It will write any
  suspicious areas to the summary file. It will start checking at the
  default lower-left corner of the cell.

  The batch file may contain any number of lines. It is a good idea to
  write all the parameters into the line. However, if any parameters are
  left off the end of the line they will default to the previous setup.

  Parameters in a sequence MAY NOT be omitted.

  Example:

          opamp,n,n,y,n,n,8,.5,8,1

  which following the first example above would check for minimum width of
  layer 8 is acceptable, but,

          opamp,,,y,,,8,.5,8,1

  would be illegal.

