Claims
- 1. A method of controlling the movement of a component of a servo-driven photolithography tool, comprising:
(a) receiving initial control data regarding required start and end points, distances, and velocities of scans; (b) planning an infinite jerk, multi-axis trajectory of the component on the basis of the initial control data; (c) performing, in real time, a profile execution on the basis of the planned trajectory, wherein the trajectory is shaped using digital filtering; and (d) outputting, to a control system, execution data that comprises positions and accelerations of the component.
- 2. The method of claim 1, wherein the component is a wafer stage.
- 3. The method of claim 1, wherein the component is a reticle stage.
- 4. The method of claim 1, wherein said step (b) comprises:
(i) calculating a preliminary motion trajectory for each axis; (ii) adjusting zero velocity time intervals in the preliminary motion trajectories, if necessary, to synchronize motion across axes; and (iii) inserting delays at the start of the preliminary motion trajectory for each axis to compensate for filter delays.
- 5. The method of claim 4, wherein said step (i) comprises:
(A) adjusting a constant velocity scan length to account for filter width, settling time, and quantization; (B)-computing acceleration intervals between consecutive constant velocity scans; (C) creating a zero velocity point between the consecutive constant velocity scans; and (D) quantizing the acceleration intervals.
- 6. The method of claim 5, wherein said step (B) comprises:
calculating an optimal velocity profile for each axis; if maximum velocity or maximum acceleration limits are exceeded, constraining the optimal velocity profile according to the limits; and calculating transition times between consecutive constant velocity scans.
- 7. The method of claim 5, wherein said step (C) comprises:
if a trajectory between scans either starts or ends at zero velocity, or has no reversal point, breaking the trajectory into two sub-optimal segments, where the first sub-optimal segment ends with zero velocity and the second sub-optimal segment begins with zero velocity; otherwise, calculating a reversal point and splitting the trajectory at the reversal point, into two segments, wherein velocity is zero at the reversal point.
- 8. The method of claim 4, wherein said step (ii) comprises:
(A) identifying a non-critical axis trajectory; (B) calculating a time difference between a critical axis trajectory and the non-critical axis trajectory; and (C) introducing a delay, equal to the time difference, at a zero velocity point of the non-critical axis trajectory.
- 9. The method of claim 4, wherein said step (b) further comprises the following step, performed after said step (ii):
(iv) inserting a delay at the start of an axis trajectory to compensate for filter delays.
- 10. The method of claim 9, wherein said step (iv) comprises:
(A) identifying an axis trajectory with the longest execution filter delay; (B) identifying an axis trajectory with a shorter execution filter delay; (C) calculating the difference between the execution filter delays; and (D) introducing a matching delay, equal to the difference between the execution filter delays, into the axis trajectory with the shorter execution filter delay.
- 11. The method of claim 1, wherein said step (C) comprises:
(i) receiving trajectory data; (ii) creating an integrated position signal based on the trajectory data; (iii) filtering the integrated position signal, using an initial position signal from the trajectory data to create a filtered position signal; (iv) interpolating the filtered position signal, using the initial position signal, to create an interpolated position signal; and (v) delaying the interpolated position signal to compensate for propagation delay and phase shift; (vi) interpolating an acceleration state signal from the trajectory data to create an interpolated acceleration signal; and (vii) delaying the interpolated acceleration signal to compensate for propagation delay and phase shift.
- 12. The method of claim 11, wherein said step (iii) comprises:
(A) applying a first absolute position array to the initial position signal to create a parallel signal set; (B) subtracting the initial position signal from each parallel position signal of the parallel position signal set to create a delta parallel position signal set; (C) multiplying the delta parallel position signal set by first filter coefficients to create a parallel product signal set; (D) summing all parallel product signals of the parallel product signal set, to create a scaler delta filtered signal; and (E) adding a first delayed initial position signal to the delta filtered signal to create a filtered position signal.
- 13. The method of claim 11, wherein said step (iv) comprises:
(A) upsampling the filtered position signal; and (B) filtering the upsampled filtered position signal to create the interpolated signal.
- 14. The method of claim 13, wherein said step (B) comprises:
applying a second absolute position array to the up-sampled filtered position signal to create a parallel upsampled position signal set; subtracting the initial position signal from each parallel upsampled position signal of the parallel upsampled position signal set to create a delta parallel upsampled position signal set; multiplying the delta parallel upsampled position signal set by second filter coefficients to create a parallel product upsampled signal set; summing all signals of the parallel product upsampled signal set to create a scalar delta filtered up sampled signal; and adding a second delayed initial position signal to the delta filtered upsampled signal to create the interpolated signal.
- 15. The method of claim 11, wherein said step (vi) comprises:
(A) upsampling the acceleration state signal; and (B) filtering the upsampled acceleration signal.
- 16. A system for controlling movement of a component of a servo driven photolithography tool, comprising:
a trajectory planning module that plans an infinite jerk, multi-axis trajectory for the component; and a profile executor module that plans execution of said trajectory in a manner that optimizes said trajectory, wherein said executor module comprises a digital filter.
- 17. The system of claim 16, wherein said executor module comprises:
a first interpolation component that receives an acceleration signal from said trajectory planning module and interpolates said acceleration signal; a preprocessor that receives said acceleration signal, and velocity and initial position signals from said trajectory planning module and creates an integrated position signal; a filter that smoothes said integrated position signal to create a filtered position signal; and a second interpolation component that receives and interpolates said filtered position signal.
- 18. A computer program product comprising a computer useable medium having control logic stored therein for causing a computer to control the movement of a component of a servo-driven photolithography tool, the computer control logic comprising:
(a) first computer readable program code means for causing the computer to receive initial control data regarding required start and end points, distances, and velocities of scans; (b) second computer readable program code means for causing the computer to plan an infinite jerk, multi-axis trajectory of the component on the basis of the initial control data; (c) third computer readable program code means for causing the computer to perform, in real time, a profile execution on the basis of the planned trajectory, wherein the trajectory is shaped using digital filtering; and (d) fourth computer readable program code means for causing the computer to output execution data that comprises positions and accelerations of the component, to a control system.
- 19. The computer program product of claim 18, wherein the component is a wafer stage.
- 20. The computer program product of claim 18, wherein the component is a reticle stage.
- 21. The computer program product of claim 18, wherein said second computer readable program code means comprises:
(i) computer readable program code means for causing the computer to calculate a preliminary motion trajectory for each axis; (ii) computer readable program code means for causing the computer to adjust zero velocity time intervals, in the preliminary motion trajectories, if necessary, to synchronize motion across axes; and (iii) computer readable program code means for causing the computer to insert delays at the start of the preliminary motion trajectory for each axis, to compensate for filter delays.
- 22. The computer program product of claim 21, wherein said computer readable program code means (i) comprises:
(A) computer readable program code means for causing the computer to adjust constant velocity scan length to account for filter width, settling time, and quantization; (B) computer readable program code means for causing the computer to compute acceleration intervals between consecutive constant velocity scans; (C) computer readable program code means for causing the computer create a zero velocity point between the consecutive constant velocity scans; and (D) computer readable program code means for causing the computer to quantize the acceleration intervals.
- 23. The computer program product of claim 22, wherein said computer readable program code means (B) comprises:
computer readable program code means for causing the computer to calculate an optimal velocity profile for each axis; computer readable program code means for causing the computer to constrain the optimal velocity profile according to the limits if maximum velocity or maximum acceleration limits are exceeded; and computer readable program code means for causing the computer to calculate transition times between consecutive constant velocity scans.
- 24. The computer program product of claim 22, wherein said computer readable program code means (C) comprises:
computer readable program code means for causing the computer to break the trajectory into two sub-optimal segments, if a trajectory between scans either starts or ends at zero velocity, or has no reversal point, where the first sub-optimal segment ends with zero velocity and the second sub-optimal segment begins with zero velocity; computer readable program code means for causing the computer to calculate a reversal point and splitting the trajectory at the reversal point, into two segments otherwise, wherein velocity is zero at the reversal point.
- 25. The computer program product of claim 21, wherein said computer readable program code means (ii) comprises:
(A) computer readable program code means for causing the computer to identify a non-critical axis trajectory; (B) computer readable program code means for causing the computer to calculate a time difference between a critical axis trajectory and the non-critical axis trajectory; and (C) computer readable program code means for causing the computer to introduce a delay, equal to the time difference, at a zero velocity point of the non-critical axis trajectory.
- 26. The computer program product of claim 21, wherein said second computer readable program code means further comprises:
(iv) computer readable program code means for causing the computer to insert a delay at the start of an axis trajectory, to compensate for filter delays.
- 27. The computer program product of claim 26, wherein said computer readable program code means (iv) comprises:
(A) computer readable program code means for causing the computer to identify an axis trajectory with the longest execution filter delay; (B) computer readable program code means for causing the computer to identify an axis trajectory with a shorter execution filter delay; (C) computer readable program code means for causing the computer to calculate the difference between the execution filter delays; and (D) computer readable program code means for causing the computer to introduce a matching delay, equal to the difference between the execution filter delays, into the axis trajectory with the shorter execution filter delay.
- 28. The computer program product of claim 17, wherein said computer readable program code means (C) comprises:
(i) computer readable program code means for causing the computer to receive trajectory data; (ii) computer readable program code means for causing the computer to create an integrated position signal based on the trajectory data; (iii) computer readable program code means for causing the computer to filter the intergrated position signal, using an initial position signal from the trajectory data, to create a filtered position signal; (iv) computer readable program code means for causing the computer to interpolate the filtered position signal, using the initial position signal, to create an interpolated position signal; (v) computer readable program code means for causing the computer to delay the interpolated position signal to compensate for causing the computer propagation delay and phase shift; (vi) computer readable program code means for causing the computer to interpolate an acceleration state signal from the trajectory data, to create an interpolated acceleration signal; and (vii) computer readable program code means for causing the computer to delay the interpolated acceleration signal, to compensate for propagation delay and phase shift.
- 29. The computer program product of claim 28, wherein said computer readable program code means (iii) comprises:
(A) computer readable program code means for causing the computer to apply a first absolute position array to the initial position signal, to create a parallel signal set; (B) computer readable program code means for causing the computer to subtract the initial position signal from each parallel position signal of the parallel position signal set, to create a delta parallel position signal set; (C) computer readable program code means for causing the computer to multiply the delta parallel position signal set by first filter coefficients, to create a parallel product signal set; (D) computer readable program code means for causing the computer to sum all parallel product signals of the parallel product signal set, to create a scaler delta filtered signal; and (E) computer readable program code means for causing the computer to add a first delayed initial position signal to the delta filtered signal, to create a filtered position signal.
- 30. The computer program product of claim 28, wherein said computer readable program code means (iv) comprises:
(A) computer readable program code means for causing the computer to upsample the filtered position signal; and (B) computer readable program code means for causing the computer to filter the up sampled filtered position signal, to create the interpolated signal.
- 31. The computer program product of claim 30, wherein said computer readable program code means (B) comprises:
computer readable program code means for causing the computer to apply a second absolute position array to the up sampled filtered position signal, to create a parallel up sampled position signal set; computer readable program code means for causing the computer to subtract the initial position signal from each parallel up sampled position signal of the parallel up sampled position signal set, to create a delta parallel up sampled position signal set; computer readable program code means for causing the computer to multiply the delta parallel up sampled position signal set by second filter coefficients, to create a parallel product up sampled signal set; computer readable program code means for causing the computer to sum all signals of the parallel product up sampled signal set, to create a scalar delta filtered up sampled signal; and computer readable program code means for causing the computer to add a second delayed initial position signal to the delta filtered up sampled signal, to create the interpolated signal.
- 32. The computer program product of claim 28, wherein said computer readable program code means (vi) comprises:
(A) computer readable program code means for causing the computer to upsample the acceleration state signal; and (B) computer readable program code means for causing the computer to filter the upsampled acceleration signal.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This patent application is related to U.S. patent application Ser. No. 09/757,622, “Method and System for Efficient and Accurate Filtering and Interpolation,” filed Jan. 11, 2001, and U.S. patent application Ser. No. 09/923,397, “Discrete Time Trajectory Planner for Lithography System,” filed Aug. 8, 2001. Both patent applications are incorporated herein by reference in their entirety.