A method and device for processing curve graphics

By converting the curved graph into Manhattan polygons and performing rounding, the storage space problem caused by dense sampling is solved, and a method of efficiently storing curved graphs is realized.

CN119722851BActive Publication Date: 2025-06-06YIXIN TECH (HANGZHOU) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510215981.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-02-26
Publication Date
2025-06-06
Estimated Expiration
2045-02-26

AI Technical Summary

Technical Problem

In the prior art, when storing curve graphics, intensive sampling leads to a sharp increase in the size of the data set and occupy a large amount of storage space.

Method used

Convert the curve shape into the initial Manhattan polygon, and round its corners, replace it with an arc with a preset radius or a parabola that meets the preset conditions to generate a Manhattan polygon for representing the curve shape.

Benefits of technology

By reducing the number of vertices, the burden on storage space is reduced while maintaining the accuracy and smoothness of the curved graph.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119722851B_ABST
    Figure CN119722851B_ABST
Patent Text Reader

Abstract

The present application discloses a curve graphics processing method and device, which accurately depicts the curve graphics, uses Manhattan polygons to characterize the curve graphics, reduces the computational complexity, optimizes the geometric form, removes redundant information, and reduces the burden of storage space. Finally, a smooth Manhattan polygon that meets the constraints is obtained, which provides a guarantee for using the curve graphics in a general edge-based OPC process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to but is not limited to semiconductor integrated circuit technology, and in particular to a curve graphics processing method and device. Background Art

[0002] A curved graphic refers to a curved layout graphic, where the designed layout shape is a curve. Curved layouts are mainly used in silicon photonic chips and high-end nodes. In silicon photonic chips, signal transmission relies on light rather than electricity. Designing optical waveguides into curved shapes can effectively reduce light loss, especially when the path turns, which helps reduce bending loss and reflection, thereby improving transmission efficiency. In high-end nodes, although the curved layout design and manufacturing process are more complex, it has significant advantages in optimizing electric field distribution, reducing parasitic effects, and improving current paths. It is easier to meet design rule check (DRC) requirements, thereby improving chip performance and yield. As an important technical means in advanced processes, curved layouts are gradually becoming a key element in high-performance chip design.

[0003] In order to store curve graphics, the current main method is to store sufficiently dense points in sequence. This method of using sufficiently dense points to represent curve graphics, although dense sampling can more accurately capture the shape and details of the curve, making the graphics more refined and realistic, however, dense sampling means more data points, which may cause the size of the data set to increase dramatically.

[0004] Take the layout graphics as an example. The layout graphics themselves are very large. In order to accurately depict these curve graphics, sufficient points are required. In order to store these points, more storage space is required. The storage space required for the file is too large, which undoubtedly brings additional burden to storage. Summary of the invention

[0005] The present application provides a curve graphics processing method and device, which can accurately depict curve graphics and reduce the burden of storage space.

[0006] An embodiment of the present invention provides a curve graphics processing method, comprising:

[0007] Convert the curve figure into the initial Manhattan polygon and obtain the first vertex sequence;

[0008] Performing a first rounding process or a second rounding process on the corners formed by every two sides of the initial Manhattan polygon, using line segments to represent the processed curve segments and obtaining a second vertex sequence; wherein the first rounding process is to replace the corners with arcs of a preset radius; and the second rounding process is to replace the corners with parabolas that meet preset conditions;

[0009] Integrate the first vertex sequence and the second vertex sequence, remove vertices in the first vertex sequence that are replaced by vertices in the second vertex sequence, and obtain a third vertex sequence;

[0010] The vertices in the third vertex sequence are connected end to end to generate a Manhattan polygon for representing a curved graph.

[0011] In an exemplary embodiment, the curve graphic is a closed curve graphic in a layout graphic, and the closed curve graphic in the layout graphic is a curve template generated according to a chip design shape.

[0012] In an exemplary embodiment, performing a first rounding process or a second rounding process on a corner formed by every two sides of the initial Manhattan polygon includes:

[0013] For each right-angle turning point in the first vertex sequence, check whether its inner and outer edges meet the preset processing conditions. If both sides are not less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the first rounding processing on the right-angle turning point; if one of the two sides is less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the second rounding processing on the right-angle turning point.

