Optical proximity effect correction method, computing device, computer readable storage medium
By decoupling the steps of optical proximity effect correction at different nodes and selecting appropriate program tools, the problem of non-separable processing steps in the prior art is solved, thereby improving the effect and processing speed of optical proximity effect correction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-01-21
- Publication Date
- 2026-07-21
Smart Images

Figure CN122431058A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of semiconductor technology, and in particular to an optical proximity effect correction method, a computing device, and a computer-readable storage medium. Background Technology
[0002] In semiconductor manufacturing processes, photolithography is a crucial step. It uses a complex optical system to etch the geometric circuit pattern on a mask onto a photoresist layer on a substrate through exposure and development. The pattern is then transferred back onto the substrate through an etching process.
[0003] As the performance requirements of integrated circuits become increasingly demanding, the critical dimension (CD) of integrated circuits is also shrinking. During photolithography, due to light interference and diffraction, the image between the photoresist and the mask may deviate after photolithography imaging, a phenomenon known as the optical proximity effect (OPE). Please see [link to relevant documentation]. Figure 1 In deep submicron semiconductor manufacturing, the critical dimensions of the pattern are much smaller than the wavelength of the light source. Simultaneously, diffraction and etching effects cause significant changes to the geometric circuit pattern projected from the mask onto the substrate, resulting in substantial deviations from the expected pattern. These deviations manifest as variations in linewidth, rounded corners, and shortened line lengths, among other optical proximity effects. Therefore, optical proximity correction (OPC) is necessary to ensure that modifications to the designed geometric circuit pattern compensate for the proximity effects caused by factors such as the exposure system used in the photolithography process. By compensating for these deviations, the final geometric circuit pattern on the substrate is made as close as possible to the original design. Figure 2 As shown.
[0004] However, optical proximity effect correction may include multiple processing steps, all of which are integrated into a single program tool and completed by a single program tool. These multiple steps cannot be separated for partial substitution. Summary of the Invention
[0005] This application provides an optical proximity effect correction method, a computing device, and a computer-readable storage medium to solve the problem that the multiple processing steps of optical proximity effect correction cannot be broken down to select a suitable processing method for each processing step.
[0006] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:
[0007] In a first aspect, embodiments of this application provide an optical proximity effect correction method. The method includes multiple processing steps, including a first processing step and a second processing step. The first processing step includes receiving a first data stream and outputting a processed second data stream. The second processing step includes receiving the second data stream and outputting a processed third data stream. The first and second processing steps are performed at different nodes. The first, second, and third data streams all include a layout design file and a database file. The database file includes data of multiple graphics, which are obtained by dividing the layout included in the layout design file.
[0008] Since the first and second processing steps are performed at different nodes, the first processing step of optical proximity correction can receive the first data stream and output the processed second data stream, and the second processing step can receive the second data stream and output the third data stream. Furthermore, the first, second, and third data streams all include layout design files and database files. The database file includes data for multiple graphics, which are obtained by dividing the layout included in the layout design file. Therefore, the data stream output by the first processing step and the data stream received by the second processing step are unified, thus achieving decoupling of multiple steps in the optical proximity correction process. This allows for the selection of appropriate processing techniques for different steps in the optical proximity correction process, thereby improving the effectiveness of optical proximity correction.
[0009] Furthermore, since the first and second processing steps are decoupled, when developing optical proximity effect correction tools, only some of the processing steps need to be developed, which lowers the development threshold of optical proximity effect correction tools and contributes to the development of optical proximity effect correction technology.
[0010] In one possible implementation of the first aspect, the multiple processing steps further include an initial step, which receives an initial layout design file and outputs a layout design file and a database file. The layout design file includes data for at least one block, which is obtained by dividing the layout corresponding to the initial layout design file, wherein the layout corresponding to the initial layout design file is the same as the layout corresponding to the initial layout design file. Thus, the initial step can process the initial layout design file and then output the layout design file and the database file, thereby providing a unified data flow for subsequent processing steps and decoupling the subsequent optical proximity effect correction processing steps. Simultaneously, the layout design file includes data for at least one block, so data for different blocks can be processed on different nodes, and multiple nodes can process data for multiple blocks in parallel, which helps to improve the speed of optical proximity effect correction.
[0011] In one possible implementation of the first aspect, the layout includes at least one block, and each block includes at least one graphic; the layout design file includes data for at least one block; the database file includes at least one data table, with each data table corresponding to one block, and multiple data rows in the data table corresponding to the data of one graphic. Thus, data for multiple graphics within a block can be stored in a single data table, ensuring a one-to-one correspondence between the data table and the block. This facilitates quick retrieval of the corresponding data table and updating of the data table based on adjustments to the graphics included in the block when processing the graphics within that block.
[0012] In one possible implementation of the first aspect, the multiple data rows include a first data row, which includes a graphic description field. The graphic description field includes a first graphic description subfield, which identifies the number of line segments included in the graphic. The line segments are obtained by splitting the edges of the graphic. Thus, since the amount of data describing each line segment can be the same, that is, the number of data rows corresponding to each line segment can be equal. Therefore, the number of line segments included in the graphic corresponding to the first data row can be obtained through the first data row, and consequently, the number of data rows corresponding to the graphic can be obtained.
[0013] In one possible implementation of the first aspect, the graphic description field includes a second graphic description subfield, which identifies the graphic as a solid polygon or a hole polygon. Thus, the type of the graphic can be obtained based on the second graphic description subfield, allowing for optical proximity correction to be applied to the graphic, achieving a better optical proximity correction effect.
[0014] In one possible implementation of the first aspect, the multiple data rows include multiple second data rows, each second data row including a line segment description field. This line segment description field is used to characterize the length, position, and movement information of a line segment. Thus, basic information about the line segment can be recorded through the second data rows, and this basic information can characterize adjustments made to the line segment by multiple processing steps.
[0015] In one possible implementation of the first aspect, the line segment description field includes: a first line segment description subfield for characterizing the movement information of the line segment; and a second line segment description subfield for characterizing the length and position information of the line segment before movement. Thus, by using the first line segment description subfield to characterize the movement information of the line segment and the second line segment description subfield to characterize the length and position information of the line segment before movement, only the first line segment description subfield needs to be modified each time the line segment is adjusted, reducing data writing and improving processing speed.
[0016] In one possible implementation of the first aspect, the multiple data rows include a third data row, which includes a graphic start point field. This graphic start point field represents the coordinates of a start point, which is an endpoint of one of the multiple line segments obtained by splitting the graphic from its edges. Thus, since the graphic is split into multiple line segments connected end-to-end, and the line segment is represented by the increment of its coordinates relative to another endpoint, the coordinates of the start point represented by the graphic start point field can be used to obtain the specific position information of all line segments.
[0017] In one possible implementation of the first aspect, the endpoints of the line segment include a first endpoint and a second endpoint, and the line segment is represented by the increment of the coordinates of the second endpoint relative to the coordinates of the first endpoint. Thus, by representing the line segment by the increment of the coordinates of one endpoint relative to the other endpoint, a smaller numerical value can be used to represent the line segment, which is beneficial for storing the length and position information of the line segment in a smaller storage space.
[0018] In one possible implementation of the first aspect, multiple second data rows sequentially represent multiple line segments, which are connected sequentially according to the arrangement order of the multiple second data rows. Each second data row includes a first direction increment field and a second direction increment field. Each line segment includes a first endpoint and a second endpoint. The first direction increment field represents the increment of the coordinate value of the second endpoint relative to the first endpoint in a first direction, and the second direction increment field represents the increment of the coordinate value of the second endpoint relative to the first endpoint in a second direction. The first and second directions intersect. Thus, by sequentially representing multiple line segments using multiple second data rows, and by using the first direction increment field to represent the increment of the coordinate value of the second endpoint relative to the first endpoint in a first direction, and the second direction increment field to represent the increment of the coordinate value of the second endpoint relative to the first endpoint in a second direction, information such as the length of the line segments can be determined, and the data can be stored in a relatively small amount of storage space.
[0019] In one possible implementation of the first aspect, the first data stream, the second data stream, and the third data stream all further include a description file, which includes data identifying the correspondence between the database file and the blocks. Thus, the second processing step can recover the layout and its line segments based on the layout design file, database file, and description file in the second data stream. Therefore, the second processing step can perform processing based on the recovered layout and line segments, decoupling the first and second processing steps so that processing can be performed on different nodes.
[0020] In one possible implementation of the first aspect, the node comprises a computer process. Thus, the first processing step and the second processing step can be performed in different computer processes.
[0021] In one possible implementation of the first aspect, at least two computer processes run on different computing devices. This allows for the selection of appropriate computing devices based on the complexity of the processing steps, improving resource utilization and increasing the speed of optical proximity effect correction.
[0022] In a second aspect, this application provides a computing device comprising: one or more processors; one or more memories; the one or more memories storing one or more computer programs, the one or more computer programs including instructions that, when executed by the one or more processors, cause an optical proximity effect correction method as described in any of the first aspects to be executed.
[0023] Thirdly, this application provides a computer-readable storage medium storing instructions that, when executed on an electronic device, cause the optical proximity effect correction method as described in any of the first aspects to be performed.
[0024] Fourthly, this application provides a computer program product that, when run on a computing device, causes the computing device to perform the aforementioned related steps to implement the optical proximity effect correction method as described in any of the first aspects.
[0025] The technical effects of the second to fourth aspects can be referred to the description of the first aspect or any of the embodiments in the first aspect, and will not be repeated here. Attached Figure Description
[0026] Figure 1 This is a schematic diagram of the prior art without optical proximity effect correction;
[0027] Figure 2 This is a schematic diagram illustrating optical proximity effect correction in existing technologies.
[0028] Figure 3 A flowchart of an optical proximity effect correction method provided in this application embodiment;
[0029] Figure 4 A schematic diagram illustrating a rule-based correction process provided in an embodiment of this application;
[0030] Figure 5 A schematic diagram illustrating an auxiliary graphics processing step provided in an embodiment of this application;
[0031] Figure 6 This is a schematic diagram of the data files used in each processing step of an optical proximity effect correction method provided in an embodiment of this application;
[0032] Figure 7 A schematic diagram illustrating a layout divided into blocks, provided for an embodiment of this application;
[0033] Figure 8 A schematic diagram of the hierarchical structure of a layout design document provided in an embodiment of this application;
[0034] Figure 9 A schematic diagram illustrating a file correspondence scenario provided in an embodiment of this application;
[0035] Figure 10 A schematic diagram illustrating a line segment representation method provided in an embodiment of this application;
[0036] Figure 11 This is a schematic diagram of an inter-step processing procedure provided in an embodiment of this application. Detailed Implementation
[0037] Unless otherwise defined, the technical or scientific terms used in this application shall have the ordinary meaning understood by those skilled in the art. The terms "first," "second," "third," and similar words used in this application specification and claims do not indicate any order, quantity, or importance, but are merely used to distinguish different components. Thus, a feature defined as "first," "second," or "third" may explicitly or implicitly include one or more of that feature. In the description of embodiments in this application, unless otherwise stated, "a plurality of" means two or more.
[0038] In semiconductor manufacturing, integrated circuits are manufactured based on their design documents. These design documents contain the layout of the integrated circuit, which can include various patterns such as rectangles and other polygons. During manufacturing, the pattern is transferred from a photomask to a substrate using a photolithography process. However, due to light interference and diffraction, errors can occur in the transferred pattern, resulting in the actual manufactured integrated circuit not perfectly resembling its original design.
[0039] To correct this problem, optical proximity correction is used to compensate for these patterning errors. For example, optical proximity correction can move the edges of the integrated circuit layout on the photomask or reduce the effects of light interference and diffraction by adding auxiliary feature patterns. Optical proximity correction makes the shape of the actually manufactured integrated circuits closer to their intended design.
[0040] Please see Figure 3 Optical proximity effect correction methods may include an initial step and one or more processing steps following the initial step.
[0041] The initial steps may include a segmentation process, a data preparation step for optical proximity correction. This process divides the edges of a polygon in the integrated circuit layout into one or more segments according to predefined rules. The results of segmenting the edges may vary depending on the rules. For example, these rules may include making segments closer to corners of the polygon shorter, thus allowing for more precise correction of the corner shape by moving the segments.
[0042] One or more processing steps following the initial step may include rule-based retargeting, sub-resolution assist feature (SRAF) addition, model-based optical proximity correction (MBOPC), and other steps.
[0043] Rule-based correction processing steps involve moving line segments obtained during the experience-based rule-based line segment breaking process to modify the patterns in the integrated circuit layout. These rules can be derived from practical experience, theoretical analysis, or simulation. For example, the rules might include moving line segments near convex corners of the pattern inwards, such as... Figure 4 As shown.
[0044] Adding auxiliary graphics processing steps does not modify the pattern in the integrated circuit layout. Instead, it adds sub-resolution auxiliary graphics around the pattern representing the integrated circuit in the layout. These auxiliary graphics can include high-priority and low-priority auxiliary graphics, with high-priority auxiliary graphics positioned closer to the pattern representing the integrated circuit compared to lower-priority auxiliary graphics. Figure 5 As shown. Among them, high-priority auxiliary patterns have a greater impact on the layout of the integrated circuit than low-priority auxiliary patterns during exposure. Therefore, when adding auxiliary patterns, high-priority auxiliary patterns can be prioritized. Understandably, this operation can be performed when the pattern in the integrated circuit layout is sparse. Thus, after setting sub-resolution auxiliary patterns around the pattern in the integrated circuit layout, the pattern in the integrated circuit layout becomes a dense pattern from an optical perspective, thereby changing the amplitude distribution of the transmitted light field during photolithography and compensating for pattern distortion caused by optical diffraction and process nonlinearity. These auxiliary patterns are smaller than the minimum resolution of the photolithography system; during exposure, they only scatter light and do not form an image on the photoresist.
[0045] Model-based correction involves simulating the pattern in the corrected integrated circuit layout, moving line segments based on the simulation results (the line segments are obtained by splitting the edges of the pattern), thereby modifying the pattern in the integrated circuit layout.
[0046] Understandably, after the optical proximity effect correction method completes the task of modifying the layout, the modified layout still needs to be verified. Verification may include manufacturability rule checks, lithography rule checks, and other verifications of the modified layout.
[0047] For example, the verification phase may include a manufacturing rule check (MRC) step, a lithography rule check (LRC) step, etc.
[0048] The manufacturing rule check step involves examining the revised layout based on the geometric constraints of the patterns in the layout. For example, it checks the minimum distance between adjacent patterns in the layout to ensure that adjacent patterns satisfy the minimum distance constraint between adjacent patterns.
[0049] The photolithography rule checking step involves simulating and verifying the corrected layout, comparing the simulation results with the expected results, and adjusting the layout accordingly to reduce the risks in the later stages of integrated circuit production.
[0050] After at least some of the above processing steps, the layout design files for mask manufacturing can be obtained.
[0051] In existing software tools, the correction phase is a closed process, meaning all processing steps in the correction phase are completed by a single tool. These steps are indivisible, and third-party tools cannot be used to perform one or more steps in the correction phase. Therefore, if a single tool has mature technology for some steps but immature technology for others, or is less competitive in correction effectiveness compared to other tools, the optical proximity effect correction performed by the user using that tool may fail to achieve the desired results and objectives.
[0052] Based on this, this application proposes an optical proximity effect correction method. This method may include multiple processing steps, with the data streams transmitted between each processing step containing a unified file type or data format. Thus, after processing in one step, the result obtained from that step can be transmitted to other processing steps via a data stream. Upon receiving the data stream, the other processing steps can then perform their respective processing. In other words, each processing step can be performed at a different node. Therefore, when correcting the optical proximity effect, appropriate program tools can be selected to execute each processing step. For example, one program tool can be used to execute one processing step, and another program tool can be used to execute another processing step. This allows for the selection of more mature program tools for each processing step, improving the effectiveness of optical proximity effect correction.
[0053] Please see Figure 6 , Figure 6 This diagram illustrates the data files used in each processing step of an optical proximity effect correction method provided in this application. It is understood that the optical proximity effect correction method may include multiple processing steps, which may involve adjusting the patterns included in the layout. These multiple processing steps may include a first processing step and a second processing step, which may be processing steps other than the initial step. For example, the first processing step may be a rule-based correction processing step, and the second processing step may be an auxiliary graphic processing step.
[0054] The first processing step receives a first data stream and outputs a processed second data stream. The second processing step receives the second data stream and outputs a processed third data stream. In other words, the first processing step performs processing first, and then uses the data stream obtained from the first processing step as the input data stream for the second processing step.
[0055] The first and second processing steps are performed on different nodes. These different nodes can refer to different computer processes, different processing units, processing cores, or distributed cluster computing nodes. When different nodes refer to different computer processes, at least two computer processes can run on different computing devices. This allows for distributed computing to correct for the optical proximity effect, thereby improving the efficiency of optical proximity effect correction.
[0056] The first data stream, the second data stream, and the third data stream may all include layout design files and database files. The first processing step and the second processing step may both involve adjusting the patterns included in the layout, and the adjustment of the patterns depends on the layout design files and database files.
[0057] A layout design file is a file that records layout data. Please refer to [link / reference]. Figure 7A layout design file records a layout that may include multiple layers, each corresponding to a photomask used in the photolithography process. Each layer may contain patterns, which are the patterns on the photomask used for photolithography. Understandably, the layout design file may be a GDS (graphic data system) file or an OASIS (open artwork system exchange standard) file, or other file formats.
[0058] Please continue reading Figure 7 The layout can be divided into at least one tile, meaning the layout can include at least one tile. Each tile includes multiple layers, and the number of layers in each tile is equal to the number of layers in the layout. Thus, when adjusting patterns in the layout, the patterns in each tile can be adjusted separately. This facilitates multi-core or cluster scheduling operations at the tile level to correct for optical proximity effects, thereby accelerating computation in optical proximity effect correction.
[0059] Please see Figure 8 , Figure 8 This is a schematic diagram of the hierarchical structure of a layout design file provided in an embodiment of this application. The layout design file can be a two-level hierarchical layout file obtained by dividing the layout included in the initial layout file into multiple blocks. That is, the layout design file may include data from at least one block. Specifically, the data stored in the layout design file includes layout data carried by blocks.
[0060] The top-level unit represents the layout design file corresponding to the layout. Figure 8 In this diagram, "Top" represents the top-level unit. Below the top-level unit are multiple sub-units, each representing the data of the aforementioned blocks. The name of a sub-unit can include a prefix and row / column information. The prefix can be "tile_" (block_), and the row / column information can be "rxxxcyyy". For example, a sub-unit named "tile_r000c000" indicates the data of the block located in the first row and first column after the layout has been divided into multiple blocks.
[0061] Understandably, the layers included in a layout design file may include the layers corresponding to the patterns in the layout that need to be adjusted. The layers included in a layout design file may also include other layers with auxiliary functions, such as tile box layers. Tile box layers are used to identify the area and size of each tile, and to restore the position and size of the tiles.
[0062] The database file contains data for correcting multiple graphics, which are derived from the division of patterns within the layout design file. In other words, each layer of the layout can be divided into one or more graphics, and the database file records this data. For example, the database file uses a specific data structure to record these graphics, facilitating the recording of adjustments made to the patterns in the layout through multiple processing steps. Understandably, after adjustments are made to the patterns in the layout, the layout design file will also change to record these adjustments.
[0063] Optical proximity effect correction methods can be implemented by moving the line segments obtained from splitting the graphic. Therefore, the data in the database file for correcting multiple graphics may include records of line segments obtained from splitting the graphic, and / or, the movement information of these line segments.
[0064] Furthermore, graphic attribute data can be used in some processing steps of the optical proximity effect correction method. Graphic attribute data reflects the positional relationships between graphics, edges, line segments, etc., included in the pattern on the layout. It can be obtained from various processing steps through data such as line segments obtained by splitting graphics from layout design files, database files, and / or graphics. For example, graphic attribute data can be used to reflect whether an edge is an acute or obtuse angle of a graphic.
[0065] Therefore, the multiple steps in optical proximity effect correction can be seamlessly connected via data streams including layout design files and database files. After the first processing step, the processed layout design file and database file can be output and used as input for the second processing step. Thus, when performing optical proximity effect correction, more mature program tools can be selected for each processing step, improving the effectiveness of the correction.
[0066] Furthermore, it is understandable that when developing optical proximity effect correction tools, some of the processing steps can be developed, avoiding the need to develop all the processing steps. This lowers the development threshold of optical proximity effect correction tools and contributes to the development of optical proximity effect correction technology.
[0067] In some implementations, the multiple processing steps may further include an initial step, which receives an initial layout design file and outputs a layout design file and a database file. The initial step (line segment breaking processing step) processes the initial layout design file and obtains the layout design file and database file; that is, the files output by the initial step also include the layout design file and the database file. In other words, the type of the data stream output by the initial step is the same as the type of the first data stream, second data stream, third data stream, etc. Subsequent steps in optical proximity effect correction are all based on the data stream file generated by the initial step.
[0068] As mentioned earlier, the layout corresponding to the layout design file can be divided into multiple blocks; that is, the layout corresponding to the layout design file may include at least one block, and correspondingly, the layout design file may include at least one block of data. It can be understood that the layout corresponding to the layout design file is the same as the layout corresponding to the initial layout design file.
[0069] The initial layout design file can be a file obtained after layout design, and it can be directly used to prepare the layout. The layout data included in the initial layout design file corresponds to a complete layout, which means that the layout has not been divided into blocks. The initial layout design file can also be a file of type GDS or OASIS, etc. In this way, a data stream supported by multiple processing steps can be obtained through the initial step, which facilitates subsequent processing steps to be performed on different nodes or by selecting different program tools.
[0070] Furthermore, a block can also include at least one graphic. That is, after dividing the layout into multiple blocks, the pattern in each block is further subdivided to obtain the graphic. In this way, it is also possible to divide the pattern in the layout design file to obtain multiple graphics.
[0071] In some implementations, the database file may include at least one data table, with one data table corresponding to one block, and multiple data rows in the data table corresponding to data for a graphic. In this way, the data of a block in the layout design file can be mapped to the data tables in the database file, and adjustments made to the graphic within a block can be recorded using data from one data table.
[0072] For example, there can be multiple database files, and each database file can include multiple data tables. In this case, multiple database files can be processed on different nodes in the node pool, thereby enabling lock-free, low-cost write and write operations in a distributed cluster. For example, see [link to relevant documentation]. Figure 9 The map was divided into multiple blocks, each corresponding to a data table. Figure 9In the process, the data tables corresponding to the three blocks are transmitted to node 1 for processing, and the three data tables obtained after processing are stored in database file 1; at the same time, the data tables corresponding to the four blocks are transmitted to node 2 for processing, and the four data tables obtained after processing are stored in database file 2.
[0073] Table 1
[0074]
[0075] Please refer to Table 1, which is a data table provided in an embodiment of this application. The data table may include multiple data rows, and the multiple data rows correspond to storing the data of a graphic. The amount of data that each data row can store may be the same. For example, each row can store n×32 bits of data, such as 128 bits of data.
[0076] The number of data rows corresponding to each graphic can vary. When a block includes multiple graphics, the data for all graphics can be stored in the same data table. It's easy to understand that the more complex the graphic, the more data rows it can have. For example, one graphic might have 10 data rows, while another might have 22. This allows for storing the graphics within a block in a single data table and facilitates transferring different data tables to different nodes for processing, enabling parallel processing of different blocks within the same layout and improving processing efficiency.
[0077] In some implementations, please continue to refer to Table 1. Multiple data rows include a first data row, which includes a graph description field, which may correspond to the PolygonDesc field in Table 1. The graph description field may include a first graph description subfield, which may correspond to the segment_count field in Table 1. This first graph description subfield is used to identify the number of line segments included in the graph. As mentioned earlier, line segments are obtained by splitting the edges of the graph, and this can be achieved through a dissociation step. The first graph description subfield may be unsigned integer data, and its storage capacity may be 32 bits.
[0078] Understandably, the amount of data describing each line segment can be the same, meaning the number of data rows corresponding to each line segment can be equal, for example, all being one data row. Therefore, by using the first data row, the number of line segments included in the graphic corresponding to that first data row can be obtained, and consequently, the number of data rows corresponding to that graphic can be obtained.
[0079] The graphic description field may also include a second graphic description subfield, which may correspond to the hull_or_hole field in Table 1. The second graphic description subfield is used to identify whether the graphic is a solid (hull) polygon or a hole (hole) polygon. The first graphic description subfield may be unsigned integer data, and its data storage capacity may be 1 bit. A value of 0 in the first graphic description subfield indicates that the graphic is a solid polygon; a value of 1 in the first graphic description subfield indicates that the graphic is a hole polygon. A solid polygon is one in which the area enclosed by the edges of the polygon is at least partially not a cutout area, while a hole polygon is one in which the area enclosed by the edges of the polygon is a cutout area.
[0080] The graphic description field may also include a third graphic description subfield, which can be reserved for use when more description of the graphic is needed later.
[0081] In addition, the first data row may include a graphical description extension field, which may correspond to the Ext field in row 1 of Table 1. The graphical description extension field can be reserved for use later when more detailed descriptions of the graph are needed.
[0082] In some implementations, referring to Table 1, the multiple data rows include multiple second data rows, each including a segment description field corresponding to the SegmentDesc field in Table 1. The segment description field can be used to characterize the length, position, and movement information of a line segment, and can also be used to characterize other information about a line segment. Understandably, optical proximity correction of the layout may include adjusting the line segments of the graphics in each block, such as moving the positions of the line segments. Therefore, the movement information of the line segments can be recorded through the multiple second data rows included in the multiple data rows, thereby recording the processing performed on the image in each block at each step.
[0083] The line segment description field may include a first line segment description subfield and a second line segment description subfield. The first line segment description subfield is used to characterize the movement information of the line segment, and the second line segment description field is used to characterize the length of the line segment and its position information before movement.
[0084] For example, the first line segment descriptor field may include the move_delta field and move_dir field from Table 1. That is, the movement information of the line segment can be characterized by the distance the line segment moves and the direction of its movement. The move_delta field in Table 1 represents the distance the line segment moves; the move_delta field can be an unsigned integer with a length of 18 bits. The move_dir field in Table 1 represents the direction of the line segment's movement; the move_dir field can be an unsigned integer with a length of 1 bit. A value of 0 in the move_dir field indicates that the line segment moves inwards from the graphic; a value of 1 in the move_dir field indicates that the line segment moves outwards from the graphic.
[0085] For example, the second line segment descriptor field may also include a field storing the coordinates of the two endpoints of the line segment. Thus, a line segment can be determined by the two endpoints. That is, after determining the two endpoints, the line segment can be determined by those two endpoints. Understandably, the second line segment descriptor field represents the position of the line segment before it moved; that is, when the line segment is represented by its two endpoints, those two endpoints are the coordinates of the line segment before it moved.
[0086] For example, the second line segment descriptor field may also include a field storing the relative coordinates of the two endpoints of the line segment. Understandably, the graphic in the block is a closed image, meaning the multiple line segments included in the graphic are connected end-to-end; that is, the multiple vertices of the graphic are connected sequentially. Therefore, arbitrarily selecting a vertex from the multiple vertices of the graphic as the starting point and recording the absolute coordinates of that vertex; according to the sequential connection order of the multiple vertices, the line segment information between the subsequent vertex and the preceding vertex can be represented by the relative coordinates of the subsequent vertex relative to the preceding vertex.
[0087] For clarity, please refer to Figure 10 , Figure 10 This diagram illustrates a method of representing line segments. The figure includes four line segments connected end-to-end: AB, BC, CD, and DA. In other words, the figure comprises four endpoints connected sequentially from A to D. Therefore, given the coordinates of point A and using A as the starting point, line segment AB can be represented by the relative coordinates of point B relative to A, line segment BC by the relative coordinates of point C relative to B, line segment CD by the relative coordinates of point D relative to C, and line segment DA by the relative coordinates of point D relative to A. That is, line segment AB can be represented as (0,1), line segment BC as (2,0), line segment CD as (0,-1), and line segment DA as (-2,0). Subsequently, given the coordinates of point A as (1212,3435), the specific positions of all line segments can be determined.
[0088] Based on this, multiple data rows may also include a third data row, which includes a graph origin field to represent the coordinates of the origin. For example, the graph origin field may include the `origin_x` and `origin_y` fields from Table 1, where `origin_x` represents the absolute coordinates of the origin in the first direction, and `origin_y` represents the absolute coordinates of the origin in the second direction, where the first and second directions intersect. Understandably, if represented by the absolute position coordinates of the vertex in a Cartesian coordinate system, the first direction can be the X direction, and the second direction can be the Y direction. The origin can be an endpoint of one of the multiple line segments obtained from splitting the graph's edges, meaning it can be any endpoint of any of the multiple line segments obtained from splitting the graph's edges. In this way, the line segment can be represented using the increment of its coordinates relative to another endpoint, allowing for the use of smaller numerical values to represent the line segment, which is beneficial for storing the length and position information of the line segment in a smaller amount of storage space. Both the `origin_x` and `origin_y` fields can be integers (INTEGER), with a length of 32 bits.
[0089] Following the aforementioned method of representing line segments using coordinate increment values, the second data row may include a first direction increment field and a second direction increment field. That is, the line segment includes a first endpoint and a second endpoint. The first direction increment field represents the increment of the coordinate value of the second endpoint relative to the first endpoint in a first direction, and the second direction increment field represents the increment of the coordinate value of the second endpoint relative to the first endpoint in a second direction, wherein the first and second directions intersect.
[0090] For example, the first direction increment field may include the delta_x field and delta_x_dir field from Table 1. The delta_x field represents the change in coordinate value of the second endpoint of the line segment relative to the first endpoint in the first direction. The delta_x field can be an unsigned integer, capable of storing up to 21 bits. Since the delta_x field is an unsigned integer, the delta_x_dir field is needed to indicate whether the change in coordinate value of the second endpoint relative to the first endpoint is in the positive or negative direction of the first direction. The delta_x_dir field can also be an unsigned integer, capable of storing up to 1 bit. A value of 0 in the delta_x_dir field indicates a change in coordinate value of the second endpoint relative to the first endpoint in the negative direction of the first direction; a value of 1 in the delta_x_dir field indicates a change in coordinate value of the second endpoint relative to the first endpoint in the positive direction of the X direction. Similarly, the second direction increment field may also include the delta_y field and delta_y_dir field from Table 1.
[0091] Therefore, multiple second data rows can sequentially represent multiple line segments, and these line segments are connected sequentially according to the arrangement order of the multiple second data rows. Here, the arrangement order refers to the order in which the second data rows are arranged in the data table.
[0092] In some implementations, the line segment description field may further include a third line segment description sub-field, which is used to characterize whether the line segment is a virtual edge or a solid edge. Understandably, after splitting a graphic into line segments, and then moving a line segment inwards or outwards from the graphic, to ensure the graphic remains a closed image, it is necessary to add line segments at both endpoints of the original line segment to connect the endpoints before and after the movement. The line segments directly obtained after splitting the graphic are solid edges, while the newly added line segments after splitting and moving the graphic are virtual edges. For example, after splitting the graphic, there is a virtual edge between two adjacent solid edges; that is, in the multiple second data rows, the second data rows representing virtual edges and the second data rows representing solid edges can be alternated. The third line segment description sub-field may correspond to the virtual field in Table 1. The virtual field may also be unsigned integer data, and its data storage capacity can be 1 bit. When the data stored in the virtual field is 0, it indicates that the line segment is a solid edge; when the data stored in the virtual field is 1, it indicates that the line segment is a dashed edge.
[0093] Understandably, the second data row may also include a segment description extension field, which may correspond to the Ext field in rows 3 through n of Table 1. The segment description extension field may include a reserved field for use later when more detailed description of the segment is required. Similarly, the third data row may also include a start point extension field, which may correspond to the Ext field in row 2 of Table 1. The start point extension field may be a reserved field for use later when more detailed description of the start point is required.
[0094] In some implementations, the naming convention for data tables can be the same as or similar to that for blocks, thereby facilitating the mapping of data tables to blocks. For example, the name of a block may include a prefix and row / column information, where the prefix could be "tile__" and the row / column information could be "rxxxcyyy". Understandably, the name of a data table may also include other fields. For instance, the name of a data table could be the block name plus the smallest unit of layout data (database unit, DBU), such as tile_r001c002_1000, where 1000 could also indicate that the smallest unit of the graphic in the layout is 1 / 1000 micrometer.
[0095] In some implementations, the first data stream, second data stream, and third data stream all further include a description file, which contains data identifying the correspondence between database files and blocks. Understandably, there can be a strict one-to-one correspondence between blocks and data tables, so the description file can also identify the correspondence between database files and blocks through the correspondence between database files and data tables. For example, the description file can be a table, such as a "csv" type file. For example, the data stored in the description file is shown in Table 2. Thus, the database file containing the data table corresponding to a block can be quickly obtained through the description file.
[0096] Table 2
[0097] database file Data table segment_db_170505.db tile_r001c002 segment_db_170505.db tile_r011c003 segment_db_123456.db tile_r000c001 … …
[0098] For example, please see Figure 11 The second data stream output after the first processing step may further include a layout design file, a database file, and a description file. The second processing step can recover the layout and its line segments based on the layout design file, database file, and description file in the second data stream, thus allowing the second processing step to perform processing based on the recovered layout and line segments. Understandably, the recovered layout and its line segments are the layout and line segments obtained after the first processing step. In this way, the first and second processing steps can be decoupled, enabling processing to be performed on different nodes.
[0099] Since the first and second processing steps can be performed on different nodes, the second data stream needs to be transmitted between these different nodes. For example, the first processing step may store the second data stream in a storage space, such as a hard disk medium, and then the second processing step may retrieve the second data stream from that storage space.
[0100] This application also provides a computing device, which includes one or more processors; one or more memories; the one or more memories storing one or more computer programs, the one or more computer programs including instructions that, when executed by one or more processors, cause the optical proximity effect correction method as described in any of the above embodiments to be executed.
[0101] This application also provides a computer-readable storage medium storing computer instructions that, when executed on a computing device, cause the optical proximity effect correction method as described in any of the above embodiments to be performed.
[0102] This application provides a computer program product that, when run on a computing device, causes the computing device to perform the aforementioned related steps to implement the optical proximity effect correction method in the above embodiments.
[0103] In this embodiment, the computing device, computer-readable storage medium, or computer program product is used to execute the corresponding method provided above. Therefore, the beneficial effects that can be achieved can be referred to the beneficial effects of the corresponding method provided above, and will not be repeated here.
[0104] Those skilled in the art will recognize that the processing steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0105] In the embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the various devices is only a logical functional division, and there may be other division methods in actual implementation.
[0106] The technical solution of this application, in essence, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computing device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0107] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for correcting the optical proximity effect, characterized in that, It includes multiple processing steps, including a first processing step and a second processing step; The first processing step involves receiving a first data stream and outputting a processed second data stream. The second processing step involves receiving the second data stream and outputting the processed third data stream. The first and second processing steps are performed on different nodes. The first, second, and third data streams all include a layout design file and a database file. The database file includes data for multiple graphics, which are obtained by dividing the patterns in the layout corresponding to the layout design file.
2. The optical proximity effect correction method as described in claim 1, characterized in that, The multiple processing steps also include an initial step. The initial step receives the initial layout design file and outputs the layout design file and the database file; The layout design file includes data of at least one block, which is obtained by dividing the layout corresponding to the initial layout design file, wherein the layout corresponding to the layout design file is the same as the layout corresponding to the initial layout design file.
3. The optical proximity effect correction method as described in claim 1 or 2, characterized in that, The layout includes at least one block, and each block includes at least one of the graphics; the layout design file includes data for at least one block; The database file includes at least one data table, one data table corresponds to one block, and multiple data rows in the data table store data for one of the graphics.
4. The optical proximity effect correction method as described in claim 3, characterized in that, The plurality of data rows include a first data row, the first data row including a graphic description field, the graphic description field including a first graphic description subfield, the first graphic description subfield being used to identify the number of line segments included in the graphic, the line segments being obtained by splitting the edges of the graphic.
5. The optical proximity effect correction method as described in claim 4, characterized in that, The graphic description field includes a second graphic description subfield, which is used to identify whether the graphic is a solid polygon or a hole polygon.
6. The optical proximity effect correction method according to any one of claims 3 to 5, characterized in that, The plurality of data rows include a plurality of second data rows, the second data rows including a line segment description field, the line segment description field being used to characterize the length information, position information and movement information of a line segment.
7. The optical proximity effect correction method as described in claim 6, characterized in that, The line segment description field includes: The first line segment description subfield is used to characterize the movement information of the line segment; The second line segment description subfield is used to characterize the length of the line segment and its position information before movement.
8. The optical proximity effect correction method as described in claim 7, characterized in that, The plurality of data rows include a third data row, which includes a graphic start point field. The graphic start point field is used to characterize the coordinates of the start point, which is an endpoint of one of the multiple line segments obtained by splitting the edges of the graphic and connecting them end to end.
9. The optical proximity effect correction method as described in claim 8, characterized in that, The endpoints of the line segment include a first endpoint and a second endpoint, and the line segment is represented by the increment of the coordinates of the second endpoint relative to the coordinates of the first endpoint.
10. The optical proximity effect correction method as described in claim 9, characterized in that, The plurality of second data rows sequentially represent the plurality of line segments, and the plurality of line segments are connected sequentially according to the arrangement order of the plurality of second data rows; The second data row includes a first direction increment field and a second direction increment field; The line segment includes a first endpoint and a second endpoint. The first direction increment field is used to represent the increment of the coordinate value of the second endpoint of the line segment relative to the first endpoint in a first direction, and the second direction increment field is used to represent the increment of the coordinate value of the second endpoint of the line segment relative to the first endpoint in a second direction. Wherein, the first direction intersects with the second direction.
11. The optical proximity effect correction method according to any one of claims 3 to 10, characterized in that, The first data stream, the second data stream, and the third data stream all further include a description file, which includes data identifying the correspondence between the database file and the block.
12. The optical proximity effect correction method according to any one of claims 1 to 11, characterized in that, The node includes computer processes.
13. The optical proximity effect correction method as described in claim 12, characterized in that, At least two of the computer processes are performed on different computing devices.
14. A computing device, characterized in that, include: One or more processors; One or more memory units; The one or more memories store one or more computer programs, the one or more computer programs including instructions that, when executed by one or more processors, cause the optical proximity effect correction method as described in any one of claims 1-13 to be executed.
15. A computer-readable storage medium, characterized in that, The readable storage medium stores instructions that, when executed on an electronic device, cause the optical proximity effect correction method as described in any one of claims 1-13 to be performed.