EP1527397A2 - Verfahren und vorrichtung zur schnellen signalfaltung mit separiertem spline-kern - Google Patents

Verfahren und vorrichtung zur schnellen signalfaltung mit separiertem spline-kern

Info

Publication number
EP1527397A2
EP1527397A2 EP02774117A EP02774117A EP1527397A2 EP 1527397 A2 EP1527397 A2 EP 1527397A2 EP 02774117 A EP02774117 A EP 02774117A EP 02774117 A EP02774117 A EP 02774117A EP 1527397 A2 EP1527397 A2 EP 1527397A2
Authority
EP
European Patent Office
Prior art keywords
pattern
data
data indicative
kernel
convolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP02774117A
Other languages
English (en)
French (fr)
Inventor
David Jeremy Copeland
Richard E. Crandall
Ulrich Hofmann
Richard L. Lozes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Applied Materials Inc
Original Assignee
Applied Materials Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/866,890 external-priority patent/US6912323B2/en
Application filed by Applied Materials Inc filed Critical Applied Materials Inc
Publication of EP1527397A2 publication Critical patent/EP1527397A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations

Definitions

  • the invention relates to signal processing methods and apparatus for performing convolution on data indicative of a pattern (e.g., image data indicative of a pixel array).
  • a pattern e.g., image data indicative of a pixel array.
  • the convolution kernel is (or is approximated by) a separated-spline function.
  • Convolution is commonly performed on signals in many contexts, including the fields of sound, still image, video, lithography, and radio (radar) signal processing.
  • the signals to be convolved are pattern signals.
  • Each of the expressions "pattern” and “pattern signal” is used herein in a broad sense to denote a one-dimensional sequence or two-dimensional (or higher dimensional) array of data words (which can be, but need not be pixels).
  • the data words comprise binary bits, and the convolution is performed in discrete fashion on the binary bits using software, digital signal processing circuitry, custom hardware, or FPGA systems (field programmable gate array based computing systems).
  • data herein denotes one or more signals indicative of data
  • data word herein denotes one or more signals indicative of a data word.
  • the present invention grew out of attempts to establish a suitable "O(NN)" algorithm (an algorithm requiring not more than on the order of NN multiplications and additions) for convolving a two-dimensional pattern comprising NN pixels, where each of NandN is very large) with a Gaussian kernel (or other smooth kernel) such that the convolution is exact or very close to exact.
  • a suitable "O(NN)” algorithm an algorithm requiring not more than on the order of NN multiplications and additions
  • a Gaussian kernel or other smooth kernel
  • the objective in performing proximity correction is to generate a "raw" optical signal (or “raw” electron beam signal) which can be input to a set of reflective or refractive optics (or electron beam optics), in order to cause the output of the optics to produce a desired pattern on a mask or wafer.
  • a deconvolution operation is typically performed on a very large array of pixels (which determine a pattern "p") in order to correct for the well known proximity problem.
  • the proximity problem results from electron scattering in the substrate (mask or wafer) being written. Such scattering exposes broadened areas on the substrate to electrons (i.e., an area surrounding each pixel to be written in addition to the pixel itself), with the scattering effectively broadening the electron beam beyond the beam diameter with which the beam is incident on the substrate.
  • such a deconvolution operation includes at least one convolution step. Accordingly, in performing typical proximity correction, a very large array of pixels (determining a pattern "p") must be convolved with a diffusion kernel. Although such a convolution is typically performed on a pattern comprising a very large array of binary pixels, this restriction is not essential in the following discussion and is not essential to implementation of the invention. Indeed, the invention can implement convolution on data indicative of any pattern "p" with a smooth convolution kernel "d” having characteristics to be described below. For data indicative of a pattern "p" and a convolution kernel "d” we consider the cyclic convolution:
  • x ⁇ denotes that the convolution operator has cyclic character, and an acyclic convolution which differs only in the indicial constraint and range:
  • the pattern is two-dimensional (a two-dimensional arrays of data values determines the pattern) and the summation defining the convolution (a summation which corresponds to either one of the summations set forth in the previous paragraph) is over index k as well as index of the array p jk -
  • the indices n, i, j and domain lengths N in the formulae set forth in the previous paragraph are 2- vectors.
  • the result of the cyclic convolution has length N(it comprises N data values), and the result of the acyclic convolution has length +N-l.
  • D is the circulant matrix of d (hereinafter the "circulant" of d), whose 1- dimensional form is defined (assuming that N is greater than 3) as:
  • U.S. Patent Application No. 09/480,908 discloses a fast convolution method whose central idea (in one-dimensional embodiments) is to approximate a smooth kernel d by a polynomial sphne kernel/ (where/is a spline function_ ( ) which is piecewise a polynomial of degree ⁇ with L pieces fi(x)), and then to use appropriate operators that annihilate (or flatten) each polynomial of given degree (in a manner to be explained) to calculate the convolution of/ and ? quickly.
  • the smooth kernel d is approximated by a spline kernel /which is not a polynomial spline kernel, but which consists of L pieces defined over adjacent segments of its domain (in typical two-dimensional cases, the latter spline kernel is a radially symmetric function whose domain is some continuous or discrete set of values of the radial parameter).
  • spline convolution as described in U.S. Application No. 09/480,908 has features reminiscent of conventional wavelet schemes and is an O(N) algorithm (as are wavelet schemes), an advantage of "spline" convolution is that it can be performed (on data indicative of a pattern/?
  • the pattern "p" can be one-dimensional in the sense that it is determined by a continuous (or discrete) one-dimensional domain of data values (e.g., pixels), or it can be two-dimensional in the sense that it is determined by a continuous two- dimensional domain of data values (or a two-dimensional array of discrete data values), orp can have dimension greater than two.
  • the pattern ? is one-dimensional in the sense that it is determined by a discrete, ordered set of data values (e.g., pixels) /?,, where i varies from 0 to N-l (where N is the signal length), or it is two-dimensional in the sense that it is determined by an array of data values py, where i varies from 0 to N-l and/ ' varies from 0 to N-l, or it has dimension greater than two (it is determined by a three- or higher-dimensional set of data values).
  • a discrete, ordered set of data values e.g., pixels
  • py where i varies from 0 to N-l and/ ' varies from 0 to N-l, or it has dimension greater than two (it is determined by a three- or higher-dimensional set of data values).
  • the kernel d is determined by an array of data values dy, where i varies from 0 to N- 1 andy varies from 0 to N-l (but the kernel d can alternatively be determined by a discrete set of data values do through d ⁇ . ⁇ ).
  • the convolution Dp is accomplished by performing the steps of:
  • ⁇ g + i has the form of the N x N circulant matrix defined as follows:
  • each entry is a binomial coefficient
  • the annihilation operators can be defined as
  • the end points of each segment (the "pivot points") of spline kernel may be consecutive elements d t and dm of kernel d, and step (a) can be implemented by performing curve fitting to select each segment of the spline kernel as one which adequately matches a corresponding segment of the kernel d .
  • appropriate boundary- conditions are satisfied at each pivot point, such as by derivative-matching or satisfying some other smoothness criterion at the pivot points.
  • step (c) includes a preliminary "ignition" step in which a small number of the lowest components o ⁇ r — Fp are computed by exact multiplication of/? by a few rows of F, and then a step of determining the rest of the components of r using a natural recurrence relation determined by the spline kernel and the operator ⁇ ⁇ j + ⁇ .
  • the lowest components of r are r 0) ri,— > r s, where " ⁇ " is the maximum degree of the spline segments of spline kernel/(for example r 0 , r ⁇ , and r 2 where the spline kernel comprises quadratic segments), and these ( ⁇ + 1) components are determined by exact multiplication of ? by ( ⁇ + 1) rows of F.
  • the (c5 + 1) components can alternatively be determined in other ways. Then, the rest of the components "rs" are determined using a natural recurrence relation determined by the operator ⁇ + .
  • ignition operation which generates the components r 0 , r ⁇ ,..., rs, can be accomplished with O(N) computations.
  • the recurrence relation calculation can also be accomplished with O(N) computations.
  • each entry is a binomial coefficient
  • is the maximum degree of the spline segments of spline kernel/
  • the flattening operator ⁇ ⁇ is defined similarly.
  • the convolution Dp (where D is the circulant of smooth kernel d) includes the steps of:
  • FDF X requires one transform.
  • D is fixed, and transformed on a one-time basis
  • subsequent convolutions Dp only require two transforms each, as is well known.
  • the complexity then of Fourier-based cyclic convolution is thus O(Nlog N) operations (i.e., on the order of N log N multiplications and additions) for convolving a pattern/? of length N (a pattern determined by N data values), because of the 2 or 3 FFTs (Fast Fourier Transforms) required.
  • the Fourier method is an exact method (up to round-off errors depending on the FFT precision).
  • WDW X is sparse, where "sparse" in the present context denotes simply that any matrix- vector product Wx, for arbitrary x, involves reduced complexity O(N), rather than say O(N 2 ).
  • Separated-spline convolution in accordance with the present invention is an O(N) method for convolving a pattern ? determined by N data values.
  • Separated-spline convolution in accordance with the present invention has an advantage over spline convolution in accordance with U.S. Application No. 09/480,908 in that separated-spline convolution in accordance with the invention can be performed (on data indicative of a two- or higher-dimensional pattern/? consisting of N data values) with dN arithmetic operations (multiplications and additions), whereas spline convolution in accordance with
  • the invention is a method for perfonning two-dimensional cyclic or acyclic convolution of an ⁇ -dimensional pattern "/?"
  • a two-dimensional pattern ? is determined by a continuous two-dimensional range of data values or two-dimensional array of discrete data values.
  • the pattern/? is two-dimensional in the sense that it is determined by a discrete, ordered set of data values (e.g., pixels) py, where i varies from 0 to N-l and/ ' varies from 0 to
  • step (c) a small number of the lowest components of n are computed directly during the preliminary ignition step, and the rest of the components of r ⁇ are then determined using the natural recurrence relation.
  • step (c) a small number of large negative components of r x are computed directly during the preliminary ignition step, and the rest of the components of r ⁇ are then determined using the natural recurrence relation.
  • k + (x) is a one-tailed Laplacian kernel
  • Each one-dimensional convolution is performed in three parts.
  • the cap ⁇ R) and the two decay regions (where x > R and x ⁇ -R) are each produced by different convolutions, whose results are added together to obtain the final result.
  • step (c) includes the step of storing (k ⁇ x p) ⁇ in the memory such that each row of (k ⁇ x p) ⁇ occupies the memory locations formerly occupied by a corresponding row of p(x,y).
  • step (e)) is omitted.
  • the one-dimensional kernel k 2 (x) has two parts:
  • steps (a)-(d) are performed by an appropriately programmed processor, and the processor performs the additional step of: (e) after step (d), transposing the result of step (d) to produce r(x, y), and returning to an initial processor state.
  • steps (a)-(d) are performed by an appropriately programmed processor, and the processor performs the additional step of: (e) after step (d), transposing the result of step (d) to produce r(x, y), and returning to an initial processor state.
  • each occurrence of the factor 2sin 2 ( ⁇ /2L) is replaced by the factor 1.
  • the invention is a computer programmed with software for performing convolution, on data indicative of an ?z-dimensional pattern (where n is greater than or equal to 2), using a separated kernel in accordance with any embodiment of the inventive method.
  • Other embodiments of the invention include a digital signal processor including digital signal processing circuitry configured to perform convolution on data indicative of an n-dimensional pattern (where n is greater than or equal to 2), using a separated kernel in accordance with any embodiment of the inventive method, an apparatus (such as custom or dedicated electronic circuitry, or a field programmable gate array based computing system ("FPGA system”)) configured to perform convolution on such data in accordance with any embodiment of the inventive method, and a lithography system including such digital signal processing circuitry, such custom or dedicated electronic circuitry, or such an FPGA system.
  • FPGA system field programmable gate array based computing system
  • a computer-readable storage medium which stores computer-executable instructions, wherein the instructions are such that a computer performs an embodiment of the inventive method in response to executing the instructions.
  • Figure 1 is a block diagram of a computer system programmed with software for implementing the inventive method.
  • FIG. 2 is a block diagram of a lithography system including a digital signal processor configured to perform convolution (in accordance with the invention) on image data, and a device which generates a pattern signal (e.g., an optical beam electron beam having time-varying amplitude) from the resulting convolved image data.
  • the pattem signal is provided to a set of optics (e.g., reflective or refractive optics, or electron beam optics) and the output of the optics is projected as a pattern on a glass plate, thus producing a mask useful in integrated circuit manufacture.
  • Figure 3 is a block diagram of a digital signal processor (which can be used as the digital signal processor of Fig. 2) configured to perform convolution
  • Figure 4 is a block diagram of a lithography system which is a variation on the system of Figure 2.
  • Fig. 5 is a simplified elevational view of a computer-readable storage medium (a CD-ROM) which stores computer-executable instructions, wherein the instructions are such that a computer performs an embodiment of the inventive method in response to executing the instructions.
  • a computer-readable storage medium a CD-ROM
  • data denotes one or more signals indicative of data words.
  • data indicative of a pattern "/?” is convolved (in accordance with the invention) with data indicative of a smooth kernel "d" denotes that one or more signals indicative of the pattern/? is (are) processed with another set of one or more signals indicative of the kernel d, to generate data (i.e., one or more signals) indicative of the convolution result.
  • k(x,y) a(r Q 4 - 2r 2 (x 2 + y z ) + (x 2 + v 2 ) 2 ) for x 2 + y 2 ⁇ r 2
  • convolution in accordance with the invention employs separated kernels.
  • the basic premise is that, in order to perform two- dimensional convolution in accordance with the invention, one "factors" the separated kernel and performs two one-dimensional convolutions. These convolutions are not dependent on the radius, and in practice this technique will reduce the number of convolution operations drastically.
  • Jdx,y k x (x)ky(y).
  • k l (x) a(b 2 -x 2 ) for ⁇ x ⁇ ⁇ R,
  • Each one-dimensional convolution is performed in three parts.
  • xj ⁇ R) and the two decay regions (where x > R and x ⁇ -R) are each produced by different convolutions, whose results are added together to obtain the final result.
  • a c k c (x) ek c (x+i) +fk c (x+j) + gk c (x+m) + hk c (x+n),
  • a c k c (x) will be zero except at a small number of specific values of the parameter x.
  • a c k c x /?) for each value of x, one need only compute a small number of additions (and an even smaller number of additions near the boundaries of the interval over which the convolution is performed).
  • a small number of initial values of A c 'l (A c k c x p)(x) are found by direct computation to "ignite" the recursion relation calculation.
  • a c k c (x) k c (x+3) - 3k c (x+2) + 3k c (x+l) - k c (x).
  • a c k c x p)(x) for each value of x, one need only compute seven additions (and an even smaller number of additions near the boundaries of the interval over which the convolution is performed).
  • k c (x+3) A c k c (x) + k c (x) + 3k c (x+2) - 3k c (x+l), and recursively solving for x.
  • the final difficulty is that we need three initial values of c to do this.
  • the one-dimensional convolution for the positive decay region is performed using the one-tailed Laplacian decay kernel
  • A+ k + (x) k + (x + 1) - cT x k + (x).
  • r(x + 1) (A + k + ⁇ p)(x)+ cT x r(x).
  • the one-dimensional convolution for the negative decay region is exactly the same as the one-dimensional convolution for the positive decay region, except that the recursion should be taken in the opposite direction. This slows the algorithm, since the k c and k + convolutions can be calculated on a single pass of the pointers, but the k. convolution requires a second, reversed pass.
  • A- k x) k.(x - 1) - dr kfx).
  • the algorithm takes as an input a pattern/? ⁇ ,; ) for (x,y) e D, withD being a rectangular domain of given size. It returns r(x,y) - (k xp)(x,y) for all points in D, where k(x,y) is defined in equation (1) above.
  • k(x,y) is defined in equation (1) above.
  • step i Loop over the rows. For each row, compute the convolution of the row with k x (x) by computing a cap convolution (step i), a positive decay convolution (step ii), and a negative decay convolution (step iii) on the row, adding together (step iv) the three convolutions produced in steps (i), (ii), and
  • steps (i), (ii), (iii), and (iv) is performed as follows for each row of the pattern:
  • step (c) Repeat step (a), this time on rows of (k x x p) ⁇ rather than on rows of/?, thereby convolving all columns ofk ⁇ x p with k x ; (d) transpose the result of step (c) to produce r(x,y), and return.
  • step (b) includes the step of storing (k x x p) in the memory, such that each row of (k x x p) ⁇ occupies the memory locations formerly occupied by a corresponding row of p(x,y).
  • the algorithm is preferably performed by a processor programmed to compute each annihilated convolution and simultaneously inflate it. This way, there is no need to store the annihilated convolution before it is flattened. Also, both h, and k c are preferably computed on the same pass through the processor. Also, two full transpositions will typically not be necessary where a column-ferrying technique is employed to compute the cap and positive decay region convolutions, and the column return, negative convolution and add should all be part of the same loop. It is also likely that when employing some types of processors to perform the algorithm, in-place operations are fastest.
  • the above-described embodiment of convolution in accordance with the invention is dependent on the size of the pattern since the Laplacian decay is e x and the Gaussian is e x2 .
  • the error is dependent on the size of the domain.
  • Example 2 Squared cosine separated kernel.
  • a "squared cosine" separated kernel a "squared cosine" separated kernel
  • Convolution using the squared cosine separated kernel is faster and cleaner than convolution using the above-described "quadratic with Laplacian decay" kernel, since convolution using the squared cosine kernel is independent of the pattern's dimension.
  • the squared cosine kernel also allows a mostly in-place method for the set of row convolutions in one pass, and also a ferrying technique with calculations done on the transfer. Since the squared cosine kernel is more stable, floating point arithmetic can be used.
  • the two dimensional kernel is defined as:
  • k c (x) 2 cos(7ZX / R) for ⁇ x ⁇ ⁇ R
  • the other kernel is
  • k c is annihilated by A c .
  • the annihilation operator A that we will use is the "product" of these two operators:
  • AM Ac o AM + 2) - (1 + 2 ⁇ a ⁇ LMx + 1) ⁇ M) ⁇
  • step (b) Transpose k 2 x p to produce (k x /?) ⁇ ; (c) Repeat step (a), this time on rows of (k 2 x p) T rather than on rows of p(x,y), thereby convolving all columns of k 2 x p with k .
  • a final step of transposing the result of step (c) is performed to produce r(x, y), and the processor then returns to its initial state.
  • step (b) includes the step of storing (k 2 x p) ⁇ in the memory, such that each row of (k 2 x /?) ⁇ occupies the memory locations formerly occupied by a corresponding row of p(x,y).
  • the naive computation count for the described algorithm is as follo s: there are h repetitions of step (a), where h is the height; computing Ak involves one multiplication and three adds, done w + R + 3 times (where w is the width); the recursion requires one multiplication and four adds done w + R + 3 times
  • VN array requires:
  • steps (d) and (e) are repeated for each additional dimension of pattern ? (with the transposition operation as defined above in the Summary), and the transposition of the result of the final repetition of step (e) is a close approximation (or exactly equal) to the desired convolution Dp .
  • step (c) a small number of the lowest components of r ate computed directly during the preliminary ignition step, and the rest of the components of r are then determined using the natural recurrence relation.
  • step (c) a small number of large negative components of r are computed directly during the preliminary ignition step, and the rest of the components of r are then determined using the natural recurrence relation.
  • discrete convolution is performed employing a matrix formalism, whereby a 2- dimensional pixel rectangle is converted into a 1-dimensional column vector using lexicographical indexing.
  • the circulant matrix F becomes an NN-by-NN monstrosity, but when an annihilation operator A is applied, the operator AE will be sparse.
  • This class of embodiments of the invention has the advantage of converting nonvanishing circular regions to deterministically- indexed matrix elements.
  • FIG. 1 is a block diagram of a computer system which embodies the invention.
  • the system includes processor 2 (which is programmed with software for implementing any embodiment of the inventive convolution method), display device 4, input device 6, and memory 8 (and optionally also output device 5) coupled to processor 2.
  • processor 2 is a typical processor configured to process binary data, it is programmed with software for implementing a "discrete" implementation of the inventive method.
  • processor 2 is programmed to determine (from a user- specified convolution kernel d of interest) particular parameters of a spline kernel k which cause the spline kernel to approximate the convolution kernel d (subject to user-specified constraints).
  • processor 2 generates one or more look-up tables, stores them in memory 8 (or a cache memory associated with processor 2), and then accesses the stored look-up tables during performance of the invention. The user controls processor 2
  • Output device 5 (which can be employed instead of or in addition to display device 4) is preferably a pattern-capable device such as a sound reproduction unit, an I/O port (input/output port), or a signal processing (and/or storage) device (or system).
  • FIG. 2 is a block diagram of a lithography system including digital signal processor (“DSP") 10 which is configured to perform convolution (in accordance with the invention) on image data stored in memory unit 14.
  • DSP digital signal processor
  • the image data stored in memory unit 14 determines the pattern/? to be convolved.
  • the output data is stored in memory 14 (and optionally undergoes further processing) and/or is output to "pattern signal" generation device 16.
  • Device 16 generates a pattern signal (e.g., a beam of optical or other electromagnetic radiation having time- varying amplitude or an electron beam having time- varying amplitude) in response to data it receives
  • a pattern signal e.g., a beam of optical or other electromagnetic radiation having time- varying amplitude or an electron beam having time- varying amplitude
  • device 16 emits a beam of optical radiation which is incident on optics 18 to cause optics 18 to project an output beam on lithography target 20.
  • Optics 18 scans the output beam across lithography target 20, in response to scan control signals from control unit 12.
  • the amplitude of the beam emitted from device 16 varies as a function of time (in response to the output data from DSP 10, which assumes the scan pattern determined by the scan control signals from unit 12) in such a manner that the scanned output beam (the output of optics 18) exposes target 20 to a pattern of pixels.
  • device 16 emits an electron beam which is incident on optics 18, to cause optics 18 to project an output electron beam on lithography target 20.
  • Optics 18 scans the output electron beam across target 20, in response to scan control signals from control unit 12.
  • the amplitude of the electron beam emitted from device 16 varies as a function of time (in response to the output data from DSP 10, which assumes the scan pattern determined by the scan control signals from unit 12) in such a manner that the scanned output beam from optics 18 exposes target 20 to a pattern of pixels.
  • device 16 can emit radiation which is focused (without being scanned) by optics 18 to project on target 20 an image comprising pixels, said image determining a pattern.
  • one embodiment of device 16 emits optical radiation which is focused by optics 18 so as to project from optics 18 as a pattern on target 20, without the need for optics 18 to scan any beam across target 20.
  • Pattern signal recognizing that examples of such pattern signal include a beam of optical or other radiation to be scanned by optics 18, an electron beam to be scanned by optics 18, and radiation to be focused by but not scanned by optics 18.
  • Optics 18 can be a set of reflective and/or refractive optics (with or without scanning capability, including means for moving one or more elements of the optics to scan a beam across target 20), or it can be a set of electron beam optics (with scanning capability, including means for moving one or more elements thereof to scan an electron beam across target 20).
  • the output of optics 18 is projected (e.g., including by being scanned) as a pattern on lithography target 20.
  • target 20 is a glass plate (so that projection of the pattern thereon produces a mask useful in integrated circuit manufacture) or a semiconductor wafer.
  • Optics 18 typically focuses the pattern signal so that a very small pattern is projected on target 20.
  • the "raw" pattern signal that is output from device 16 determines a pattern, diffraction artifacts (or other artifacts) introduced by optics 18 (or inherent in the interaction between the imaging beam and target
  • the "raw" pattern signal output from device 16 is an electron beam to be focused by electron beam optics 18, and scanned onto a sequence of pixels on target 20, in an effort to project on target 20 a pattern determined by the amplitude of the focused electron beam incident on each single pixel of the sequence.
  • the well known "proximity problem" (discussed above) causes exposure of an area surrounding each pixel on which the focused electron beam is incident (due to scattering of electrons away from each such pixel to the surrounding areas of the target).
  • the pattern actually produced on target 20 is determined by supe ⁇ osition of the results of directing the focused electron beam at each pixel of the sequence, where a multi-pixel region is exposed each time the focused electron beam is incident at one of the pixels of the sequence.
  • DSP 10 is configured to generate output data which will cause device 16 to output a "raw" pattern signal having the characteristics that are needed to produce a desired pattern on target 20.
  • DSP 10 performs a deconvolution operation on a large array of pixels (image data stored in memory 14) in order to compensate for any artifacts expected to be introduced by optics 18 and/or any expected scattering (by target 20) of an electron beam incident on target 20 from optics 18.
  • the deconvolution operation performed by DSP 10 includes a convolution operation (performed in accordance with the invention) on stored image data that it retrieves from memory 14, where the image data determines a very large array of pixels which in turn determines a pattem "/?".
  • Controller 12 of the Fig. 2 system provides appropriate control signals to units 10, 14, 16, and 18, and is capable (for example) of downloading instructions to DSP 10 to cause it to execute the convolution operation with specified parameters.
  • Fig. 3 is a block diagram of a digital signal processor (DSP) which can be used as DSP 10 of Fig. 2, and which is configured to perform convolution in accordance with the invention on image data.
  • the DSP of Fig. 3 includes arithmetic computational unit (ACU) 34 which includes addition and multiplication circuitry (for performing the matrix multiplication and recurrence relation operations required to implement the convolution), program memory 30 (which stores the instructions which are executed by the DSP to perform the convolution operation), program control unit (PCU) 32, memory management unit 36, and data memory 38, connected as shown.
  • ACU arithmetic computational unit
  • PCU program control unit
  • controller 12 of Fig. 2 loads appropriate instructions into memory 30, and data indicative of a pattern ? (the data labeled "INPUT" in Fig. 3) is loaded into memory 38.
  • PCU 32 includes instruction fetch circuitry for fetching a sequence of the instructions from program memory 30, instruction decoding circuitry, and registers for storing control bits generated by the decoding circuitry for assertion at appropriate times to unit 36 and/or unit 34.
  • Memory management unit 36 is configured to generate address signals (each identifying a memory location in memory 38 for writing data to or reading data from) in response to control bits from PCU 32, and to assert such address signals over an address bus to memory 38.
  • address signals each identifying a memory location in memory 38 for writing data to or reading data from
  • unit 36 asserts address signals to data memory 38.
  • data memory 38 sends signals indicative of data to ACU 34 (over a data bus).
  • memory 38 In some implementations, memory
  • data indicative of the final convolution result is output from memory 38 (as output data " OUTPUT 1") to pattern signal generator 16.
  • data indicative of the final convolution result streams directly (or through a buffer) to pattern signal generator 16 from ACU 34 (as output data "OUTPUT2").
  • Fig. 4 is a variation on the system of Fig. 2, in which elements 16, 18, and 20 are identical to identically numbered elements of Fig. 2.
  • element 46 is configured to perform convolution (in accordance with any embodiment of the invention) on image data (determining the pattern/? to be convolved) which it receives from memory unit 44.
  • the output data is streamed directly from DSP to pattern signal generation device 16, and device 16 generates a pattern signal in response to the output data from element 46. Controller 42 of the Fig.
  • convolution kernels "d" employed in the field of electron beam lithography proximity error correction are sufficiently smooth to be adequately approximated by a separated-spline kernel "k.”
  • Convolution kernels that are noisy (random), such as those encountered in cryptography, are typically not sufficiently smooth to be adequately approximated by a separated-spline kernel
  • Fig. 5 is a simplified elevational view of computer-readable storage medium 50 (which is a CD-ROM) which stores computer-executable instructions (software).
  • the instructions are such that a computer performs an embodiment of the inventive method in response to executing the instructions.
  • the invention is implemented by hardwired circuitry (e.g., custom or dedicated electronic circuitry) or FPGA systems (field programmable gate array based computing systems) rather than in software or by a system including a digital signal processor ("DSP").
  • DSP digital signal processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
EP02774117A 2001-05-29 2002-05-24 Verfahren und vorrichtung zur schnellen signalfaltung mit separiertem spline-kern Withdrawn EP1527397A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US866890 1997-05-30
US09/866,890 US6912323B2 (en) 2000-01-11 2001-05-29 Method and apparatus for fast signal convolution using separated-spline kernel
PCT/US2002/016475 WO2002097655A2 (en) 2001-05-29 2002-05-24 Fast signal convolution using separated -spline kernel

Publications (1)

Publication Number Publication Date
EP1527397A2 true EP1527397A2 (de) 2005-05-04

Family

ID=25348651

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02774117A Withdrawn EP1527397A2 (de) 2001-05-29 2002-05-24 Verfahren und vorrichtung zur schnellen signalfaltung mit separiertem spline-kern

Country Status (5)

Country Link
EP (1) EP1527397A2 (de)
JP (1) JP2005517999A (de)
KR (1) KR100839391B1 (de)
TW (1) TWI220482B (de)
WO (1) WO2002097655A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2246132C2 (ru) * 2003-01-09 2005-02-10 Военно-морской институт радиоэлектроники Способ и устройство быстрого вычисления дискретного вейвлет-преобразования сигнала с произвольным шагом дискретизации масштабных коэффициентов
RU2412454C2 (ru) * 2009-05-04 2011-02-20 Федеральное государственное унитарное предприятие Сибирский научно-исследовательский институт геологии, геофизики и минерального сырья Способ обработки сейсмических данных с использованием дискретного вейвлет-преобразования
TWI645335B (zh) * 2016-11-14 2018-12-21 耐能股份有限公司 卷積運算裝置及卷積運算方法
TWI616813B (zh) * 2016-11-14 2018-03-01 耐能股份有限公司 卷積運算方法
CN120357906B (zh) * 2025-06-25 2025-09-02 湖北工业大学 基于fgpa的高速低时延实时信号卷积调制方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO478897A0 (en) * 1997-01-24 1997-02-20 Canon Information Systems Research Australia Pty Ltd Scan line rendering of convolutions
US6701028B1 (en) * 2000-01-11 2004-03-02 Applied Materials, Inc. Method and apparatus for fast signal convolution using spline kernel

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO02097655A2 *

Also Published As

Publication number Publication date
KR100839391B1 (ko) 2008-06-20
WO2002097655A3 (en) 2005-03-03
KR20040011514A (ko) 2004-02-05
WO2002097655A2 (en) 2002-12-05
JP2005517999A (ja) 2005-06-16
TWI220482B (en) 2004-08-21

Similar Documents

Publication Publication Date Title
US6912323B2 (en) Method and apparatus for fast signal convolution using separated-spline kernel
KR102921313B1 (ko) 제로 스키핑 및 계층적으로 구조화된 프루닝 방법을 이용한 신경망 하드웨어 가속기 시스템
Gil et al. Computing 2-D min, median, and max filters
Damerval et al. A fast algorithm for bidimensional EMD
Andersson et al. Fast algorithms and efficient GPU implementations for the Radon transform and the back-projection operator represented as convolution operators
CN117610040A (zh) 基于硬件模块执行数论变换ntt的方法和硬件模块
WO2002097655A2 (en) Fast signal convolution using separated -spline kernel
US6854104B2 (en) First approximation for OPC significant speed-up
EP1682934B1 (de) Verfahren und einrichtung zum korrigieren von slm-stempel-bild-mängeln
US6678868B2 (en) Using Boolean expressions to represent shapes within a layout of an integrated circuit
US8164593B2 (en) Systems and methods for graphical rendering
Maleki et al. Automatic hierarchical parallelization of linear recurrences
Deng et al. High-speed parameterisable Hough transform using reconfigurable hardware
Cai et al. Towards increased productivity of algorithm implementation
Abed Implementation of an edge detection algorithm using FPGA reconfigurable hardware
CN115083001B (zh) 基于图像敏感位置定位的对抗补丁生成方法与装置
Ahn et al. Multimedia processor-based implementation of an error-diffusion halftoning algorithm exploiting subword parallelism
Zhang et al. HDecoder: A hardware LDPC decoder using high level synthesis for phase modulated collinear holographic storage
Forshaw Speeding up the Marr-Hildreth edge operator
Li Recursive operations in image algebra and their applications to image processing
Milder et al. Discrete Fourier transform compiler: From mathematical representation to efficient hardware
Alanazi Accelerated FPGA-Based Vector Directional Filter for Real-Time Color Image Denoising with Enhanced Performance.
Dizon et al. Optimization in the construction of cardinal and symmetric wavelets on the line
US20250028943A1 (en) Activation accelerator for neural network accelerator
Lundberg Maximum entropy matching: An approach to fast template matching

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20031217

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH DE GB LI NL

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20081202