Geometric feature extraction method in chip simulation software, electronic equipment
By using the mesh division and feature hash table methods in chip simulation software, the problems of repeated features, inaccurate identification and high computing resources in complex geometric models are solved, and efficient and accurate geometric feature extraction and simulation efficiency are achieved.
Patent Information
- Application Number
- CN202510091623.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-21
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2045-01-21
AI Technical Summary
When existing chip simulation software deals with complex geometric models, there are problems such as inaccurate generation of repeated geometric feature, inaccurate identification and high computing resources, resulting in a decrease in simulation efficiency and accuracy.
A geometric feature extraction method in chip simulation software is proposed. Through meshing and the use of feature hash tables, duplicate geometric features are efficiently identified and removed, ensuring the accuracy of feature recognition, and optimizing the use of computing resources.
This method significantly reduces data redundancy, improves simulation efficiency and accuracy, optimizes the use of computing resources, and meets the needs of modern integrated circuit design and verification.
Smart Images

Figure CN119514470B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of electronic design automation technology, and in particular to a geometric feature extraction method in chip simulation software, an electronic device and a computer-readable medium. Background Art
[0002] In the field of modern electronic design automation (EDA), chip simulation software is an important tool for designing and verifying the performance of integrated circuits (ICs). As the complexity of integrated circuits continues to increase, the geometric models that chip simulation software needs to handle are becoming more and more complex. These geometric models usually contain a large number of geometric features, such as straight lines, curves, planes, and surfaces. In order to improve simulation efficiency and accuracy, these geometric features need to be effectively extracted and processed.
[0003] Existing chip simulation software usually uses meshing methods to discretize complex geometric models into a series of simple units (such as triangles or quadrilaterals) when processing geometric models. However, this method has some problems:
[0004] Generate duplicate geometric features: In the meshing process, due to the complexity of the geometric model and the unevenness of the mesh division, a large number of duplicate geometric features are often generated. These duplicate features not only increase the demand for data storage, but also may lead to redundancy in simulation calculations and reduce simulation efficiency.
[0005] Inaccurate geometric feature recognition: Existing meshing methods may misidentify or miss geometric features, resulting in inaccurate simulation results.
[0006] Large consumption of computing resources: Existing meshing methods require a lot of computing resources when dealing with large-scale geometric models. In particular, when dealing with high-resolution meshes, the computing time and memory consumption will increase significantly.
[0007] In view of the above problems, existing solutions have the following technical challenges:
[0008] How to efficiently identify and remove duplicate geometric features during the meshing process, reduce data redundancy, and improve simulation efficiency.
[0009] How to accurately identify and extract geometric features, avoid misidentification and missed identification, and ensure the accuracy of simulation results.
[0010] How to optimize the use of computing resources and reduce computing time and memory consumption while ensuring simulation accuracy. Summary of the invention
[0011] The present invention aims to solve at least one of the technical problems existing in the prior art, and proposes a geometric feature extraction method, electronic device and computer-readable medium in chip simulation software, which solves the problems of repeated geometric features, inaccurate recognition and large consumption of computing resources in the prior art. Through this method, the simulation efficiency and accuracy of the chip simulation software can be effectively improved, the use of computing resources can be optimized, and the needs of modern integrated circuit design and verification can be met.
[0012] In a first aspect, the present invention provides a method for extracting geometric features in chip simulation software, comprising the following steps: meshing the acquired geometric model to generate a plurality of mesh units;
[0013] Perform geometric feature recognition on each grid unit. When a geometric feature is recognized, query the feature list to determine whether the feature already exists. If not, store the feature in the feature list until the geometric feature extraction step is completed to obtain a non-repeated geometric feature list.
[0014] Output a list of non-repeating geometric features for use by chip simulation software.
[0015] Further, the feature list is a feature hash table;
[0016] When a geometric feature is identified, the feature list is queried to determine whether the feature already exists. If not, the feature is stored in the feature list, which specifically includes: when a geometric feature is identified, the key of the geometric feature is calculated, each key uniquely identifies a geometric feature, and the feature hash table is queried to determine whether the geometric feature already exists. If not, the geometric feature and its key are added to the feature hash table.
[0017] Furthermore, when a geometric feature is identified, a key of the geometric feature is calculated, specifically including:
[0018] When the identified geometric feature is a point feature, the key of the point feature is calculated;
[0019] When the identified geometric feature is a line segment feature, the key of the line segment feature is calculated;
[0020] When the identified geometric feature is a surface feature, a key of the surface feature is calculated.
[0021] Further, calculating the key of the point feature specifically includes: calculating a hash value of the point coordinates, and using the hash value of the point coordinates as the key of the point feature;
[0022] Calculating the key of the line segment feature, specifically including: calculating the hash value of the key point coordinates set on the line segment feature, and taking the sum of the hash values of the key point coordinates on the line segment feature as the key of the line segment feature;
[0023] Calculating the key of the face feature specifically includes: calculating the hash value of the key point coordinates set on the face feature, and taking the sum of the hash values of the key point coordinates on the face feature as the key of the face feature.
[0024] Furthermore, the key of the line segment feature is calculated, specifically including:
[0025] When the line segment feature is a straight line segment feature, calculating the key of the straight line segment feature includes: calculating hash values of the coordinates of two endpoints of the straight line segment, and taking the sum of the hash values of the coordinates of the two endpoints of the straight line segment as the key of the straight line segment feature;
[0026] When the line segment feature is a curve segment feature, calculating the key of the curve segment feature includes: calculating a hash value of the coordinates of a set key point on the curve segment, and taking the sum of the hash values of the coordinates of the key points on the curve segment as the key of the curve segment feature;
[0027] Calculate the key of the face feature, including:
[0028] When the surface feature is a plane feature, calculating the key of the plane feature includes: calculating a hash value of the coordinates of a key point set on the plane feature, and taking the sum of the hash values of the coordinates of the key points on the plane feature as the key of the plane feature;
[0029] When the surface feature is a curved surface feature, the key of the curved surface feature is calculated, including: calculating the hash value of the coordinates of the key points set on the curved surface feature, and taking the sum of the hash values of the coordinates of the key points on the curved surface feature as the key of the curved surface feature.
[0030] Furthermore, the hash value of the point coordinates is calculated, specifically including:
[0031] Calculate the hash value of the point coordinates, including:
[0032] Set a random seed value Seed;
[0033] Set a random multiplication coefficient Mul;
[0034] Put the point coordinates in a continuous memory area, let the memory area access address be Mem, and the memory area length be Len;
[0035] Assign the memory area access address Mem to the string pointer Buf. At this time, the memory area can be regarded as a string with access address Buf and length Len.
[0036] Set the initial hash value:
[0037]
[0038] in, is the exclusive OR operator;
[0039] Divide the string Buf into segments of n bytes each, and record each segment as L i , the subscript i represents the i-th segment; for three-dimensional coordinates, the value range of i is [1,3], and for two-dimensional coordinates, the value range of i is [1,2];
[0040] Using the iterative method with Hash i-1 Calculating Hash i , the calculation formula is:
[0041]
[0042] in is the right shift operator. For three-dimensional coordinates, the Hash is obtained by iterative calculation. 3 , for two-dimensional coordinates, iterative calculation to get Hash 2 ,
[0043] For 3D coordinates, the hash value of the 3D coordinates The calculation formula is:
[0044]
[0045] For a two-dimensional coordinate, the hash value of the two-dimensional coordinate The calculation formula is:
[0046] .
[0047] Furthermore, the geometric feature extraction method in the chip simulation software of the present invention also includes the following steps: if the geometric feature exists, skip the geometric feature.
[0048] Furthermore, after generating a plurality of grid units, the following step is also included: assigning a unique identifier to each grid unit.
[0049] In a second aspect, the present invention further provides an electronic device, comprising:
[0050] at least one processor; and
[0051] a memory communicatively connected to the at least one processor; wherein,
[0052] The memory stores one or more computer programs that can be executed by the at least one processor, and the one or more computer programs are executed by the at least one processor so that the at least one processor can execute the geometric feature extraction method in the chip simulation software as described in the first aspect.
[0053] In a third aspect, the present invention further provides a computer-readable medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the steps of the geometric feature extraction method in the chip simulation software as described in the first aspect.
[0054] The present invention has at least the following beneficial effects:
[0055] 1. Improve simulation efficiency
[0056] Reduce data redundancy: The present invention uses an efficient feature deduplication algorithm to quickly identify and remove duplicate geometric features, significantly reducing data redundancy. This not only reduces the demand for data storage, but also reduces the complexity of simulation calculations, thereby improving simulation efficiency.
[0057] Optimize grid structure: The present invention optimizes the grid of the deduplicated geometric features to ensure that the generated grid structure is more uniform and reasonable, thereby further improving the efficiency of simulation calculations.
[0058] 2. Enhance simulation accuracy
[0059] Accurately identify geometric features: The present invention adopts advanced feature recognition and classification algorithms, which can accurately identify and extract geometric features, avoid misidentification and missed identification, and ensure the accuracy of simulation results.
[0060] Retain key features: In the deduplication process, the present invention retains the most representative geometric features, ensures the integrity and accuracy of the simulation model, and avoids simulation errors caused by feature loss.
[0061] 3. Optimize computing resource usage
[0062] Reduce computing time and memory consumption: This invention significantly reduces computing time and memory consumption by reducing data redundancy and optimizing the grid structure. This is especially important for processing large-scale and highly complex geometric models, and can effectively improve the utilization of computing resources.
[0063] Strong adaptability: The method of the present invention is applicable to various types of geometric models, whether two-dimensional or three-dimensional, and can efficiently perform feature extraction and deduplication, and has strong versatility and adaptability.
[0064] 4. Improve user experience
[0065] User-friendly interface: The optimized geometric model is displayed in the user interface, including the distribution of mesh units and geometric features. Interactive tools are provided to facilitate users to conduct further inspections and adjustments, thus improving the user experience.
[0066] Result visualization: By visually displaying the optimized geometric model, users can intuitively understand the structure and characteristics of the simulation model, which is convenient for subsequent analysis and verification.
[0067] 5. Improve overall performance
[0068] Good integration: The geometric feature extraction algorithm of the present invention can be seamlessly integrated into the existing chip simulation software without large-scale transformation of the original system, and is easy to implement and promote.
[0069] Strong scalability: The geometric feature extraction algorithm of the present invention is flexibly designed and can be expanded and optimized according to different application scenarios and requirements, and has good scalability. BRIEF DESCRIPTION OF THE DRAWINGS
[0070] Figure 1 A flow chart of a method for extracting geometric features in chip simulation software provided by an embodiment of the present disclosure;
[0071] Figure 2 The figure is a schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0072] In order to enable those skilled in the art to better understand the technical solution of the present disclosure, the present disclosure is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.
[0073] Unless otherwise defined, the technical terms or scientific terms used in the present disclosure should be understood by people with ordinary skills in the field to which the present disclosure belongs. The "first", "second" and similar words used in the present disclosure do not indicate any order, quantity or importance, but are only used to distinguish different components. Similarly, similar words such as "one", "one" or "the" do not indicate quantitative restrictions, but indicate that there is at least one. "Including" or "comprising" and similar words mean that the elements or objects appearing before the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects.
[0074] In each of the accompanying drawings, identical elements are represented by similar reference numerals. For the sake of clarity, the various parts in the accompanying drawings are not all drawn to scale. In addition, some well-known parts may not be shown in the drawings.
[0075] Many specific details of the present disclosure are described below to provide a clearer understanding of the present disclosure. However, as those skilled in the art will appreciate, the present disclosure may be implemented without following these specific details.
[0076] The present invention provides a method for extracting non-repeated geometric features of a grid in chip simulation software, aiming to solve the problems of repeated geometric features, inaccurate recognition and large consumption of computing resources in the prior art.
[0077] Figure 1 The following is a flow chart of a method for extracting geometric features in chip simulation software provided by an embodiment of the present disclosure. Figure 1 As shown, the present invention provides a method for extracting geometric features in chip simulation software, comprising the following steps:
[0078] Acquire a geometric model and preprocess the geometric model, including: meshing the acquired geometric model to generate a plurality of mesh units;
[0079] Build a feature list;
[0080] Perform geometric feature recognition on each grid unit. When a geometric feature is recognized, query the feature list to determine whether the feature already exists. If not, store the feature in the feature list until the geometric feature extraction step is completed to obtain a non-repeated geometric feature list.
[0081] Output a list of non-repeating geometric features for use by chip simulation software.
[0082] The above-mentioned grid non-repetitive geometric feature extraction method of the present invention can effectively process complex geometric models in chip simulation software. The above-mentioned method of the present invention is highly efficient, can quickly identify and remove repeated geometric features, reduce data redundancy, and improve simulation efficiency. In addition, the above-mentioned method of the present invention can accurately identify and extract geometric features, avoid misidentification and missed identification, ensure the accuracy of simulation results, and optimize the use of computing resources while ensuring simulation accuracy, reducing computing time and memory consumption.
[0083] Acquiring a geometric model includes: receiving a geometric model provided by a user, i.e., a chip design file, and supporting common file formats, such as STL, STEP, IGES, etc. The model can be three-dimensional or two-dimensional, and contain multiple geometric features, such as straight lines, curves, planes, and surfaces.
[0084] After receiving the geometric model provided by the user, the data of the geometric model is read, the geometric features and topological relationships are analyzed, the geometric shape data therein is extracted, and the geometric shape data is converted into a grid representation, where each geometric shape is composed of multiple grid units.
[0085] The meshing of the present invention can adopt traditional meshing methods, such as triangulation or quadrilateralization algorithms, to perform initial meshing on the geometric model, generate initial mesh units, and record the vertex coordinates and topological relationships of each unit.
[0086] The geometric features of each grid unit are identified, including: using the geometric feature recognition algorithm to identify the features of each grid unit, extracting geometric attributes (such as geometric type, coordinates, direction, curvature, etc.) and topological relationships (such as adjacency, connectivity, etc.), and classifying the identified geometric features, such as classifying the identified features into straight line segments, arcs, planes, etc. The classification results are used for subsequent feature deduplication and optimization processing.
[0087] Feature recognition algorithms can identify geometric features based on geometric properties (such as geometric type, coordinates, direction, curvature, etc.) and topological relationships (such as adjacency, connectivity, etc.), including feature vertices, feature contour segments, feature surfaces, etc.
[0088] Furthermore, the feature list is a feature hash table or a set data structure. Preferably, the present invention constructs a feature hash table for storing the identified geometric features. The key of the hash table can be a combination of the geometric attributes and topological relationships of the feature, and the value is the identifier of the feature (a pointer or reference to the feature).
[0089] When a geometric feature is identified, the feature list is queried to determine whether the feature already exists. If not, the feature is stored in the feature list, which specifically includes: when a geometric feature is identified, the key of the geometric feature is calculated, each key uniquely identifies a geometric feature, and the feature hash table is queried to determine whether the geometric feature already exists in the feature hash table. If not, the geometric feature and its key are added to the feature hash table. If so, the geometric feature is skipped.
[0090] Of course, if it exists, the geometric feature can also be marked as a duplicate feature and its identifier can be recorded. For the features marked as duplicate, a representative feature is retained and other duplicate features are deleted. The retained features can be selected from the features with the highest accuracy or the best topological relationship.
[0091] The method of the present invention takes geometric tolerance into consideration when deduplicating features. If the distance between two points is less than the geometric tolerance, they can be considered to be the same point and can be merged into one point for deduplication.
[0092] For features smaller than the geometric tolerance, direct filtering can be considered to reduce the final output.
[0093] Furthermore, after generating a plurality of grid units, the following steps are also included: assigning a unique identifier (ID) to each grid unit to ensure that each grid unit is unique in the system.
[0094] Furthermore, when a geometric feature is identified, a key of the geometric feature is calculated, specifically including:
[0095] When the identified geometric feature is a point feature, the key of the point feature is calculated;
[0096] When the identified geometric feature is a line segment feature, the key of the line segment feature is calculated;
[0097] When the identified geometric feature is a surface feature, a key of the surface feature is calculated.
[0098] Further, calculating the key of the point feature specifically includes: calculating a hash value of the point coordinates, and using the hash value of the point coordinates as the key of the point feature;
[0099] Calculating the key of the line segment feature, specifically including: calculating hash values of coordinates of several key points on the line segment feature, and taking the sum of the hash values of the coordinates of the several key points on the line segment feature as the key of the line segment feature;
[0100] Calculating the key of the face feature specifically includes: calculating hash values of coordinates of several key points on the face feature, and taking the sum of the hash values of the coordinates of the several key points on the face feature as the key of the face feature.
[0101] Furthermore, the key of the line segment feature is calculated, specifically including:
[0102] When the line segment feature is a straight line segment feature, calculating the key of the straight line segment feature includes: calculating hash values of the coordinates of two endpoints of the straight line segment, and taking the sum of the hash values of the coordinates of the two endpoints of the straight line segment as the key of the straight line segment feature;
[0103] When the line segment feature is a curve segment feature, calculating the key of the curve segment feature includes: calculating hash values of coordinates of a plurality of key points on the curve segment, and taking the sum of the hash values of the coordinates of the plurality of key points on the curve segment as the key of the curve segment feature;
[0104] Calculate the key of the face feature, including:
[0105] When the surface feature is a plane feature, calculating the key of the plane feature includes: calculating hash values of coordinates of a plurality of key points on the plane feature, and taking the sum of the hash values of the coordinates of the plurality of key points on the plane feature as the key of the plane feature;
[0106] When the surface feature is a curved surface feature, calculating the key of the curved surface feature includes: calculating the key of the curved surface feature, specifically including: calculating the hash value of the coordinates of several key points on the curved surface feature, and taking the sum of the hash values of the coordinates of the several key points on the curved surface feature as the key of the curved surface feature.
[0107] For a line segment, the key can be the sum of the hash values of the coordinates of its two endpoints. The two endpoints can get the same hash value even if they are in different orders.
[0108] For a curve segment, the key can be the sum of the hash values of the coordinates of several key points on the curve. The key point coordinates are set as needed, and the key points can be equally divided points on the curve, such as quadrant points on a circle, to ensure that the curve can get the same hash value regardless of its direction.
[0109] For a surface, the key can be the sum of the hash values of all key point coordinates on the surface. The key point coordinates are set as needed. Similar to curve segments, key points can be equally divided points on the surface.
[0110] For a plane, the key can be the sum of the hash values of all key point coordinates on the plane. The key point coordinates are set as needed, and the key points can be equally divided points on the plane.
[0111] For a vertex, use the MurmurHash algorithm to convert the vertex coordinates (including two-dimensional and three-dimensional) into a well-distributed hash value as the key of this vertex feature. Vertices with different coordinate values must obtain different hash values. For example, (100, 0, 0) and (0, 100, 0), even if the three coordinate values are composed of the three numbers 100, 0, 0, but the positions are different, the hash values obtained must be different.
[0112] Calculate the hash value of the point coordinates, including:
[0113] 1) Set a random seed value Seed;
[0114] 2) Set a random multiplication coefficient Mul;
[0115] 3) Place the point coordinates in a continuous memory area, let the memory area access address be Mem, and the memory area length be Len; if the coordinates are in 8-byte double type, then for three-dimensional coordinates, Len is 3×8=24 bytes, and for two-dimensional coordinates, Len is 2×8=16 bytes;
[0116] 4) Force the memory area access address Mem to be assigned The string pointer Buf of type, in this case the memory area can be regarded as a string with access address Buf and length Len;
[0117] 5) Set the initial hash value:
[0118]
[0119] in, is the exclusive OR operator;
[0120] 6) Divide the string Buf into segments of n bytes each (n in this embodiment is 8, and each segment is converted into an 8-byte uint64_t type. 8 bytes is 64 bits, which is more efficient on today's 64-bit computers). Each segment is recorded as L i , the subscript i represents the i-th segment; for three-dimensional coordinates, the value range of i is [1,3], and for two-dimensional coordinates, the value range of i is [1,2];
[0121] 7) Use iterative method with Hash i-1 Calculating Hash i , the calculation formula is:
[0122]
[0123] in is the right shift operator. For three-dimensional coordinates, the Hash is obtained by iterative calculation. 3 , for two-dimensional coordinates, iterative calculation to get Hash 2 ,
[0124] 8) For three-dimensional coordinates, the hash value of the three-dimensional coordinates The calculation formula is:
[0125]
[0126] For a two-dimensional coordinate, the hash value of the two-dimensional coordinate The calculation formula is:
[0127]
[0128] The following uses three-dimensional vertex coordinates as an example to introduce the detailed algorithm steps of the MurmurHash algorithm conversion. The same applies to two-dimensional coordinate vertices.
[0129] 1) Set a random seed value, such as 0xA329F1D3A586ULL. The "ULL" at the end indicates that the type is uint64_t, which can also be written as "unsigned long long", occupying 8 bytes;
[0130] 2) Set a random multiplication coefficient Mul, for example (((uint64_t)0xc6a4a793UL)<<32UL)+(uint64_t)0x5bd1e995UL, where the "UL" at the end indicates the type is "unsigned long";
[0131] 3) Place the three-dimensional vertex coordinates x, y, and z in a continuous memory area, let the memory area access address be Mem, and the memory area length be Len. If the coordinates are in 8-byte double type, then Len is 3×8=24 bytes;
[0132] 4) Force the memory area access address Mem to be assigned The string pointer Buf of type, in this case the memory area can be regarded as a string with access address Buf and length Len;
[0133] 5) Set the initial hash value
[0134]
[0135] in, is the exclusive OR operator;
[0136] 6) Divide the string Buf into 8-byte segments, and convert each segment into an 8-byte uint64_t type, denoted by L i ,The subscript i represents the i-th segment. For three-dimensional coordinates, the value range of i is [1,3];
[0137] 7) Use iterative method with Hash i-1 Calculating Hash i , the calculation formula is:
[0138]
[0139] in is the right shift operator. For three-dimensional coordinates, the Hash is obtained by iterative calculation. 3 ;
[0140] 8) The final three-dimensional coordinate hash value calculation formula is:
[0141]
[0142] It should be noted that in the hash value calculation of the vertices of the same geometric body, the seed value Seed and the multiplication coefficient Mul are consistent (Note: between different geometric bodies, even if the coordinates of two vertices are the same, they do not need to be merged, and each geometric body has its own corresponding vertices). Otherwise, the hash values calculated by the same two vertex coordinates will be different, which deviates from the original intention.
[0143] After the above MurmurHash non-encrypted hash function algorithm, high performance and well-distributed hash values can be obtained The present invention is not limited to using this hash function algorithm. Other hash functions with similar functions are applicable as long as they can ensure that the vertex coordinate hash value is unique.
[0144] The steps of the geometric feature extraction method in the chip simulation software of the present invention also include: result display, that is, displaying the optimized geometric model in the user interface, including the distribution of grid units and geometric features.
[0145] The present invention provides an interactive tool to facilitate users to perform further inspection and adjustment.
[0146] In some embodiments, the geometric feature extraction method in the chip simulation software of the present invention further includes: sorting and optimizing the feature list to ensure that the features in the feature list are arranged in a certain order to facilitate subsequent processing.
[0147] The feature list can be further screened and filtered according to actual needs to remove unnecessary features.
[0148] Outputting a non-repeating geometric feature list for use by chip simulation software, specifically including: outputting the final extracted non-repeating geometric feature list to a specified file or data structure for use by the chip simulation software.
[0149] Through the above steps, the present invention can effectively extract non-repetitive geometric features in chip design and improve the accuracy and efficiency of chip simulation.
[0150] Based on the same inventive concept, an embodiment of the present disclosure also provides an electronic device. Figure 2 FIG. 1 is a schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure. Figure 2 As shown, an electronic device includes: one or more processors 101, a memory 102, and one or more I / O interfaces 103. The memory 102 stores one or more programs, and when the one or more programs are executed by the one or more processors, the one or more processors implement the geometric feature extraction method in any chip simulation software in the above embodiments; the one or more I / O interfaces 103 are connected between the processor and the memory, and are configured to implement information interaction between the processor and the memory.
[0151] Among them, the processor 101 is a device with data processing capabilities, including but not limited to a central processing unit (CPU), etc.; the memory 102 is a device with data storage capabilities, including but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory (FLASH); the I / O interface (read-write interface) 103 is connected between the processor 101 and the memory 102, and can realize information interaction between the processor 101 and the memory 102, including but not limited to a data bus (Bus), etc.
[0152] In some embodiments, the processor 101 , the memory 102 , and the I / O interface 103 are connected to each other via a bus 104 , and further connected to other components of the computing device.
[0153] In some embodiments, the one or more processors 101 include a field programmable gate array.
[0154] Based on the same inventive concept, the embodiment of the present disclosure further provides a computer-readable medium having a computer program stored thereon, wherein when the program is executed by a processor, the steps in the geometric feature extraction method in any chip simulation software in the above embodiments are implemented.
[0155] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, including a computer program carried on a machine-readable medium, the computer program containing a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through a communication part, and / or installed from a removable medium. When the computer program is executed by a central processing unit (CPU), the above-mentioned functions defined in the system of the present disclosure are executed.
[0156] It should be noted that the computer-readable medium shown in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, optical cable, RF, etc., or any suitable combination of the above.
[0157] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of the code, and the aforementioned module, program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0158] It is to be understood that the above embodiments are merely exemplary embodiments used to illustrate the principles of the present disclosure, but the present disclosure is not limited thereto. For those of ordinary skill in the art, various modifications and improvements can be made without departing from the spirit and substance of the present disclosure, and these modifications and improvements are also considered to be within the scope of protection of the present disclosure.
Claims
1. A method for extracting geometric features in chip simulation software, characterized in that: The steps include: Meshing the acquired geometric model to generate a number of mesh units; Perform geometric feature recognition on each grid unit. When a geometric feature is recognized, calculate the key of the geometric feature. Each key uniquely identifies a geometric feature. Query the feature hash table to determine whether the geometric feature already exists. If not, add the geometric feature and its key to the feature hash table until the geometric feature extraction step is completed to obtain a non-repeated geometric feature list. When a geometric feature is identified, the key of the geometric feature is calculated, including: When the identified geometric feature is a point feature, calculating the key of the point feature, specifically including: calculating a hash value of the point coordinates, and using the hash value of the point coordinates as the key of the point feature; When the identified geometric feature is a line segment feature, calculating the key of the line segment feature, specifically including: calculating the hash value of the key point coordinates set on the line segment feature, and taking the sum of the hash values of the key point coordinates on the line segment feature as the key of the line segment feature; When the identified geometric feature is a surface feature, calculating the key of the surface feature, specifically including: calculating the hash value of the key point coordinates set on the surface feature, and taking the sum of the hash values of the key point coordinates on the surface feature as the key of the surface feature; Calculate the hash value of the point coordinates, including: Set a random seed value Seed; Set a random multiplication coefficient Mul; Put the point coordinates in a continuous memory area, let the memory area access address be Mem, and the memory area length be Len; Assign the memory area access address Mem to the string pointer Buf. At this time, the memory area can be regarded as a string with access address Buf and length Len. Set the initial hash value: ; in, is the exclusive OR operator; Divide the string Buf into segments of n bytes each, and record each segment as L i , the subscript i represents the i-th segment; for three-dimensional coordinates, the value range of i is [1,3], and for two-dimensional coordinates, the value range of i is [1,2]; Using the iterative method with Hash i-1 Calculating Hash i , the calculation formula is: ; in, is a right shift operator. For three-dimensional coordinates, Hash3 is obtained by iterative calculation. For two-dimensional coordinates, Hash2 is obtained by iterative calculation. For 3D coordinates, the hash value of the 3D coordinates The calculation formula is: ; ; For a two-dimensional coordinate, the hash value of the two-dimensional coordinate The calculation formula is: ; ; Output a list of non-repeating geometric features for use by chip simulation software.
2. The method for extracting geometric features in chip simulation software according to claim 1, characterized in that: Calculate the key of the line segment features, including: When the line segment feature is a straight line segment feature, calculating the key of the straight line segment feature includes: calculating hash values of the coordinates of two endpoints of the straight line segment, and taking the sum of the hash values of the coordinates of the two endpoints of the straight line segment as the key of the straight line segment feature; When the line segment feature is a curve segment feature, calculating the key of the curve segment feature includes: calculating a hash value of the coordinates of a set key point on the curve segment, and taking the sum of the hash values of the coordinates of the key points on the curve segment as the key of the curve segment feature; Calculate the key of the face feature, including: When the surface feature is a plane feature, calculating the key of the plane feature includes: calculating a hash value of the coordinates of a key point set on the plane feature, and taking the sum of the hash values of the coordinates of the key points on the plane feature as the key of the plane feature; When the surface feature is a curved surface feature, the key of the curved surface feature is calculated, including: calculating the hash value of the coordinates of the key points set on the curved surface feature, and taking the sum of the hash values of the coordinates of the key points on the curved surface feature as the key of the curved surface feature.
3. The method for extracting geometric features in chip simulation software according to claim 1, characterized in that: The method further comprises the following steps: if the geometric feature exists, skipping the geometric feature.
4. The method for extracting geometric features in chip simulation software according to claim 1, characterized in that: After generating a plurality of grid units, the following steps are also included: assigning a unique identifier to each grid unit.
5. An electronic device, characterized in that: include: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores one or more computer programs that can be executed by the at least one processor, and the one or more computer programs are executed by the at least one processor so that the at least one processor can execute the geometric feature extraction method in the chip simulation software as described in any one of claims 1-4.
6. A computer-readable medium, characterized in that The computer readable medium stores a computer program, wherein when the program is executed by a processor, the steps of the geometric feature extraction method in the chip simulation software according to any one of claims 1 to 4 are implemented.
Citation Information
Patent Citations
Method and system for determining same geometric object in three-dimensional space
CN116861023A