Method, device and program product for coverage detection based on a voronoi diagram
By adopting a coverage detection method based on Thiessen polygon graphs, the accuracy and efficiency problems of existing coverage verification methods are solved, and the absolute accuracy and rigor of coverage detection of electrostatic discharge clamping modules are achieved, ensuring the safety and efficiency of chip design.
Patent Information
- Application Number
- CN202611530677.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-30
- Publication Date
- 2026-11-03
AI Technical Summary
In existing technologies, grid-based or sampling-based coverage effectiveness verification methods are prone to missing coverage blind spots when evaluating the protection coverage area of electrostatic discharge clamping modules due to improper sampling step size or grid size settings, or they may increase computational load and memory overhead to improve accuracy, resulting in a decrease in the operating efficiency of EDA tools.
A coverage detection method based on Thiessen polygon graphs is adopted. By constructing Thiessen polygon graphs, the target area is divided into non-overlapping cell spaces. Continuous geometric space operations are used to determine the protective coverage area of the electrostatic discharge clamping module, avoiding quantization errors and sampling granularity dependence, and ensuring the accuracy and rigor of the coverage conclusion.
It achieves absolute accuracy and rigor in the coverage detection of electrostatic discharge clamping modules, avoiding the problems of missed protection blind spots and increased computational overhead, and ensuring the safety and efficiency of chip design.
Smart Images

