Method and device for establishing photoetching hot spot mode database, equipment and medium
By extracting and filling the boundaries of lithography hot spots in the integrated circuit layout, and combining hash function query, a lithography hot spot mode database is established, the efficiency and memory consumption problems of lithography hot spot detection are solved, and the accuracy and efficiency of lithography hot spot detection are improved.
Patent Information
- Application Number
- CN202510783063.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-12
- Publication Date
- 2025-08-22
AI Technical Summary
During the manufacturing process of integrated circuits, due to the optical proximity effect caused by mismatch between the wavelength of the photolithography light source and the characteristic size and the photolithography hot spots caused by improper mask design affect the manufacturing yield, it is difficult for the prior art to quickly detect and correct these photolithography hot spots.
By extracting the horizontal and oblique edges of the integrated circuit layout, dividing the grid area, setting bounding boxes in the lithography hot spot area, obtaining and filling the internal graphics, using the hash function to query the hot spot mode library for updates, and establishing a lithography hot spot mode database.
It significantly reduces the time and memory consumption of lithography hotspot pattern recognition, improves the efficiency and accuracy of lithography hotspot detection, and reduces memory requirements.
Smart Images

Figure CN120524902A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the technical field of automated design of semiconductor integrated circuits, and in particular to a method, device, equipment and medium for establishing a lithography hotspot pattern database. Background Art
[0002] As semiconductor manufacturing continues to advance, integrated circuit (IC) process nodes continue to shrink. The mismatch between the wavelength of the lithography light source and the IC feature size triggers the optical proximity effect, which can cause lithographic imaging distortion and severely impact IC manufacturing yield. Furthermore, due to improper mask design or the limitations of resolution enhancement technology, defects such as shorts or opens may occur in certain areas of the circuit layout. These areas are known as lithography hotspots. Therefore, detecting and promptly correcting the distribution patterns of these defect-prone lithography hotspots within the layout during the design phase has become an essential step in the IC manufacturing process. Summary of the Invention
[0003] To overcome the problems existing in the related art, the present disclosure provides a method, apparatus, device and medium for establishing a lithography hotspot pattern database.
[0004] According to a first aspect of an embodiment of the present disclosure, a method for establishing a lithography hotspot pattern database is provided, comprising:
[0005] Extracting all horizontal edges and oblique edges in the integrated circuit layout, and performing grid area division on the integrated circuit layout;
[0006] setting a bounding box in a photolithography hotspot region in the integrated circuit layout, wherein the bounding box surrounds the photolithography hotspot region;
[0007] According to the grid area covered by the bounding box, acquiring the horizontal edge and the oblique edge of the lithography hotspot area surrounded by the bounding box as the internal pattern of the first hotspot pattern;
[0008] Filling in the missing edges of the internal graphics of the photolithography hotspot area surrounded by the bounding box to obtain the first hotspot pattern of the photolithography hotspot area surrounded by the bounding box;
[0009] A hash function is used to query whether a pre-stored hotspot mode library has a hotspot mode that is the same as the first hotspot mode, so as to update the hotspot mode library.
[0010] In some embodiments, extracting all horizontal edges and oblique edges in the integrated circuit layout and performing grid area division on the integrated circuit layout includes:
[0011] Extracting all the horizontal edges and the oblique edges of the integrated circuit layout using a scan line algorithm;
[0012] The grid area is divided on the integrated circuit layout, and the size of the grid area is determined.
[0013] In some embodiments, obtaining, based on the grid area covered by the bounding box, the horizontal edges and oblique edges of the lithography hotspot area enclosed by the bounding box as the internal graphics of the first hotspot pattern, includes:
[0014] Calculating the grid area covered by the bounding box according to the size of the bounding box and the size of the grid area;
[0015] Acquire, according to the grid area covered by the bounding box, a first layout pattern of the integrated circuit layout where the grid area covered by the bounding box is located;
[0016] Obtaining all horizontal edges and oblique edges of the first layout graphic within the abscissa range of the bounding box;
[0017] Dividing all horizontal edges and oblique edges of the first layout graphic within the abscissa range of the bounding box into edges at the upper portion of the bounding box, edges inside the bounding box, and edges at the lower portion of the bounding box, wherein the edges at the upper portion of the bounding box include edges located above the outside of the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction, the edges inside the bounding box include edges located inside the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction, and the edges at the lower portion of the bounding box include edges located below the outside of the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction;
[0018] The edges inside the bounding box are used as internal graphics of the first hotspot mode.
[0019] In some embodiments, the step of filling in the missing edges of the internal graphics of the photolithography hotspot region surrounded by the bounding box to obtain the first hotspot pattern of the photolithography hotspot region surrounded by the bounding box includes:
[0020] Filling the upper boundary of the internal graphic of the first hotspot pattern according to the upper edge of the bounding box;
[0021] Filling the lower boundary of the internal graphic of the first hotspot pattern according to the lower edge of the bounding box;
[0022] The missing left side and / or the missing right side of the internal graphic of the first hotspot pattern are calculated using a scan line algorithm.
[0023] In some embodiments, the step of filling the upper boundary of the internal graphic of the first hotspot pattern according to the upper edge of the bounding box includes:
[0024] Record the horizontal coordinates of the starting points and ending points of all horizontal edges and oblique edges included in the upper side of the bounding box;
[0025] Analyze whether there is a repeated segment on the horizontal axis of the upper edge of the bounding box recorded;
[0026] If there is no repeated segment in the recorded upper edge of the bounding box within the first horizontal coordinate range, then using the recorded horizontal segment of the first horizontal coordinate range as the edge on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segment in the first horizontal coordinate range includes: a horizontal line segment formed by the horizontal coordinates of the start point and the end point of the first horizontal coordinate range;
[0027] If the recorded upper edge of the bounding box has repeated segments in the second horizontal coordinate range, determining the number of repeated segments in the second horizontal coordinate range;
[0028] If there are N repeated segments of the second horizontal coordinate range, where N is an even number greater than 0, then the recorded edges within the second horizontal coordinate range are deleted;
[0029] If there are M repeated segments of the second horizontal coordinate range, and M is an odd number greater than 1, the horizontal line segments of the recorded second horizontal coordinate range are used as the edges on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segments within the second horizontal coordinate range include: the horizontal line segments formed by the horizontal coordinates of the starting point and the end point of the second horizontal coordinate range, wherein both the first horizontal coordinate range and the second horizontal coordinate range do not exceed the range of the boundary box in the horizontal coordinate direction.
[0030] In some embodiments, the using a hash function to query a pre-stored hotspot pattern library to see whether there is a hotspot pattern identical to the first hotspot pattern, so as to update the hotspot pattern library, includes:
[0031] Calculating a hash value of a current direction of the first hotspot pattern according to the topological structure of the first hotspot pattern;
[0032] Using the hash value of the current direction of the first hotspot mode to determine whether the same hotspot mode is found in the hotspot mode library;
[0033] If the same hotspot mode exists in the hotspot mode library, merging the queried hotspot mode and the first hotspot mode;
[0034] If the same hotspot mode is not found in the hotspot mode library, the first hotspot mode is rotated once, and the hash value in the rotated direction is calculated, wherein the rotation direction of the first hotspot mode includes: rotation 90 degrees, rotation 180 degrees, rotation 270 degrees, mirror rotation along the X-axis, mirror rotation along the Y-axis, mirror rotation along the X-axis and then counterclockwise rotation 90 degrees, and mirror rotation along the Y-axis and then counterclockwise rotation 90 degrees;
[0035] Using the hash value of each direction to determine whether the same hotspot mode is found in the hotspot mode library;
[0036] If the same hotspot mode exists in the hotspot mode library, merging the queried hotspot mode and the first hotspot mode;
[0037] If the same hotspot mode does not exist in the hotspot mode library, the first hotspot mode is determined to be a new hotspot mode, and the first hotspot mode is added to the hotspot mode library.
[0038] In some embodiments, querying whether the same hotspot pattern exists in the hotspot pattern library using the hash value of the current direction of the first hotspot pattern includes:
[0039] querying the hotspot mode library to determine whether there is a hash value identical to the hash value of the current direction of the first hotspot mode;
[0040] If there is a hash value in the hotspot mode library that is the same as the hash value of the current direction of the first hotspot mode, and the hotspot mode corresponding to the hash value queried in the hotspot mode library is the second hotspot mode, then comparing the graph of the first hotspot mode with the graph of the second hotspot mode;
[0041] If the graphic of the first hotspot pattern is identical to the graphic of the second hotspot pattern, confirming that the same hotspot pattern exists in the hotspot pattern library;
[0042] If the graphic of the first hotspot pattern is not completely the same as the graphic of the second hotspot pattern, then no identical hotspot pattern is found in the hotspot pattern library;
[0043] If the hotspot mode library does not contain a hash value identical to the hash value of the current direction of the first hotspot mode, then the hotspot mode library does not contain the same hotspot mode.
[0044] According to a second aspect of an embodiment of the present disclosure, a device for establishing a lithography hotspot pattern database is provided, comprising:
[0045] an extraction module configured to extract all horizontal edges and oblique edges in the integrated circuit layout;
[0046] a partitioning module configured to perform grid area partitioning on the integrated circuit layout;
[0047] A setting module is configured to set a bounding box for the photolithography hotspot area in the integrated circuit layout, wherein the bounding box surrounds the photolithography hotspot area;
[0048] an acquisition module configured to acquire, based on a grid area covered by the bounding box, horizontal edges and oblique edges of the lithography hotspot area enclosed by the bounding box as internal graphics of a first hotspot pattern;
[0049] a filling module configured to fill in the missing edges of the internal pattern of the photolithography hotspot area surrounded by the bounding box to obtain the first hotspot pattern of the photolithography hotspot area surrounded by the bounding box;
[0050] The query module is configured to use a hash function to query whether there is a hotspot mode that is the same as the first hotspot mode in a pre-stored hotspot mode library, so as to update the hotspot mode library.
[0051] According to a third aspect of an embodiment of the present disclosure, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the steps of the method described in the first aspect are implemented.
[0052] According to a fourth aspect of an embodiment of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the method described in the first aspect are implemented.
[0053] The technical solutions provided by the embodiments of the present disclosure may have the following beneficial effects:
[0054] The method for establishing a lithography hotspot pattern database provided by the present invention uses grid area division technology to record all horizontal edges and oblique edges on the integrated circuit layout, which can more quickly query the edges within the required area, and uses a hash function to query whether there is a hotspot pattern identical to the first hotspot pattern in the hotspot pattern library, so as to quickly update the hotspot pattern library, significantly reducing the time and memory consumption required for identifying the first hotspot pattern.
[0055] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0056] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.
[0057] Figure 1 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0058] Figure 2 The figure is a schematic diagram of an original layout of an integrated circuit layout according to an exemplary embodiment.
[0059] Figure 3 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0060] Figure 4 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0061] Figure 5 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0062] Figure 6 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0063] Figure 7 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0064] Figure 8 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0065] Figure 9 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0066] Figure 10 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0067] Figure 11 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0068] Figure 12 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0069] Figure 13 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0070] Figure 14 The figure is a schematic diagram showing an integrated circuit layout according to an exemplary embodiment.
[0071] Figure 15 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0072] Figure 16 The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0073] Figure 17a The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0074] Figure 17b The figure is a flow chart showing a method for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0075] Figure 18 It is a block diagram of a device for establishing a lithography hotspot pattern database according to an exemplary embodiment.
[0076] Figure 19 is a block diagram of an electronic device according to an exemplary embodiment. DETAILED DESCRIPTION
[0077] Exemplary embodiments will be described in detail herein, examples of which are illustrated in the accompanying drawings. In the following description, when referring to the drawings, like numbers in different figures represent like or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all possible embodiments consistent with the present invention. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present invention, as detailed in the appended claims.
[0078] As semiconductor manufacturing continues to advance, integrated circuit (IC) process nodes continue to shrink. The mismatch between the wavelength of the lithography light source and the IC feature size triggers the optical proximity effect, which can cause lithographic imaging distortion and severely impact IC manufacturing yield. Furthermore, due to improper mask design or the limitations of resolution enhancement technology, defects such as shorts or opens may occur in certain areas of the circuit layout. These areas are known as lithography hotspots. Therefore, detecting and promptly correcting the distribution patterns of these defect-prone lithography hotspots within the layout during the design phase has become an essential step in the IC manufacturing process.
[0079] In order to solve the above problems, the present disclosure provides a method for establishing a lithography hotspot pattern database, which extracts all horizontal edges and oblique edges in an integrated circuit layout, divides the integrated circuit layout into grid areas, sets a bounding box in the lithography hotspot area in the integrated circuit layout, wherein the bounding box surrounds the lithography hotspot area, obtains the horizontal edges and oblique edges of the lithography hotspot area surrounded by the bounding box as the internal graphics of a first hotspot pattern according to the grid area covered by the bounding box, fills in the missing edges of the internal graphics of the lithography hotspot area surrounded by the bounding box, obtains the first hotspot pattern of the lithography hotspot area surrounded by the bounding box, and uses a hash function to query whether there is a hotspot pattern identical to the first hotspot pattern in a pre-stored hotspot pattern library to update the hotspot pattern library. The method for establishing a lithography hotspot pattern database provided by the present disclosure uses a grid area division technology to record all horizontal edges and oblique edges on the integrated circuit layout, can more quickly query the edges in the required area, uses a hash function to query whether there is a hotspot pattern identical to the first hotspot pattern in the hotspot pattern library to quickly update the hotspot pattern library, and significantly reduces the time and memory consumption required for first hotspot pattern recognition.
[0080] The exemplary embodiment of the present disclosure provides a method for establishing a lithography hotspot pattern database, such as Figure 1 Shown, including:
[0081] S110 , extracting all horizontal edges and oblique edges in the integrated circuit layout, and performing grid area division on the integrated circuit layout.
[0082] S120 , setting a bounding box in the photolithography hotspot area in the integrated circuit layout, wherein the bounding box surrounds the photolithography hotspot area.
[0083] S130 , according to the grid area covered by the bounding box, obtaining the horizontal edges and oblique edges of the lithography hotspot area surrounded by the bounding box as the internal graphics of the first hotspot pattern.
[0084] S140 , filling in the missing edges of the internal pattern of the lithography hotspot area surrounded by the boundary box to obtain a first hotspot pattern of the lithography hotspot area surrounded by the boundary box.
[0085] S150: Using a hash function, query whether there is a hotspot mode identical to the first hotspot mode in a pre-stored hotspot mode library, so as to update the hotspot mode library.
[0086] Figure 2 The original layout of an integrated circuit layout is shown. The method for establishing the lithography hotspot pattern database provided by the present disclosure is based on merging layers of the original layout, such as Figure 3 As shown, Figure 3The integrated circuit layout after the layers of the original layout are merged is shown. Therefore, the term "integrated circuit layout" in this disclosure refers to the layout after the layers of the original layout of the integrated circuit layout are merged.
[0087] In step S110, the horizontal edges and oblique edges in the integrated circuit layout refer to the horizontal edges and oblique edges of the graphics in the integrated circuit layout, referring to Figure 3 The horizontal and hypotenuse sides of the figures in .
[0088] In step S110, Figure 4 As shown, all horizontal edges and oblique edges in the integrated circuit layout are extracted, and grid area division is performed on the integrated circuit layout, including:
[0089] S410 , extracting all horizontal edges and oblique edges of the integrated circuit layout using a scan line algorithm.
[0090] S420: Divide the integrated circuit layout into grid areas and determine the sizes of the grid areas.
[0091] In step S410, for example, the scan line algorithm can be used to Figure 3 All horizontal edges and oblique edges of the integrated circuit layout are extracted, and each horizontal edge and oblique edge in the integrated circuit layout can be marked with the ID (Identifier) of the graphic to which they belong.
[0092] In step S420, refer to Figure 5 Grid regions are divided on the integrated circuit layout. The shape of the grid regions may include rectangles or other shapes, which are not specifically limited in this embodiment. The horizontal edges and oblique edges of the integrated circuit layout that cross the grid region boundaries are respectively distributed in the grid regions they cross. By dividing the grid regions, the edges of the graphics on the integrated circuit layout are recorded and saved. The horizontal edges and oblique edges of the integrated circuit layout within the grid region can be extracted by querying the grid region. The graphics on the integrated circuit layout where the grid is located can also be confirmed by querying the grid region.
[0093] In step S120, after the photolithography hotspot area on the integrated circuit layout is identified, a bounding box is set around the photolithography hotspot area so that the bounding box surrounds the photolithography hotspot area, and the size of the bounding box is determined. Figure 6 and Figure 7 As shown, Figure 6 and Figure 7 The shading of the bounding box in the example is just for the sake of distinction. The bounding box can also be Figure 11 and Figure 13 As shown in .
[0094] Specifically, after identifying the photolithography hotspot area on the integrated circuit layout, a circle is formed with a suitable radius with the center of the photolithography hotspot area as the center, so that the circle surrounds the photolithography hotspot area, and then the circumscribed rectangle of the circle is set as the boundary box.
[0095] like Figure 8 As shown, in step S130, according to the grid area covered by the bounding box, the horizontal edges and oblique edges of the lithography hotspot area surrounded by the bounding box are obtained as the internal graphics of the first hotspot pattern, including:
[0096] S810, based on the size of the bounding box and the size of the grid area, calculate the grid area covered by the bounding box.
[0097] S820 . Obtain, based on the grid area covered by the bounding box, a first layout graphic of the integrated circuit layout where the grid area covered by the bounding box is located.
[0098] S830: Acquire all horizontal edges and oblique edges of the first layout graphic within the horizontal coordinate range of the bounding box.
[0099] S840. Divide all horizontal edges and oblique edges of the first layout graphic within the horizontal coordinate range of the bounding box into edges at the upper portion of the bounding box, edges inside the bounding box, and edges at the lower portion of the bounding box, wherein the edges at the upper portion of the bounding box include: edges located above the outside of the bounding box and not exceeding the range of the bounding box in the horizontal coordinate direction in the horizontal coordinate direction; the edges inside the bounding box include: edges located inside the bounding box and not exceeding the range of the bounding box in the horizontal coordinate direction in the horizontal coordinate direction; and the edges at the lower portion of the bounding box include: edges located below the outside of the bounding box and not exceeding the range of the bounding box in the horizontal coordinate direction in the horizontal coordinate direction.
[0100] S850: The edges inside the bounding box are used as the internal graphics of the first hotspot mode. In step S810, the grid area covered by the bounding box represents the grid area where the bounding box is located, which belongs to the complete grid area. For example, Figure 6 The grid area covered by the bounding box in is the first area, Figure 7 The grid area covered by the bounding box in is the second area. It can be understood that the first area and the second area are only schematically shown in FIG. Figure 6 and Figure 7 As shown in FIG, in actual application, the electronic device can automatically identify the first area and the second area.
[0101] The grid area covered by the bounding box may be calculated by setting a plane rectangular coordinate system, or other methods may be used to calculate the grid area surrounded by the bounding box, which is not limited in this embodiment.
[0102] Assume that the coordinates of the integrated circuit layout are {(x0,y0),(x1,y1)}, where (x0,y0) represents the coordinates of the lower left corner vertex of the integrated circuit layout, and (x1,y1) represents the coordinates of the upper right corner vertex of the integrated circuit layout; the width and height of the grid area divided on the integrated circuit layout are w and h respectively; the coordinates of the bounding box are {(x2,y2),(x3,y3)}, where (x2,y2) represents the coordinates of the lower left corner vertex of the bounding box, and (x3,y3) represents the coordinates of the upper right corner vertex of the bounding box.
[0103] Therefore, it can be obtained that the grid area enclosed by the bounding box is {((x2-x0) / / w, (y2-y0) / / h), ((x3-x0) / / w, (y3-y0) / / h)}, where / / represents the integer division symbol, ((x2-x0) / / w) to ((x3-x0) / / w) indicates that the grid area enclosed by the bounding box is the ((x2-x0) / / w)th grid to the ((x3-x0) / / w)th grid in the x direction, and ((y2-y0) / / h) to ((y3-y0) / / h) indicates that the grid area enclosed by the bounding box is the ((y2-y0) / / h)th grid to the ((y3-y0) / / h)th grid in the y direction.
[0104] In step S820, based on the calculated grid area covered by the bounding box, the first layout pattern of the integrated circuit layout where the grid area covered by the bounding box is located is searched, for example, Figure 6 The first layout graphic where the grid of the first area covered by the bounding box in is Figure 6 The first leftmost figure in Figure 7 The first layout graphic where the grid of the second area covered by the bounding box in is Figure 7 The three leftmost figures.
[0105] In step S830, all horizontal edges and oblique edges of the first layout graphic may be obtained first, and then the edges of these horizontal edges and oblique edges within the horizontal coordinate range of the bounding box may be intercepted.
[0106] In step S840, all horizontal edges and oblique edges of the first layout graphic within the horizontal coordinate range of the bounding box obtained in step S830 can be traversed, and these edges can be divided into edges at the top of the bounding box, edges inside the bounding box, and edges at the bottom of the bounding box.
[0107] In step S850 , it can be understood that the edges inside the bounding box all belong to the internal graphics of the first hotspot mode.
[0108] In this embodiment, the grid area covered by the bounding box can be calculated based on the size of the bounding box and the size of the grid. This allows the first layout graphic containing the grid area covered by the bounding box to be obtained, thereby obtaining all horizontal and oblique edges within the abscissa range of the bounding box on the first layout graphic. This is then used to partition the first layout graphic, obtaining the edges above the bounding box, the edges within the bounding box, and the edges below the bounding box. By using the grid area partitioning technique to record and store the edges of the graphics on the integrated circuit layout, it is possible to effectively obtain the edges within the area covered by the bounding box, as well as the edges above and below the bounding box.
[0109] It can be understood that in step S140, the edges inside the bounding box are the internal graphics of the first hotspot mode, but the edges of the internal graphics of the first hotspot mode need to be filled in to form a complete graphic of the first hotspot mode.
[0110] In step S140, if Figure 9 As shown, the missing edges of the internal graphics of the lithography hotspot area surrounded by the bounding box are filled to obtain the first hotspot pattern of the lithography hotspot area surrounded by the bounding box, including:
[0111] S910 : Fill the upper boundary of the internal graphic of the first hotspot mode according to the upper edge of the boundary box.
[0112] S920: Fill the lower boundary of the internal graphic of the first hotspot mode according to the lower edge of the bounding box.
[0113] S930: Calculate the missing left side and / or the missing right side of the internal graphic of the first hotspot pattern using a scan line algorithm.
[0114] In step S910, the upper edge of the bounding box includes the edge located outside the bounding box, located above the bounding box, and not exceeding the range of the bounding box in the horizontal coordinate direction. In this embodiment, the upper edge of the bounding box is used to fill the upper boundary of the internal graphic of the first hotspot mode.
[0115] like Figure 10 As shown, in step S910, the upper boundary of the internal graphic of the first hotspot mode is filled according to the upper edge of the boundary box, including:
[0116] S1010 , recording the horizontal coordinates of the starting points and ending points of all horizontal edges and oblique edges included in the upper side of the bounding box.
[0117] S1020 , analyzing whether there are repeated segments on the horizontal axis of the upper edge of the recorded bounding box, which includes two situations: step S1030 and step S1040 .
[0118] S1030. If there is no repeated segment on the upper edge of the recorded boundary box within the first horizontal coordinate range, the horizontal line segment of the recorded first horizontal coordinate range is used as the edge on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segment within the first horizontal coordinate range includes: the horizontal line segment formed by the horizontal coordinates of the start point and the end point of the first horizontal coordinate range.
[0119] S1040: If there are repeated segments on the upper side of the recorded bounding box in the second horizontal coordinate range, the number of repeated segments in the second horizontal coordinate range is determined. There are two cases: step S1050 and step S1060.
[0120] S1050: If there are N repeated segments in the second horizontal coordinate range, where N is an even number greater than 0, delete the edges in the recorded second horizontal coordinate range.
[0121] S1060. If there are M repeated segments of the second horizontal coordinate range, and M is an odd number greater than 1, the horizontal line segments of the recorded second horizontal coordinate range are used as the edges on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segments within the second horizontal coordinate range include: the horizontal line segments formed by the horizontal coordinates of the starting point and the end point of the second horizontal coordinate range.
[0122] The first horizontal coordinate range and the second horizontal coordinate range do not overlap, and both the first horizontal coordinate range and the second horizontal coordinate range do not exceed the range of the bounding box in the horizontal coordinate direction.
[0123] In step S1010, the horizontal coordinates of the starting points and ending points of all horizontal edges and oblique edges included in the upper edge of the bounding box can be recorded by an array. For example, if there are n edges in the upper edge of the bounding box, the length of the array is 2n.
[0124] In step S1020, the horizontal coordinates of the starting points and ending points of the edges recorded in the array in step S1010 are analyzed to determine whether the horizontal coordinates of some edges have repeated segments. The determination result includes two situations: step S1030 and step S1040.
[0125] In the case of step S1030, if there are no repeated segments in the edges of the array record in step S1010 within the first horizontal coordinate range, then the horizontal line segment formed by the horizontal coordinates of the starting point and the end point of the first horizontal coordinate range is used as the edge on the upper boundary of the internal figure of the first hotspot pattern. It can be understood that the first horizontal coordinate range can be equal to the horizontal coordinate range of the bounding box, or it can be smaller than the horizontal coordinate range of the bounding box. When the first horizontal coordinate range is smaller than the horizontal coordinate range of the bounding box, there can be one first horizontal coordinate range or multiple first horizontal coordinate ranges, and the multiple first horizontal coordinate ranges do not overlap. The edge on the upper boundary of the internal figure of the first hotspot pattern can be part of the upper boundary of the internal figure of the first hotspot pattern, or it can be the entire upper boundary of the internal figure of the first hotspot pattern.
[0126] In the case of step S1040, if there are repeated segments on the upper edge of the bounding box of the array record in step S1010 in the second horizontal coordinate range, the number of repeated segments in the second horizontal coordinate range is analyzed, and there are two cases: step S1050 and step S1060.
[0127] It is understandable that the second abscissa range can be equal to or smaller than the abscissa range of the bounding box. When the second abscissa range is smaller than the abscissa range of the bounding box, there can be one second abscissa range or multiple second abscissa ranges, and the multiple second abscissa ranges do not overlap. The first abscissa range and the second abscissa range do not overlap.
[0128] In step S1050, if the number of repeated segments in the second horizontal coordinate range is N, and N is an even number greater than 0, all edges recorded in the second horizontal coordinate range are deleted. It is understandable that the edge in the second horizontal coordinate range can be an entire edge or a portion of an entire edge.
[0129] In the case of step S1060, if the number of repeated segments in the second horizontal coordinate range is M, and M is an odd number greater than 1, then the horizontal line segment formed by the horizontal coordinates of the start point and end point of the second horizontal coordinate range is used as the edge on the upper boundary of the internal figure of the first hotspot pattern.
[0130] Through steps S1010 to S1060 , the missing upper boundary of the internal graphics of the first hotspot mode can be filled.
[0131] In step S920, the lower edge of the bounding box includes the edge outside the bounding box, below the bounding box, and within the range of the bounding box in the horizontal coordinate direction. In this embodiment, the lower edge of the bounding box is used to fill the lower boundary of the internal graphic of the first hotspot mode.
[0132] In step S920, the method for filling the upper boundary of the internal graphics of the first hotspot mode according to the upper edge of the bounding box is the same as the method for filling the lower boundary of the internal graphics of the first hotspot mode according to the lower edge of the bounding box in step S910. Detailed description is omitted here.
[0133] In one embodiment, Figure 6 As shown, Figure 6 The first layout graphic where the grid of the first area covered by the bounding box in is Figure 6 The first leftmost figure in Figure 6 The first leftmost figure in the image is defined as the first figure, and all horizontal edges and oblique edges of the first figure within the abscissa range of the bounding box are obtained.
[0134] The process of filling the edges on the upper boundary of the internal figure of the first hotspot mode is as follows:
[0135] There is only one edge on the top of the bounding box, which is the top edge of the first figure (the upper boundary of the first figure). The horizontal coordinates of the starting point and the end point of this edge are recorded. Since there is only one edge on the top of the bounding box, there is no repeated segment. That is, the range of the starting point and the end point of the top edge of the first figure on the horizontal coordinate is the first horizontal coordinate range. The horizontal line segment formed by the horizontal coordinates of the starting point and the end point of the first horizontal coordinate range is the edge on the upper boundary of the internal figure of the first hotspot mode. Figure 12 shown.
[0136] The process of filling the edges on the lower boundary of the internal figure of the first hotspot mode is as follows:
[0137] There are two edges at the bottom of the bounding box, refer to Figure 11 For edge 1 and edge 2, record the horizontal coordinates of the starting point and end point of edge 1 and edge 2. Since there is no repeated segment in the horizontal coordinates of edge 1 and edge 2, that is, there is no repeated segment in the horizontal coordinate range of the starting point of edge 1 and the end point of edge 2, the horizontal coordinate range of the starting point of edge 1 and the end point of edge 2 is the first horizontal coordinate range. The horizontal line segment formed by the horizontal coordinates of the starting point and end point of the first horizontal coordinate range is used as the edge on the lower boundary of the internal figure of the first hotspot mode, referring to Figure 12 shown.
[0138] In another embodiment, Figure 7 As shown, Figure 7 The first layout graphic where the grid of the second area covered by the bounding box in is Figure 7 The three leftmost figures in Figure 7 The first leftmost figure in is defined as the second figure, Figure 7 The second leftmost figure in is defined as the third figure, Figure 7The third leftmost figure is defined as the fourth figure, and all horizontal edges and oblique edges of the second, third, and fourth figures within the horizontal coordinate range of the bounding box are obtained.
[0139] The process of filling the edges on the upper boundary of the internal figure of the first hotspot mode is as follows:
[0140] There are three edges on the upper side of the bounding box, which are the partial top edge of the second figure, the top edge of the third figure, and the partial top edge of the fourth figure. The horizontal coordinates of the starting points and terminals of these three edges are recorded. Since there are no repeated segments on the three edges on the upper side of the bounding box, that is, the partial top edge of the second figure, the top edge of the third figure, and the partial top edge of the fourth figure, the ranges of the starting points and terminals on the horizontal coordinates are all the first horizontal coordinate ranges. In this embodiment, there are multiple first horizontal coordinate ranges. The horizontal line segment formed by the horizontal coordinates of the starting point and the end point of the first horizontal coordinate range is used as the edge on the upper boundary of the internal figure of the first hotspot mode, with reference to Figure 14 shown.
[0141] The process of filling the edges on the lower boundary of the internal figure of the first hotspot mode is as follows:
[0142] There are six edges at the bottom of the bounding box, refer to Figure 13 For edges 1, 2, 3, 4, 5, and 6, record the starting and ending coordinates of these six edges as: edge 1 (x1, x2), edge 2 (x2, x7), edge 3 (x3, x4), edge 4 (x4, x7), edge 5 (x5, x6), and edge 6 (x6, x7). The bounding box's horizontal coordinate range is (x1, x7).
[0143] Since there are six edges in the lower part of the bounding box, there is no repeated segment in the first horizontal coordinate range (x1, x3). Therefore, the horizontal line segment formed by the horizontal coordinates (x1, x3) of the start and end points of the first horizontal coordinate range is used as the edge on the lower boundary of the internal figure of the first hotspot mode. Figure 14 shown.
[0144] Since there are six edges in the lower part of the bounding box, and there are two repeated segments in the second horizontal coordinate range (x3, x5), all edges in the second horizontal coordinate range (x3, x5) are deleted.
[0145] Since there are three repeated segments of the second horizontal coordinate range (x5, x7) among the six edges of the lower part of the bounding box, the horizontal line segment formed by the horizontal coordinates (x5, x7) of the start and end points of the second horizontal coordinate range is used as the edge of the lower boundary of the internal figure of the first hotspot mode. Figure 14 shown.
[0146] In this embodiment, by determining the first horizontal axis range and determining the number of repeated segments within the second horizontal axis range, the missing upper and lower boundaries of the internal graphics of the first hotspot pattern can be quickly generated.
[0147] In step S930, the missing left side and / or the missing right side of the internal graphic of the first hotspot pattern may be calculated using a scan line algorithm.
[0148] After completing the missing upper boundary, lower boundary, left side, and right side of the internal graphic of the first hotspot pattern, the graphic of the first hotspot pattern can be obtained.
[0149] In this embodiment, by determining the range of the first horizontal axis and determining the number of repeated segments within the range of the second horizontal axis, the upper and lower boundaries of the internal graphics of the first hotspot pattern that are missing can be quickly generated. By using a scan line algorithm to calculate the missing left side and / or the missing right side of the internal graphics of the first hotspot pattern, the complete first hotspot pattern can be obtained. Through the method provided in the present disclosure, the capture speed of the first hotspot pattern is accelerated, the demand for running memory is reduced, and the design efficiency of the layout is significantly improved.
[0150] In some embodiments, as Figure 15 As shown, in step S150, a hash function is used to query whether there is a hotspot mode identical to the first hotspot mode in the pre-stored hotspot mode library, so as to update the hotspot mode library, including:
[0151] S1510. Calculate a hash value of a current direction of the first hotspot pattern according to the topological structure of the first hotspot pattern.
[0152] S1520. Use the hash value of the current direction of the first hotspot mode to determine whether the same hotspot mode is found in the hotspot mode library. If so, execute S1530; if not, execute S1540.
[0153] S1530: Merge the queried hotspot pattern and the first hotspot pattern.
[0154] S1540: Rotate the first hotspot pattern once, and calculate the hash value in the direction after rotation.
[0155] S1550. Use the hash value in the rotational direction to determine whether the same hotspot mode is found in the hotspot mode library. If yes, execute S1530; if not, execute S1560.
[0156] S1560: Determine whether the number of rotations is equal to 7. If yes, execute S1570; if not, execute S1540.
[0157] S1570: Determine whether a hotspot mode identical to the first hotspot mode does not exist in the hotspot mode library, and add the first hotspot mode to the hotspot mode library.
[0158] In step S1510, the topological structure of the first hotspot pattern is calculated by a hash function to obtain the hash value of the first hotspot pattern in the current direction. The hash value of the first hotspot pattern in the current direction is saved in the hash table corresponding to the first hotspot pattern. The current direction refers to the direction in which the first hotspot pattern is not rotated. It can be understood that after the first hotspot pattern is rotated, the topological structure of the first hotspot pattern in the direction after rotation is calculated by a hash function, and the calculated hash value is different from the hash value calculated when the first hotspot pattern is not rotated.
[0159] In step S1520, if Figure 16 As shown, the hash value of the current direction of the first hotspot mode is used to query whether there is an identical hotspot mode in the hotspot mode library. If the identical hotspot mode exists in the hotspot mode library, execute S1530; if the identical hotspot mode is not found in the hotspot mode library, execute S1540, including:
[0160] S1610. Query the hotspot mode library to see whether there is a hash value identical to the hash value of the current direction of the first hotspot mode. If yes, execute step S1620; if not, execute step S1640.
[0161] S1620. If the queried hash value corresponds to the second hotspot mode in the hotspot mode library, compare the graphics of the first hotspot mode with the graphics of the second hotspot mode to determine whether the graphics of the first hotspot mode and the graphics of the second hotspot mode are exactly the same. If so, execute step S1630; if not, execute step S1640.
[0162] S1630: Confirm that the same hotspot mode exists in the hotspot mode library, and execute S1530.
[0163] S1640: If the same hotspot mode is not found in the hotspot mode library, execute S1540.
[0164] In step S1610, the hotspot modes in the hotspot mode library can all save the hash values of the 8 directions of the corresponding hotspot mode, and these hash values can be saved in the hash table of the corresponding hotspot mode. When querying in the hotspot mode library whether there is a hash value that is the same as the hash value of the current direction of the first hotspot mode, it is only necessary to query the hash table saved in the hotspot mode library. Among them, the 8 directions of the hotspot mode may include: the current direction, i.e., 0 degrees, rotated 90 degrees, rotated 180 degrees, rotated 270 degrees, mirrored rotation along the X-axis direction, mirrored rotation along the Y-axis direction, mirrored rotation along the X-axis direction and then rotated 90 degrees counterclockwise, and mirrored rotation along the Y-axis direction and then rotated 90 degrees counterclockwise.
[0165] In step S1620, if there is a hash value in the hotspot mode library that is the same as the hash value of the current direction of the first hotspot mode, the hotspot mode corresponding to the hash value is the second hotspot mode, then it is necessary to analyze the graphics of the first hotspot mode and the graphics of the second hotspot mode to confirm whether the second hotspot mode is the same as the first hotspot mode.
[0166] In step S1621 , if the graphic of the first hotspot pattern is identical to the graphic of the second hotspot pattern, it is confirmed that there is a hotspot pattern identical to the first hotspot pattern in the hotspot pattern library.
[0167] In step S1622, if the graphic of the first hotspot pattern is not identical to the graphic of the second hotspot pattern, then the same hotspot pattern is not found in the hotspot pattern library. It can be understood that if the hash value of the current direction of the first hotspot pattern is the same as the hash value of a certain direction of the second hotspot pattern, but the graphic of the first hotspot pattern is not identical to the graphic of the second hotspot pattern, then the first hotspot pattern and the second hotspot pattern are not the same hotspot pattern.
[0168] In step S1630 , if the hotspot mode library does not contain a hash value identical to the hash value of the current direction of the first hotspot mode, then the hotspot mode library does not contain the same hash value.
[0169] In step S1530, if the same hotspot pattern exists in the hotspot pattern library, that is, the graphics of the first hotspot pattern and the graphics of the second hotspot pattern are exactly the same, then the second hotspot pattern and the first hotspot pattern in the hotspot pattern library are merged. It can be understood that in order to save storage space, the hotspot patterns in the hotspot pattern library are all unique in the hotspot pattern library, that is, the hotspot patterns in the hotspot pattern library are all different. Therefore, when it is found that the first hotspot pattern is the same as the second hotspot pattern in the hotspot pattern library, it is only necessary to merge other information of the first hotspot pattern, such as the location of the first hotspot pattern in the integrated circuit layout, into the second hotspot pattern, and the first hotspot pattern does not need to be stored in the hotspot pattern library.
[0170] In step S1540, if the same hotspot pattern is not found in the hotspot pattern library, that is, the situation in the above steps S1622 and S1630, the first hotspot pattern is rotated once, and the hash value in the direction after rotation is calculated and saved. The rotation direction of the first hotspot pattern may include rotation 90 degrees, rotation 180 degrees, rotation 270 degrees, mirror rotation along the X-axis, mirror rotation along the Y-axis, mirror rotation along the X-axis and then 90 degrees counterclockwise rotation, and mirror rotation along the Y-axis and then 90 degrees counterclockwise rotation. Then calculate the hash value in the direction after rotation. It can be understood that the hash value of the first hotspot pattern after the rotation direction in the direction after rotation is different from the hash value of the first hotspot pattern before the rotation direction.
[0171] Step S1550 is similar to step S1520 and will not be repeated here.
[0172] In step S1560 and step S1570, if after the first hotspot pattern is rotated 7 times, that is, after the above 7 directions are rotated once, the same hotspot pattern is still not found in the hotspot pattern library, it can be confirmed that there is no hotspot pattern identical to the first hotspot pattern in the hotspot pattern library, and the first hotspot pattern and its corresponding hash table are added to the hotspot pattern library, wherein the hash table corresponding to the first hotspot pattern stores the hash values of the first hotspot pattern in 8 directions.
[0173] In this embodiment, the hash value of the first hotspot pattern is calculated by a hash function and compared with the hash values of the hotspot patterns in the hotspot pattern library, which simplifies the query process and ensures that the hotspot patterns in the hotspot pattern library are different.
[0174] The method for establishing a lithography hotspot pattern database provided by the present disclosure uses a grid area partitioning technique to record all horizontal and oblique edges on an integrated circuit layout. This allows for faster querying of edges within a desired area. A hash function is then used to query the hotspot pattern library for the presence of a hotspot pattern identical to a first hotspot pattern, allowing for rapid updating of the hotspot pattern library and significantly reducing the time and memory consumption required for identifying the first hotspot pattern. This method aims to ensure minimal memory usage while establishing the lithography hotspot pattern database and to obtain hash values for hotspot patterns in all directions, thereby improving the efficiency of complex layout design.
[0175] For ease of understanding, an embodiment is given below to describe the method for establishing a lithography hotspot pattern database disclosed herein. Figure 17a-17b As shown, Figure 17a The flowchart of steps S1701-S1710 is shown as an example. Figure 17b The flowchart of steps S1711-S1720 is exemplarily illustrated.
[0176] S1701. Extract all horizontal edges and oblique edges in the integrated circuit layout, and perform grid area division on the integrated circuit layout.
[0177] In step S1701, a scan line algorithm may be used to extract all horizontal edges and oblique edges of the integrated circuit layout, and grid area division may be performed on the integrated circuit layout, and the size of the grid area may be determined.
[0178] S1702. Set a bounding box in the photolithography hotspot area in the integrated circuit layout, wherein the bounding box surrounds the photolithography hotspot area.
[0179] S1703: Calculate the grid area covered by the bounding box according to the size of the bounding box and the size of the grid area.
[0180] S1704 : According to the grid area covered by the bounding box, obtain a first layout graphic of the integrated circuit layout where the grid area covered by the bounding box is located.
[0181] S1705 : Acquire all horizontal edges and oblique edges of the first layout graphic within the horizontal coordinate range of the bounding box.
[0182] S1706: Divide all horizontal edges and oblique edges of the first layout graphic within the horizontal coordinate range of the bounding box into edges at the upper portion of the bounding box, edges inside the bounding box, and edges at the lower portion of the bounding box.
[0183] Among them, the upper side of the bounding box includes: the side located above the outside of the bounding box and does not exceed the range of the bounding box in the horizontal coordinate direction in the horizontal coordinate direction; the side inside the bounding box includes: the side located inside the bounding box and does not exceed the range of the bounding box in the horizontal coordinate direction in the horizontal coordinate direction; the lower side of the bounding box includes: the side located below the outside of the bounding box and does not exceed the range of the bounding box in the horizontal coordinate direction in the horizontal coordinate direction.
[0184] S1707: Use the inner edge of the bounding box as the inner graphic of the first hotspot mode.
[0185] S1708: Fill the upper boundary of the internal graphic of the first hotspot mode according to the upper edge of the boundary box.
[0186] The steps for filling the upper boundary of the internal graphic of the first hotspot mode according to the upper edge of the bounding box are as follows:
[0187] Record the starting and ending coordinates of all horizontal and oblique edges included in the upper edge of the bounding box. Analyze whether there are repeated segments in the horizontal coordinates of the upper edge of the bounding box, including Case 1 and Case 2.
[0188] Case 1: If there is no repeated segment on the upper edge of the recorded boundary box within the first horizontal coordinate range, the horizontal line segment of the recorded first horizontal coordinate range will be used as the edge on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segment within the first horizontal coordinate range includes: the horizontal line segment formed by the horizontal coordinates of the start point and end point of the first horizontal coordinate range.
[0189] Case 2: If the upper edge of the recorded bounding box has repeated segments in the second horizontal coordinate range, the number of repeated segments in the second horizontal coordinate range is determined, including Case 3 and Case 4.
[0190] Case 3: If there are N repeated segments in the second horizontal coordinate range, and N is an even number greater than 0, the edges in the recorded second horizontal coordinate range will be deleted.
[0191] Case 4: There are M repeated segments of the second horizontal coordinate range, M is an odd number greater than 1, then the horizontal line segments of the recorded second horizontal coordinate range are used as the edges on the upper boundary of the internal figure of the first hotspot pattern, wherein the horizontal line segments within the second horizontal coordinate range include: the horizontal line segments formed by the horizontal coordinates of the starting point and the end point of the second horizontal coordinate range, wherein the first horizontal coordinate range and the second horizontal coordinate range do not overlap, and both the first horizontal coordinate range and the second horizontal coordinate range do not exceed the range of the boundary box in the horizontal coordinate direction.
[0192] S1709: Fill the lower boundary of the internal graphic of the first hotspot mode according to the lower edge of the boundary box.
[0193] S1710: Calculate the missing left side and / or the missing right side of the internal graphic of the first hotspot pattern using a scan line algorithm.
[0194] S1711. Calculate a hash value of a current direction of the first hotspot pattern according to the topological structure of the first hotspot pattern.
[0195] S1712. Query the hotspot mode library to see whether there is a hash value identical to the hash value of the current direction of the first hotspot mode. If yes, execute step S1713; if not, execute step S1715.
[0196] S1713. If the queried hash value corresponds to the second hotspot mode in the hotspot mode library, compare the graphics of the first hotspot mode with the graphics of the second hotspot mode to determine whether the graphics of the first hotspot mode and the graphics of the second hotspot mode are exactly the same. If so, execute step S1714; if not, execute step S1715.
[0197] S1714: Confirm that the same hotspot mode exists in the hotspot mode library, and execute step S1716.
[0198] S1715: If the same hotspot mode is not found in the hotspot mode library, execute step S1717.
[0199] S1716: Merge the queried hotspot pattern and the first hotspot pattern.
[0200] S1717: Rotate the first hotspot pattern once, calculate the hash value in the direction after rotation, and execute step S1718.
[0201] S1718. Use the hash value in the rotation direction to determine whether the same hotspot mode is found in the hotspot mode library. If yes, execute S1716; if not, execute S1719.
[0202] S1719: Determine whether the number of rotations is equal to 7. If yes, execute S1720; if not, execute S1717.
[0203] S1720: Determine whether a hotspot mode identical to the first hotspot mode does not exist in the hotspot mode library, and add the first hotspot mode to the hotspot mode library.
[0204] In the above steps, although Figure 17a and Figure 17b In the embodiment, step S1710 and step S1711 are two separate steps, but during the execution process, step S1710 and step S1711 are two steps that are executed continuously, that is, step S1711 is executed after step S1710 is executed.
[0205] The exemplary embodiment of the present disclosure provides a device for establishing a lithography hotspot pattern database, such as Figure 18 As shown, the present disclosure shows a block diagram of a device for establishing a lithography hotspot pattern database.
[0206] The block diagram includes an extraction module 1801, a division module 1802, a setting module 1803, an acquisition module 1804, a filling module 1805, and a query module 1806. The extraction module 1801 is configured to extract all horizontal edges and oblique edges in the integrated circuit layout. The division module 1802 is configured to perform grid area division on the integrated circuit layout. The setting module 1803 is configured to set a bounding box in the lithography hotspot area in the integrated circuit layout, wherein the bounding box surrounds the lithography hotspot area. The acquisition module 1804 is configured to obtain the horizontal edges and oblique edges of the lithography hotspot area surrounded by the bounding box as the internal graphics of the first hotspot pattern based on the grid area covered by the bounding box. The filling module 1805 is configured to fill in the missing edges of the internal graphics of the lithography hotspot area surrounded by the bounding box, and obtain the first hotspot pattern of the lithography hotspot area surrounded by the bounding box. The query module 1806 is configured to use a hash function to query whether there is a hotspot pattern identical to the first hotspot pattern in the pre-stored hotspot pattern library, so as to update the hotspot pattern library.
[0207] In some exemplary embodiments of the present disclosure, the extraction module 1801 is further configured to extract all horizontal edges and oblique edges of the integrated circuit layout using a scan line algorithm;
[0208] The division module 1802 is further configured to divide the integrated circuit layout into grid areas and determine the size of the grid areas.
[0209] In some exemplary embodiments of the present disclosure, the acquisition module 1804 is further configured to:
[0210] Calculate the grid area covered by the bounding box based on the size of the bounding box and the size of the grid area;
[0211] According to the grid area covered by the bounding box, obtaining a first layout pattern of the integrated circuit layout where the grid area covered by the bounding box is located;
[0212] Get all horizontal edges and oblique edges of the first layout graphic within the horizontal coordinate range of the bounding box;
[0213] Dividing all horizontal edges and oblique edges of the first layout graphic within the abscissa range of the bounding box into edges at the upper portion of the bounding box, edges inside the bounding box, and edges at the lower portion of the bounding box, wherein the edges at the upper portion of the bounding box include edges located above the outside of the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction, the edges inside the bounding box include edges located inside the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction, and the edges at the lower portion of the bounding box include edges located below the outside of the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction;
[0214] The edges inside the bounding box are used as the internal shape of the first hotspot mode.
[0215] In some exemplary embodiments of the present disclosure, the acquisition module 1804 is further configured to:
[0216] Fill the upper boundary of the internal figure of the first hotspot mode according to the upper edge of the bounding box;
[0217] Fill the lower boundary of the internal graphic of the first hotspot mode according to the lower edge of the bounding box;
[0218] The scan line algorithm is used to calculate the missing left side and / or the missing right side of the internal graphic of the first hotspot pattern.
[0219] In some exemplary embodiments of the present disclosure, the completion module 1805 is further configured to:
[0220] Record the starting and ending points of all horizontal and oblique edges included in the upper edge of the bounding box.
[0221] Analyze whether there are repeated segments on the horizontal axis of the upper edge of the recorded bounding box;
[0222] If there is no repeated segment in the recorded upper edge of the bounding box within the first horizontal coordinate range, then the horizontal segment of the recorded first horizontal coordinate range is used as the edge on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segment in the first horizontal coordinate range includes: the horizontal line segment formed by the horizontal coordinates of the start point and the end point of the first horizontal coordinate range;
[0223] If there are repeated segments on the upper edge of the recorded bounding box in the second horizontal coordinate range, the number of repeated segments in the second horizontal coordinate range is determined;
[0224] If there are N repeated segments of the second horizontal coordinate range, where N is an even number greater than 0, the edges within the recorded second horizontal coordinate range are deleted;
[0225] If there are M repeated segments of the second horizontal coordinate range, where M is an odd number greater than 1, the horizontal line segments of the recorded second horizontal coordinate range are used as the edges on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segments within the second horizontal coordinate range include: the horizontal line segments formed by the horizontal coordinates of the starting point and the end point of the second horizontal coordinate range, wherein both the first horizontal coordinate range and the second horizontal coordinate range do not exceed the range of the boundary box in the horizontal coordinate direction.
[0226] In some exemplary embodiments of the present disclosure, the query module 1806 is further configured to:
[0227] Calculating a hash value of a current direction of the first hotspot pattern according to the topological structure of the first hotspot pattern;
[0228] Use the hash value of the current direction of the first hotspot mode to query whether the same hotspot mode exists in the hotspot mode library;
[0229] If the same hotspot mode exists in the hotspot mode library, the queried hotspot mode and the first hotspot mode are merged;
[0230] If the same hotspot mode is not found in the hotspot mode library, the first hotspot mode is rotated once, and the hash value in the rotated direction is calculated, where the rotation direction of the first hotspot mode includes: rotation 90 degrees, rotation 180 degrees, rotation 270 degrees, mirror rotation along the X-axis, mirror rotation along the Y-axis, mirror rotation along the X-axis and then counterclockwise rotation 90 degrees, and mirror rotation along the Y-axis and then counterclockwise rotation 90 degrees;
[0231] Use the hash value of each direction to query whether the same hotspot pattern exists in the hotspot pattern library;
[0232] If the same hotspot mode exists in the hotspot mode library, the queried hotspot mode and the first hotspot mode are merged;
[0233] If the same hotspot mode does not exist in the hotspot mode library, the first hotspot mode is determined to be a new hotspot mode, and the first hotspot mode is added to the hotspot mode library.
[0234] In some exemplary embodiments of the present disclosure, the query module 1806 is further configured to:
[0235] Querying the hotspot mode library to determine whether there is a hash value that is identical to the hash value of the current direction of the first hotspot mode;
[0236] If there is a hash value in the hotspot mode library that is the same as the hash value of the current direction of the first hotspot mode, and the hotspot mode corresponding to the hash value queried in the hotspot mode library is the second hotspot mode, then comparing the graph of the first hotspot mode with the graph of the second hotspot mode;
[0237] If the graphic of the first hotspot pattern is identical to the graphic of the second hotspot pattern, confirming that the same hotspot pattern exists in the hotspot pattern library;
[0238] If the graphic of the first hotspot pattern is not completely the same as the graphic of the second hotspot pattern, then no identical hotspot pattern is found in the hotspot pattern library;
[0239] If the hotspot mode library does not contain a hash value identical to the hash value of the current direction of the first hotspot mode, then the hotspot mode library does not contain the same hotspot mode.
[0240] Each module in the apparatus for establishing a lithography hotspot pattern database can be implemented in whole or in part through software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in the computer device in the form of software, so that the processor can call and execute the corresponding operations of each module.
[0241] In an exemplary embodiment, an electronic device is provided, including a processor and a memory, wherein the memory stores a computer program, and when the processor executes the computer program, the steps of any of the above-mentioned methods for establishing a lithography hotspot pattern database are implemented.
[0242] In one exemplary embodiment, a computer-readable storage medium is provided, storing a computer program. When executed by a processor, the computer program implements any of the steps described above for establishing a lithography hotspot pattern database. The computer-readable storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, or optical data storage device.
[0243] In an exemplary embodiment, a computer program product is provided, comprising a computer program, which implements any of the above steps of establishing a lithography hotspot pattern database when executed by a processor.
[0244] refer to Figure 19 , a block diagram of the structure of an electronic device that can be used as the present disclosure will now be described. The electronic device includes a computing unit 1901, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1902 or a computer program loaded from a storage unit 1908 into a random access memory (RAM) 1903. Various programs and data required for the operation of the electronic device 1900 can also be stored in the RAM 1903. The computing unit 1901, the ROM 1902, and the RAM 1903 are connected to each other via a bus 1904. An input / output (I / O) interface 1905 is also connected to the bus 1904.
[0245] Multiple components in the electronic device 1900 are connected to the I / O interface 1905, including: an input unit 1906, an output unit 1907, a storage unit 1908, and a communication unit 1909. The input unit 1906 can be any type of device that can input information to the electronic device 1900. The input unit 1906 can receive input digital or character information and generate key signal input related to user settings and / or function control of the electronic device 1900, and can include but is not limited to a mouse, a keyboard, a touch screen, a trackpad, a trackball, a joystick, a microphone, and / or a remote control. The output unit 1907 can be any type of device that can present information, and can include but is not limited to a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The storage unit 1908 can include but is not limited to a magnetic disk and an optical disk. The communication unit 1909 allows the electronic device 1900 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks, and may include but is not limited to a modem, a network card, an infrared communication device, a wireless communication transceiver and / or a chipset, such as a Bluetooth™ device, a WiFi device, a WiMax device, a cellular communication device and / or the like.
[0246] The computing unit 1901 can be a variety of general-purpose and / or specialized processing components with processing and computing capabilities. Some examples of the computing unit 1901 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 1901 performs the various methods and processes described above, such as the method for establishing a lithography hotspot pattern database. For example, in some embodiments, the method for establishing a lithography hotspot pattern database can be implemented as a computer software program that is tangibly contained in a machine-readable medium, such as the storage unit 1908. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 1900 via the ROM 1902 and / or the communication unit 1909. When the computer program is loaded into the RAM 1903 and executed by the computing unit 1901, one or more steps of the method for establishing a lithography hotspot pattern database described above can be performed. Alternatively, in other embodiments, the computing unit 1901 may be configured to execute the method for establishing the lithography hotspot pattern database in any other appropriate manner (for example, by means of firmware).
[0247] The electronic device 1900 can be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors or other electronic components to execute the above-mentioned method for establishing a lithography hotspot pattern database.
[0248] Other embodiments of the present invention will readily occur to those skilled in the art after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein. The description and examples are to be considered as exemplary only, with the true scope and spirit of the invention being indicated by the following claims.
[0249] It should be understood that the present invention is not limited to the exact construction described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present invention is limited only by the appended claims.
Claims
1. A method for establishing a lithography hotspot pattern database, characterized in that: include: Extracting all horizontal edges and oblique edges in the integrated circuit layout, and performing grid area division on the integrated circuit layout; setting a bounding box in a photolithography hotspot region in the integrated circuit layout, wherein the bounding box surrounds the photolithography hotspot region; According to the grid area covered by the bounding box, acquiring the horizontal edge and the oblique edge of the lithography hotspot area surrounded by the bounding box as the internal pattern of the first hotspot pattern; Filling in the missing edges of the internal graphics of the photolithography hotspot area surrounded by the bounding box to obtain the first hotspot pattern of the photolithography hotspot area surrounded by the bounding box; A hash function is used to query whether a pre-stored hotspot mode library has a hotspot mode that is the same as the first hotspot mode, so as to update the hotspot mode library.
2. The method for establishing a lithography hotspot pattern database according to claim 1, characterized in that: The step of extracting all horizontal edges and oblique edges in the integrated circuit layout and performing grid area division on the integrated circuit layout includes: Extracting all the horizontal edges and the oblique edges of the integrated circuit layout using a scan line algorithm; The grid area is divided on the integrated circuit layout, and the size of the grid area is determined.
3. The method for establishing a lithography hotspot pattern database according to claim 1, wherein: The step of obtaining, based on the grid area covered by the bounding box, the horizontal edges and the oblique edges of the lithography hotspot area surrounded by the bounding box as the internal graphics of the first hotspot pattern includes: Calculating the grid area covered by the bounding box according to the size of the bounding box and the size of the grid area; Acquire, according to the grid area covered by the bounding box, a first layout pattern of the integrated circuit layout where the grid area covered by the bounding box is located; Obtaining all horizontal edges and oblique edges of the first layout graphic within the abscissa range of the bounding box; Dividing all horizontal edges and oblique edges of the first layout graphic within the abscissa range of the bounding box into edges at the upper portion of the bounding box, edges inside the bounding box, and edges at the lower portion of the bounding box, wherein the edges at the upper portion of the bounding box include edges located above the outside of the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction, the edges inside the bounding box include edges located inside the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction, and the edges at the lower portion of the bounding box include edges located below the outside of the bounding box and not exceeding the range of the bounding box in the abscissa direction in the abscissa direction; The edges inside the bounding box are used as internal graphics of the first hotspot mode.
4. The method for establishing a lithography hotspot pattern database according to claim 3, wherein: The step of filling in the missing edges of the internal graphics of the photolithography hotspot area surrounded by the bounding box to obtain the first hotspot pattern of the photolithography hotspot area surrounded by the bounding box includes: Filling the upper boundary of the internal graphic of the first hotspot pattern according to the upper edge of the bounding box; Filling the lower boundary of the internal graphic of the first hotspot pattern according to the lower edge of the bounding box; The missing left side and / or the missing right side of the internal graphic of the first hotspot pattern are calculated using a scan line algorithm.
5. The method for establishing a lithography hotspot pattern database according to claim 4, wherein: The step of filling the upper boundary of the internal graphic of the first hotspot pattern according to the upper edge of the bounding box includes: Record the horizontal coordinates of the starting points and ending points of all horizontal edges and oblique edges included in the upper side of the bounding box; Analyze whether there is a repeated segment on the horizontal axis of the upper edge of the bounding box recorded; If there is no repeated segment in the recorded upper edge of the bounding box within the first horizontal coordinate range, then using the recorded horizontal segment of the first horizontal coordinate range as the edge on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segment in the first horizontal coordinate range includes: a horizontal line segment formed by the horizontal coordinates of the start point and the end point of the first horizontal coordinate range; If the recorded upper edge of the bounding box has repeated segments in the second horizontal coordinate range, determining the number of repeated segments in the second horizontal coordinate range; If there are N repeated segments of the second horizontal coordinate range, where N is an even number greater than 0, then the recorded edges within the second horizontal coordinate range are deleted; If there are M repeated segments of the second horizontal coordinate range, and M is an odd number greater than 1, the horizontal line segments of the recorded second horizontal coordinate range are used as the edges on the upper boundary of the internal graphic of the first hotspot pattern, wherein the horizontal line segments within the second horizontal coordinate range include: the horizontal line segments formed by the horizontal coordinates of the starting point and the end point of the second horizontal coordinate range, wherein both the first horizontal coordinate range and the second horizontal coordinate range do not exceed the range of the boundary box in the horizontal coordinate direction.
6. The method for establishing a lithography hotspot pattern database according to claim 1, wherein: The using a hash function to query whether there is a hotspot mode identical to the first hotspot mode in a pre-stored hotspot mode library to update the hotspot mode library includes: Calculating a hash value of a current direction of the first hotspot pattern according to the topological structure of the first hotspot pattern; Using the hash value of the current direction of the first hotspot mode to determine whether the same hotspot mode is found in the hotspot mode library; If the same hotspot mode exists in the hotspot mode library, merging the queried hotspot mode and the first hotspot mode; If the same hotspot mode is not found in the hotspot mode library, the first hotspot mode is rotated once, and the hash value in the rotated direction is calculated, wherein the rotation direction of the first hotspot mode includes: rotation 90 degrees, rotation 180 degrees, rotation 270 degrees, mirror rotation along the X-axis, mirror rotation along the Y-axis, mirror rotation along the X-axis and then counterclockwise rotation 90 degrees, and mirror rotation along the Y-axis and then counterclockwise rotation 90 degrees; Using the hash value of each direction to determine whether the same hotspot mode is found in the hotspot mode library; If the same hotspot mode exists in the hotspot mode library, merging the queried hotspot mode and the first hotspot mode; If the same hotspot mode does not exist in the hotspot mode library, the first hotspot mode is determined to be a new hotspot mode, and the first hotspot mode is added to the hotspot mode library.
7. The method for establishing a lithography hotspot pattern database according to claim 6, wherein: The using the hash value of the current direction of the first hotspot mode to query whether the same hotspot mode exists in the hotspot mode library includes: querying the hotspot mode library to determine whether there is a hash value identical to the hash value of the current direction of the first hotspot mode; If there is a hash value in the hotspot mode library that is the same as the hash value of the current direction of the first hotspot mode, and the hotspot mode corresponding to the hash value queried in the hotspot mode library is the second hotspot mode, then comparing the graph of the first hotspot mode with the graph of the second hotspot mode; If the graphic of the first hotspot pattern is identical to the graphic of the second hotspot pattern, confirming that the same hotspot pattern exists in the hotspot pattern library; If the graphic of the first hotspot pattern is not completely the same as the graphic of the second hotspot pattern, then no identical hotspot pattern is found in the hotspot pattern library; If the hotspot mode library does not contain a hash value identical to the hash value of the current direction of the first hotspot mode, then the hotspot mode library does not contain the same hotspot mode.
8. A device for establishing a lithography hotspot pattern database, characterized in that: The device for establishing the lithography hotspot pattern database includes: an extraction module configured to extract all horizontal edges and oblique edges in the integrated circuit layout; a partitioning module configured to perform grid area partitioning on the integrated circuit layout; A setting module is configured to set a bounding box for the photolithography hotspot area in the integrated circuit layout, wherein the bounding box surrounds the photolithography hotspot area; an acquisition module configured to acquire, based on a grid area covered by the bounding box, horizontal edges and oblique edges of the lithography hotspot area enclosed by the bounding box as internal graphics of a first hotspot pattern; a filling module configured to fill in the missing edges of the internal pattern of the photolithography hotspot area surrounded by the bounding box to obtain the first hotspot pattern of the photolithography hotspot area surrounded by the bounding box; The query module is configured to use a hash function to query whether there is a hotspot mode that is the same as the first hotspot mode in a pre-stored hotspot mode library, so as to update the hotspot mode library.
9. An electronic device, characterized in that: The method comprises a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method for establishing a lithography hotspot pattern database according to any one of claims 1 to 7 when executing the computer program.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method for establishing a lithography hotspot pattern database according to any one of claims 1 to 7 are implemented.