A Smart Optimized Storage Method for Chip Design Data

By generating topological-spectral fingerprint vectors and employing an adaptive partitioning coding strategy, the problem of insufficient compression ratio in chip design data storage is solved, enabling geometric similarity recognition and efficient data representation under non-rigid transformations, while reducing storage and transmission overhead.

CN120822439BActive Publication Date: 2025-11-14SUZHOU SEMIDE SEMICON TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511340495.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-19
Publication Date
2025-11-14
Estimated Expiration
2045-09-19

AI Technical Summary

Technical Problem

Existing technologies have limited compression rates in chip design data storage and cannot effectively identify and utilize geometric similarities under non-rigid transformations, resulting in data redundancy, especially in the lack of effective representation methods in random logic regions or irregular interconnects.

Method used

By extracting the Fourier descriptor vectors and internal coherent barcode vectors of polygonal geometric entities, a topological-spectral fingerprint vector is generated. High-density clusters are identified and principal geometric primitives are selected. Transformation parameters are calculated and compressed for storage. Adaptive partitioning and differential coding strategies are adopted to reduce data redundancy.

Benefits of technology

It achieves deep compression of chip design data, reduces storage and transmission overhead, improves compression ratio, and reduces data redundancy caused by minute deformations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120822439B_ABST
    Figure CN120822439B_ABST
Patent Text Reader

Abstract

This invention belongs to the technical field of optimized storage, specifically relating to an intelligent optimized storage method for chip design data, addressing the technical problems of limited compression ratio and lack of decomposition of random images in existing technologies. The storage method includes the following steps: S1, fusing topological-spectral fingerprint vectors; identifying high-density clusters and selecting principal geometric primitives; S2, for derived instances, calculating transformation parameters from principal geometric primitives to derived instances; S3, processing the remaining polygons that are neither principal geometric primitives nor derived instances; S4, compressing and storing the definition data of principal geometric primitives, transformation parameters of derived instances, and data of the partitioned primitives, collectively forming the compressed chip design data. This achieves deep compression of the overall data, obtaining a higher compression ratio and reducing the storage and transmission overhead of chip design data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the technical field of optimized storage, specifically relating to an intelligent optimized storage method for chip design data. Background Technology

[0002] As integrated circuit manufacturing processes advance to the submicron and even nanometer scale, the complexity of chip design has increased dramatically. The number of transistors and wiring density are constantly increasing, leading to an explosive growth in the size of chip physical layout design data. Currently, industry-standard data formats such as GDSII and OASIS often have file sizes reaching the terabyte level. This not only poses a challenge to data storage but also increases the time for data transmission and processing between design, verification, and manufacturing stages, becoming a factor restricting chip R&D efficiency.

[0003] Existing technologies primarily employ two approaches to address this problem: First, general data compression algorithms (such as GZIP), but these do not fully utilize the geometric and spatial characteristics of layout data, resulting in limited compression ratios. Second, they utilize built-in mechanisms (such as OASIS) for repeated structural references or specialized pattern recognition tools to find and reuse identical geometric units within the layout, reducing data redundancy. The second approach also has drawbacks: pattern recognition relies heavily on precise matching under rigid transformations, meaning it can only identify graphics that completely overlap after translation, rotation, or mirroring. However, at advanced process nodes, due to the extensive application of technologies such as Optical Proximity Correction (OPC) and process variation compensation, layouts commonly contain numerous similar but not identical graphics. These graphics are structurally consistent macroscopically but exhibit minor, non-rigid deformations locally. Existing methods cannot associate these deformed instances with their prototypes, and can only store them as independent, entirely new polygonal geometric entities, resulting in significant redundancy.

[0004] Furthermore, existing methods lack effective representations for random logical regions or irregular interconnects that cannot be categorized into any repeating patterns. They typically only store vertex coordinates point-by-point or employ simple triangulation, failing to provide adaptive and more concise decomposition based on the local geometric features of the graphics. Therefore, effectively identifying and utilizing geometric similarities under non-rigid transformations to efficiently decompose and encode irregular residual graphics is a pressing technical challenge in the field of data storage for current chip design. Summary of the Invention

[0005] This invention provides an intelligent optimization storage method for chip design data to solve the technical problems of limited compression rate and lack of decomposition of random images in existing technologies.

[0006] A method for intelligently optimizing the storage of chip design data includes the following steps: S1, extracting the Fourier descriptor vector of the boundary and the internal continuous cohomology barcode vector of each polygonal geometric entity in the chip design data, and fusing the two vectors into a topological-spectral fingerprint vector; based on the probability density distribution of all topological-spectral fingerprint vectors, identifying high-density clusters and selecting the polygonal geometric entity with the closest Euclidean distance to the weighted centroid vector as the principal geometric primitive;

[0007] S2. For polygonal geometric entities that are not selected as primary geometric primitives, calculate the Euclidean distance between their topological-spectral fingerprint vector and the topological-spectral fingerprint vector of each primary geometric primitive. When the Euclidean distance is less than a preset distance threshold, classify the polygonal geometric entity as a derived instance and calculate the transformation parameters from the primary geometric primitive to the derived instance, which include the Lie algebra coordinates of rigid motion and the basis function expansion coefficients of non-rigid deformation.

