Claims
- 1. A method for performing convolution of an n-dimensional pattern p(x1, . . . , xn), with a smooth kernel d which is at least approximately equal to a separated-spline kernel, to generate data indicative of a convolution result r=Dp=d×p, where D is the circulant of d, and n is greater than one, said method including the steps of:
(a) specifying the separated-spline kernel as k(x1, . . . , xn)=k1(xx) . . . kn(xn), where kj has circulant Kj, k(x1, . . . , xn) admits of an operator A=A1A2 . . . An, and Aj is an annihilation or flattening operator which operates on the circulant Kj of kernel kj in such a manner that AjKj is sparse (when Aj is an annihilation operator) or AjKj is almost everywhere a locally constant matrix (when Aj is a flattening operator); (b) processing pattern data indicative of the pattern p and kernel data indicative of the kernel k, to generate additional data indicative of q1=A1k1×p for each row of the pattern p; (c) processing the additional data to backsolve A1r1=q1 for said each row of the pattern to determine data indicative of r1=k1×p for said pattern, by performing a preliminary ignition step in which a small number of components of r1 are computed directly, and then determining all other ones of the components of r1 using a natural recurrence relation determined by the operator A1; (d) processing the data indicative of r1=k1×p to generate data indicative of q2=A2k2×(k1×p)T for each row of (k1×p)T, where r1T=(k1×p)T denotes transposition of r1; and (e) processing the data indicative of q2=A2k2×r1T to backsolve A2r2T=q2 for said each row of (k1×p)T thereby determining data indicative of r2T=(k2×k1×p)T for said pattern p.
- 2. The method of claim 1, wherein n=2, and step (e) includes the step of performing a transposition on the data indicative of r2T=(k2×k1×p)T to generate data indicative of r=(k2×k1×p) for said pattern, where r is a close approximation to the convolution Dp.
- 3. The method of claim 2, also including the steps of:
(f) generating a pattern signal in response to convolved image data determined at least in part by the data indicative of r=(k2×k1×p) for said pattern; and (g) causing the pattern signal to be incident on a set of optics, and projecting a pattern image from the optics onto a lithography target in response to the pattern signal.
- 4. The method of claim 3, wherein the pattern signal is an optical signal.
- 5. The method of claim 3, wherein the pattern signal is an electron beam signal.
- 6. The method of claim 3, wherein the convolved image data employed in step (f) is said data indicative of r=(k2×k1×p) for said pattern.
- 7. The method of claim 1, wherein n is greater than 2, and also including the step of:
(f) after determining the data indicative of r2T=(k2×k1×p)T for said pattern, performing j iterations of steps (d) and (e), wherein during the i-th iteration of steps (d) and (e), where i is a positive integer and j=(n−2), data indicative of ql+2=Al+2kl+2×qi+1 and of rl+2T=(kl+2×kl+1× . . . ×k1×p)T are generated.
- 8. The method of claim 1, wherein the pattern data is stored in memory locations of a memory prior to step (b), and wherein step (d) includes the steps of:
(i) storing the data indicative of r1=k1×p in the memory such that data indicative of each column of (k1×p) occupies a row of the memory locations formerly occupied by the pattern data indicative of a row of p; and (ii) during generation of the data indicative of q2=A2k2×(k1×p)T for said each row of (k1×p)T , reading data indicative of one said column of (k1×p) from one said row of the memory locations.
- 9. A method for performing convolution of a two-dimensional pattern p(x, y), with a smooth kernel d which is at least approximately equal to a separated-spline kernel, to generate data indicative of a convolution result r=Dp=d×p, where D is the circulant of d, said method including the steps of:
(a) specifying the separated-spline kernel as k(x,y)=k1(x)k1(y), where 27k1(x)=(R2-x2)for &LeftBracketingBar;x&RightBracketingBar;≤R=cd-&LeftBracketingBar;x&RightBracketingBar;for &LeftBracketingBar;x&RightBracketingBar;>R,and where the kernel k1(x) satisfies:k1(x)=kc(x)+k+(x)+k−(x),where kc(x) is a kernel 28kc(x)=(R2-x2)for &LeftBracketingBar;x&RightBracketingBar;≤R=0for &LeftBracketingBar;x&RightBracketingBar;>R,k+(x) is a one-tailed Laplacian kernel 29k+(x)=cd-&LeftBracketingBar;x&RightBracketingBar;for &LeftBracketingBar;x&RightBracketingBar;>R=0for &LeftBracketingBar;x&RightBracketingBar;≤R,and k(x) is a one-tailed Laplacian kernel 30k-(x)=cdxfor &LeftBracketingBar;x&RightBracketingBar;<-R=0for &LeftBracketingBar;x&RightBracketingBar;≥R;(b) processing pattern data indicative of the pattern p and kernel data indicative of the kernel kc, the kernel k+, and the kernel k to generate additional data indicative of a cap convolution kc×p(x) for each row of the pattern p, a second convolution k+×p(x) for said each row, and a third convolution k−×p(x) for said each row, and adding together the additional data indicative of the cap convolution, the second convolution, and the third convolution for said each row to generate data indicative of q1=k1×p(x,y)=(kc ×p(x,y))+(k+×p(x,y))+(k−×p(x,y)), wherein the data indicative of the cap convolution is generated by computing Ackc×p(x) for said each row, where Ac is an annihilation operator defined asAckc(x):=kc(x+3)−3kc(x+2)+3kc(x+1)−kc(x), and computingAc−1(Ackc×p)(x)=kc×p(x)using the recursion relationkc(x+3)=Ackc(x)+kc(x)+3kc(x+2)−3kc(x+1),the data indicative of the second convolution is generated by computing A+k+×p(x), for said each row, where A+ is an annihilation operator defined asA+k+(x)=k+(x+1)−d−1k+(x),and computingA+−1(A+k+×p)(x)=k+×p(x)using the recursion relation:(k+×p)(x+1,y)=(A+k+×p)(x,y)+d−1(k+×p)(x,y),and the data indicative of the third convolution is generated by computing A−k−×p(x), for said each row, where A− is an annihilation operator defined asA−k−(x)=k−(x−1)−d−1k−(x),and computingA−−1(A−k−×p)(x)=k−×p(x)by recursing from end to beginning using the recursion relation:(k−×p)(x−1,y)=(A−k−×p)(x,y)+d−1(k−×p)(x,y);(c) transposing the data indicative of (k1×p(x,y)) to generate data indicative of (k1×p(x,y))T; and (d) repeating step (b), this time by processing the data indicative of (k1×p(x,y))T, rather than the pattern data, with the kernel data, thereby generating data indicative of q1T=(k1(x)×k1(y)×p(x,y))T.
- 10. The method of claim 9, wherein the pattern data is stored in memory locations of a memory prior to step (b), and wherein step (c) is accomplished by storing the data indicative of (k1×p) in the memory such that data indicative of each column of (k1×p) occupies a row of the memory locations formerly occupied by the pattern data indicative of a row of p(x,y).
- 11. The method of claim 9, also including the step of:
(e) transposing the data indicative of q1T=(k1×k1×p)T to produce data indicative of r=k×p.
- 12. The method of claim 11, also including the steps of:
(f) generating a pattern signal in response to convolved image data determined at least in part by the data indicative of r=k×p; and (g) causing the pattern signal to be incident on a set of optics, and projecting a pattern image from the optics onto a lithography target in response to the pattern signal.
- 13. The method of claim 12, wherein the pattern signal is an optical signal.
- 14. The method of claim 12, wherein the pattern signal is an electron beam signal.
- 15. A method for performing convolution of a two-dimensional pattern p(x, y), with a smooth kernel d which is at least approximately equal to a separated kernel, to generate data indicative of a convolution result
- 16. The method of claim 15, wherein steps (b), (c), and (d) are performed by a programmed processor, the processor is in an initial state at the start of step (b), and after step (d), the processor performs the additional steps of:
(e) transposing the data indicative of convolution of all columns of k2×p with k2 to produce data indicative of the convolution result r(x,y); and (f) after step (e), returning to the initial processor state.
- 17. The method of claim 16, also including the steps of:
(g) generating a pattern signal in response to convolved image data determined at least in part by the data indicative of the convolution result r(x,y); and (h) causing the pattern signal to be incident on a set of optics, and projecting a pattern image from the optics onto a lithography target in response to the pattern signal.
- 18. The method of claim 17, wherein the pattern signal is an optical signal.
- 19. The method of claim 17, wherein the pattern signal is an electron beam signal.
- 20. The method of claim 15, wherein the pattern data is stored in memory locations of a memory prior to step (b), and wherein step (c) is accomplished by storing the data indicative of k2×p in the memory such that data indicative of each column of (k2×p) occupies a row of the memory locations formerly occupied by the pattern data indicative of a row of p(x,y).
- 21. The method of claim 15, wherein B=2sin2(π/2L).
- 22. The method of claim 15, wherein B=1.
- 23. A computer system, comprising:
a processor programmed with software for convolving first data indicative of an n-dimensional pattern p(xx, . . . , xn), with a smooth kernel d at least approximately equal to a separated-spline kernel, to generate data indicative of a convolution result r=Dp=d×p, where D is the circulant of d, and n is greater than one, by processing second data, indicative of a separated spline kernel k(xx1, . . . xn)=k1(x1) . . . kn(xn) which approximates d, where kj has circulant Kj, the kernel k(x1, . . . , xn) admits of an operator A=A1A2 . . . An, where Aj is an annihilation or flattening operator which operates on the circulant Kj of kernel kj in such a manner that AjKj is sparse (when Aj is an annihilation operator) or AjKj is almost everywhere a locally constant matrix (when Aj is a flattening operator), with said first data to generate third data indicative of q1=A1k1×p for each row of the pattern p, and processing the third data to backsolve A1r1=q1 for said each row of the pattern to determine fourth data indicative of r1=k1×p for said pattern, and processing the fourth data to generate fifth data indicative of q2=A2k2×(k1×p)T for each row of (k1×p)T, where r1T=(k1×p)T denotes transposition of r1, and processing the fifth data to backsolve A2rT=q2 for said each row of (k1×p)T thereby determining sixth data indicative of r2T=(k2×k1×p)T for said pattern; at least one memory coupled to and accessible by the processor, and configured to store at least the first data, the second data, and the fifth data; and an input device coupled to the processor, wherein the processor executes the software in response to at least one control signal from the input device.
- 24. The system of claim 23, wherein n=2, and the software causes the processor to perform a transposition on the sixth data to generate seventh data indicative of r=(k2×k1×p) for said pattern, wherein the seventh data is said data indicative of the convolution result r=Dp=d×p.
- 25. A digital signal processor, including:
digital signal processing circuitry configured to perform arithmetic operations on data including first data indicative of an n-dimensional pattern p(x1, . . . , xn), and second data indicative of a separated-spline kernel k(x1, . . . , xn)=k1(x1) . . . kn(xn), where kj has circulant Kj, the kernel k(x1, . . . , xn) admits of an operator A=A1A2 . . . An, where Aj is an annihilation or flattening operator which operates on the circulant Kj of kernel kj in such a manner that AjKj is sparse (when Aj is an annihilation operator) or AjKj is almost everywhere a locally constant matrix (when Aj is a flattening operator), and said kernel k is at least approximately equal to a smooth kernel d having circulant D, where n is greater than one; and a program control unit coupled to the digital signal processing circuitry, and configured to generate control bits in response to instructions, and to assert the control bits to the digital signal processing circuitry to cause the digital signal processing circuitry to perform convolution on the first data by processing the first data and the second data to generate third data indicative of q1=A1k1×p for each row of the pattern p, and processing the third data to backsolve A1r1=q1 for said each row of the pattern to determine fourth data indicative of r1=k1×p for said pattern, and processing the fourth data to generate fifth data indicative of q2=A2k2x (k1×p)T for each row of (k1×p)T, where r1T=(k1×p)T denotes transposition of r1, and processing the fifth data to backsolve A2r2T=q for said each row of (k1×p)T thereby determining sixth data indicative of r2T=(k2×k1×p)T for said pattern.
- 26. The system of claim 25, wherein n=2, and the control bits cause the digital processing circuitry to perform a transposition on the sixth data to generate seventh data indicative of r=(k2×k1×p) for said pattern.
- 27. A lithography system, including:
a digital signal processor, comprising digital signal processing circuitry and a program control unit coupled to the digital signal processing circuitry, the digital signal processing circuitry being configured to perform arithmetic operations on data, including first data indicative of an n-dimensional pattern p(x1, . . . , xn), and second data indicative of a separated-spline kernel k(x1, .... xn)=k1(x1) . . . kc(xn), where kj has circulant Kj, the kernel k(x1, . . . , xn) admits of an operator A=A1A2 . . . An, where Aj is an annihilation or flattening operator which operates on the circulant Kj of kernel kj in such a manner that AjKj is sparse (when Aj is an annihilation operator) or AjKj is almost everywhere a locally constant matrix (when Aj is a flattening operator), and said spline kernel k is at least approximately equal to a smooth kernel d having circulant D, where n is greater than one, in response to control bits from the program control unit, to perform convolution on the first data by processing the first data and the second data to generate third data indicative of q1=A1k1×p for each row of the pattern p, and processing the third data to backsolve A1r1=q1 for said each row of the pattern to determine fourth data indicative of r1=k1×p for said pattern, and processing the fourth data to generate fifth data indicative of q2=A2k2×(k1×p)T for each row of (k1×p)T, where r1T=(k1×p)T denotes transposition of r1, and processing the fifth data to backsolve A2r2T=q for said each row of (k1×p)T thereby determining sixth data indicative of r2T=(k2×k1×p)T for said pattern, and performing a transposition on the sixth data to generate seventh data indicative of r2=(k2×k1×p) for said pattern; a pattern signal generator configured to generate a pattern signal in response to convolved image data determined at least in part by said seventh data; and a set of optics positioned so that the pattern signal is incident thereon, wherein the optics projects a pattern image on a lithography target in response to the pattern signal.
- 28. The lithography system of claim 27, wherein the digital signal processor asserts the seventh data to the pattern signal generator, and the pattern signal generator is configured to generate the pattern signal in response to said seventh data.
- 29. The lithography system of claim 27, wherein the pattern signal is an optical signal.
- 30. The lithography system of claim 29, wherein the optical signal is an optical beam and the set of optics is configured to focus the optical beam to generate a focused beam and to scan the focused beam relative to the lithography target.
- 31. The lithography system of claim 27, wherein the pattern signal is an electron beam signal.
- 32. The lithography system of claim 31, wherein the set of optics is configured to focus the electron beam signal to generate a focused electron beam and to scan the focused electron beam relative to the lithography target.
- 33. An apparatus configured to convolve a first signal indicative of an n dimensional pattern p(x1, . . . xn), with a second signal indicative of a separated spline kernel k(x1, . . . , xn)=k1(x1) . . . kn(xn) which approximates a smooth kernel d, where kj has circulant Kj, the kernel k(x1, . . . , xn) admits of an operator A=A1A2 . . . An, where Aj is an annihilation or flattening operator which operates on the circulant Kj of kernel kj in such a manner that AjKj is sparse (when Aj is an annihilation operator) or AjKj is almost everywhere a locally constant matrix (when Aj is a flattening operator), to generate a signal indicative of a convolution result r=Dp=d×p, where D is the circulant of d, and n is greater than one, by generating from the first signal and the second signal a third signal indicative of q1=A1k1×p for each row of the pattern p, and processing the third signal to backsolve A1r1=q1 for said each row of the pattern to generate a fourth signal indicative of r1=k1×p for said pattern, and generating from the fourth signal a fifth signal indicative of q2=A2k2×(k1×p)T for each row of (k1×p)T, where r1T=(k1×p)T denotes transposition of r1, and processing the fifth signal to backsolve A2r2T=q2 for said each row of (k1×p)T thereby generating a sixth signal indicative of r2T=(k2×k1×p)T for said pattern, whereby said sixth signal is at least approximately indicative of the convolution result r=Dp.
- 34. The apparatus of claim 33, wherein the apparatus consists of electronic circuitry.
- 35. The apparatus of claim 33, wherein the apparatus is a programmable gate array-based computing system.
- 36. A computer-readable storage medium which stores instructions, wherein the instructions are executable by a computer, and wherein the instructions are such that the computer performs a method for convolving first data indicative of an n-dimensional pattern p(x1, . . . xn), with a smooth kernel d at least approximately equal to a separated-spline kernel k(x1, . . . xn)=k1(x1) . . . kn(xn), where kj has circulant Kj, the kernel k(x1, . . . , xn) admits of an operator A=A1A2 . . . An, where Aj is an annihilation or flattening operator which operates on the circulant Kj of kernel kj in such a manner that AjKj is sparse (when Aj is an annihilation operator) or AjKj is almost everywhere a locally constant matrix (when Aj is a flattening operator), to generate data indicative of a convolution result r=Dp=d×p in response to executing said instructions, where D is the circulant of d, and n is greater than one, said method including the steps of:
processing second data, indicative of the separated-spline kernel k(x1, . . . , xn)=k1(x1) . . . kn(xn), with said first data to generate third data indicative of q1=A1k1×p for each row of the pattern p; processing the third data to backsolve A1r1=q1 for said each row of the pattern to determine fourth data indicative of r1=k1×p for said pattern; processing the fourth data to generate fifth data indicative of q2=A2k2×(k1×p)T for each row of (k1×p)T, where r1T=(k1×p)T denotes transposition of r1; processing the fifth data to backsolve A2r2T=q2 for said each row of (k1×p)T thereby determining sixth data indicative of r2T=(k2×k1×p)T for said pattern; and performing a transposition on the sixth data to generate seventh data indicative of r=(k2×k1×p) for said pattern, whereby said seventh data is at least approximately indicative of the convolution result r=Dp.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is a continuation-in-part of pending U.S. patent application Ser. No. 09/480,908, filed Jan. 11, 2000 by Richard E. Crandall, and which is assigned to Etec Systems, Inc. The full text of U.S. patent application Ser. No. 09/480,908 is incorporated herein by reference.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09480908 |
Jan 2000 |
US |
Child |
09866890 |
May 2001 |
US |