Browse Prior Art Database

# Algorithm for Uniformly Modifying Polygonal Shapes for Graphical Design by Shifting and Modifying Line Segments

IP.com Disclosure Number: IPCOM000082485D
Original Publication Date: 1974-Dec-01
Included in the Prior Art Database: 2005-Feb-28
Document File: 3 page(s) / 84K

IBM

## Related People

Beilstein, KE: AUTHOR [+2]

## Abstract

Topology for semiconductor devices differ according to changes in parameters, e.g., photoresist tolerances, mask tolerances, and the like. This algorithm is useful in changing design shapes for topology embodied in a photolithographic mask for fabricating semiconductor devices.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 47% of the total text.

Page 1 of 3

Algorithm for Uniformly Modifying Polygonal Shapes for Graphical Design by Shifting and Modifying Line Segments

Topology for semiconductor devices differ according to changes in parameters, e.g., photoresist tolerances, mask tolerances, and the like. This algorithm is useful in changing design shapes for topology embodied in a photolithographic mask for fabricating semiconductor devices.

The algorithm calculates the radius vector between a vertex of the original shape and the desired position of the vertex in a modified shape, and then rounds off the coordinates for the new position of the vertex to the nearest grid point. Thus the execution of the algorithm results in boundary lines for the modified shape, which are parallel to the boundary lines for the original shape to within one grid unit.

An operation 10 enters data descriptive of desired topology changes in a mask. The topology changes may add to or subtract from a geometrical shape by N steps, where N is an integer. The X coordinates and Y coordinates for various points in the geometrical shape are specified in Tables Ix and Iy and entered in an operation 12. The total number of coordinate points in the shape are also entered in the operation 12. A flag is initialized in an operation 14. The flag is used to indicate the presence of line segments which contain both x and y vector components.

A storage area is initialized in an operation 16. The storage area is used to store the sense or direction of an angle, i.e., clockwise or counterclockwise in the shape and the sign of the vector components (x, y) of a composite vector at each coordinate. A sum is also initialized in the operation 16. The sum represents the total angle sense of the shape, i.e., clockwise or counterclockwise. An operation 18 initializes a J counter to a setting of 0.

At entry point 'A', the program begins to check for the slope between two adjacent coordinate points. In an operation 20, data is obtained from the 1x and 1y Tables formed in the operation 12. The data comprises the x component and the y component of the first and the second points in the Table. The first point is defined by LX and LY, and the second point is defined as KX and KY. Decisions 22 and 24 determine whether the vectors specified by LX, LY and KX and KY fall in a vertical or horizontal direction. A zero decision at either decision points 22 or 24 indicates that the vector is in a horizontal or vertical plane. A plus or minus decision from the decision points 22 and 24 indicate nonvertical or nonhorizontal vectors. The flag initialized in the operation 14 is set to 1 in an operation 26. The flag indicates the presence of a line segment which contains both x and y vector components.

An operation 28 defines indices K and JJ based on the J Table. The operation also determines the components of the vectors on either side of the index J. An operation 30 determines the absolute vector lengths from the vectors defined in the operation 28....