[0008] S3. For the remaining polygons that are neither principal geometric primitives nor derived instances, adaptive subdivision is performed based on the local anisotropy of the geometric features of the remaining polygons: in regions with strong anisotropy, subdivision is performed along the principal direction of the geometric structure to generate subdivision primitives; in regions with weak anisotropy, constrained Delaunay triangulation is performed to generate subdivision primitives.

[0009] S4 compresses and stores the definition data of the main geometric primitive, the transformation parameters of the derived instance, and the data of the partitioning primitive to form the compressed chip design data. Among them, the transformation parameters are non-uniformly quantized and entropy encoded according to the statistical distribution, and the partitioning primitive is differentially encoded according to the spatial adjacency relationship.

[0010] Furthermore, in S1, when extracting the topological-spectral fingerprint vector, the boundary of the polygonal geometric entity is resampled by linear interpolation to generate 256 equally distributed boundary points. The (x, y) coordinates of these boundary points are converted into complex numbers x+iy, forming a complex sequence of length 256. The complex sequence is then subjected to a fast Fourier transform to obtain spectral coefficients of length 256.

[0011] Divide the transformed spectral coefficients by the modulus of the first AC component to achieve scale normalization;

[0012] Then, calculate the modulus of each of the spectral coefficients after scale normalization to eliminate the phase difference caused by rotation, so as to achieve rotation normalization.

[0013] The 2nd to 33rd spectral coefficients after processing are selected as Fourier descriptor vectors describing the boundary of the polygon geometry.

[0014] Furthermore, constrained Delaunay triangulation is performed on the polygonal geometric entity to obtain mesh data containing a "list of triangles" and a "complete set of vertices";

[0015] An Alpha complex is constructed based on the partitioned vertices in the "complete vertex set". The persistence of the Alpha complex is calculated, and the birth and death pairs of the one-dimensional homology group representing the holes are extracted. The one-dimensional homology group is then transformed into the persistent homology barcode vector.

[0016] Furthermore, the process of transforming the one-dimensional homology group into the continuously homology barcode vector includes the following steps:

[0017] Create a persistent image generation tool, where the final generated image is defined as 16 pixels × 16 pixels;

[0018] Input the birth-death pairs of the one-dimensional homology group into the persistent image generation tool, and convert the birth-death pairs into a 16-pixel × 16-pixel grayscale image;

[0019] The continuous homology barcode vector is obtained by flattening the grayscale image into a 256-dimensional vector.

[0020] Furthermore, the selection of the principal geometric element includes the following steps:

[0021] (1) Clustering using the DBSCAN algorithm: Set the minimum number of neighborhood points required for the core object to be M, and set the neighborhood radius to be the median of the distance between all topological-spectral fingerprint vectors and the Mth nearest neighbor;

[0022] (2) Clusters with more than a preset threshold number of polygons are defined as high-density clusters;

[0023] (3) For each high-density cluster, calculate the weighted centroid fingerprint vector C according to the following formula: ;

[0024] in, This is the topological-spectral fingerprint vector of the i-th polygon in a high-density cluster. Let be the area of ​​the i-th polygon in the high-density cluster; select the polygonal geometric entity with the closest Euclidean distance to the weighted centroid fingerprint vector C as the principal geometric primitive of the high-density cluster.

[0025] Furthermore, in S2, the steps for calculating the Lie algebraic coordinates of rigid motion are as follows:

[0026] (1) Calculate the centroid of the set of vertices of the principal primitive and the derived instance, and subtract the centroid of each vertex to align the centroid with the origin, thus initially eliminating translation differences;

[0027] (2) Construct the covariance matrix of the principal geometric primitive and the vertex set of the derived instance, and use SVD decomposition to obtain the orthogonal matrix U and the orthogonal matrix V. TCalculate the rotation matrix R = U × Vᵀ and the translation vector t, where t is the difference between the original centroid of the principal geometric primitive and the original centroid of the derived instance;

[0028] (3) Transform the rotation matrix R into the rotation angle θ of the se(2) Lie algebra space. The rotation angle θ and the translation vector t together constitute the rigid transformation parameters.

[0029] Furthermore, after completing the rigid transformation alignment of the main geometric primitive and the derived instance, a non-rigid deformation field is established by a linear combination of a set of Gaussian radial basis functions (RBFs), and a linear equation system A×w=d is constructed, where d is the residual vector between vertices, A is the estimated matrix of RBF at the vertex position of the main geometric primitive, and the obtained weight vector w is the basis function expansion parameter of the non-rigid deformation.

[0030] Furthermore, in S3, adaptive subdivision is performed based on the local anisotropy of the geometric features of the remaining polygons, specifically including the following steps:

[0031] (1) Calculate the neighborhood geometric structure tensor at the preset mesh nodes inside the polygonal geometric entity, and solve for the eigenvalues ​​of the geometric structure tensor. and ,in Anisotropy measure is defined according to the following formula. : ;

[0032] (2) Obtain the anisotropy threshold ,like It was determined to be a region of significant anisotropy, along the largest eigenvalue. Insert subdivision lines in the corresponding eigenvector directions to generate subdivision primitives; if If the region is identified as a weakly anisotropic region, the constrained Delaunay triangulation algorithm is used to divide the region into partitioning primitives.

[0033] Furthermore, in S4, the transform parameters undergo non-uniform quantization and entropy encoding based on statistical distribution, specifically including:

[0034] For each component of the transformation parameters of all derived instances, a quantized codebook is generated using a one-dimensional k-means clustering algorithm, where the codebook consists of k cluster centers.