[0014] In an exemplary embodiment, the first rounding process or the second rounding process is performed, using line segments to represent the processed curve segments and obtaining a second vertex sequence, including:

[0015] For each right-angle turning point, a circular arc is simulated using horizontal, horizontal, and vertical straight line segments according to the preset outer fillet radius or the preset inner fillet radius; the original right-angle turning point is replaced with the vertex of a small horizontal, horizontal, and vertical straight line segment as an insertion point to form a smooth approximate circular arc; wherein the insertion point is part of the second vertex sequence.

[0016] In an exemplary embodiment, the first rounding process or the second rounding process is performed, using line segments to represent the processed curve segments and obtaining a second vertex sequence, including:

[0017] For a first right-angle turning point of a side smaller than the sum of the preset inner fillet radius and the preset outer fillet radius, determine a first midpoint of the first side to which the first right-angle turning point belongs; for a second right-angle turning point of a side smaller than the sum of the preset inner fillet radius and the preset outer fillet radius, determine a second midpoint of the second side to which the second right-angle turning point belongs; connect the first midpoint and the second midpoint to obtain an intersection of the connecting line and the side smaller than the sum of the preset inner fillet radius and the preset outer fillet radius;

[0018] Between the non-first right-angle turning point and the intersection point, a horizontal, flat and vertical line segment is used to simulate the first parabola segment, and the original first right-angle turning point is replaced by the vertex of a small horizontal, flat and vertical line segment as an insertion point to form a smooth approximate first parabola segment, wherein the insertion point is part of the second vertex sequence; wherein one end of the first parabola segment is the non-first right-angle vertex of the first side, and the other end is the intersection point, the tangent direction of the first parabola segment at the non-first right-angle turning point of the first side is the direction of the first side, and the tangent direction of the first parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint;

[0019] Between the non-second right-angle turning point and the intersection point, a horizontal, flat and vertical line segment is used to simulate the second parabola segment, and the original second right-angle turning point is replaced by the vertex of a small horizontal, flat and vertical line segment as an insertion point to form a smooth approximate second parabola segment, wherein the insertion point is part of the second vertex sequence; wherein one end of the second parabola segment is the non-second right-angle vertex of the second side, and the other end is the intersection point, the tangent direction of the second parabola segment at the non-second right-angle turning point of the second side is the direction of the second side, and the tangent direction of the second parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint.

[0020] In an exemplary embodiment, integrating the first vertex sequence and the second vertex sequence includes:

[0021] The insertion points in the second vertex sequence replace the corresponding vertices in the first vertex sequence respectively to obtain the new third vertex sequence.

[0022] An embodiment of the present application further provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute any of the curve graphics processing methods described above.

[0023] An embodiment of the present application further provides a computer device, including a memory and a processor, wherein the memory stores the following instructions executable by the processor: used to execute the steps of any of the curve graphics processing methods described above.

[0024] The embodiment of the present application also provides a curve graphics processing device, comprising: a pre-processing module, a rounding processing module, an integration module, and a generation module; wherein:

[0025] A preprocessing module, used for converting the curve figure into an initial Manhattan polygon and obtaining a first vertex sequence;

[0026] A rounding processing module, used to perform a first rounding processing or a second rounding processing on the corners formed by every two sides of the initial Manhattan polygon, using line segments to represent the processed curve segments and obtaining a second vertex sequence; wherein the first rounding processing is to replace the corners with arcs of a preset radius; and the second rounding processing is to replace the corners with parabolas that meet preset conditions;

[0027] An integration module, used for integrating the first vertex sequence and the second vertex sequence, removing vertices in the first vertex sequence that are replaced by vertices in the second vertex sequence, and obtaining a third vertex sequence;

[0028] The generation module is used to connect the vertices in the third vertex sequence end to end to generate a Manhattan polygon for representing a curve figure.

[0029] In an exemplary embodiment, the rounding processing module is used to:

[0030] For each right-angle turning point in the first vertex sequence, check whether its inner and outer edges meet the preset processing conditions. If both sides are not less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the first rounding processing on the right-angle turning point; if one of the two sides is less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the second rounding processing on the right-angle turning point.

