home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / l / lasi41b.zip / LASIDRC.HLP < prev    next >
Text File  |  1993-01-18  |  15KB  |  345 lines

  1. ≡≡
  2. Introduction
  3.  
  4.  Introduction
  5.  
  6.   The program LASIDRC.EXE is a new addition to the LASI utility programs
  7.   that should be valuable for finding various layout errors that often
  8.   evade normal human visual inspection.
  9.  
  10.   The program can find:
  11.  
  12.     1. Minimum spacing errors on a single layer (intra-layer).
  13.     2. Minimum spacing errors between layers (inter-layer).
  14.     3. Minimum width errors on a layer.
  15.     4. Minimum coverage of one layer over another.
  16.     5. Minimum overlap of one layer over another.
  17.  
  18.  
  19.   The program acts on the drawing cells in the default directory (drawing
  20.   directory). Errors may be displayed either on a monitor, may be stored in
  21.   a disk file, or may be printed on a line printer, either dot matrix or
  22.   LaserJet.
  23.  
  24.  
  25.   Licensing
  26.  
  27.   Like the LASI drawing system, LASIDRC is free to individuals for personal
  28.   and educational purposes. However, LASIDRC is likely to be used
  29.   professionally in profit making situations since its purpose is to check
  30.   IC layouts that will be going into maskmaking. There is therefore a
  31.   separate VOLUNTARY license fee of $33/computer/year assigned to it. This
  32.   is pretty inexpensive if it only once finds an undetected layout error.
  33.  
  34.  
  35.   Liability
  36.  
  37.   The LASIDRC.EXE program is furnished on an "as is" basis. LASIDRC will
  38.   make a "best effort" to call to attention any possible layout errors.
  39.   Experience should confirm that it doesn't miss much. However, the author
  40.   or anyone distributing the program cannot assume responsibility for how
  41.   the program is used or for the results of its use. The program cannot be
  42.   absolutely guaranteed to find all instances in a layout that may result
  43.   in incorrect function of an integrated circuit or other device. LASIDRC
  44.   is to be considered as a valuable aid to actual visual inspection and the
  45.   users own knowledge.
  46.  
  47. Description of Checks
  48.  
  49.  Description of Checks
  50.  
  51.   Intra-Layer Checks
  52.  
  53.   This is the simplest checking that is done. LASIDRC looks for spacings
  54.   between areas on the main layer and flags any place where it thinks that
  55.   things are too close. An example would be spacings between runs on a
  56.   metal layer.
  57.  
  58.  
  59.   Inter-Layer Checks
  60.  
  61.   In this check, LASIDRC looks at spacings between the main layer and the
  62.   second layer and flags anything that it thinks is too narrow. Which layer
  63.   is which makes no difference. An example would be base to isolation
  64.   spacing in a bipolar IC. This check runs somewhat slow because it works
  65.   on two layers.
  66.  
  67.  
  68.   Minimum Width Checks
  69.  
  70.   LASIDRC checks the width of areas on the main layer and flags anything
  71.   that is too narrow. This is useful for layers that have irregular shapes
  72.   that may become too narrow in places that are not obvious. An example
  73.   would be polysilicon or metal interconnection areas in complex cells.
  74.  
  75.  
  76.   Minimum Coverage Checks
  77.  
  78.   LASIDRC checks if the main layer covers the second layer by some minimum
  79.   distance in all directions. It does not flag if the second layer is not
  80.   covered by the main layer at all. An example would be contact coverage by
  81.   a metal layer. This check runs somewhat slow because it uses two layers.
  82.  
  83.  
  84.   Minimum Overlap Checks
  85.  
  86.   LASIDRC looks if one layer extends a minimum distance into another layer.
  87.   Which layer is which makes no difference. This check is almost like an
  88.   inter-layer spacing check where the spacing is negative. An example is
  89.   where you expect one layer to overlap enough to contact another, as with
  90.   two layers of interconnecting metal.
  91.  
  92. Running LASIDRC
  93.  
  94.  Running LASIDRC
  95.  
  96.   LASIDRC will run in NORMAL or BATCH mode.
  97.  
  98.   To run the program, log into the drawing directory and type "LASIDRC".
  99.   LASIDRC will come up in a setup display, providing it finds the drawing
  100.   files: FORM.DBD, CELLS4.DBD and CONSTS4.DBD. It will also allocate memory
  101.   for LASI objects and its bitmaps. If any of this fails, it will tell you
  102.   so and will return to DOS.
  103.  
  104.   When the setup display comes up, you can enter or change any parameters
  105.   by moving around using the up, down, left, right or ENTER keys and then
  106.   typing in any value. The values will be changed if any characters are
  107.   typed and the location is then moved. You can step around and around
  108.   until you have the parameters as you want them.
  109.  
  110.   The "Batch File Name" parameter determines if LASIDRC runs normally or
  111.   takes its parameters from a batch file. LASIDRC will look for a batch
  112.   file if the parameter is not "*". If a batch file is found, the
  113.   parameters will be overlayed by the file parameters. (See Writing a Batch
  114.   File.)
  115.  
  116.   To start checking, press F10. Once you start checking, the parameters are
  117.   saved in the LASIDRC.SET file and are returned when LASIDRC is run again.
  118.  
  119.   If you are running a batch, the batch parameters will flash up for a
  120.   short time. You may jump to the next batch setup by pressing F10 again.
  121.  
  122.  
  123.   Some parameters need a little explanation:
  124.  
  125.   1. The Type of Checks determines how LASIDRC configures itself. You can
  126.      do only ONE kind of check at a time.
  127.  
  128.   2. The "Pass Distance" parameter is the minimum distance that you want to
  129.      pass when checking.
  130.  
  131.   3. The "Precision" parameter is the smallest distance that you want
  132.      LASIDRC to check for when doing its tests.
  133.  
  134.   4. The "Start at:" parameters are the bottom-left corner of the first
  135.      area that you want to be checked. LASIDRC will then proceed to check
  136.      areas from there, until a cell is completely checked. If you want to
  137.      start at the bottom-left of a cell, set these parameters to "*".
  138.  
  139.   The setup is slightly "smart"; it checks and adjusts parameters to
  140.   conform to LASIDRC's checking rules. You will notice that Precision
  141.   adjusts Pass Distance, and that units are automatically added to any
  142.   dimensions. You will also notice that where "y" or "n" is wanted, only
  143.   one "y" will be allowed.
  144.  
  145.   Yes/No rules:
  146.  
  147.   1. If a "y,n" sequence contains characters other than "y" or "n" the
  148.      characters will be changed to "n".
  149.  
  150.   2. If a "y,n" sequence contains more than one "y" then the first one will
  151.      be kept.
  152.  
  153.   3. If a "y,n" sequence contains no "y's" then the first one will be
  154.      changed to "y".
  155.  
  156. Optimizing Parameters
  157.  
  158.  Optimizing Parameters
  159.  
  160.   Making the Precision larger causes the checking to be done much faster
  161.   because larger pieces of a drawing can be checked at a time and less
  162.   iterations are necessary when checking. The time required to check is
  163.   roughly in inverse proportion to the 3rd power of the Precision. That is,
  164.   is you halve your Precision it will run about 8 times faster. Unless you
  165.   have a very fast computer, the highest Precision is best used on small
  166.   cells.
  167.  
  168.   Making Precision too large can cause errors to be missed because details
  169.   cannot be resolved smaller than that size and roundoffs will occur. If
  170.   you set a Precision that can cause roundoff errors, "?" will appear after
  171.   the Precision. However, scanning for gross errors can quickly be done
  172.   using a larger Precision.
  173.  
  174.   Precision can be made as small as the basic units used in a drawing. Pass
  175.   Distance will be automatically be adjusted to multiples of the Precision.
  176.  
  177. Screen Saver
  178.  
  179.  Screen Saver
  180.  
  181.   When LASIDRC runs it goes to a screen saver mode and dispalys only status
  182.   information on a moving line. Press SPACE and LASIDRC will flash the
  183.   setup screen for a few seconds so you can examine the parameters, see the
  184.   proportion of the drawing that has been checked, or determine if any
  185.   areas have been flagged.
  186.  
  187. Aborting Checking
  188.  
  189.  Aborting Checking
  190.  
  191.   You can abort the checking if necessary by pressing ESC. If you are
  192.   running in NORMAL mode, the last window will be saved in the LASIDRC.SET
  193.   file and will be returned as the "Start at" parameters when you run the
  194.   program again.
  195.  
  196.   If you are using BATCH mode, ESC will abort the entire batch process and
  197.   return you to DOS. Press F10 to jump to the next batch setup in the batch
  198.   file. You may step through the batch tests one at a time. The original
  199.   setup is always saved, not any batch parameters from the batch file.
  200.  
  201. Displaying Errors
  202.  
  203.  Displaying Errors
  204.  
  205.   When LASIDRC finds an error, it has several ways of recording it:
  206.  
  207.   1. In a summary file, it can record the areas where an error is found.
  208.      The file is always named LASIDRC.SUM and is in the drawing directory.
  209.      This is an append-only file to which information is added and must be
  210.      erased to be cleared.
  211.  
  212.   2. On a color VGA or EGA monitor, it will display the maps of the
  213.      layer(s) as filled patterns in grey or white and error flags as bright
  214.      yellow pixels. The program will automatically detect VGA or EGA and
  215.      adjust accordingly.
  216.  
  217.   3. On a line printer, it will print the area summary information just as
  218.      it does to a file.
  219.  
  220.   4. On a line printer, it will print a dotted bitmap of the layer(s) and
  221.      will flag the suspected error with heavy dark dots.
  222.  
  223.   Only one of the above choices is allowed.
  224.  
  225.   If a line printer is used to make bitmaps, LASIDRC must also be told what
  226.   kind it is. The present types are: "gen" (generic), "fx", "lq" (Epson dot
  227.   matrix standard) and "lj" (LaserJet). The generic option uses the
  228.   simplest bitmap codes that are fairly universal and produces a map at
  229.   120dpi horizontally and 72dpi vertically. It will therefore have an
  230.   incorrect aspect ratio.
  231.  
  232. How LASIDRC Works
  233.  
  234.  How LASIDRC Works
  235.  
  236.   LASIDRC works by 2-dimensional bitmap logic. It creates filled layer
  237.   bitmaps in memory, does logical operations on them and then does
  238.   progressive expansions using an "octogonal" expansion algorithm. It then
  239.   looks for single bit disappearances as bit patterns merge, which it
  240.   considers as possible errors. It keeps a bitmap of these possible errors
  241.   for display. It also saves bitmaps to the hard disk in the LASIDRC1.TMP
  242.   and LASIDRC2.TMP files which can be erased when checking is finished.
  243.  
  244.  
  245.                                             * * * * *
  246.           Octagonal point expansion       *          *
  247.           by distance = d               *   \   d  /    *
  248.                                         *               *
  249.                                         * <- d  *  d -> *
  250.                                         *               *
  251.                                         *   /   d   \   *
  252.                                           *          *
  253.                                             * * * * *
  254.  
  255. Missed and False Errors
  256.  
  257.  Missed and False Errors
  258.  
  259.   LASIDRC should find an flag distances <= (Pass Distance - Precision). For
  260.   example, a 10 um Pass Distance and a Precision of .5um should find
  261.   anything less than or equal to 9.5um. Note that as the Precision
  262.   approaches zero, this distance approaches the Pass Distance.
  263.  
  264.   This does not mean that all distances will be accepted if they are
  265.   greater than (Pass Distance - Precision). For 45 deg. diagonal distances,
  266.   there can be an uncertainty that is less than +/- half the Precision, due
  267.   partly to the way that LASIDRC works and due partly to numerical roundoff
  268.   problems. For angles that are in a range centered around odd multiples of
  269.   22.5 deg. ( 22.5, 67.5, etc.) there is an exaggeration of the expansion
  270.   distance. This may flag oddly shaped objects. Since LASIDRC expands areas
  271.   using an octogonal pattern, these exaggerations correspond to the octogon
  272.   vertex peaks or about an 8 percent exaggeration at most.
  273.  
  274.   Since LASIDRC looks for single bits, once in a while on odd shapes, the
  275.   fill map can produce single bit extensions or notches. LASIDRC will find
  276.   these and will flag them, even though they are an artifact. You should
  277.   examine these and see if there really is anything wrong. In fact, the way
  278.   that LASIDRC works often picks out patterns that are not good layout
  279.   practice.
  280.  
  281.   LASIDRC works in such a way that sharp corners tend to be rounded, just
  282.   as actual photomasking and etching might do. Keep this in mind when
  283.   setting the Pass Distance parameter. For example, the distance between
  284.   two adjacent corners will be seen by LASIDRC as a little more than the
  285.   actual tip to tip distance.
  286.  
  287.   The method by which LASIDRC works is sensitive to gross errors which are
  288.   well beyond the actual flagging threshold. It is virtually impossible for
  289.   LASIDRC to miss these.
  290.  
  291.   At the moment, LASIDRC does not find "near miss" errors where there is a
  292.   gap between filled areas that is less than or equal to the value set as
  293.   the Precision. When LASIDRC fills an area, each line is considered to
  294.   have a width equal to the Precision, which may merge with previous areas
  295.   and eliminate the gap. When maskmaking is done, a similar effect occurs.
  296.   This may or may not be a problem depending on the maskmaking equipment
  297.   used.
  298.  
  299. Writing a Batch File
  300.  
  301.  Writing a Batch File
  302.  
  303.   There are two ways to make a batch file. You can do it using LASIDRC or
  304.   you can write it manually. If you run LASIDRC in the setup display, by
  305.   pressing F8 you can append the displayed setup information to the batch
  306.   file whose name appears in the Batch File Name entry. You can then build
  307.   a complete batch file by changing the setup information and appending it
  308.   to the previous setups in the file.
  309.  
  310.   To write a batch file manually , you use a simple ASCII text editor such
  311.   as DOS5's EDIT. The name of the file can be any DOS name, but the
  312.   extension must be ".DRC". The file must be located in the drawing
  313.   directory. Each checking operation is a single line in the file. You
  314.   simply write in the 17 setup parameters starting with the cell name and
  315.   separate them by commas. Characters may be upper or lower case, but will
  316.   be displayed as lowercase.
  317.  
  318.   Example:
  319.  
  320.           opamp,y,n,n,n,n,8,.5,8,1,y,n,n,n,fx,*,*
  321.  
  322.  
  323.   will do an intra-layer spacing check on a cell named opamp, on layer 8,
  324.   with a Pass Distance of 8um and a Precision of .5um. It will write any
  325.   suspicious areas to the summary file. It will start checking at the
  326.   default lower-left corner of the cell.
  327.  
  328.   The batch file may contain any number of lines. It is a good idea to
  329.   write all the parameters into the line. However, if any parameters are
  330.   left off the end of the line they will default to the previous setup.
  331.  
  332.   Parameters in a sequence MAY NOT be omitted.
  333.  
  334.   Example:
  335.  
  336.           opamp,n,n,y,n,n,8,.5,8,1
  337.  
  338.   which following the first example above would check for minimum width of
  339.   layer 8 is acceptable, but,
  340.  
  341.           opamp,,,y,,,8,.5,8,1
  342.  
  343.   would be illegal.
  344.  
  345.