[0035] For each transformation parameter to be encoded, the original floating-point value is replaced with the index of the cluster center with the closest Euclidean distance in the quantization codebook to complete non-uniform quantization;

[0036] Calculate the frequency of occurrence of all indices, construct a variable-length code for each index based on the frequency distribution, and use the variable-length code to entropy encode the quantized index sequence.

[0037] Furthermore, the partitioning primitives are differentially encoded based on spatial adjacency relationships, including the following steps:

[0038] By using breadth-first search, the adjacency graph composed of partitioned primitives is traversed to establish a linear encoding sequence;

[0039] Store the absolute coordinates of all vertices of the first primitive in the storage sequence;

[0040] For subsequent primitives in the sequence, identify the vertices shared by the subsequent primitives and the encoded adjacent primitives, and store the reference indexes of the shared vertices;

[0041] For a new non-shared vertex, calculate and store the coordinate difference vector of the point relative to the nearest shared vertex.

[0042] The beneficial effects are as follows: This invention identifies and associates a large number of similar but not identical geometric shapes in the layout due to process effects and other reasons through topological-spectral fingerprint vectors. By representing these shapes as transformation parameters from the main geometric primitives to derived instances (including Lie algebraic coordinates for rigid motion and basis function expansion coefficients for non-rigid deformation), rather than storing complete geometric data, data redundancy caused by minute deformations that cannot be handled by existing technologies is reduced. For complex residual polygons that cannot be classified, this invention adopts a partitioning method based on their own structural characteristics, generating a primitive representation that is more concise than conventional partitioning. Combined with targeted encoding strategies for different data streams such as transformation parameters and partitioned primitives, such as statistical distribution-based quantization and spatial adjacency-based differential encoding, deep compression of the overall data is achieved, resulting in a higher compression ratio and reducing the storage and transmission overhead of chip design data. Attached Figure Description

[0043] Figure 1 A flowchart of an intelligent optimization storage method for chip design data;

[0044] Figure 2 This is a schematic diagram of the formation of topological-spectral fingerprint vectors;

[0045] Figure 3 A schematic diagram for identifying the main geometric primitives. Detailed Implementation

[0046] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Those skilled in the art should understand that the embodiments described below are only some, not all, of the embodiments disclosed. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative effort are within the scope of protection of the present invention.

[0047] An embodiment of the intelligent optimization storage method for chip design data provided by this invention:

[0048] like Figure 1 As shown, an intelligent optimization storage method for chip design data includes the following steps:

[0049] S1. Extract the Fourier descriptor vector of the boundary corresponding to each polygonal geometric entity in the chip design data and the internal continuous cohomology barcode vector, and fuse the two vectors into a topological-spectral fingerprint vector. Based on the probability density distribution of all topological-spectral fingerprint vectors, identify high-density clusters and select the polygonal geometric entity with the closest Euclidean distance to the weighted centroid vector as the principal geometric primitive.

[0050] The implementation details of step S1 are as follows:

[0051] In an optional embodiment, the steps for extracting the topological-spectral fingerprint vector of a polygonal geometric entity are as follows:

[0052] First, the boundaries of the polygonal geometric entity are resampled using linear interpolation to generate 256 equally spaced boundary points. The (x, y) coordinates of these boundary points are then converted into complex numbers x + iy, forming a complex number sequence of length 256. Specifically, the scipy.interpolate.interp1d function in the SciPy library of Python can be called to perform linear interpolation on the boundary vertices of the polygonal geometric entity.

[0053] A Fast Fourier Transform (FFT) is performed on the complex sequence to obtain spectral coefficients of length 256. This can be achieved by calling the `numpy.fft.fft` function. The transformed spectral coefficients are then divided by the modulus of the first AC component (i.e., the second coefficient) to achieve scale normalization. Next, the modulus of each of the scale-normalized spectral coefficients is calculated to eliminate phase differences caused by rotation, achieving rotation normalization. This can be achieved by calling the `numpy.abs()` function. It should be noted that the spectral coefficients themselves are in complex form, and their phase information is directly related to the rotation angle of the polygonal geometric entity, while the modulus only reflects the magnitude of the spectral coefficient. The modulus operation completely removes phase interference, ensuring that the subsequently extracted shape features are not affected by the rotation state. After the modulus operation, the originally complex spectral coefficients are all converted to non-negative real numbers. At this point, the spectral coefficients are essentially the modulus of each original complex coefficient.

[0054] The 2nd to 33rd spectral coefficients after processing are selected as Fourier descriptor vectors describing the boundary of the polygon geometry. Here, the Fourier descriptor vector is a 32-dimensional vector.

[0055] Secondly, for the topological structure of the polygonal geometric entity, constrained Delaunay triangulation is performed on the polygonal geometric entity to obtain mesh data containing a "triangle list" and a "complete vertex set". During triangulation, both the outer boundary and internal holes of the polygonal geometric entity need to be covered simultaneously, preserving both the external contour of the polygon and the boundaries of the internal holes to avoid destroying hole information during the triangulation process. Here, the triangle library can be used for triangulation.

[0056] An Alpha complex is constructed based on the partitioned vertices of the "complete vertex set". The persistence of the Alpha complex is calculated, and the birth and death pairs of the one-dimensional homology group representing the holes are extracted. Specifically, the Alpha complex is all vertices within a certain radius. The set of units (points, edges, triangles) that can be enclosed by a sphere within a given range can be used to construct an Alpha complex by calling the gudhi.AlphaComplex function.