[0031] The curve graphics processing method provided in the embodiment of the present application accurately depicts the curve graphics, uses Manhattan polygons to characterize the curve graphics, reduces the computational complexity, optimizes the geometric shape, removes redundant information, reduces the burden of storage space, and ultimately obtains a smooth Manhattan polygon that meets the constraints, providing a guarantee for using the curve graphics in general edge-based OPC processes.

[0032] Other features and advantages of the present invention will be described in the following description, and partly become apparent from the description, or understood by practicing the present invention. The purpose and other advantages of the present invention can be realized and obtained by the structures particularly pointed out in the description, claims and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] The accompanying drawings are used to provide further understanding of the technical solution of the present application and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the technical solution of the present application and do not constitute a limitation on the technical solution of the present application.

[0034] Figure 1 This is a flow chart of a curve graph processing method in an embodiment of the present application;

[0035] Figure 2 This is an exemplary schematic diagram of the first rounded corner processing in the embodiment of the present application;

[0036] Figure 3 In the embodiment of this application Figure 2 An enlarged schematic diagram of the first rounded corner treatment portion;

[0037] Figure 4 This is an exemplary schematic diagram of the second rounding process in the embodiment of the present application;

[0038] Figure 5 Schematic diagram of the composition structure of the curve graphics processing device in the embodiment of the present application. DETAILED DESCRIPTION

[0039] In order to make the purpose, technical solution and advantages of the present application more clear, the embodiments of the present application will be described in detail below with reference to the accompanying drawings. It should be noted that the embodiments and features in the embodiments of the present application can be combined with each other arbitrarily without conflict.

[0040] In a typical configuration of the present application, a computing device includes one or more processors (CPU), an input / output interface, a network interface, and a memory.

[0041] Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.

[0042] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory media such as modulated data signals and carrier waves.

[0043] The steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions. Also, although a logical sequence is shown in the flowchart, in some cases, the steps shown or described can be performed in a sequence different from that shown here.

[0044] Representing a curve graph as a Manhattan Polygon (also known as a horizontal and vertical polygon) is a method to adapt a complex curve to edge-based optical proximity correction (OPC) by approximation.

[0045] The boundary of the curve changes continuously and is difficult to directly decompose into simple edges. During the lithography simulation process, calculating the precise reflection and diffraction characteristics of the curve will greatly increase the calculation cost. The design of Edge-based OPC is based on linear geometric boundaries rather than continuous curves. The curve needs to be converted into a polygon composed of a finite number of line segments before it can be recognized by standard OPC tools. In order to adapt to Edge-based OPC, the curve graphics need to be converted into Manhattan Polygons through approximation. In this way, Edge-based OPC can be used for Manhattan polygons, thereby realizing OPC for the curve layout.

[0046] To this end, the present application embodiment provides a curve graphics processing method, such as Figure 1 As shown, including:

[0047] Step 100: Convert the curve figure into an initial Manhattan polygon and obtain the first vertex sequence.

[0048] Through step 100, the curved figure is segmented into a series of horizontal and vertical line segments, and these line segments are connected end to end to obtain a closed initial Manhattan polygon.

[0049] In one embodiment, the curve graphic is a closed curve graphic in the layout graphic, and the closed curve graphic in the layout graphic is a curve template generated according to the chip design shape.

[0050] In order to ensure that the curve can be accurately depicted, the initial Manhattan polygon obtained after the transformation is as close to the original curve as possible, that is, within the allowable error range.

[0051] In one exemplary embodiment, step 100 may include:

[0052] First, according to the complexity of the curve, select an appropriate sampling interval (such as equidistant sampling or arc length equal sampling) to sample the continuous curve into a discrete set of points for subsequent polygon fitting. Here, the smaller the sampling interval, the denser the discretized points, the higher the fitting accuracy, but the storage cost increases. In other words, for the setting of the sampling interval, it is only necessary to ensure that the density of the points is sufficient to capture the important details of the curve.

[0053] Then, connect the sampling points to generate the initial Manhattan polygon that is horizontal and vertical;

[0054] Finally, all vertices of the initial Manhattan polygon are obtained to obtain the first vertex sequence.

[0055] In one embodiment, from the first point of the point set Departure, if of Coordinates and Different, generate horizontal line segments if of Coordinates and Different, generate vertical line segments, ensure that each line segment follows the horizontal or vertical direction, avoid oblique line segments, is an integer greater than or equal to 0; the generated polygon vertex sequence is stored to obtain the first vertex sequence.