Figure CN123031659A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of electronic design automation technology, specifically to a coverage detection method, detection device, and program product based on Thiessen polygon maps. Background Technology
[0002] In Electronic Design Automation (EDA) processes, to protect integrated circuits (ICs) from the destructive effects of electrostatic discharge (ESD) events, designers need to place ESD clamping modules in the layout. The protective effectiveness of an ESD clamping module depends not only on its own response characteristics, but more importantly on the complete and gapless coverage formed by its protective area.
[0003] Currently, the mainstream methods for verifying coverage effectiveness in the industry are grid-based or sampling-based evaluation methods. These approaches typically transform the target area into a finite, discrete representation. Specific implementations include, but are not limited to: dividing the target area into uniform rectangular units using a regular grid, arranging sampling markers at fixed intervals, or defining the protection requirement as a probability density distribution function in space. Based on this discretized model, the evaluation algorithm calculates the relationship between each discrete unit and the protection coverage area of each electrostatic discharge clamping module's action circle. By determining whether the discrete unit is located within at least one circular coverage area, the completeness of the overall protection area is approximately characterized.
[0004] However, the accuracy and reliability of such grid-based or sampling-based evaluation methods are inherently highly dependent on the discretized sampling granularity. Specifically, if the sampling step size or grid size is set too large, it is easy to miss the coverage blind spots at the edges of the target area or between cells, thus misleading designers to underestimate the probability of electrostatic discharge damage. Conversely, if the sampling granularity is excessively refined to improve accuracy, it will significantly increase the amount of geometric computation and memory overhead, which will lead to a sharp decline in the operating efficiency of EDA tools for large-scale, multi-level chip layouts. Summary of the Invention
[0005] The main technical problem solved by this invention is that if the sampling step size or grid size is set too large in current coverage effectiveness verification methods, it is easy to miss the coverage blind spots at the edge of the target area or between cells, thereby misleading designers to underestimate the probability of electrostatic discharge damage. Conversely, if the sampling granularity is excessively refined in order to improve accuracy, it will significantly increase the amount of geometric calculations and memory overhead, which will lead to a sharp decline in the operating efficiency of EDA tools for large-scale, multi-level chip layouts.
[0006] According to a first aspect, one embodiment provides a coverage detection method based on a Thiessen polygon graph for detecting the protective coverage area of an electrostatic discharge clamping module in electronic design automation, the coverage detection method comprising:
[0007] Obtain the coordinates of multiple boundary points of the target chip, and construct a closed target region based on the coordinates of the multiple boundary points, wherein at least one electrostatic discharge clamping module is disposed in the target region;
[0008] The location information and effective distance of each electrostatic discharge clamping module in the at least one electrostatic discharge clamping module are obtained, and the protection coverage area of each electrostatic discharge clamping module is determined according to the location information and effective distance of each electrostatic discharge clamping module, so as to obtain a set of protection coverage area ranges corresponding to the at least one electrostatic discharge clamping module.
[0009] Using the position information corresponding to each electrostatic discharge clamping module as the reference point coordinates, determine whether the reference point coordinates corresponding to the at least one electrostatic discharge clamping module meet the construction conditions for constructing the Thiessen polygon diagram.
[0010] If the construction conditions are met, the target region is constructed as the Thiessen polygon map based on the reference point coordinates corresponding to the at least one electrostatic discharge clamping module. The Thiessen polygon map includes multiple cell spaces, and each reference point coordinate corresponds to a cell space.
[0011] Based on the reference point coordinates and action distance of each electrostatic discharge clamping module, determine whether the corresponding protection coverage area can completely cover the corresponding cell space.
[0012] If so, then it is determined that the target area is completely covered by the set of protected coverage areas;
[0013] If not, it is determined that the target area is not completely covered by the set of protected coverage areas;
[0014] A coverage detection result is generated based on whether the target area is completely covered by the set of protected coverage areas.
[0015] In one embodiment, determining whether the corresponding protective coverage area can completely cover the corresponding cell space based on the reference point coordinates and operating distance corresponding to each electrostatic discharge clamping module includes:
[0016] Based on the cell space corresponding to each electrostatic discharge clamping module, multiple coverage calculation points corresponding to the reference point coordinates of each electrostatic discharge clamping module are determined.
[0017] Calculate the distance from each of the reference point coordinates to each of the corresponding multiple coverage calculation points;
[0018] If there is one or more coverage calculation points whose distance from the corresponding reference point coordinates is greater than the corresponding effective distance, then it is determined that the target area is not completely covered by the set of protected coverage areas.
[0019] If there is no distance from the calculation point to the corresponding reference point that is greater than the corresponding effective distance, then the target area is determined to be completely covered by the set of protected coverage areas.
[0020] In one embodiment, determining the multiple coverage calculation points corresponding to the reference point coordinates of each electrostatic discharge clamping module includes:
[0021] For any boundary point coordinate located at a vertex in the target area, calculate the distance between the boundary point coordinate located at a vertex and the reference point coordinate corresponding to each electrostatic discharge clamping module; use the boundary point coordinate located at a vertex as the coverage calculation point corresponding to the reference point coordinate corresponding to the minimum distance value among the distance values;
[0022] For any vertex in the cell space corresponding to any electrostatic discharge clamping module, determine whether the vertex is located within the target region; if it is located within the target region, it is the coverage calculation point corresponding to the reference point coordinates of the cell space; if it is located outside the target region, discard the vertex.
[0023] For any cell space that intersects with the boundary of the target region, any intersection with the boundary of the target region is the coverage calculation point corresponding to the reference point coordinates of the cell space.
[0024] In one embodiment, generating a coverage detection result based on whether the target area is completely covered by the set of protected coverage areas includes:
[0025] If the target area is not completely covered by the set of protected coverage areas, output the coordinates of the uncovered coverage calculation points corresponding to the uncovered areas.
[0026] In one embodiment, determining whether any vertex is located within the target region includes:
[0027] Determine whether any one of the vertices is located within the target area using either the ray method or the wire method;
[0028] The ray method involves drawing a ray in any direction from any vertex, counting the number of intersections between the ray and the boundary line of the target area, and determining that the vertex is located within the target area if the number of intersections is odd. The circumferential method involves calculating the sum of the angles formed by connecting any vertex to each vertex of the boundary line of the target area, and determining that the vertex is located within the target area if the sum of the angles is 360 degrees.
[0029] In one embodiment, the construction conditions for constructing the Thiessen polygon graph include:
[0030] When at least one electrostatic discharge clamping module includes multiple electrostatic discharge clamping modules, the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the multiple electrostatic discharge clamping modules is greater than or equal to two.
[0031] In one embodiment, when the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the plurality of electrostatic discharge clamping modules is equal to two, the step of constructing the target region into the Thiessen polygon map based on the reference point coordinates corresponding to at least one electrostatic discharge clamping module includes:
[0032] Calculate the perpendicular bisector between the two deduplicated reference points based on their coordinates.
[0033] The portion of the vertical bisector located within the target region is used as the dividing line, dividing the target region into two cell spaces to form the Thiessen polygon diagram;
[0034] When the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the multiple electrostatic discharge clamping modules is greater than two, the step of constructing the target region into the Thiessen polygon map based on the reference point coordinates corresponding to at least one electrostatic discharge clamping module includes:
[0035] A Delaunay triangulation is constructed based on the deduplicated reference point coordinates, and the presence of degenerate configurations in the Delaunay triangulation is detected. The degenerate configurations include at least four reference point coordinates that are concyclic, or configurations where the perpendicular bisector is parallel to the boundary line of the target region.
[0036] When the degenerate configuration is detected, a first preset perturbation value is applied to at least one of the reference point coordinates corresponding to the detected degenerate configuration, or a second preset perturbation value is applied to at least one of the boundary point coordinates corresponding to the boundary line parallel to the vertical bisector, thereby generating multiple perturbed reference point coordinates.
[0037] Based on the coordinates of the multiple reference points after the disturbance, the Delaunay triangulation is reconstructed, and the target region is divided into multiple cell spaces according to the reconstructed Delaunay triangulation to form the Thiessen polygon diagram.
[0038] When the absence of the degenerate configuration is detected, the target region is divided into multiple cell spaces by the Delaunay triangulation constructed based on the coordinates of the multiple reference points, in order to form the Thiessen polygon diagram.
[0039] In one embodiment, for the reference point coordinates corresponding to any electrostatic discharge clamping module: the reference point coordinates corresponding to any electrostatic discharge clamping module are used as the center of the embedding circle, and the reference point coordinates corresponding to any electrostatic discharge clamping module are mapped to a corresponding disk-shaped area according to the effective distance of any electrostatic discharge clamping module. The disk-shaped area is the protection coverage area corresponding to any electrostatic discharge clamping module.
[0040] According to a second aspect, one embodiment provides a detection apparatus, comprising: a processor for performing the coverage detection method based on Thiessen polygon graphs as described above.
[0041] According to a third aspect, one embodiment provides a computer program product, comprising: a computer program or computer executable instructions, wherein when the computer program or computer executable instructions are executed by a processor, they implement the coverage detection method based on the Thiessen polygon map as described above.
[0042] The coverage detection method, detection device, and program product based on the Thiessen polygon graph in the above embodiments abandon traditional coverage validity verification methods. Instead, when the Thiessen polygon graph construction conditions are met, a geometric topological segmentation strategy based on the Thiessen polygon graph is adopted. The target area is strictly divided into multiple non-overlapping and seamlessly connected cell spaces with the positions of each electrostatic discharge clamping module as reference points. This transforms the global coverage determination problem into an independent coverage determination problem for each electrostatic discharge clamping module in its corresponding cell space. Since this determination process is entirely based on continuous geometric space operations, it avoids the quantization errors and sampling granularity dependencies introduced by discretization processing, ensuring the absolute accuracy and rigor of the coverage conclusion. It eliminates the safety hazard of "false pass" caused by the omission of protection blind zones due to excessively large sampling step size in the prior art. At the same time, it does not require extremely fine sampling points to pursue accuracy, avoiding the problem of a surge in computational overhead. Attached Figure Description
[0043] Figure 1 This is a flowchart of a coverage detection method based on Thiessen polygon graphs, according to one embodiment.
[0044] Figure 2 A flowchart illustrating whether the target area is completely covered in one embodiment;
[0045] Figure 3 A flowchart illustrating the construction of a Thiessen polygon graph in one embodiment;
[0046] Figure 4 A flowchart for constructing a Thiessen polygon graph for another embodiment. Detailed Implementation
[0047] The present invention will now be described in further detail with reference to specific embodiments and accompanying drawings. Similar elements in different embodiments are referred to by associated similar element reference numerals. In the following embodiments, many details are described to facilitate a better understanding of the invention. However, those skilled in the art will readily recognize that some features may be omitted in different situations, or may be replaced by other elements, materials, or methods. In some cases, certain operations related to the present invention are not shown or described in the specification. This is to avoid obscuring the core parts of the invention with excessive description. For those skilled in the art, detailed description of these related operations is not necessary; they can fully understand the related operations based on the description in the specification and general technical knowledge in the art.
[0048] Furthermore, the features, operations, or characteristics described in the specification can be combined in any suitable manner to form various embodiments. At the same time, the steps or actions in the method description can be rearranged or adjusted in a manner obvious to those skilled in the art. Therefore, the various orders in the specification and drawings are only for the clear description of a particular embodiment and do not imply a necessary order, unless otherwise stated that a particular order must be followed.
[0049] The serial numbers assigned to components in this document, such as "first" and "second," are used only to distinguish the described objects and have no sequential or technical meaning. The terms "connection" and "linkage" used in this invention, unless otherwise specified, include both direct and indirect connections (linkages).
[0050] In the integrated circuit (IC) design process, electrostatic discharge (ESD) events are one of the main reliability threats leading to chip failure. During chip manufacturing, packaging, transportation, and assembly, any accidental ESD contact can generate instantaneous currents of up to several amperes or transient high voltages of thousands of volts within a very short time (nanoseconds). This energy is sufficient to break down the gate oxide layer of MOS devices, melt metal interconnects, or trigger thermal secondary breakdown of PN junctions, resulting in permanent damage to chip functionality. To mitigate such risks, ESD protection design has become an essential step before chip tape-out at deep submicron and nanometer process nodes.
[0051] During the physical implementation phase of the layout, designers typically need to install electrostatic discharge (ESD) clamping modules at the power rails (VDD / VSS) and critical signal interfaces. The core function of the ESD clamping module is to quickly open a low-impedance discharge channel when an ESD event occurs, bypassing the transient large current to ground and clamping the voltage within a safe threshold that the internal circuitry can withstand. During normal chip power-on operation, the ESD clamping module maintains a high-impedance cutoff state to ensure that the core functional logic is not affected.
[0052] However, the protective effectiveness of an electrostatic discharge (ESD) clamping module depends not only on its own conduction response speed or clamping voltage value, but more critically on whether its protection coverage area (usually modeled as a circular area with the ESD clamping module as the center and a radius based on process experience) can form a complete and uninterrupted effective coverage of all target devices and interconnect areas to be protected in the chip layout. If there are weak areas or blind spots in the protection coverage, sensitive devices located in these areas will face the risk of damage when subjected to ESD impacts because they cannot obtain a timely low-impedance discharge path, directly leading to a decrease in chip yield or field reliability failure. Therefore, in the EDA design process, systematic and accurate testing and verification of the protection coverage area of the ESD clamping module has become a key quality assurance link to ensure that the chip's ESD protection level (HBM / CDM) meets the standards, optimize the layout area utilization, and reduce the risk of tape-out failure.
[0053] Currently, the mainstream methods for verifying coverage effectiveness in the industry are grid-based or sampling-based evaluation methods. These approaches typically convert the target area into a finite discrete representation. Specific implementations include, but are not limited to: dividing the target area into uniform rectangular units using a regular grid, arranging sampling markers at fixed intervals, or defining the protection requirement as a probability density distribution function in space. Based on this discretized model, the evaluation algorithm calculates the relationship between each discrete unit and the protection coverage area of each electrostatic discharge clamping module's action circle. By determining whether the discrete unit is located within at least one circular coverage area, the completeness of the overall protection area is approximately characterized. Essentially, the accuracy and reliability of these grid-based or sampling-based evaluation methods are highly dependent on the discretized sampling granularity. Specifically, if the sampling step size or grid size is set too large, it is easy to miss coverage blind spots at the edges of the target area or between units, thus misleading designers to underestimate the probability of electrostatic discharge damage. Conversely, if the sampling granularity is excessively refined to improve accuracy, it significantly increases the amount of geometric computation and memory overhead, leading to a sharp decline in the operating efficiency of EDA tools for large-scale, multi-level chip layouts.
[0054] To address the aforementioned technical problems, this application provides a coverage detection method based on Voronoi diagrams for detecting the protective coverage area of electrostatic discharge (ESD) clamping modules in electronic design automation (EDA). This method abandons traditional coverage validity verification methods and instead employs a geometric topological segmentation strategy based on Voronoi diagrams when the conditions for constructing the Voronoi diagram are met. The target area is rigorously divided into multiple non-overlapping, seamlessly connected cell spaces with the positions of each ESD clamping module as reference points. This transforms the global coverage determination problem into an independent coverage determination problem for each ESD clamping module within its corresponding cell space. Since this determination process is entirely based on continuous geometric space computation, it avoids the quantization errors and sampling granularity dependencies introduced by discretization, ensuring the absolute accuracy and rigor of the coverage conclusion. It eliminates the safety hazard of "false passes" caused by excessively large sampling steps leading to missed protection blind areas, as seen in existing technologies. Furthermore, it avoids the problem of drastically increasing computational overhead by avoiding the need for extremely refined sampling points in pursuit of accuracy.
[0055] In one embodiment, such as Figure 1 As shown, the coverage detection method includes the following steps:
[0056] S100. Obtain the coordinates of multiple boundary points of the target chip, and construct a closed target region based on the coordinates of multiple boundary points, wherein at least one electrostatic discharge clamping module is deployed in the target region.
[0057] S101. Based on the position information and operating distance of each electrostatic discharge clamping module in at least one electrostatic discharge clamping module, determine the set of protection coverage areas.
[0058] S102. When the conditions for constructing the Thiessen polygon graph are met, construct the Thiessen polygon graph and divide the target region into multiple cell spaces.
[0059] S103. Based on the reference point coordinates and action distance of each electrostatic discharge clamping module, determine whether the corresponding protection coverage area can completely cover the corresponding cell space.
[0060] S104. Generate coverage detection results based on whether the target area is fully covered by the set of protected coverage areas.
[0061] Specifically, the processor first reads the pre-stored boundary point coordinate dataset corresponding to the target chip from internal or external non-volatile memory. That is, multiple boundary point coordinates, which record the positions of multiple vertices of the outer contour of the target chip in sequence. Then, the processor uses these boundary points as vertices to construct a closed geometric region with the ends connected by a polygon fitting algorithm, and marks it as the target region that needs to be protected against electrostatic discharge. At least one electrostatic discharge clamping module is deployed in the target region.
[0062] Furthermore, the processor acquires the position information and effective distance of each electrostatic discharge (ESD) clamping module in at least one ESD clamping module pre-configured and stored by the user. Based on the position information and effective distance of each ESD clamping module, the processor determines the protection coverage area corresponding to each ESD clamping module. A set of protection coverage areas is obtained from the protection coverage areas corresponding to each ESD clamping module in at least one ESD clamping module. If the set of protection coverage areas can completely cover the target area, the ESD protection requirement is considered to be met; otherwise, if the set of protection coverage areas cannot completely cover the target area, the ESD protection requirement is considered not met.
[0063] After obtaining the position information corresponding to at least one electrostatic discharge clamping module, the position information corresponding to each electrostatic discharge clamping module is used as the reference point coordinates. It is determined whether the reference point coordinates corresponding to at least one electrostatic discharge clamping module meet the construction conditions for constructing a Thiessen polygon graph. If the construction conditions for the Thiessen polygon graph are met, the target area is constructed into a Thiessen polygon graph based on the reference point coordinates corresponding to at least one electrostatic discharge clamping module (i.e., the reference point coordinates corresponding to each electrostatic discharge clamping module). The Thiessen polygon graph includes multiple cell spaces, and the reference point coordinates corresponding to each electrostatic discharge clamping module correspond to one cell space.
[0064] After constructing the Thiessen polygon map, based on the reference point coordinates and effective distance of each electrostatic discharge (ESD) clamping module, it is determined whether the corresponding protection coverage area can completely cover the corresponding cell space. Specifically, if each protection coverage area can cover the corresponding cell space, the target area is considered to be completely covered by the set of protection coverage areas, thus meeting the protection requirements. If one or more protection coverage areas cannot cover the corresponding cell space, the target area is considered not to be completely covered by the set of protection coverage areas. Finally, a coverage detection result is generated based on whether the target area is completely covered by the set of protection coverage areas. Users can then determine whether the layout of at least one ESD clamping module meets the protection requirements based on the coverage detection result.
[0065] Therefore, this coverage detection method abandons traditional coverage validity verification methods and instead adopts a geometric topological segmentation strategy based on the Thiessen polygon graph when the Thiessen polygon graph construction condition is met. This strategy strictly divides the target area into multiple non-overlapping, seamlessly connected cell spaces with the positions of each electrostatic discharge clamping module as reference points. This transforms the global coverage determination problem into an independent coverage determination problem for each electrostatic discharge clamping module's corresponding cell space. Since this determination process is entirely based on continuous geometric space operations, it avoids the quantization errors and sampling granularity dependencies introduced by discretization, ensuring the absolute accuracy and rigor of the coverage conclusion. It eliminates the safety hazard of "false passes" caused by the omission of protection blind zones due to excessively large sampling step sizes in existing technologies. Furthermore, it avoids the problem of drastically increasing computational overhead by avoiding the need for extremely refined sampling points in pursuit of accuracy.
[0066] In one embodiment, such as Figure 2 As shown, S103 includes the following steps:
[0067] S1031. Based on the cell space corresponding to each electrostatic discharge clamping module, determine multiple coverage calculation points corresponding to the reference point coordinates of each electrostatic discharge clamping module.
[0068] S1032. Calculate the distance from each reference point coordinate to each of the corresponding multiple coverage calculation points, and determine whether the target area is completely covered by the set of protected coverage areas based on the distance values.
[0069] In this embodiment, the coverage calculation points include three types of coverage calculation points: the intersection point formed by the cell space and the boundary of the target region, the vertex position of the target region, and the vertex of the cell space.
[0070] For any boundary point coordinate located at a vertex in the target region (i.e., the vertex position of the target region), traverse the reference point coordinates corresponding to each electrostatic discharge clamping module. Calculate the distance between any boundary point coordinate located at a vertex and the reference point coordinates corresponding to the traversed electrostatic discharge clamping module. After traversal, use the boundary point coordinate located at a vertex as the coverage calculation point corresponding to the reference point coordinate with the minimum distance value obtained in this traversal. This boundary point coordinate can also be used as the reference point coordinate with the minimum distance value for the coverage calculation point. Based on this method, each boundary point coordinate located at a vertex in the target region is associated with the corresponding reference point coordinate as a coverage calculation point. Of course, determining the reference point coordinates corresponding to each boundary point coordinate can also be accelerated using methods such as KD-tree (K-Dimensional Tree), R-tree (Rectangle Tree), Voronoi cell indexing, spatial hashing, or graph search.
[0071] For any vertex in the cell space corresponding to any electrostatic discharge clamping module, determine whether the vertex is located within the target region. If it is within the target region, it becomes the coverage calculation point corresponding to the reference point coordinates of its respective cell space. If it is outside the target region, discard the vertex. Specifically, traverse the vertices corresponding to each cell space. For any vertex, upon traversal, determine whether it is within the target region using either ray casting or line wrapping. If it is within the target region, associate the vertex as a coverage calculation point with the corresponding reference point coordinates; if it is outside the target region, discard the vertex. Based on this method, associate each undiscarded vertex in the cell space as a coverage calculation point with the corresponding reference point coordinates. The ray casting method involves drawing a ray in any direction from any vertex and counting the number of intersections between the ray and the boundary line of the target region. If the number of intersections is odd, the vertex is determined to be within the target region. The line wrapping method involves calculating the sum of the angles formed by connecting any vertex to each vertex of the target region boundary line. If the sum of the angles is 360 degrees, the vertex is determined to be within the target region.
[0072] For any cell space that intersects the boundary of the target region, the intersection point is the coverage calculation point corresponding to the reference point coordinates of the cell space. Specifically, the common boundary between any two adjacent cells is defined as the perpendicular bisector of the line connecting the reference points of the two adjacent cells. The processor, based on the coordinates of the first reference point of the first cell space and the second reference point of the second cell space (the first and second cells are adjacent cells), can determine the linear equation corresponding to the boundary line of each cell space. (In the field of geometric processing, connecting adjacent points sequentially based on multiple boundary point coordinates and using a two-point linear equation to determine the linear equation of each boundary line segment is a well-known prior art, and its specific derivation process will not be elaborated here.) Similarly, the linear equation of each boundary line corresponding to the target region can be determined based on multiple boundary point coordinates. (In the field of geometric processing, connecting adjacent points sequentially based on multiple boundary point coordinates and using a two-point linear equation to determine the linear equation of each boundary line segment is a well-known prior art, and its specific derivation process will not be elaborated here.) After determining the equations of the lines corresponding to each boundary segment of the target region and the boundary segments of each cell, for any cell boundary line, the equations corresponding to each boundary segment of the target region are iterated through. It is determined whether there is an intersection point between the two in the two-dimensional plane. If an intersection point exists, this intersection point is used as a coverage calculation point and associated with the coordinates of the reference point corresponding to the boundary line of any cell. It should be noted that when an intersection point exists, any cell boundary line corresponds to two reference point coordinates. Since any cell is the perpendicular bisector of the line connecting the two reference point coordinates, the distance from the intersection point to either of the two reference point coordinates is equal. Therefore, the intersection point can be associated with either of the two reference point coordinates. Following this method, each intersection point formed by the cell boundary segment and the target region is associated with the corresponding reference point coordinates. After all three types of points are associated, an association mapping table is formed. In this association mapping table, each reference point coordinate is associated with multiple coverage calculation points.
[0073] After the association mapping table is formed, each reference point coordinate is traversed. For each reference point coordinate, its corresponding multiple coverage calculation points are traversed, and the distance value from the reference point coordinate to each of the multiple coverage calculation points is calculated. When all the calculated distance values are less than or equal to the corresponding effective distance, it is considered that the protective coverage area formed by the electrostatic discharge clamping module corresponding to the reference point coordinate can completely cover the corresponding cell space. Conversely, when one or more of the calculated distance values are greater than the corresponding effective distance, it is considered that the protective coverage area formed by the electrostatic discharge clamping module corresponding to the reference point coordinate cannot completely cover the corresponding cell space.
[0074] After all reference point coordinates have been traversed, if there exists one or more coverage calculation points whose distance to their corresponding reference point coordinates is greater than their corresponding effective distance, then the target area is determined not to be completely covered by the protected coverage area set; that is, if one or more cell spaces cannot be completely covered, then the target area is determined not to be completely covered by the protected coverage area set. If there is no coverage calculation point whose distance to its corresponding reference point coordinates is greater than its corresponding effective distance, then the target area is determined to be completely covered by the protected coverage area set; that is, if every cell space is completely covered, then the target area is determined to be completely covered by the protected coverage area set.
[0075] In other words, when max_{pin Omega} f(p) <= r, the target area is determined to be completely covered by the set of protected coverage areas; where max_{pin Omega} f(p) represents the maximum distance value among all distance values calculated from the corresponding reference point coordinates of all coverage points corresponding to the target area, and r represents the effective distance. Conversely, the target area is determined to be not completely covered by the set of protected coverage areas.
[0076] Because each type of coverage point is considered during coverage detection, the coverage detection method has higher reliability in the final coverage detection result; and during the coverage detection process, it is only necessary to determine whether the coverage is complete by the distance between the coverage calculation point and the corresponding reference coordinate point.
[0077] It should be noted that the above three types of points are used as coverage calculation points for coverage detection. The specific reasons are as follows:
[0078] The vertices of a polygon are locations where the region boundary direction changes abruptly, representing high-risk locations for coverage failure. The vertices of a Thiessen polygon graph are locations where three or more equidistant centers compete, often corresponding to the most unfavorable nearest center distance locally. The intersection of the Thiessen polygon graph's boundary line and the region boundary is the location where both "nearest center boundary switching" and "target region boundary constraints" act, making it the most likely location for boundary coverage omissions. Within a Voronoi cell, the nearest center is fixed; therefore, `f(p)` degenerates into the Euclidean distance function from a point to a fixed center. The most unfavorable location of the Euclidean distance in this local sub-region is not arbitrarily distributed but is captured by the constructed set of the three types of coverage calculation points mentioned above. Therefore, a finite number of coverage calculation points can be used to determine the coverage status of a continuous region. Here, `f(p)` can be defined as: `f(p) = mindistance(p, center_i)`.
[0079] In one embodiment, when traversing multiple coverage calculation points corresponding to each reference point coordinate, when any coverage calculation point is reached, if the calculated distance from that arbitrary coverage calculation point to the corresponding reference point coordinate is greater than the effective distance of the corresponding reference point coordinate, the coordinates of that arbitrary coverage calculation point are recorded. After traversing all coverage calculation points corresponding to all reference point coordinates, the recorded coordinates of the coverage calculation points are output, and the output coordinates of the coverage calculation points represent the locations of the uncovered areas. Alternatively, the recorded coordinates of each coverage calculation point can be output simultaneously, providing feedback on the locations of uncovered areas when the target area cannot be completely covered by the set of protected coverage areas. Therefore, this coverage detection method can also output the corresponding locations when the target area cannot be completely covered by the set of protected coverage areas, facilitating the rapid identification of uncovered areas.
[0080] In one embodiment, the construction conditions for building the Thiessen polygon graph include: when at least one electrostatic discharge clamping module includes multiple electrostatic discharge clamping modules, the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the multiple electrostatic discharge clamping modules is greater than or equal to two. That is, when at least one electrostatic discharge clamping module includes multiple electrostatic discharge clamping modules, the processor further performs deduplication processing on the reference point coordinates corresponding to the multiple electrostatic discharge clamping modules. After deduplication, if the number of remaining reference point coordinates is greater than or equal to two (including two or more non-overlapping reference point coordinates), then the Thiessen polygon graph can be constructed.
[0081] In one embodiment, when the number of remaining reference point coordinates after deduplication of multiple reference point coordinates corresponding to multiple electrostatic discharge clamping modules is equal to two, such as... Figure 3 As shown, S102 includes the following steps:
[0082] S1021. Based on the coordinates of the two deduplicated reference points, calculate the perpendicular bisector between the coordinates of the two deduplicated reference points.
[0083] S1022. The portion of the perpendicular bisector located inside the target region is used as the boundary line to divide the target region into two cell spaces.
[0084] Specifically, when two reference point coordinates remain after deduplication of multiple reference point coordinates, the perpendicular bisector of the center point of the line formed by the two reference point coordinates is determined by the two reference point coordinates. The target area is divided into two cell spaces by the perpendicular bisector, forming a Thiessen polygon.
[0085] In one embodiment, when the number of remaining reference point coordinates after deduplication of multiple reference point coordinates corresponding to an electrostatic discharge clamping module is three or more, such as... Figure 4As shown, S102 includes the following steps:
[0086] S1023. Construct a Delaunay triangulation network based on the deduplicated reference point coordinates, and detect whether there are degenerate configurations in the Delaunay triangulation network. Degenerate configurations include at least four reference point coordinates that are concyclic, or configurations where the perpendicular bisector is parallel to the boundary line of the target area.
[0087] S1024. When a degenerate configuration is detected, a first preset disturbance value is applied to at least one of the reference point coordinates corresponding to the detected degenerate configuration, or a second preset disturbance value is applied to at least one of the boundary point coordinates corresponding to the boundary line parallel to the vertical bisector, thereby generating multiple disturbed reference point coordinates.
[0088] S1025. Reconstruct the Delaunay triangulation network based on the coordinates of multiple reference points after disturbance;
[0089] S1026. Based on the constructed Delaunay triangulation, the target region is divided into multiple cell spaces to form a Thiessen polygon diagram.
[0090] In this embodiment, the set of valid reference points after deduplication is denoted as P={p1,p2,...,pn}, and each reference point corresponds to two-dimensional plane coordinates (xi,yi). A point-by-point insertion algorithm (such as the Bowyer-Watson algorithm) is further employed to construct an initial Delaunay triangulation DT(P) using all reference points P as vertices. Specifically, a super-large auxiliary triangle containing all reference points is first generated, and each reference point is inserted sequentially. Triangulation is performed using the empty circle criterion (i.e., the circumcircle of each triangle does not contain other reference points). Finally, the auxiliary triangles and their associated edges are deleted to obtain a triangulation covering the target area.
[0091] For each triangle in DT(P), calculate the center and radius of its circumcircle, and iterate through all pairs of triangles sharing an edge, checking for the following two types of degeneracy:
[0092] (1) Four points concyclic degeneracy: If there are two adjacent triangles that share a side and their circumcircles have equal radii and coincident centers, then it is determined that the four vertices corresponding to the shared side (the two triangles have four different vertices in total) are concyclic, forming a degenerate configuration;
[0093] (2) Degeneracy of perpendicular bisector parallel to boundary: Calculate the slope of the perpendicular bisector of each Delaunay edge. If the difference between the slope of the perpendicular bisector and the slope of any boundary line of the target area (such as the left and right boundaries of the rectangle being vertical and the top and bottom boundaries being horizontal) is less than a preset threshold, then the perpendicular bisector is determined to be parallel to the boundary line, forming a degenerate configuration.
[0094] If any of the above degenerate configurations are detected, a perturbation strategy is executed according to the degeneracy type:
[0095] For a degenerate configuration consisting of four points concyclic, the coordinates of two reference points are randomly selected, and a first preset perturbation value is applied to the coordinates of the two reference points respectively. By applying the first preset perturbation value to the coordinates of the two reference points, the four-point concyclic structure is destroyed, thereby destroying the degenerate configuration.
[0096] For a degenerate configuration formed by the perpendicular bisector and the boundary line being parallel, select two endpoints (i.e., boundary point coordinates) of the boundary line segment corresponding to the perpendicular bisector, and apply a second preset perturbation value to at least one of the boundary points. The perturbation will cause the perpendicular bisector and the boundary line to not coincide, thereby destroying the degenerate configuration.
[0097] After the degenerate configuration is destroyed, a Delaunay triangulation is reconstructed based on the coordinates of multiple reference points after the perturbation. This Delaunay triangulation is the same one used when constructing the Thiessen polygon graph. If the aforementioned degenerate condition is not detected, the initial Delaunay triangulation is used as the Delaunay triangulation applied when constructing the Thiessen polygon graph.
[0098] After the Delaunay triangulation used in constructing the Thiessen polygon graph is determined, the perpendicular bisectors of the three sides of each triangle in the Delaunay triangulation are determined. The intersections between the perpendicular bisectors are determined as candidate vertices of the cell space corresponding to each vertex of the triangle. By performing topological connections on the candidate vertices, cell spaces are formed around the coordinates of each reference point, thereby dividing the target region into multiple cell spaces and forming the Thiessen polygon graph.
[0099] It should be noted that the determination of perpendicular bisectors, the solution method for the intersection of two lines, and the adjacency connection rules of candidate vertices are all conventional techniques in the field of computational geometry. Those skilled in the art can implement them based on the basic principles of plane geometry, and this article will not elaborate on them in detail.
[0100] In one embodiment, for the reference point coordinates corresponding to any electrostatic discharge clamping module: the reference point coordinates corresponding to any electrostatic discharge clamping module are used as the clamping center. Based on the effective distance of any electrostatic discharge clamping module, the reference point coordinates corresponding to any electrostatic discharge clamping module are mapped to a corresponding disk-shaped area. The disk-shaped area is the protection coverage area corresponding to any electrostatic discharge clamping module.
[0101] Specifically, assuming the set of embedded circle centers (reference point coordinates) is denoted as C = {center_1, center_2, ..., center_n}, and the effective distance is r, then the protection coverage area corresponding to center_1 is the coverage area formed with center_1 as the center and the effective distance as the radius. The protection coverage area corresponding to center_2 is similar. The set of protection coverage areas corresponding to each embedded circle center in center_1, center_2, ..., center_n is the set of protection coverage area ranges.
[0102] Of course, a non-standard disk-shaped region can also be used to replace the disk-shaped region. For example, an elliptical region, a directional sector region, an isotropic region after affine transformation, or other convex regions of action.
[0103] In one embodiment, the target region can be represented as a single polygon, or as a union of multiple polygons, an outer ring plus an inner hole structure, a set of boundary polylines, a union of rectangles, or a polyline region extracted from a grid contour, as long as it can ultimately form a geometric region with a boundary representation that can be intersected and tested at points.
[0104] In one embodiment, for multiple reference point coordinates, the corresponding effective distances can all be the same, partially the same, or all different, depending on the actual situation, and no further limitations are imposed here.
[0105] In one embodiment, if the conditions for constructing the Thiessen polygon map are not met, it means that only one reference point coordinate remains after deduplication. At this time, the distance value from the coordinates of each boundary point of the target area to the coordinates of the reference point is calculated. If the distance value is less than or equal to the effective distance corresponding to the coordinates of the reference point, it means that the target area is completely protected and covered by the set of protected areas (the protected area corresponding to the coordinates of the reference point); otherwise, it means that the target area is not completely protected and covered by the set of protected areas.
[0106] This application also provides a detection apparatus, including: a processor, configured to execute the coverage detection method based on Thiessen polygon graphs as described above. Specific details are as described in the above embodiment of the coverage detection method based on Thiessen polygon graphs, and will not be repeated here.
[0107] This application also provides a computer program product, including: a computer program or computer-executable instructions, which, when executed by a processor, implement the coverage detection method based on Thiessen polygon maps as described above. Specific details are as described in the above-described embodiment of the coverage detection method based on Thiessen polygon maps, and will not be repeated here.
[0108] In summary, this application provides a coverage detection method, detection device, and program product based on Thiessen polygon graphs, which has at least the following beneficial effects:
[0109] During coverage detection, traditional coverage validity verification methods were abandoned. Instead, a geometric topological segmentation strategy based on the Voronoi diagram was adopted when the conditions for constructing the Voronoi diagram were met. The target area was strictly divided into multiple non-overlapping and seamlessly connected cell spaces with the positions of each electrostatic discharge clamping module as reference points. This transformed the global coverage determination problem into an independent coverage determination problem for each electrostatic discharge clamping module in its corresponding cell space. Since this determination process is based entirely on continuous geometric space operations, the quantization error and sampling granularity dependence introduced by discretization processing are avoided, ensuring the absolute accuracy and rigor of the coverage conclusion. This eliminates the safety hazard of "false pass" caused by the omission of protection blind zones due to excessively large sampling step size in existing technologies. At the same time, there is no need to extremely refine the sampling points in pursuit of accuracy, avoiding the problem of a surge in computational overhead.
[0110] By using a finite set of critical points composed of three types of coverage calculation points, the boundary omissions and the most unfavorable internal locations are covered.
[0111] In the above embodiments, implementation can be achieved, in whole or in part, by software, hardware, firmware, or any combination thereof. Furthermore, as those skilled in the art will understand, the principles herein can be reflected in a computer program product on a computer-readable storage medium pre-loaded with computer-readable program code. Any tangible, non-transitory computer-readable storage medium may be used, including magnetic storage devices (hard disks, floppy disks, etc.), optical storage devices (CDs, DVDs, Blu-ray discs, etc.), flash memory, and / or the like. These computer program instructions can be loaded onto a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to form a machine, such that instructions executing on the computer or other programmable data processing apparatus can generate means for performing a specified function. These computer program instructions can also be stored in a computer-readable storage medium that can instruct the computer or other programmable data processing apparatus to operate in a particular manner, such that instructions stored in the computer-readable storage medium can form an article of manufacture, including means for implementing the specified function. The computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to perform a series of operational steps on the computer or other programmable apparatus to produce a computer-implemented process, such that instructions executing on the computer or other programmable apparatus can provide steps for implementing the specified function.
[0112] This document describes various exemplary embodiments with reference to them. However, those skilled in the art will recognize that changes and modifications can be made to the exemplary embodiments without departing from the scope of this document. For example, various operational steps and components for performing operational steps can be implemented in different ways depending on the specific application or considering any number of cost functions associated with the operation of the system (e.g., one or more steps can be deleted, modified, or combined with other steps).
[0113] While the principles herein have been illustrated in various embodiments, numerous modifications to the structures, arrangements, proportions, elements, materials, and components, particularly suited to specific environments and operational requirements, may be used without departing from the principles and scope of this disclosure. These modifications and other alterations or alterations will be included within the scope of this document. Those skilled in the art will recognize that many changes can be made to the details of the above embodiments without departing from the fundamental principles of the invention.
Claims
1. A coverage detection method based on Thiessen polygon graphs, characterized in that, The method for detecting the protective coverage area of an electrostatic discharge clamping module in electronic design automation includes: Obtain the coordinates of multiple boundary points of the target chip, and construct a closed target region based on the coordinates of the multiple boundary points, wherein at least one electrostatic discharge clamping module is disposed in the target region; The location information and effective distance of each electrostatic discharge clamping module in the at least one electrostatic discharge clamping module are obtained, and the protection coverage area of each electrostatic discharge clamping module is determined according to the location information and effective distance of each electrostatic discharge clamping module, so as to obtain a set of protection coverage area ranges corresponding to the at least one electrostatic discharge clamping module. Using the position information corresponding to each electrostatic discharge clamping module as the reference point coordinates, determine whether the reference point coordinates corresponding to the at least one electrostatic discharge clamping module meet the construction conditions for constructing the Thiessen polygon diagram. If the construction conditions are met, the target region is constructed as the Thiessen polygon map based on the reference point coordinates corresponding to the at least one electrostatic discharge clamping module. The Thiessen polygon map includes multiple cell spaces, and each reference point coordinate corresponds to a cell space. Based on the reference point coordinates and action distance of each electrostatic discharge clamping module, determine whether the corresponding protection coverage area can completely cover the corresponding cell space. If so, then it is determined that the target area is completely covered by the set of protected coverage areas; If not, it is determined that the target area is not completely covered by the set of protected coverage areas; A coverage detection result is generated based on whether the target area is completely covered by the set of protected coverage areas.
2. The coverage detection method as described in claim 1, characterized in that, The step of determining whether the corresponding protection coverage area can completely cover the corresponding cell space based on the reference point coordinates and action distance of each electrostatic discharge clamping module includes: Based on the cell space corresponding to each electrostatic discharge clamping module, multiple coverage calculation points corresponding to the reference point coordinates of each electrostatic discharge clamping module are determined. Calculate the distance from each of the reference point coordinates to each of the corresponding multiple coverage calculation points; If there is one or more coverage calculation points whose distance from the corresponding reference point coordinates is greater than the corresponding effective distance, then it is determined that the target area is not completely covered by the set of protected coverage areas. If there is no distance from the calculation point to the corresponding reference point that is greater than the corresponding effective distance, then the target area is determined to be completely covered by the set of protected coverage areas.
3. The coverage detection method as described in claim 2, characterized in that, The determination of multiple coverage calculation points corresponding to the reference point coordinates of each electrostatic discharge clamping module includes: For any boundary point coordinate located at a vertex in the target area, calculate the distance between the boundary point coordinate located at a vertex and the reference point coordinate corresponding to each electrostatic discharge clamping module; use the boundary point coordinate located at a vertex as the coverage calculation point corresponding to the reference point coordinate corresponding to the minimum distance value among the distance values; For any vertex in the cell space corresponding to any electrostatic discharge clamping module, determine whether the vertex is located within the target region; if it is located within the target region, it is the coverage calculation point corresponding to the reference point coordinates of the cell space; if it is located outside the target region, discard the vertex. For any cell space that intersects with the boundary of the target region, any intersection with the boundary of the target region is the coverage calculation point corresponding to the reference point coordinates of the cell space.
4. The coverage detection method as described in claim 3, characterized in that, The process of generating a coverage detection result based on whether the target area is completely covered by the set of protected coverage areas includes: If the target area is not completely covered by the set of protected coverage areas, output the coordinates of the uncovered coverage calculation points corresponding to the uncovered areas.
5. The coverage detection method as described in claim 3, characterized in that, The determination of whether any vertex is located within the target region includes: Determine whether any one of the vertices is located within the target area using either the ray method or the wire method; The ray method involves drawing a ray in any direction from any vertex, counting the number of intersections between the ray and the boundary line of the target area, and determining that the vertex is located within the target area if the number of intersections is odd. The circumferential method involves calculating the sum of the angles formed by connecting any vertex to each vertex of the boundary line of the target area, and determining that the vertex is located within the target area if the sum of the angles is 360 degrees.
6. The coverage detection method according to any one of claims 1-5, characterized in that, The construction conditions for constructing the Thiessen polygon graph include: When at least one electrostatic discharge clamping module includes multiple electrostatic discharge clamping modules, the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the multiple electrostatic discharge clamping modules is greater than or equal to two.
7. The coverage detection method as described in claim 6, characterized in that, When the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the multiple electrostatic discharge clamping modules is equal to two, the step of constructing the target region into the Thiessen polygon map based on the reference point coordinates corresponding to at least one electrostatic discharge clamping module includes: Calculate the perpendicular bisector between the two deduplicated reference points based on their coordinates. The portion of the vertical bisector located within the target region is used as the dividing line, dividing the target region into two cell spaces to form the Thiessen polygon diagram; When the number of remaining reference point coordinates after deduplication of the multiple reference point coordinates corresponding to the multiple electrostatic discharge clamping modules is greater than two, the step of constructing the target region into the Thiessen polygon map based on the reference point coordinates corresponding to at least one electrostatic discharge clamping module includes: A Delaunay triangulation is constructed based on the deduplicated reference point coordinates, and the presence of degenerate configurations in the Delaunay triangulation is detected. The degenerate configurations include at least four reference point coordinates that are concyclic, or configurations where the perpendicular bisector is parallel to the boundary line of the target region. When the degenerate configuration is detected, a first preset perturbation value is applied to at least one of the reference point coordinates corresponding to the detected degenerate configuration, or a second preset perturbation value is applied to at least one of the boundary point coordinates corresponding to the boundary line parallel to the vertical bisector, thereby generating multiple perturbed reference point coordinates. Based on the coordinates of the multiple reference points after the disturbance, the Delaunay triangulation is reconstructed, and the target region is divided into multiple cell spaces according to the reconstructed Delaunay triangulation to form the Thiessen polygon diagram. When the absence of the degenerate configuration is detected, the target region is divided into multiple cell spaces by the Delaunay triangulation constructed based on the coordinates of the multiple reference points, in order to form the Thiessen polygon diagram.
8. The coverage detection method according to any one of claims 1-5, characterized in that, For any reference point coordinates corresponding to an electrostatic discharge clamping module: take the reference point coordinates corresponding to the electrostatic discharge clamping module as the center of the embedding circle, and map the reference point coordinates corresponding to the electrostatic discharge clamping module to a corresponding disk-shaped area according to the effective distance of the electrostatic discharge clamping module. The disk-shaped area is the protection coverage area corresponding to the electrostatic discharge clamping module.
9. A detection device, characterized in that, include: A processor for executing the coverage detection method based on the Thiessen polygon graph as described in any one of claims 1 to 8.
10. A computer program product, characterized in that, include: A computer program or computer-executable instructions, when executed by a processor, implement the coverage detection method based on the Thiessen polygon map as described in any one of claims 1-8.