[0057] When calculating the persistence of the alpha complex, the `create_simplex_tree()` function is called to store the alpha complex as a tree structure. This is because the alpha complex contains a large number of elements and their corresponding... After the values ​​are stored as a tree structure, each node in the tree represents a unit, and the node attributes record which node this unit belongs to. It appears under the value.

[0058] Call the persistence() function to calculate the birth and death times of topological features, generating a list of birth and death pairs: topological features (such as holes) in... During the process of value change, there will be clear birth and disappearance, for example: when When the value increases to a certain level, the three edge cells connect, forming a closed region. This closed region contains no other cells, thus creating a hole. It means "birth" (usually denoted as b); when As it continues to grow, the hole is covered by larger units, and the hole will no longer exist. It means "disappearance" (usually denoted as d). The difference between d and b is used to represent the stability of the hole. The larger the difference, the more stable the hole is and the more realistic the topological feature; the smaller the difference, the more likely the hole is mesh noise.

[0059] Specifically, persistence_intervals_in_dimension(1) is called to extract all one-dimensional birth-death pairs from the birth-death pair list.

[0060] To transform the birth-death pairs of a one-dimensional homology group into a vector of fixed length, the following steps are taken:

[0061] First, a persistent image generation tool is created. Specifically, the gudhi.representations.PersistenceImage class in the Gudhi library is called, passing in the parameters resolution=[16, 16] and bandwidth=0.1 to generate a tool object. Here, resolution=[16, 16] specifies that the final generated image is 16 pixels × 16 pixels.

[0062] Secondly, the birth-death pairs of the one-dimensional homology group are input into the fit_transform method of the persistent image generation tool to convert the birth-death pairs into a 16-pixel × 16-pixel grayscale image.

[0063] Finally, the grayscale image is flattened into a 256-dimensional vector to obtain the continuous homology barcode vector. Specifically, the flatten() method can be called to flatten the image.

[0064] The 32-dimensional Fourier descriptor vector is concatenated with the 256-dimensional persistent image vector to form a 288-dimensional topological-spectral fingerprint vector, such as... Figure 2 As shown. Specifically, you can call the numpy.concatenate() function to concatenate two vectors.

[0065] In an optional embodiment, in S1, based on the probability density distribution of the topological-spectral fingerprint vectors of all polygonal geometric entities, high-density clusters are identified, and the weighted centroids of each high-density cluster are selected as principal geometric primitives, including the following steps:

[0066] Clustering is performed using the DBSCAN algorithm: A minimum neighborhood threshold M is set for each core object. The distance between each topological-spectral fingerprint vector and all other topological-spectral fingerprint vectors is calculated. These distances are sorted in ascending order, and the Mth distance value is taken as the "Mth nearest neighbor distance value" for that topological-spectral fingerprint vector. All "Mth nearest neighbor distance values" of topological-spectral fingerprint vectors are collected and sorted in ascending order, with the median used as the neighborhood radius. The selection of the value of M can adopt simple industry-standard rules; for example, if the topological-spectral fingerprint vector is 288-dimensional, then M can be set to 288+1=289 or 288×2=576.

[0067] High-density clustering is defined as clusters with more than a preset number of polygons. The preset number threshold can be determined based on the minimum importance of business requirements or by combining the characteristics of the DBSCAN algorithm. For example, from a business perspective, if it is stipulated that only shapes that appear more than N times are valuable to subsequent processes, then N can be used as the preset number threshold. Alternatively, preliminary clustering can be obtained first through the DBSCAN algorithm, and then the polygon number distribution of each cluster can be statistically analyzed. A significant inflection point in the number distribution can be selected as the threshold. For example, if the number of polygons in a cluster decreases sharply from 100 to 50, it indicates that 50 is a natural dividing point, and 50 can be set as the preset number threshold.

[0068] Determine the principal geometric primitives: For each high-density cluster, calculate the weighted centroid fingerprint vector C according to the following formula: ;

[0069] in, This is the topological-spectral fingerprint vector of the i-th polygon in a high-density cluster. Let be the area of ​​the i-th polygon in the high-density cluster; select the polygonal geometric entity with the closest Euclidean distance to the weighted centroid fingerprint vector C as the principal geometric primitive of the high-density cluster.

[0070] Suppose a chip dataset contains 10,000 contours, each of which has been converted into a topological-spectral fingerprint vector. To identify recurring patterns, the DBSCAN clustering algorithm is used: the minimum neighborhood threshold M required for a core object is set to 289, meaning a core object must have at least 289 similarly shaped topological-spectral fingerprint vectors around it. To determine the neighborhood radius, the distance between each topological-spectral fingerprint vector and all other topological-spectral fingerprint vectors is calculated. These distances are then sorted in ascending order, and the 289th distance value is taken as the median of all 289th distance values ​​for all topological-spectral fingerprint vectors, which is then used as the neighborhood radius.

[0071] When using the DBSCAN algorithm for clustering, multiple clusters are obtained. For example, one cluster contains 500 similar L-shapes, another contains 300 rectangles, and yet another contains only 8 different shapes. When the preset threshold is 50, the L-shape cluster and the rectangle cluster become high-density clusters, representing the dominant pattern, while the cluster containing 8 shapes is ignored.