[0056] In the embodiment of the present application, the curve graphic is converted into a Manhattan polygon (composed only of horizontal and vertical line segments) through the processing of step 100, which reduces the complexity of data processing, reduces the amount of calculation, and helps to simplify subsequent geometric operations.

[0057] Step 101: Perform a first rounding process or a second rounding process on the corners formed by every two sides of the initial Manhattan polygon, use a line segment to represent the processed curve segment and obtain a second vertex sequence; wherein the first rounding process is to replace the corner with an arc of a preset radius; and the second rounding process is to replace the corner with a parabola that meets preset conditions.

[0058] In an exemplary embodiment, performing the first rounding process or the second rounding process on the corner formed by each two sides of the initial Manhattan polygon may include:

[0059] For each right-angle turning point in the first vertex sequence, check whether its inner and outer edges meet the preset processing conditions. If both sides are not less than the sum of the preset inner fillet radius and the preset outer fillet radius, perform the first rounding treatment on the right-angle turning point; if one of the two sides is less than the sum of the preset inner fillet radius and the preset outer fillet radius, perform the second rounding treatment on the right-angle turning point.

[0060] like Figure 2 As shown in the figure, the shaded part is the Manhattan polygon, and the black curve is the curve figure represented by the Manhattan polygon. In the Manhattan polygon, the right-angle inflection point refers to the vertex where the angle between the sides is 90 degrees (or 270 degrees), such as Figure 2 As shown in the figure, vertex B1 forms a right angle with the adjacent edges A1B1 and B1C1. The characteristic of a right-angle inflection point is that the two adjacent edges are perpendicular to each other, one of which is horizontal and the other is vertical. For vertex B1, the inner edge refers to the edge entering the inflection point along the path of the polygon, such as the edge A1B1 from vertex A1 to vertex B1; the outer edge refers to the edge leaving the inflection point, such as the edge B1C1 from vertex B1 to vertex C1.

[0061] like Figure 2 As shown, the inner fillet radius and outer corner radius Can be preset, inner fillet radius Usually smaller because the inner fillet radius Located at the concave corners of the L-shaped structure to avoid excessive intrusion into the graphics. Usually larger to avoid sharp outer corners and to make the outer edges transition more smoothly. For example, assuming that the minimum feature size required by the process is CD=10 nm, the inner corner radius Can be set to: ; Outer corner radius Can be set to: If the design space is tight, you can set , to meet the compactness.

[0062] In an exemplary embodiment, the first rounding process may include:

[0063] For each right-angle inflection point, according to the outer corner radius or Fillet Radius , use small horizontal, vertical and horizontal line segments to simulate arcs; replace the original right-angle turning points with the vertices of these small horizontal, vertical and horizontal line segments (also called insertion points) to form a smooth approximate arc. These insertion points are part of the second vertex sequence.

[0064] like Figure 2 As shown, taking the right-angle turning point B1 as an example, the radius is used as the outer fillet radius The circle O1 is tangent to the two sides of the right-angle turning point B1, so as to round the right-angle turning point B1 and replace the corresponding corner with a radius of the outer fillet radius. An arc on the circle O1, such as Figure 3As shown in the bold arc 31 in FIG. In one embodiment, the outer fillet radius can be and the required smoothness, determine the number of insertion points For example, we can divide the 90 degree angle into Segments, each segment is ; For each insertion point, calculate its offset relative to the inflection point: the horizontal offset is , the vertical offset is ; In this way, the generated point sequence is as follows: , … The original right-angle turning point B1 is replaced by these insertion points to form a smooth approximate arc 31. These insertion points are part of the second vertex sequence.

[0065] Likewise, the original right-angle turning point C1 can be replaced by an insertion point to form a smooth approximate circular arc 32. These insertion points are also part of the second vertex sequence.

[0066] In an exemplary embodiment, the second rounding process may include:

[0067] For one of the right-angle turning points of the side that is smaller than the sum of the preset inner fillet radius and the preset outer fillet radius (referred to as the first right-angle turning point in this article), determine the midpoint of the other side to which the first right-angle turning point belongs (referred to as the first midpoint of the first side in this article); for another right-angle turning point of the side that is smaller than the sum of the preset inner fillet radius and the preset outer fillet radius (referred to as the second right-angle turning point in this article), determine the midpoint of the other side to which the second right-angle turning point belongs (referred to as the second midpoint of the second side in this article); connect the first midpoint and the second midpoint to obtain the intersection of the connecting line and the side that is smaller than the sum of the preset inner fillet radius and the preset outer fillet radius;

[0068] Between another vertex of the first side (referred to as the non-first right-angle turning point in this article) and the intersection point, a small horizontal, flat and vertical line segment is used to simulate the first parabola segment, and the original first right-angle turning point is replaced by the vertices of these small horizontal, flat and vertical line segments (also referred to as insertion points) to form a smooth approximate first parabola segment, and these insertion points are part of the second vertex sequence; wherein one end of the first parabola segment is the non-first right-angle vertex of the first side, and the other end is the intersection point, the tangent direction of the first parabola segment at the non-first right-angle turning point of the first side is the direction of the first side, and the tangent direction of the first parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint;

[0069] Between the other vertex of the second side (referred to as the non-second right-angle turning point in this article) and the intersection point, small horizontal, flat and vertical line segments are used to simulate the second parabola segment, and the original second right-angle turning point is replaced by the vertices of these small horizontal, flat and vertical line segments (also called insertion points) to form a smooth approximate second parabola segment, and these insertion points are part of the second vertex sequence; wherein, one end of the second parabola segment is the non-second right-angle vertex of the second side, and the other end is the intersection point, the tangent direction of the second parabola segment at the non-second right-angle turning point of the second side is the direction of the second side, and the tangent direction of the second parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint.

[0070] like Figure 4 As shown, assume that one of the sides of the right-angle turning point B2 (the first right-angle turning point) is side B2C2 At this time, it is impossible to directly perform the first rounding process on the right-angle turning point B2 and the right-angle turning point C2 (the second right-angle turning point). Therefore, in the embodiment of the present application, the two are combined for processing, that is, the rounded areas of the right-angle turning point B2 and the right-angle turning point C2 are combined for processing, such as Figure 4 As shown, find the midpoint E (first midpoint) of one of the sides A2B2 (first side) of the right-angle turning point B2, and the midpoint G (second midpoint) of the other side C2D2 (second side) of the right-angle turning point C2. The line connecting the two midpoints E and G intersects with the common side B2C2 of the right-angle turning point B2 and the right-angle turning point C2 at the intersection F.

[0071] like Figure 4 As shown, the segment from vertex A2 (the non-first right-angle turning point of the first side) to intersection F is approximated by parabola 41, the tangent direction of parabola 41 at vertex A2 is the direction of side A2B2, and the tangent direction of parabola 41 at intersection F is the direction of the line connecting the two midpoints E and G. In this way, small horizontal, flat and vertical line segments can be used to simulate the parabola segment P_A2F (the first parabola segment) in parabola 41; the original right-angle turning point B2 is replaced by the vertices (also called insertion points) of these small horizontal, flat and vertical line segments to form a smooth approximate arc.

[0072] Similarly, the segment from vertex D2 (non-second right-angle turning point of the second side) to intersection F is approximated by parabola 42, the tangent direction of parabola 42 at vertex D2 is the direction of side C2D2, and the tangent direction of parabola 42 at intersection F is the direction of the line connecting the two midpoints E and G. In this way, small horizontal, flat and vertical line segments can be used to simulate the parabola segment P_D2F (second parabola segment) in parabola 42; the original right-angle turning point C2 is replaced by the vertices (also called insertion points) of these small horizontal, flat and vertical line segments to form a smooth approximate arc.

[0073] In the embodiment of the present application, at the intersection F, the tangent directions of the two parabola segments, namely the parabola segment P_A2F and the parabola segment P_D2F, are the same, so the curve of the entire segment is smooth.

[0074] Through the first rounding treatment and the second rounding treatment in step 101, the sharp right angle is converted into a smooth arc, which reduces the stress concentration in the lithography and manufacturing process, improves the manufacturing quality and optical performance of the graphics, and ensures that the converted boundary is smoother and meets the design requirements.

