next up previous contents index
Next: The !origin Command: Move Up: Layout Editing Previous: The !togrid Command: Move   Contents   Index


The !tospot Command: Modify for Spot Size

Syntax: !tospot [spotsize]
When an e-beam mask is written, the layout is rendered using a certain pixel size (known as the ``spot size'') set by the e-beam equipment. This size may be as large as 0.5 microns but is typically much smaller, with smaller sizes providing higher resolution, but taking longer to write and therefor costing more. There can be numerical problems in ``rasterizing'' round objects to the e-beam grid. Since the round object is rendered as a collection of spot-pixels, the feature is not particularly round, but most importantly the number of pixels used may not be well defined, and therefor the figure area may not be as expected, or vary depending on position or rotation. Xic

The !tospot command will apply an algorithm (described below) to all selected polygons. The spotsize, if given, is the spot size to use in microns. Values up to 1.0 micron are accepted. If not given, the value is taken from the SpotSize variable if set, or the value of the MfgGrid from the technology file if SpotSize is not set.

The algorithm is intended to translate small objects with many vertices to a representation which will pass unchanged through e-beam rasterization. This will in general change the shape of an object, to something close to that which will be rendered on the mask.

The algorithm uses the following logic:

  1. Find the bounding box of the figure.
  2. Snap the box edges to the nearest spot boundaries.
  3. If the center of the bounding box has changed, apply the same offset to the figure to keep it centered in the new bounding box.
  4. Shrink the box by 1/2 of the spot size.
  5. Clip the figure to the new bounding box.
  6. For each vertex, move the vertex to the center of the closest spot.
  7. Remove duplicate vertices.
  8. Save the modified figure in the database.

Following application of the algorithm, each vertex of the figure is centered in an e-beam spot, so it is unlikely that round-off or other error will cause the figure to change during rasterization.

The algorithm is intended for unconnected, nonconducting objects such as vias. It should not in general be applied to wiring objects, since it will generate small gaps between processed objects which were originally touching, which will cause the extraction functions to detect that the objects are disconnected.

Although the object is shown on-screen as a polygon, The actual rendered object will be composed of pixels. The size of the object on-screen is therefor one spot-size smaller than the rendered size (since half of the spot for each edge is not shown).

Applying !tospot to circular objects created with a SpotSize is not the same as creating the circular object with the round or donut buttons with SpotSize nonzero. When using !tospot on round objects created without SpotSize set, it is best to use an even number of sides for round objects. In particular, an 8-sided figure is probably the best choice for a ``circular'' via.


next up previous contents index
Next: The !origin Command: Move Up: Layout Editing Previous: The !togrid Command: Move   Contents   Index
Stephen R. Whiteley 2022-05-28