[0072] Taking L-shaped clustering as an example, the weighted centroid fingerprint vector of the cluster is calculated as follows: multiply the topological-spectral fingerprint vector of each shape in the cluster by its corresponding area, sum these weighted vectors, and then divide by the total area of ​​all shapes. Shapes with larger areas have greater weight in determining typical shapes. Traverse the 500 true shapes of the L-shaped cluster, calculate the Euclidean distance between the topological-spectral fingerprint vector and the weighted centroid fingerprint vector of each shape, and find the smallest distance value. The shape corresponding to this smallest distance value represents the principal geometric primitive of the L-shaped cluster, such as... Figure 3 As shown.

[0073] S2. For polygonal geometric entities that are not selected as primary geometric primitives, calculate the Euclidean distance between their topological-spectral fingerprint vector and the topological-spectral fingerprint vectors of each primary geometric primitive. When the Euclidean distance is less than a preset distance threshold, classify the polygonal geometric entity as a derived instance and calculate the transformation parameters from the primary geometric primitive to the derived instance, which include the Lie algebraic coordinates of rigid motion and the basis function expansion coefficients of non-rigid deformation.

[0074] The implementation details of step S2 are as follows:

[0075] First, determine whether the polygonal geometric entities in the chip layout that were not selected as primary geometric primitives (referred to as remaining polygonal geometric entities) are derived instances. Specifically, iterate through each remaining polygonal geometric entity and calculate the Euclidean distance between its topological-spectral fingerprint vector and the topological-spectral fingerprint vectors of all primary geometric primitives. This can be done by calling the `scipy.spatial.distance.cdist` function. If the minimum Euclidean distance is less than a preset distance threshold, the remaining polygonal geometric entity is classified as a derived instance of the corresponding primary geometric primitive. The preset distance threshold can be determined by the following steps: 1) For each high-density cluster corresponding to a primary geometric primitive, calculate the Euclidean distance between all topological-spectral fingerprint vectors within the high-density cluster and the weighted centroid fingerprint vector of that cluster; 2) Count these Euclidean distances and arrange them in ascending order, taking the 75th or 90th quantile as the preset distance threshold.

[0076] Secondly, calculate the transformation parameters: first, process the boundary between the main geometric primitive (source) and the derived instance (target) by normalizing the arc length sampling. Specifically, allocate sampling points according to the actual arc length ratio of the boundary to ensure that the vertex set of the main geometric primitive and the derived instance correspond one-to-one at key feature positions (such as inflection points, midpoints of long sides, etc.) and avoid alignment errors introduced by the difference in sampling distribution.

[0077] Based on this, the first step is to solve the rigid alignment problem, as follows:

[0078] 1) Centroid centering preprocessing: Calculate the centroid coordinates (i.e. the average of the x and y coordinates of all vertices) of the main geometric primitive and the vertex set of the derived instance respectively. Then subtract the centroid of each vertex of both, so that the centroid of the vertex set coincides with the origin of the coordinate system, thus initially eliminating the geometric position difference caused by translation.

[0079] 2) Solving for the optimal transformation using Protodyakonov analysis and SVD decomposition: Construct the covariance matrix of the principal geometric primitives and the vertex set of derived instances, and call the numpy.linalg.svd function to perform singular value decomposition on the covariance matrix to obtain the orthogonal matrix U and the orthogonal matrix V. T ; through matrix operation R=UV T Generate the optimal rotation matrix R and calculate the translation vector t, where t is the difference between the original centroid of the main geometric primitive and the original centroid of the derived instance. By using the optimal rotation matrix R and translation vector t, the sum of the squared distances between the aligned derived instance and the main geometric primitive can be minimized, thus achieving optimal rigid alignment.

[0080] 3) Lie algebra representation of transformation parameters: By calling the numpy.arctan2(R[1,0],R[0,0]) function, the rotation matrix R is converted into the rotation angle θ of the se(2) Lie algebra space. The rotation angle θ and the translation vector t together constitute the rigid transformation parameters.

[0081] The second step, after aligning the rigid transformations of the primary geometric primitive and the derived instance, is to further solve for the remaining non-rigid deformation field if non-rigid differences still exist, such as minor stretching of the boundary or slight deformation of local corners. Specifically, the non-rigid deformation field is modeled by a linear combination of a set of Gaussian radial basis functions (RBFs). For example, a set of Gaussian radial basis functions may include 16 Gaussian radial basis functions. A linear equation system A×w=d is constructed, where d is the residual vector between vertices, and A is the estimated matrix of the RBFs at the vertex positions of the primary geometric primitive. Specifically, the numpy.linalg.lstsq function can be used to solve the linear equation system, and the resulting weight vector w is the expansion parameter of the non-rigid deformation basis functions.

[0082] S3. For the remaining polygons that are neither principal geometric primitives nor derived instances, adaptive subdivision is performed based on the local anisotropy of the geometric features of the remaining polygons: in regions with strong anisotropy, subdivision is performed along the principal direction of the geometric structure to generate subdivision primitives; in regions with weak anisotropy, constrained Delaunay triangulation is performed to generate subdivision primitives.

[0083] In an optional embodiment, for the remaining polygons that are neither principal geometric primitives nor derived instances, adaptive subdivision is performed based on the local anisotropy of the geometric features of the remaining polygons, specifically including the following steps:

[0084] (1) Calculate local anisotropy: On the preset mesh nodes inside the polygonal geometric entity, calculate the geometric structure tensor in the neighborhood and solve for the eigenvalues ​​of the geometric structure tensor. and ,in Anisotropy measure is defined according to the following formula. : .

[0085] Specifically, for the remaining polygonal geometric entities, the polygonal geometric entities to be subdivided are rasterized into a two-dimensional grayscale image, where the interior of the polygonal geometric entity is white (pixel value 255) and the exterior is black (pixel value 0). The structure tensor from image processing is used to quantify the local anisotropy of each pixel, and the first derivatives I of the two-dimensional grayscale image in the x and y directions are calculated respectively. x and I y Then calculate the three components: , , ,in, Used to describe the intensity of change in a two-dimensional grayscale image in the x-direction; Used to describe the intensity of change in a two-dimensional grayscale image in the y-direction; This describes the interrelationship of a two-dimensional grayscale image along the x and y directions. Gaussian smoothing is applied to each of the three component images, resulting in the smoothed image... Recorded as , Recorded as , Recorded as After smoothing, a 2×2 structure tensor is obtained at each pixel (i, j). The structure tensor for each pixel Calculate its eigenvalues , and the corresponding feature vector , Specifically, the calculation can be performed by calling the `numpy.linalg.eigh` function. The principal eigenvector represents the principal direction of the local geometric structure; Used to indicate and Orthogonal directions.

[0086] (2) Perform adaptive partitioning: obtain anisotropy threshold ,like It was determined to be a region with strong anisotropy, along the eigenvalues Insert the subdivision line in the direction of the corresponding eigenvector; if If the region is identified as a weakly anisotropic region, the constrained Delaunay triangulation algorithm is used to divide the region into partitioning primitives.

[0087] Specifically, after obtaining the field describing the anisotropic direction and intensity, the boundary of the polygonal geometry to be subdivided is defined in Gmsh. This can be done by calling `gmsh.model.geo.addPoint` and `gmsh.model.geo.addLine`. A background field is created to tell Gmsh what size and shape of mesh elements should be generated at different locations in space. This can be achieved by creating an Attractor field and combining it with a MathEval field. The principal eigenvectors calculated in the previous step are then... The anisotropy metric is stored on a regular grid covering a polygonal region. In Gmsh, a function is defined to control the grid size, such that in regions with weak anisotropy, the target size approximates a preset, conventional size. In regions with strong anisotropy, a term is defined along... Dimensions of the described direction and along Dimensions of the described direction and make By applying the anisotropic metric tensor to the meshing process using Gmsh's Aniso options and background field settings, and calling gmsh.model.mesh.generate(2), a two-dimensional mesh is generated. Gmsh's meshing algorithm automatically generates elongated triangular primitives along the calculated main geometric direction in regions with significant anisotropy; while in regions with weak anisotropy, it generates regular meshing primitives that are close to equilateral triangles. After meshing, the vertex coordinates and connectivity of all meshing primitives (triangles) can be extracted. Specifically, gmsh.model.mesh.getNodes() and gmsh.model.mesh.getElements() can be called to extract them.

[0088] For example, for an irregular residual polygon, it is divided into simpler geometric units. A mesh is arranged inside the polygon, and the local geometry around each mesh node is analyzed. By computing a structure tensor, two eigenvalues ​​are obtained: and These represent the degree of change in the geometry near the node in the two principal directions, respectively. For example, in a narrow strip of land, It might be 5.0, and A value of only 0.5 indicates that the region extends much further in one direction than in the other. The anisotropy measure R, calculated using the formula, is approximately 0.82. An anisotropy threshold is then obtained, for example, 0.6. In narrow strips, since the R value of 0.82 is greater than the anisotropy threshold, this is a region of strong anisotropy. Insert a dividing line in the corresponding direction. However, in a region with a relatively uniform shape, the calculated eigenvalues ​​may be very similar, for example... It is 2.1. The value is 1.9, and the R value is only 0.05, which is lower than the anisotropy threshold. Therefore, the region is a region with weak anisotropy. The constrained Delaunay triangulation method is used to divide the region into a series of triangles of relatively uniform size and shape.

[0089] S4, the definition data of the main geometric primitive, the transformation parameters of all derived instances, and the data of all partitioned primitives are compressed and stored to form the optimized chip design data; wherein, the transformation parameters are non-uniformly quantized and entropy encoded according to statistical distribution, and the partitioned primitives are differentially encoded according to spatial adjacency relationship.

[0090] In an optional embodiment, the transform parameters are non-uniformly quantized and entropy-encoded according to a statistical distribution, specifically including:

[0091] For each component of the transformation parameters of all derived instances, a quantized codebook is generated using a one-dimensional k-means clustering algorithm, where the codebook consists of k cluster centers.

[0092] For each transformation parameter to be encoded, the original floating-point value is replaced with the index of the cluster center with the closest Euclidean distance in the quantization codebook to complete non-uniform quantization;

[0093] Calculate the frequency of occurrence of all indices, construct a variable-length code for each index based on the frequency distribution, and use the variable-length code to entropy encode the quantized index sequence.