[0075] Step 102: Integrate the first vertex sequence and the second vertex sequence, remove the vertices in the first vertex sequence that are replaced by the vertices in the second vertex sequence, and obtain a third vertex sequence.

[0076] In this step, the insertion points in the second vertex sequence replace the corresponding vertices in the first vertex sequence to obtain a new third vertex sequence. In the embodiment of the present application, the third vertex sequence is generated by merging and removing redundant points, which reduces the amount of data, making the final polygon more concise and efficient, while retaining the key shape of the curve.

[0077] Step 103: Connect the vertices in the third vertex sequence end to end to generate a Manhattan polygon for representing a curve figure.

[0078] The vertices of the closed polygon are obtained and stored in order, and the closed polygon is connected according to the vertices, so that the obtained closed polygon is used as a curve figure. The embodiment of the present application ensures the integrity of the Manhattan polygon by connecting the end to the end, avoiding the problem of fragmentation or discontinuity, so that the final result is better applied to the subsequent general edge-based OPC process.

[0079] Through the curve graphics processing method provided in the embodiment of the present application, the curve graphics are accurately portrayed, and Manhattan polygons are used to characterize the curve graphics, which reduces the computational complexity, optimizes the geometric shape, removes redundant information, and reduces the burden of storage space. Finally, a smooth Manhattan polygon that meets the constraints is obtained, which provides a guarantee for using curve graphics in general edge-based OPC processes.

[0080] The present application also provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute any of the curve graphics processing methods described above.

[0081] The present application further provides a computer device, including a memory and a processor, wherein the memory stores the following instructions executable by the processor: used to execute the steps of any of the curve graphics processing methods described above.

[0082] Figure 5 Schematic diagram of the composition structure of the curve graphics processing device in the embodiment of the present application. Figure 5 As shown, it may include: a pre-processing module, a rounded corner processing module, an integration module, and a generation module; wherein,

[0083] A preprocessing module, used for converting the curve figure into an initial Manhattan polygon and obtaining a first vertex sequence;

[0084] A rounding processing module, used to perform a first rounding processing or a second rounding processing on the corners formed by every two sides of the initial Manhattan polygon, using line segments to represent the processed curve segments and obtaining a second vertex sequence; wherein the first rounding processing is to replace the corners with arcs of a preset radius; and the second rounding processing is to replace the corners with parabolas that meet preset conditions;

[0085] An integration module, used for integrating the first vertex sequence and the second vertex sequence, removing vertices in the first vertex sequence that are replaced by vertices in the second vertex sequence, and obtaining a third vertex sequence;

[0086] The generation module is used to connect the vertices in the third vertex sequence end to end to generate a Manhattan polygon for representing a curve figure.

[0087] In one exemplary embodiment, the pre-processing module may be used to:

[0088] According to the complexity of the curve graph, an appropriate sampling interval is selected to sample the continuous curve into a discrete point set; the sampling points are connected to generate a horizontal and vertical Manhattan polygon; all vertices of the initial Manhattan polygon are obtained to obtain the first vertex sequence.

[0089] In an exemplary embodiment, the rounding processing module can be used to:

[0090] For each right-angle turning point in the first vertex sequence, check whether its inner and outer edges meet the preset processing conditions. If both sides are not less than the sum of the preset inner fillet radius and the preset outer fillet radius, perform the first rounding treatment on the right-angle turning point; if one of the two sides is less than the sum of the preset inner fillet radius and the preset outer fillet radius, perform the second rounding treatment on the right-angle turning point.

[0091] In one embodiment, the first rounding process may include:

[0092] For each right-angle inflection point, according to the outer corner radius or Fillet Radius , use small horizontal, vertical and horizontal line segments to simulate arcs; replace the original right-angle turning points with the vertices of these small horizontal, vertical and horizontal line segments (also called insertion points) to form a smooth approximate arc. These insertion points are part of the second vertex sequence.

[0093] In one embodiment, the second rounding process may include:

[0094] For one of the right-angle turning points of the side that is smaller than the sum of the preset inner fillet radius and the preset outer fillet radius (referred to as the first right-angle turning point in this article), determine the midpoint of the other side to which the first right-angle turning point belongs (referred to as the first midpoint of the first side in this article); for another right-angle turning point of the side that is smaller than the sum of the preset inner fillet radius and the preset outer fillet radius (referred to as the second right-angle turning point in this article), determine the midpoint of the other side to which the second right-angle turning point belongs (referred to as the second midpoint of the second side in this article); connect the first midpoint and the second midpoint to obtain the intersection of the connecting line and the side that is smaller than the sum of the preset inner fillet radius and the preset outer fillet radius;

[0095] Between another vertex of the first side (referred to as the non-first right-angle turning point in this article) and the intersection point, a small horizontal, flat and vertical line segment is used to simulate the first parabola segment, and the original first right-angle turning point is replaced by the vertices of these small horizontal, flat and vertical line segments (also referred to as insertion points) to form a smooth approximate first parabola segment, and these insertion points are part of the second vertex sequence; wherein one end of the first parabola segment is the non-first right-angle vertex of the first side, and the other end is the intersection point, the tangent direction of the first parabola segment at the non-first right-angle turning point of the first side is the direction of the first side, and the tangent direction of the first parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint;

[0096] Between the other vertex of the second side (referred to as the non-second right-angle turning point in this article) and the intersection point, small horizontal, flat and vertical line segments are used to simulate the second parabola segment, and the original second right-angle turning point is replaced by the vertices of these small horizontal, flat and vertical line segments (also called insertion points) to form a smooth approximate second parabola segment, and these insertion points are part of the second vertex sequence; wherein, one end of the second parabola segment is the non-second right-angle vertex of the second side, and the other end is the intersection point, the tangent direction of the second parabola segment at the non-second right-angle turning point of the second side is the direction of the second side, and the tangent direction of the second parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint.

[0097] In an exemplary embodiment, the integration module may be used to replace the corresponding vertices in the first vertex sequence with the insertion points in the second vertex sequence, respectively, to obtain a new third vertex sequence.

[0098] Through the curve graphics processing device provided in the embodiment of the present application, the curve graphics are accurately portrayed, and Manhattan polygons are used to characterize the curve graphics, which reduces the computational complexity, optimizes the geometric shape, removes redundant information, and reduces the burden of storage space. Finally, a smooth Manhattan polygon that meets the constraints is obtained, which provides a guarantee for using the curve graphics in general edge-based OPC processes.

[0099] Although the embodiments disclosed in this application are as above, the contents described are only embodiments adopted to facilitate understanding of this application and are not intended to limit this application. Any technician in the field to which this application belongs can make any modifications and changes in the form and details of implementation without departing from the spirit and scope disclosed in this application, but the scope of patent protection of this application shall still be based on the scope defined in the attached claims.

Claims

1. A curve graph processing method, characterized in that: The curve graph is a closed curve graph in the layout graph, and the closed curve graph in the layout graph is a curve template generated according to the chip design shape; including: Convert the curve figure into the initial Manhattan polygon and obtain the first vertex sequence; Performing a first rounding process or a second rounding process on the corner formed by each two sides of the initial Manhattan polygon, using a line segment to represent the processed curve segment and obtaining a second vertex sequence; wherein the first rounding process is to replace the corner with an arc of a preset radius; and the second rounding process is to replace the corner with a parabola segment that meets a preset condition, wherein the parabola segment is constructed based on a line connecting the midpoints of the corner-related sides and the intersection of the sides; Integrate the first vertex sequence and the second vertex sequence, remove vertices in the first vertex sequence that are replaced by vertices in the second vertex sequence, and obtain a third vertex sequence; Connect the vertices in the third vertex sequence end to end to generate a Manhattan polygon for representing a curve figure; The step of performing the first rounding process or the second rounding process on the corner formed by each two sides of the initial Manhattan polygon includes: For each right-angle turning point in the first vertex sequence, check whether its inner and outer edges meet the preset processing conditions. If both sides are not less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the first rounding processing on the right-angle turning point; if one of the two sides is less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the second rounding processing on the right-angle turning point.

2. The method according to claim 1, wherein: The first rounding process or the second rounding process, using line segments to represent the processed curve segments and obtaining a second vertex sequence, includes: For each right-angle turning point, a circular arc is simulated using horizontal, horizontal and vertical straight line segments according to the preset outer fillet radius or the preset inner fillet radius; the original right-angle turning point is replaced with the vertex of the horizontal, horizontal and vertical straight line segment as the insertion point to form a smooth approximate circular arc; wherein the insertion point is part of the second vertex sequence.

