IP Library Granted Patent US 8,255,841
Granted Patent B2
US 8,255,841 · App. 12/480,958 · Granted Aug 28, 2012

Performing OPC on hardware or software platforms with GPU

Assignee: Gauda, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,255,841
App. No.
12/480,958
Granted
Aug 28, 2012
Kind
B2
Abstract

Optical proximity correction techniques performed on one or more graphics processors improve the masks used for the printing of microelectronic circuit designs. Execution of OPC techniques on hardware or software platforms utilizing graphics processing units. GPUs may share the computation load with the system CPUs to efficiently and effectively execute the OPC method steps.

Claims (90)

1. A method comprising:

providing a system comprising at least one central processing unit and at least one graphics processing unit;

using at least one processor, separating an optical proximity correction process into tasks depending on a type of computation required;

allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit; and

delivering output of the central processing unit and the graphics processing unit as a result of the optical proximity corrections process,

wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises:

partitioning of layout data, wherein each partition has overlapping regions or subregions from adjacent partitions, wherein the regions or subregions are partitioned into at least one of a square, trapezoid, or a polygonal shape, wherein the allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises:

assembling the output results of each partition together to complete the layout data.

2. The system of claim 1 wherein the graphics processing unit comprises a vertex processor unit and a fragment processor unit.

3. The system of claim 1 wherein the graphics processing unit comprises a vertex processor unit and a stencil buffer.

4. The system of claim 2 wherein the graphics processing unit further comprises a stencil buffer.

5. The system of claim 2 wherein the graphics processing unit further comprises a video processor unit.

6. The system of claim 1 wherein the graphics processing unit comprises a vertex processor unit, fragment processor unit, stencil buffer, and video processor unit.

7. The method of claim 1 wherein the at least one graphics processing unit is replaced by at least one of a physics processor, cell processors, digital signal processor, or application specific integrated circuit.

8. The method of claim 1 wherein the allocating the tasks comprises at least one of:

allocating vertex shaders for evaluation point selection;

allocating vertex shaders for modification of evaluation points and their location;

allocating rasterization for determining the evaluation points based on one-dimensional and two-dimensional cost functions;

allocating pixel shaders for intensity calculations using fast kernel lookups or fast kernel calculations;

allocating pixel shaders for intensity calculations using light lookups or light calculations;

allocating depth filters for area query and tagging of edges and edge fragments;

using pixel shaders for computation of evaluation points;

mapping of convolution tables as texture maps;

using texture interpolation for optimizing texture cache use;

using a depth processor for the selection of evaluation points; or

using a single input multiple data (SIMD) video processor for computing error terms.

9. The method of claim 1 further comprising manufacturing semiconductor devices using data describing size and placement of features to be formed on a photolithography exposure mask.

10. The method of claim 9 , wherein the optical proximity correction process utilizes the data and executes at least a portion of the process on a graphics processing unit.

11. The method of claim 1 wherein the partitions include at least one corner partition containing at least two adjacent sides, one edge partition containing at least three adjacent sides, and one middle partition containing at least four adjacent sides.

12. The method of claim 1 wherein the allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises:

calculating a number of subregions in parallel, where the number of subregions are a result from the separating an optical proximity correction process into tasks depending on a type of computation required.

13. The method of claim 1 wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises:

partitioning layout data into subregions; and

outputting the subregion, wherein the subregion does not contain any overlapping regions.

14. The method of claim 1 further comprising representing X and Y coordinates for two opposite corners of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit.

15. The method of claim 1 further comprising representing X and Y coordinates for a corner, a width, and a height of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit.

16. The method of claim 1 further comprising representing X and Y coordinates for a corner, a change in X, and a change in Y of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit.

17. The method of claim 1 further comprising representing X and Y coordinates for a corner, an angle, and a scalar of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit.

18. A method comprising:

providing a system comprising at least one central processing unit and at least one graphics processing unit;

using at least one processor, separating an optical proximity correction process into tasks depending on a type of computation required;

allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit;

delivering output of the central processing unit and the graphics processing unit as a result of the optical proximity corrections process; and

representing X and Y coordinates for two opposite corners of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit,

wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises:

analyzing a mask pattern to be written to a target material;

augmenting the pattern using serifs where distortions cause feature shortening or thinning, wherein a serif comprises a positive serif or a negative serif; and

splitting the mask pattern into two-dimensional subregions, wherein each of the subregions overlap with each other,

and the allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises:

sending the subregions to individual processing nodes; and

stitching together the layout information by removing overlapping regions.

19. A method comprising:

providing a system comprising at least one central processing unit and at least one graphics processing unit;

using at least one processor, separating an optical proximity correction process into tasks depending on a type of computation required;

allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit;

delivering output of the central processing unit and the graphics processing unit as a result of the optical proximity corrections process; and

representing X and Y coordinates for a corner, a width, and a height of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit,

wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises:

analyzing a mask pattern to be written to a target material;

augmenting the pattern using serifs where distortions cause feature shortening or thinning, wherein a serif comprises a positive serif or a negative serif; and

splitting the mask pattern into two-dimensional subregions, wherein each of the subregions overlap with each other,

and the allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises:

sending the subregions to individual processing nodes; and

stitching together the layout information by removing overlapping regions.

20. A method comprising:

providing a system comprising at least one central processing unit and at least one graphics processing unit;

using at least one processor, separating an optical proximity correction process into tasks depending on a type of computation required;

allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit;

delivering output of the central processing unit and the graphics processing unit as a result of the optical proximity corrections process; and

representing X and Y coordinates for a corner, a change in X, and a change in Y of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit,

wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises:

analyzing a mask pattern to be written to a target material;

augmenting the pattern using serifs where distortions cause feature shortening or thinning, wherein a serif comprises a positive serif or a negative serif; and

splitting the mask pattern into two-dimensional subregions, wherein each of the subregions overlap with each other,

and the allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises:

sending the subregions to individual processing nodes; and

stitching together the layout information by removing overlapping regions.

21. A method comprising:

providing a system comprising at least one central processing unit and at least one graphics processing unit;

using at least one processor, separating an optical proximity correction process into tasks depending on a type of computation required;

allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit;

delivering output of the central processing unit and the graphics processing unit as a result of the optical proximity corrections process; and

representing X and Y coordinates for a corner, an angle, and a scalar of a two-dimensional trapezoidal shape of the data in a RGBA (RED-GREEN-BLUE-ALPHA) color space format in the graphics processing unit,

wherein the separating an optical proximity correction process into tasks depending on a type of computation required comprises:

analyzing a mask pattern to be written to a target material;

augmenting the pattern using serifs where distortions cause feature shortening or thinning, wherein a serif comprises a positive serif or a negative serif; and

splitting the mask pattern into two-dimensional subregions, wherein each of the subregions overlap with each other,

and the allocating the tasks of the optical proximity correction process to the central processing unit or the graphics processing unit comprises:

sending the subregions to individual processing nodes; and

stitching together the layout information by removing overlapping regions.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT PATENT NO. 8490883 PREVIOUSLY RECORDED AT REEL: 032926 FRAME: 0483. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 8, 2014
From: GAUDA INC.
To: D2S, INC
Reel/Frame 033697/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2014
From: GAUDA INC.
To: D2S, INC
Reel/Frame 032926/0483 →
Continuity (4)
Division 11566140 · Dec 1, 2006
Provisional Application 60741686 · Dec 2, 2005
Provisional Application 60741687 · Dec 2, 2005
Related Publication 20090245618A1 · Oct 1, 2009