[0094] Suppose that transformation parameters have been calculated for thousands of derived instances. First, we process the rotation parameter component, which is a series of floating-point values. Since orientations typically follow a certain pattern, these rotation parameter values ​​are likely to cluster around 0° or 90°. We apply k-means clustering to all these rotation parameter values, setting k to 256, generating a codebook with 256 cluster centers. These center values ​​(e.g., -0.01, 1.57, 3.14, etc.) represent the most common rotation angles among all rotation parameters. Next, for any instance's rotation parameter, say 1.58, we find the closest value to 1.58 in the codebook; let's say it's 1.57, with an index of 90. The original floating-point number 1.58 is replaced by the integer index 90. After quantization, we obtain a sequence of integer indices between 0 and 255. Statistical analysis of the frequency of each index reveals that index 90, representing rotations around 90°, appears very frequently, while indices representing some rarer angles appear very infrequently. Based on frequency distribution, Huffman coding and isoentropy coding techniques are used to assign shorter binary codes to high-frequency indices, such as using 11 to represent index 90, while assigning longer binary codes to low-frequency indices, such as using 01011101 to represent an index of a rare angle. The entire index sequence is replaced with variable-length codes to compress the transformation parameters.

[0095] In an optional embodiment, the partitioning primitives are differentially encoded based on spatial adjacency relationships, including the following steps:

[0096] By using breadth-first search, the adjacency graph composed of partitioned primitives is traversed to establish a linear encoding sequence;

[0097] Store the absolute coordinates of all vertices of the first primitive in the storage sequence;

[0098] For subsequent primitives in the sequence, identify the vertices shared by the subsequent primitives and the encoded adjacent primitives, and store the reference indexes of the shared vertices;

[0099] For a new non-shared vertex, calculate and store the coordinate difference vector of the point relative to the nearest shared vertex.

[0100] A large polygon is constructed from multiple triangular primitives connected by shared edges. A breadth-first search algorithm is used to determine the encoding order. Starting from a starting triangle... Initially, record the complete absolute coordinates of the three vertices of the triangle. For example, the coordinates of vertex A1 are (100.0, 200.5), A2 is (105.2, 200.8), and A3 is (103.1, 204.3). This establishes an initial reference for the entire geometry. Add the neighbors of T1, such as T2 and T3, to the processing queue, forming a linear encoded sequence of (T1, T2, T3).

[0101] When encoding the next primitive in the sequence, such as T2 adjacent to T1, their adjacency is used to compress the data. T2 shares two vertices A2 and A3 with T1. Therefore, it is not necessary to store the full coordinates of A2 and A3 again; instead, only references to their encoded indices are recorded. T2 has only one new vertex A4 that is not shared with T1. For A4, its absolute coordinates are not stored either; instead, its relative displacement with respect to an encoded shared vertex, such as A2, is calculated. If the absolute coordinates of A4 are (108.4, 204.6), then the coordinate difference vector relative to A2 is (3.2, 3.8). Only this small difference vector is stored. By referencing shared vertices and differentially encoding new vertices in this way, the storage space required to describe the entire partitioned structure is reduced.

[0102] In addition, in the description of this specification, "multiple" means at least two, such as two, three or more, etc., unless otherwise expressly and specifically defined.

Claims

1. A method for intelligently optimizing the storage of chip design data, characterized in that, Includes the following steps: S1. Extract the Fourier descriptor vector of the boundary and the internal continuous cohomology barcode vector of each polygonal geometric entity in the chip design data, and fuse the two vectors into a topological-spectral fingerprint vector. Based on the probability density distribution of all topological-spectral fingerprint vectors, identify high-density clusters and select the polygonal geometric entity with the closest Euclidean distance to the weighted centroid vector as the principal geometric primitive. S2. For polygonal geometric entities that are not selected as primary geometric primitives, calculate the Euclidean distance between their topological-spectral fingerprint vector and the topological-spectral fingerprint vector of each primary geometric primitive. When the Euclidean distance is less than a preset distance threshold, classify the polygonal geometric entity as a derived instance and calculate the transformation parameters from the primary geometric primitive to the derived instance, which include the Lie algebra coordinates of rigid motion and the basis function expansion coefficients of non-rigid deformation. S3. For the remaining polygons that are neither principal geometric primitives nor derived instances, adaptive subdivision is performed based on the local anisotropy of the geometric features of the remaining polygons: in regions with strong anisotropy, subdivision is performed along the principal direction of the geometric structure to generate subdivision primitives; in regions with weak anisotropy, constrained Delaunay triangulation is performed to generate subdivision primitives. S4 compresses and stores the definition data of the main geometric primitive, the transformation parameters of the derived instance, and the data of the partitioning primitive to form the compressed chip design data. Among them, the transformation parameters are non-uniformly quantized and entropy encoded according to the statistical distribution, and the partitioning primitive is differentially encoded according to the spatial adjacency relationship.

2. The intelligent optimization storage method for chip design data according to claim 1, characterized in that, In S1, when extracting the topological-spectral fingerprint vector, the boundary of the polygonal geometric entity is resampled by linear interpolation to generate 256 equally distributed boundary points. The (x, y) coordinates of these boundary points are converted into complex numbers x+iy, forming a complex sequence of length 256. The complex sequence is then subjected to a fast Fourier transform to obtain spectral coefficients of length 256. Divide the transformed spectral coefficients by the modulus of the first AC component to achieve scale normalization; Then, calculate the modulus of each of the spectral coefficients after scale normalization to eliminate the phase difference caused by rotation, so as to achieve rotation normalization. The 2nd to 33rd spectral coefficients after processing are selected as Fourier descriptor vectors describing the boundary of the polygon geometry.

