Integrated circuit layout line width detection method, storage medium and electronic device
Patent Information
- Application Number
- CN202210127208.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-02-11
- Publication Date
- 2026-11-03
- Estimated Expiration
- 2042-02-11
AI Technical Summary
In existing technologies, trace inspection of integrated circuit layouts requires programming by designers, making it difficult to achieve fast and convenient trace spacing inspection.
Multiple points are selected as detection points in the integrated circuit layout. By obtaining the coordinates of the detection points of each trace, the KD tree is used to detect whether there are detection points of other traces within the preset detection range, and error prompts are given.
It enables fast and convenient trace spacing detection, and can promptly detect problems such as the distance between the endpoint and the trace being too close, traces intersecting or overlapping, reducing the need for manual programming.
Smart Images

Figure CN116629194B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of circuit design, and in particular to a method for detecting line spacing in integrated circuit layouts, a storage medium, and an electronic device. Background Technology
[0002] In integrated circuit layout routing design, a large number of traces need to be drawn manually. These traces may have problems that are not easily noticed, such as traces being too close to their endpoints, traces intersecting, or traces overlapping, which can cause problems in the layout design. Therefore, trace spacing needs to be checked during or after the layout design process.
[0003] Currently, some EDA (Electronic Design Automation) software on the market can provide design rule checkers for trace spacing detection, but designers need to write their own design rule checkers, which requires high programming skills from designers and makes it difficult to achieve fast and convenient trace spacing detection. Summary of the Invention
[0004] The purpose of this invention is to provide a method, storage medium, and electronic device for detecting trace spacing in integrated circuit layouts, so as to solve the problem that it is difficult to achieve fast and convenient trace spacing detection in the prior art, and to achieve fast and convenient trace spacing detection.
[0005] To solve the above technical problems, the present invention provides a method for detecting line spacing in integrated circuit layouts, comprising:
[0006] Multiple points are selected as test points on each trace in the integrated circuit layout;
[0007] Obtain the coordinates of the detection points for each of the aforementioned traces;
[0008] Based on the coordinates of the detection points of each routing line, it is determined whether there are detection points of other routing lines within the preset detection range determined by each detection point on the current routing line;
[0009] If there are other detection points for the wiring, an error message will be displayed.
[0010] Preferably, the traces in the integrated circuit layout are composed of line segments.
[0011] Preferably, the step of selecting multiple points as detection points on each trace in the integrated circuit layout includes:
[0012] Select multiple scattered points, excluding endpoints, on each line segment in the integrated circuit layout;
[0013] The endpoints and scattered points of each line segment are used as detection points.
[0014] Preferably, the step of obtaining the coordinates of the detection points for each trace includes:
[0015] Obtain the endpoint coordinates of each line segment;
[0016] Calculate the scattered coordinates of each line segment based on the endpoint coordinates of each line segment.
[0017] Preferably, the step of selecting multiple scattered points, excluding endpoints, on each line segment in the integrated circuit layout includes:
[0018] In the integrated circuit layout, multiple scattered points are selected at equal intervals from one endpoint on each line segment until the other endpoint is reached.
[0019] Preferably, the step of calculating the scatter coordinates of each line segment based on the endpoint coordinates of each line segment includes:
[0020] The length of each line segment is calculated based on the coordinates of its endpoints.
[0021] Calculate the ratio of the length of each line segment to the preset spacing;
[0022] Divide the horizontal component of the length of each line segment by the ratio to obtain the horizontal component of the preset spacing.
[0023] Divide the vertical component of the length of each line segment by the ratio to obtain the vertical component of the preset spacing;
[0024] The scattered coordinates of each line segment are calculated based on the endpoint coordinates of each line segment and the horizontal and vertical components of the preset spacing.
[0025] Preferably, the step of detecting whether there are detection points for other routes within a preset detection range determined based on the detection point coordinates of each route includes:
[0026] Construct a KD tree based on the coordinates of the detection points for each routing line;
[0027] Based on the KD tree, it is determined whether there are other routing detection points within the preset detection range determined by each detection point on the current routing.
[0028] Preferably, the step of detecting whether there are other routing detection points within a preset detection range determined based on each detection point on the current routing, using the KD tree, includes:
[0029] In the KD tree, a preset detection range is set sequentially with each detection point of the current routing as the center;
[0030] Check if there are other detection points within the preset detection range corresponding to each detection point;
[0031] If other detection points exist, check whether those other detection points belong to other routes;
[0032] If it belongs to another route, then it is determined that there is a detection point for another route.
[0033] Preferably, the preset detection range is a circular area with a preset radius.
[0034] Preferably, before the step of constructing a KD tree based on the detection point coordinates of each path, the method further includes:
[0035] The coordinates of the detection points for each of the aforementioned lines are deduplicated.
[0036] Preferably, the step of providing error messages includes:
[0037] The current trace, the detection points within the preset detection range, and other traces are displayed in preset colors.
[0038] Preferably, the step of providing error messages further includes:
[0039] Add a preset graphic to the detection points within the preset detection range.
[0040] To address the aforementioned technical problems, the present invention also provides a storage medium storing a computer program configured to execute the line spacing detection method described in any of the preceding claims during runtime.
[0041] To address the aforementioned technical problems, the present invention also provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the line spacing detection method described in any of the preceding claims.
[0042] Unlike existing technologies, the integrated circuit layout trace spacing detection method provided by this invention selects multiple points as detection points on each trace in the integrated circuit layout. Based on the coordinates of the detection points on each trace, it detects whether there are detection points of other traces within a preset detection range determined by each detection point on the current trace. If there are detection points of other traces, it indicates that there are problems such as the distance from the endpoint to the trace is too close, the traces intersect, or the traces overlap, thereby providing an error message. This process does not require designers to program; they only need to set the preset detection range size, which enables fast and convenient trace spacing detection.
[0043] The storage medium and electronic device provided by this invention belong to the same inventive concept as the line spacing detection method of integrated circuit layout, and therefore have the same beneficial effects, which will not be repeated here. Attached Figure Description
[0044] Figure 1 This is a flowchart illustrating the line spacing detection method for integrated circuit layouts provided in an embodiment of the present invention.
[0045] Figure 2 For the process Figure 1 The diagram shows the detection points on a trace after step S1 in the line spacing detection method shown.
[0046] Figure 3 for Figure 1 The diagram shows the specific flow chart of step S1 in the line spacing detection method.
[0047] Figure 4 for Figure 1 The diagram shows the specific flow chart of step S2 in the line spacing detection method.
[0048] Figure 5 for Figure 4 The diagram shows the specific process flow of step S22 in the line spacing detection method.
[0049] Figure 6 This is a schematic diagram showing the location and coordinates of each scattered point on a line segment.
[0050] Figure 7 for Figure 1 The diagram shows the specific flow chart of step S3 in the line spacing detection method.
[0051] Figure 8 for Figure 7 The diagram shows the specific flow chart of step S32 in the line spacing detection method. Detailed Implementation
[0052] The specific embodiments of the present invention will now be described in more detail with reference to the accompanying drawings. The advantages and features of the present invention will become clearer from the following description and claims. It should be noted that the drawings are all in a very simplified form and use non-precise proportions, and are only used to facilitate and clarify the illustration of the embodiments of the present invention.
[0053] In the description of this invention, it should be understood that the terms "center", "upper", "lower", "left", "right", etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are only for the convenience of describing this invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this invention.
[0054] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this invention, "a plurality of" means at least two, such as two, three, etc., unless otherwise explicitly specified.
[0055] Please refer to Figure 1 This invention provides a method for detecting line spacing in an integrated circuit layout, which includes the following steps:
[0056] S1: Select multiple points as test points on each trace in the integrated circuit layout.
[0057] Integrated circuit layouts are typically drawn in EDA software, and traces are the connections between components within the integrated circuit. For example... Figure 2 As shown, this is a schematic diagram of the detection points on a route after step S1.
[0058] S2: Obtain the coordinates of the detection points for each trace.
[0059] EDA software provides a coordinate grid, where designers draw traces. Therefore, the coordinates of each point on the trace can be obtained through the coordinate grid.
[0060] S3: Based on the coordinates of the detection points of each routing line, detect whether there are detection points of other routing lines within the preset detection range determined by each detection point on the current routing line.
[0061] For each trace, each detection point on the current trace is traversed, and a preset detection range is determined based on each detection point. Then, the detection range is checked sequentially to see if there are any detection points of other traces within each preset detection range.
[0062] S4: If there are other detection points for the wiring, an error message will be displayed.
[0063] If there are other detection points for the traces, it indicates that the current trace has problems such as the endpoint-to-trace distance being too close, traces intersecting, or traces overlapping with other traces. An error message needs to be issued to prompt the designer to modify the integrated circuit layout.
[0064] In this embodiment, the traces in the integrated circuit layout are composed of line segments. A trace can be a single line segment or a broken line composed of multiple line segments.
[0065] For further details, please refer to... Figure 3The step of selecting multiple points as detection points on each trace in the integrated circuit layout, i.e., step S1, includes:
[0066] S11: Select multiple scattered points, excluding endpoints, on each line segment in the integrated circuit layout.
[0067] In this context, the two ends of a line segment are endpoints, and scattered points are points between the two endpoints of the line segment. Specifically, in this embodiment, step S11 includes:
[0068] In the integrated circuit layout, multiple scattered points are selected at equal intervals from one endpoint on each line segment until the other endpoint is reached.
[0069] The length of the line segment can be obtained by using the coordinates of its two endpoints. Based on the length and a preset spacing, the number of scattered points can be determined. For a scattered point closer to another endpoint, if the distance between the scattered point and the endpoint is greater than the preset spacing, the next scattered point will be selected. If the distance between the scattered point and the endpoint is less than or equal to the preset spacing, then that scattered point will be the last selected scattered point. (See again...) Figure 2 In the diagram, the spacing between the scattered points on each line segment starting from the leftmost endpoint is the same.
[0070] S12: Use the endpoints and scattered points of each line segment as detection points.
[0071] Please refer to Figure 4 The step of obtaining the coordinates of the detection points for each path, i.e., step S2, includes:
[0072] S21: Get the coordinates of the endpoints of each line segment.
[0073] When drawing a trace, the endpoints of the line segment need to be selected in the coordinate grid. After the endpoints are selected, the EDA software will connect the two endpoints to form a trace. Therefore, the endpoint coordinates of each line segment can be obtained directly.
[0074] S22: Calculate the scattered coordinates of each line segment based on the coordinates of its endpoints.
[0075] The scattered points on the line segments are selected at preset intervals, and the coordinates of the endpoints of each line segment are known. Therefore, the coordinates of the scattered points for each line segment can be calculated based on the endpoint coordinates. For details, please refer to [link to relevant documentation]. Figure 5 The step S22, which involves calculating the scattered coordinates of each line segment based on the coordinates of its endpoints, includes:
[0076] S221: Calculate the length of each line segment based on the coordinates of its endpoints.
[0077] If the endpoints of a line segment are (0,0) and (40,30), then the length of this line segment is...
[0078] S222: Calculate the ratio of the length of each line segment to the preset spacing.
[0079] Assuming the preset spacing is 15, the ratio is 50 / 15 = 10 / 3. Since the distance between the third point and the endpoint (40,30) is 5, which is less than the preset spacing, the third point is the last point on this line segment.
[0080] S223: Divide the horizontal component of the length of each line segment by the ratio to obtain the horizontal component of the preset spacing.
[0081] If the horizontal component of the length of each line segment is 40, then the horizontal component of the preset spacing is 40*3 / 10=12.
[0082] S224: Divide the vertical component of the length of each line segment by the ratio to obtain the vertical component of the preset spacing.
[0083] If the horizontal component of the length of each line segment is 30, then the horizontal component of the preset spacing is 30*3 / 10=9.
[0084] S225: Calculate the scattered coordinates of each line segment based on the endpoint coordinates of each line segment and the horizontal and vertical components of the preset spacing.
[0085] The first scatter plot has coordinates (0+12, 0+9) = (12, 9), the second has coordinates (0+12+12, 0+9+9) = (24, 18), and the third has coordinates (0+12+12+12, 0+9+9+9) = (36, 27). The position and coordinates of each scatter plot are shown below. Figure 6 As shown.
[0086] In this embodiment, please refer to Figure 7 Step S3 includes the step of detecting whether there are detection points for other routes within a preset detection range determined by each detection point on the current route, based on the coordinates of the detection points of each route:
[0087] S31: Construct a KD tree based on the coordinates of the detection points for each routing line.
[0088] S32: Based on the KD tree, detect whether there are other routing detection points within the preset detection range determined by each detection point on the current routing.
[0089] For details, please refer to Figure 8The steps for detecting whether there are other routing detection points within a preset detection range determined by each detection point on the current routing, based on a KD tree, include:
[0090] S321: Set the preset detection range in the KD tree, centering on each detection point of the current route.
[0091] The preset detection range is preferably a circular area with a preset radius, and the preset length can be set according to actual needs.
[0092] S322: Check if there are other detection points within the preset detection range corresponding to each detection point.
[0093] For the current detection point, other detection points are those other than the current detection point within the preset detection range.
[0094] S323: If other detection points exist, check whether the other detection points belong to other routes.
[0095] If the spacing between the selected detection points on the current route is small, it is possible that multiple detection points on the current route may be within the preset detection range. Therefore, it is necessary to detect the routes to which other detection points belong.
[0096] S324: If it belongs to other routing, then it is determined that there is a detection point for other routing.
[0097] If there are detection points for other routes within the preset detection range determined by each detection point of the current route, it indicates that there are problems such as the current route and other routes having excessively close distances between endpoints, route intersections, or route overlaps.
[0098] Furthermore, before constructing the KD-tree based on the coordinates of the detection points for each path, the following steps are also included:
[0099] S30: Perform deduplication on the coordinates of the detection points for each routing line.
[0100] If the routing consists of multiple line segments, then two adjacent line segments may have a common endpoint, and the coordinates of the detection points of these two line segments will be duplicated. Deduplication can reduce the amount of data processing.
[0101] In order to clearly and conspicuously display problems such as the endpoints being too close to the line, the lines intersecting, and the lines overlapping, the error prompting steps in this embodiment include: displaying the current line, the detection points within the preset detection range, and other lines in a preset color.
[0102] Among them, the preset colors should be eye-catching, such as red.
[0103] Furthermore, the steps for displaying error messages also include:
[0104] Add a preset graphic to the detection points within the preset detection range.
[0105] Among them, the preset graphic can help designers quickly locate the detection points that do not meet the requirements. The preset graphic is, for example, a circle that encloses the detection point.
[0106] The present invention also provides a storage medium storing a computer program configured to execute the line spacing detection method of the foregoing embodiments when running.
[0107] Specifically, in this embodiment, the storage medium may include, but is not limited to, USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks, and other media capable of storing computer programs.
[0108] The present invention also provides an electronic device, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the line spacing detection method of the foregoing embodiments.
[0109] Specifically, the memory and processor can be connected via a data bus. Furthermore, the aforementioned electronic device may also include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.
[0110] In the description of this specification, references to terms such as "one embodiment," "some embodiments," "example," or "specific example," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments. In addition, those skilled in the art can combine and integrate the different embodiments or examples described in this specification.
[0111] The above are merely preferred embodiments of the present invention and do not constitute any limitation on the present invention. Any equivalent substitutions or modifications made by those skilled in the art to the technical solutions and content disclosed in the present invention without departing from the scope of the present invention shall be deemed to have remained within the protection scope of the present invention.
Claims
1. A method for detecting line spacing in an integrated circuit layout, characterized in that, include: Multiple points are selected as test points on each trace in the integrated circuit layout; Obtain the coordinates of the detection points for each of the aforementioned traces; Based on the coordinates of the detection points of each routing line, it is determined whether there are detection points of other routing lines within the preset detection range determined by each detection point on the current routing line; If there are other detection points for the wiring, an error message will be displayed; The step of detecting whether there are detection points for other routes within a preset detection range determined by each detection point on the current route, based on the detection point coordinates of each route, includes: Construct a KD tree based on the coordinates of the detection points for each routing line; Based on the KD tree detection, it is determined whether there are other routing detection points within the preset detection range determined by each detection point on the current routing; The step of detecting whether there are other routing detection points within a preset detection range determined by each detection point on the current routing based on the KD tree includes: In the KD tree, a preset detection range is set sequentially with each detection point of the current routing as the center; Check if there are other detection points within the preset detection range corresponding to each detection point; If other detection points exist, check whether those other detection points belong to other routes; If it belongs to another route, then it is determined that there is a detection point for another route.
2. The line spacing detection method according to claim 1, characterized in that, The traces in the integrated circuit layout are composed of line segments.
3. The line spacing detection method according to claim 2, characterized in that, The step of selecting multiple points as detection points on each trace in the integrated circuit layout includes: Select multiple scattered points, excluding endpoints, on each line segment in the integrated circuit layout; The endpoints and scattered points of each line segment are used as detection points.
4. The line spacing detection method according to claim 3, characterized in that, The step of obtaining the coordinates of the detection points for each routing line includes: Obtain the endpoint coordinates of each line segment; Calculate the scattered coordinates of each line segment based on the endpoint coordinates of each line segment.
5. The line spacing detection method according to claim 4, characterized in that, The step of selecting multiple scattered points, excluding endpoints, on each line segment in the integrated circuit layout includes: In the integrated circuit layout, multiple scattered points are selected at equal intervals from one endpoint on each line segment until the other endpoint is reached.
6. The line spacing detection method according to claim 5, characterized in that, The step of calculating the scatter coordinates of each line segment based on the endpoint coordinates of each line segment includes: The length of each line segment is calculated based on the coordinates of its endpoints. Calculate the ratio of the length of each line segment to the preset spacing; Divide the horizontal component of the length of each line segment by the ratio to obtain the horizontal component of the preset spacing. Divide the vertical component of the length of each line segment by the ratio to obtain the vertical component of the preset spacing; The scattered coordinates of each line segment are calculated based on the endpoint coordinates of each line segment and the horizontal and vertical components of the preset spacing.
7. The line spacing detection method according to claim 1, characterized in that, The preset detection range is a circular area with a preset radius.
8. The line spacing detection method according to claim 1, characterized in that, Before the step of constructing a KD tree based on the coordinates of the detection points of each path, the method further includes: The coordinates of the detection points for each of the aforementioned lines are deduplicated.
9. The line spacing detection method according to claim 1, characterized in that, The steps for providing error messages include: The current trace, the detection points within the preset detection range, and other traces are displayed in preset colors.
10. The line spacing detection method according to claim 1 or 9, characterized in that, The steps for providing error messages also include: Add a preset graphic to the detection points within the preset detection range.
11. A storage medium, characterized in that, The storage medium stores a computer program, which is configured to execute the line spacing detection method according to any one of claims 1 to 10 when running.
12. An electronic device, characterized in that, It includes a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the line spacing detection method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Automatic inspection method and device for parallel wiring of adjacent layers of PCB
CN112001149A