3. The curve graph processing method according to claim 1, wherein: The first rounding process or the second rounding process, using line segments to represent the processed curve segments and obtaining a second vertex sequence, includes: For a first right-angle turning point of a side smaller than the sum of the preset inner fillet radius and the preset outer fillet radius, determine a first midpoint of the first side to which the first right-angle turning point belongs; for a second right-angle turning point of a side smaller than the sum of the preset inner fillet radius and the preset outer fillet radius, determine a second midpoint of the second side to which the second right-angle turning point belongs; connect the first midpoint and the second midpoint to obtain an intersection of the connecting line and the side smaller than the sum of the preset inner fillet radius and the preset outer fillet radius; Between the non-first right-angle turning point and the intersection point, a small horizontal, flat and vertical line segment is used to simulate the first parabola segment, and the original first right-angle turning point is replaced by the vertex of the horizontal, flat and vertical line segment as the insertion point to form a smooth approximate first parabola segment, wherein the insertion point is part of the second vertex sequence; wherein one end of the first parabola segment is the non-first right-angle vertex of the first side, and the other end is the intersection point, the tangent direction of the first parabola segment at the non-first right-angle turning point of the first side is the direction of the first side, and the tangent direction of the first parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint; Between the non-second right-angle turning point and the intersection point, a small horizontal, flat and vertical line segment is used to simulate the second parabola segment, and the original second right-angle turning point is replaced by the vertex of the horizontal, flat and vertical line segment as the insertion point to form a smooth approximate second parabola segment, wherein the insertion point is part of the second vertex sequence; wherein one end of the second parabola segment is the non-second right-angle vertex of the second side, and the other end is the intersection point, the tangent direction of the second parabola segment at the non-second right-angle turning point of the second side is the direction of the second side, and the tangent direction of the second parabola segment at the intersection point is the direction of the line connecting the first midpoint and the second midpoint.

4. The curve graph processing method according to claim 3, wherein: The integrating the first vertex sequence and the second vertex sequence comprises: The insertion points in the second vertex sequence replace the corresponding vertices in the first vertex sequence respectively to obtain the new third vertex sequence.

5. A computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute the curve graphics processing method according to any one of claims 1 to 4.

6. A computer device comprising a memory and a processor, wherein: The memory stores the following instructions executable by the processor: used to execute the steps of the curve graphics processing method described in any one of claims 1-4.

7. A curve graphics processing device, characterized in that: include: Pre-processing module, rounding processing module, integration module, and generation module; among them, A preprocessing module, used to convert the curve graphic into an initial Manhattan polygon and obtain a first vertex sequence; the curve graphic is a closed curve graphic in the layout graphic, and the closed curve graphic in the layout graphic is a curve template generated according to the chip design shape; A rounding processing module, used to perform a first rounding processing or a second rounding processing on the corner formed by each two sides of the initial Manhattan polygon, using a line segment to represent the processed curve segment and obtain a second vertex sequence; wherein the first rounding processing is to replace the corner with an arc of a preset radius; the second rounding processing is to replace the corner with a parabola segment that meets a preset condition, and the parabola segment is constructed based on a line connecting the midpoints of the corner-related sides and the intersection of the sides; An integration module, used for integrating the first vertex sequence and the second vertex sequence, removing vertices in the first vertex sequence that are replaced by vertices in the second vertex sequence, and obtaining a third vertex sequence; A generating module, used for connecting the vertices in the third vertex sequence end to end to generate a Manhattan polygon for representing a curve figure; The rounding processing module performs the first rounding processing or the second rounding processing on the corner formed by each two sides of the initial Manhattan polygon, including: For each right-angle turning point in the first vertex sequence, check whether its inner and outer edges meet the preset processing conditions. If both sides are not less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the first rounding processing on the right-angle turning point; if one of the two sides is less than the sum of a preset inner fillet radius and a preset outer fillet radius, perform the second rounding processing on the right-angle turning point.

Citation Information

Patent Citations

  • Graph corner rounding method and graph processing system

    CN117391028A