3. The intelligent optimization storage method for chip design data according to claim 2, characterized in that, Perform constrained Delaunay triangulation on the polygonal geometric entity to obtain mesh data containing a "list of triangles" and a "complete set of vertices"; An Alpha complex is constructed based on the partitioned vertices in the "complete vertex set". The persistence of the Alpha complex is calculated, and the birth and death pairs of the one-dimensional homology group representing the holes are extracted. The one-dimensional homology group is then transformed into the persistent homology barcode vector.

4. The intelligent optimization storage method for chip design data according to claim 3, characterized in that, The process of transforming a one-dimensional homology group into the continuously homology barcode vector includes the following steps: Create a persistent image generation tool, where the final generated image is defined as 16 pixels × 16 pixels; Input the birth-death pairs of the one-dimensional homology group into the persistent image generation tool, and convert the birth-death pairs into a 16-pixel × 16-pixel grayscale image; The continuous homology barcode vector is obtained by flattening the grayscale image into a 256-dimensional vector.

5. The intelligent optimization storage method for chip design data according to claim 1, characterized in that, Selecting the principal geometric element involves the following steps: (1) Clustering using the DBSCAN algorithm: Set the minimum number of neighborhood points required for the core object to be M, and set the neighborhood radius to be the median of the distance between all topological-spectral fingerprint vectors and the Mth nearest neighbor; (2) Clusters with more than a preset threshold number of polygons are defined as high-density clusters; (3) For each high-density cluster, calculate the weighted centroid fingerprint vector C according to the following formula: ; in, This is the topological-spectral fingerprint vector of the i-th polygon in a high-density cluster. Let be the area of ​​the i-th polygon in the high-density cluster; select the polygonal geometric entity with the closest Euclidean distance to the weighted centroid fingerprint vector C as the principal geometric primitive of the high-density cluster.

6. The intelligent optimization storage method for chip design data according to claim 1, characterized in that, In S2, the steps for calculating the Lie algebraic coordinates of rigid motion are as follows: (1) Calculate the centroid of the set of vertices of the principal primitive and the derived instance, and subtract the centroid of each vertex to align the centroid with the origin, thus initially eliminating translation differences; (2) Construct the covariance matrix of the principal geometric primitive and the vertex set of the derived instance, and use SVD decomposition to obtain the orthogonal matrix U and the orthogonal matrix V. T Calculate the rotation matrix R = U × Vᵀ and the translation vector t, where t is the difference between the original centroid of the principal geometric primitive and the original centroid of the derived instance; (3) Transform the rotation matrix R into the rotation angle θ of the se(2) Lie algebra space. The rotation angle θ and the translation vector t together constitute the rigid transformation parameters.

7. The intelligent optimization storage method for chip design data according to claim 6, characterized in that, After completing the rigid transformation alignment of the principal geometric primitive and the derived instance, a non-rigid deformation field is established by a linear combination of a set of Gaussian radial basis functions (RBFs), and a linear equation system A×w=d is constructed, where d is the residual vector between vertices, A is the estimation matrix of RBF at the vertex position of the principal geometric primitive, and the obtained weight vector w is the basis function expansion parameter of the non-rigid deformation.

8. The intelligent optimization storage method for chip design data according to any one of claims 1-7, characterized in that, In S3, adaptive subdivision is performed based on the local anisotropy of the geometric features of the remaining polygons, specifically including the following steps: (1) Calculate the neighborhood geometric structure tensor at the preset mesh nodes inside the polygonal geometric entity, and solve for the eigenvalues ​​of the geometric structure tensor. and ,in Anisotropy measure is defined according to the following formula. : ; (2) Obtain the anisotropy threshold ,like It was determined to be a region of significant anisotropy, along the largest eigenvalue. Insert partition lines in the corresponding eigenvector directions to generate partition primitives; if If the region is identified as a weakly anisotropic region, the constrained Delaunay triangulation algorithm is used to divide the region into partitioning primitives.

9. The intelligent optimization storage method for chip design data according to any one of claims 1-7, characterized in that, In S4, the transform parameters are non-uniformly quantized and entropy encoded according to statistical distribution, specifically including: For each component of the transformation parameters of all derived instances, a quantized codebook is generated using a one-dimensional k-means clustering algorithm, where the codebook consists of k cluster centers. For each transformation parameter to be encoded, the original floating-point value is replaced with the index of the cluster center with the closest Euclidean distance in the quantization codebook to complete non-uniform quantization; Calculate the frequency of occurrence of all indices, construct a variable-length code for each index based on the frequency distribution, and use the variable-length code to entropy encode the quantized index sequence.

10. The intelligent optimization storage method for chip design data according to claim 9, characterized in that, The partitioning primitives are differentially encoded based on spatial adjacency relationships, including the following steps: By using breadth-first search, the adjacency graph composed of partitioned primitives is traversed to establish a linear encoding sequence; Store the absolute coordinates of all vertices of the first primitive in the storage sequence; For subsequent primitives in the sequence, identify the vertices shared by the subsequent primitives and the encoded adjacent primitives, and store the reference indexes of the shared vertices; For a new non-shared vertex, calculate and store the coordinate difference vector of the point relative to the nearest shared vertex.

Citation Information

Patent Citations

  • Building three-dimensional model lightweight design method and system based on artificial intelligence

    CN120429937A

  • Scoliosis orthosis registration method based on deep learning and biomechanical constraint

    CN120579353A