Loading in 2 Seconds...

Yield- and Cost-Driven Fracturing for Variable Shaped-Beam Mask Writing

Loading in 2 Seconds...

78 Views

Download Presentation
##### Yield- and Cost-Driven Fracturing for Variable Shaped-Beam Mask Writing

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Yield- and Cost-Driven Fracturing for Variable Shaped-Beam**Mask Writing Andrew B. Kahng CSE and ECE Departments, UCSD Xu Xu CSE Department, UCSD Alex Zelikovsky CS Department, Georgia State University Partially supported by MARCO GSRC and NSF CCF 0429735**Outline**• Introduction • Fracturing problem • Previous work • Integer Linear Programming Formulation • Fast Heuristics • Experimental Results • Conclusions • Future Work**Mask Data Process Flow**Circuit Design Layout Extraction RET Tape Out Fracturing Job Decomposition Normal or reverse tone Mask Data Preparation PEC Fracturing Job Finishing Writing Mask Making Inspection Metrology**Reverse tone fracturing**Normal fracturing Fracturing Problem Given: • A list of polygons P with axis parallel and slant edges • Maximum shot size M • Sliver size e Find a partition P into non-overlapping trapezoids Such that the number of trapezoids and number of slivers are minimized**Challenges in Fracturing**• Traditional objective = Minimize trapezoid number • New objective = Minimize number of shots • and Minimize sliver number • New Constraint = No slant edge partition slant Wrong fracturing**Sliver Minimization**• New objective • CD variation and error • Yield • A shot whose minimum width is < e is called a sliver • According to Nakao et al. (2000), CD variation increases • rapidly when dimension is below a threshold value . < sliver**Previous Work**• Ohtzuki (1982) gave an exact O(n5/2) algorithm to minimize • the number of trapezoids • Imai and Asano (1986) sped up this algorithm to O(n3/2logn) • Nakao et al. (2000) developed a fast heuristic • considers the slivering, CD constraints • disregards slant edges • not optimal**Outline**• Introduction • Integer Linear Programming Formulation • Fast Heuristics • Experimental Results • Conclusions • Future Work**Fracturing into Trapezoids**• Any rectilinear polygon is a trapezoid iff it has no • concave point • Fracturing = “kill” all concave points • Rays = axis-parallel lines from one concave points to • the opposite side Two rays to kill one concave point concave point**Grid Graph**• For each concave point, draw two rays to the • opposite side • Vertices are all intersection points 5 v4,4 4 3 2 eh4,2 1 1 2 3 4 5 6 Vi,j = intersection of ith vertical line and jth horizontal line ehi,j = horizontal line from Vi,j to Vi+1,j**Integer Linear Programming Formulation**• Introduce a Boolean variable xd(i,j) for each edge • xd(i,j)=1 edi,j belongs to the fracturing • Introduce a Boolean variable y(i,j) for each vertex • y(i,j)=1 Vi,j is not isolated 5 v4,4 4 y(4,4)=1 y(4,3) =0 xh(4,2)=1 3 v4,3 2 eh4,2 1 1 2 3 4 5 6**Convexity Constraints**360 degree Concave points 270 degree 180 degree Convex points 180 degree 90 degree 0 degree**Convexity Constraints**evi,j ehi-1,j ehi-1,j ehi,j vi,j vi,j evi,j-1 evi,j-1 Avoid xh(i-1,j)+ xv(i-1,j)≤ 2xh(i,j)+ 2xv(i,j) vi,j evi,j-1 ehi-1,j xh(i,j)+ xv(i,j-1)≤ 2xh(i-1,j)+ 2xv(i,j) xh(i,j)+ xv(i,j)≤ 2xh(i-1,j)+ 2xv(i,j-1) xh(i-1,j)+ xv(i,j)≤ 2xh(i,j)+ 2xv(i,j-1) vi,j**Slant Constraints**evi’,j’ One of them must be used ehi,j xh(i,j)+ xv(i’,j’) ≥1**Counting Trapezoids**• Eulerian formula • # faces = # edges - # vertices +1 • # trapezoid = ∑xd(i,j) - ∑y(i,j) +1 5 ∑xd(i,j) =7 ∑y(i,j) =4 # trapezoid =7-4+1= 4 4 3 2 1 1 2 3 4 5 6**ehi,j**< ehi’,j xh(i,j)+ xh(i’,j)-1≤ sl(i,i’) Counting Slivers • Introduce a Boolean variable sl(i,i’) for each pair of • parallel edges whose distance < < ehi,j xh(i,j)= sl(i,i’)**Integer Linear Programming Formulation**Minimizing: Subject to: Convexity constraints Slant constraints Shots counting Slivers counting : d=v,h; i=1,…,# horizontal rays and j=1,…,# vertical rays**Fracturing Results of a Polygon**# sliver=0**Outline**• Introduction • Integer Linear Programming Formulation • Fast Heuristics • Experimental Results • Conclusions • Future Work**Matching Formulation**• Draw a ray from each concave point and stop at the • first encountered ray or edges • The trapezoid number increases by one for each ray • # trapezoids = 1+ # concave points - # coincident rays • Minimize # trapezoids = Maximize # coincident rays # trapezoids= 2 # trapezoids= 3**Matching Formulation**• Represent each coincident ray with a node • Connect two nodes which represent two conflict rays • Find maximal independent set • Can be formulated as matching problem 2 2 3 3 h1 h2 h1 h1 11 1 11 1 4 5 4 5 v1 h2 h2 6 6 10 9 10 9 v1 7 7 8 8 (c)**Formulate as Ray-Selection Problem**• For each concave point and grid point, choose • one out of two candidate rays to minimize # slivers Two candidates to kill one concave point These are called a “conflict pair”**Gain Based Ray Selection**For any conflict pair (i, j), the weight of i W(i)= # slivers between i and edges/chosen ray segments Gain of i: G(i) = W(j)-W(i) = # slivers saved by using i G(j)=-G(i) < < 1 -1 0 1 -1 1 1 0 0 < 0 < 0 0 Weight distribution Gain distribution**Gain-Based Ray Selection Algorithm (GRS)**-1 1 • Initially, Active set = {All ray segments whose starting point is a concave point} 0 0 • In each iteration • choose one ray segment i with the largest gain, delete i and its conflict pair • add the segment connected with i into Active Set • update the gains 0 1 -1 1 -1 • Repeat until Active Set is empty 1 # sliver=0**Outline**• Introduction • Integer Linear Programming Formulation • Fast Heuristics • Experimental Results • Conclusions • Future Work**Experiment Setup**• Three industry testcases • Implement our algorithm in ANSI C • Use CPLEX 8.100 to solve ILP • Set slivering size as 100 nm • Step ratio = 4 • All tests are run on Xeon 2.4GHz CPU**Outline**• Introduction • Integer Linear Programming Formulation • Fast Heuristics • Experimental Results • Conclusions • Future Work**Conclusions**• New ILP approach and fast heuristics • Reduce # slivers by 82%, 79% and 28% compared with three commercial tools (options) • Reduce # trapezoid by 5.5%, 0.6% and -2.5% • Runtime can be reduced for hierarchical designs**Outline**• Introduction • Integer Linear Programming Formulation • Fast Heuristics • Experimental Results • Conclusions • Future Work**Future Work**• Fast heuristic to speed up ILP approach with good solution quality • Non-rectilinear layouts • Reverse-tone fracturing