Fuzzy matching method based on hierarchical graph Hash signature

Through the fuzzy matching method of hierarchical graph hash signature, the efficiency and accuracy problems of the fuzzy matching algorithm in large-scale integrated circuit design are solved, and fast and accurate layout and circuit diagram matching is achieved, reducing design cycle and cost.

CN120354822APending Publication Date: 2025-07-22CHENGDU HUADA JIUTIAN TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202510424909.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-07
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

The fuzzy matching algorithm in existing LVS verification cannot meet the fast and accurate matching requirements of massive devices and their connecting networks in large-scale integrated circuit designs, resulting in extended design cycles and increased costs.

Method used

The fuzzy matching method based on the hierarchical graph hash signature is adopted. By sorting the buckets, expanding the hierarchy, calculating the hash signature and passing it, dividing the buckets, selecting the subbuckets to be matched for iterative matching, giving priority to the sorting of the number and degree of the linear and network buckets, balanced buckets and objects, and reducing incorrect matching.

Benefits of technology

Improves performance and accuracy of fuzzy matching, reduces matching error rates, shortens design cycles and reduces costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120354822A_ABST
    Figure CN120354822A_ABST
Patent Text Reader

Abstract

A fuzzy matching method based on a hierarchical graph Hash signature comprises the following steps: sorting buckets, and sequentially selecting the sorted buckets as initial buckets; performing extension layering on the initial bucket, and dividing a netlist into a hierarchical structure diagram; calculating a Hash signature for the hierarchical structure chart from bottom to top, and transmitting the Hash signature to the uppermost layer to obtain the Hash signature of each object in the initial bucket; dividing the initial bucket into a plurality of sub-buckets based on the hash signature; selecting to-be-matched sub-buckets and matching the sub-buckets; and the sub-buckets are re-divided, and matching iteration is carried out. According to the method, after the buckets are sorted, the initial buckets are selected in sequence to construct the hierarchical structure chart in a layered mode, the Hash signatures are calculated and transmitted, and the meaningful connection range is searched as much as possible based on Hash signature division and matching, so that errors of the matching result are reduced as much as possible, and meanwhile, the performance and accuracy of fuzzy matching are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of integrated circuit EDA (Electronic Design Automation), and particularly to a fuzzy matching method based on hierarchical graph hash signatures. Background Art

[0002] In the semiconductor integrated circuit design process, layout engineers need to perform LVS verification on the layout and schematic diagram used to prepare the mask, comparing whether the devices and connections in the layout are consistent with the descriptions in the schematic diagram to check for design errors. The purpose of LVS verification (in the field of integrated circuit design, the process of using specialized software tools to check the consistency between the layout and the schematic diagram) is to ensure that the layout actually implements the logical functions defined in the design stage, thereby discovering and correcting design errors in advance, reducing the risk of tape-out failure, shortening the design cycle, and saving costs. Therefore, LVS verification is a very important link in the chip design process.

[0003] Currently, LVS verification mainly includes two steps: The first step is to extract the netlist files from the layout and the schematic diagram, called Layout and Source (schematic diagram). The netlist describes the logical functions of the circuit and the connection relationships of the devices. The second step is to perform a logical equivalence comparison on the netlists of the two. With the continuous expansion of the layout scale in large-scale integrated circuit design, in the face of a vast number of devices and their connection networks, the existing fuzzy matching algorithms for LVS verification cannot meet the requirements. How to quickly and accurately match is a challenge faced by EDA manufacturers. Summary of the Invention

[0004] In order to solve the deficiencies of the prior art, the purpose of the present invention is to provide a fuzzy matching method based on hierarchical graph hash signatures to improve the performance and accuracy of fuzzy matching in LVS verification.

[0005] In order to achieve the above purpose, the fuzzy matching method based on hierarchical graph hash signatures provided by the present invention includes:

[0006] Sort the buckets, and sequentially select the sorted buckets as the initial buckets;

[0007] Expand and layer the initial buckets, and divide the netlist into a hierarchical structure diagram;

[0008] Calculate the hash signatures from the bottom up for the hierarchical structure diagram and transfer them to the top layer to obtain the hash signatures of each object in the initial bucket;

[0009] Divide the initial bucket into multiple sub-buckets based on the hash signatures;

[0010] Select the sub-buckets to be matched and perform matching;

[0011] Redivide the sub-buckets and perform matching iterations.

[0012] Further, the step of sorting the buckets and sequentially selecting the sorted buckets as the initial buckets further includes:

[0013] Sort in the order that the wire net buckets precede the device instance buckets, the balanced buckets precede the unbalanced buckets, the number of objects in the bucket is from less to more, and the degree of the objects in the bucket is from large to small;

[0014] For the balanced bucket, the number of layout and schematic objects it contains is the same;

[0015] The degree of the object refers to the number of device instances connected around the wire net or the number of wire nets connected around the device instance.

[0016] Further, the step of expanding and hierarchically partitioning the initial bucket to divide the netlist into a hierarchical structure diagram further includes: if the current initial bucket has been accessed in the current round of fuzzy matching, skip the current initial bucket.

[0017] Further, the step of expanding and hierarchically partitioning the initial bucket to divide the netlist into a hierarchical structure diagram further includes:

[0018] Take the objects in the initial bucket as the first layer, and take all the objects connected to the objects in the initial bucket as the second layer;

[0019] For the objects in the second layer, take the objects connected to them and not in the first layer as the next layer;

[0020] For the objects in the next layer, take the objects connected to them and not in the upper layer as the new next layer until there are no objects connected to the objects in the new next layer, to obtain the final hierarchical structure diagram;

[0021] In the hierarchical structure diagram, the first layer is the top layer and the last layer is the bottom layer.

[0022] Further, the step of calculating the hash signature from bottom to top for the hierarchical structure diagram and passing it to the top layer to obtain the hash signature of each object in the initial bucket further includes:

[0023] Calculate the initial hash signature of each object in each layer;

[0024] For the objects between adjacent layers, obtain the connection coefficient according to the connection relationship of the objects;

[0025] Starting from the bottom layer, sequentially combine the initial hash signature of each object and its connection coefficient with the upper layer and pass it to the upper layer to obtain the final hash signature of each object in the initial bucket.

[0026] Further, the step of calculating the hash signature of each object in each layer further includes:

[0027] For the device instance layer, determine the structure hash signature according to the bucket to which the device instance and its connected nets belong; determine the subtype hash signature according to the subtype of the device instance; determine the attribute hash signature according to all attributes of the device instance.

[0028] For the net layer, determine the structure hash signature, subtype hash signature, and attribute hash signature according to the hash signature of the device instance connected to the net.

[0029] Further, the step of dividing the initial bucket into multiple sub-buckets based on the hash signature further includes:

[0030] Divide the objects with the same hash signature in the initial bucket into the same sub-bucket; if the division based on the hash signature is successful, pass the hash signature among the objects in the initial bucket to each other, and further divide the initial bucket based on the passed hash signature.

[0031] The step of passing the hash signature among the objects in the initial bucket to each other and further dividing the initial bucket based on the passed hash signature further includes: passing the hash signature of each object in the initial bucket from top to bottom and then from bottom to top, and re-dividing the initial bucket based on the passed hash signature to obtain sub-buckets.

[0032] Further, the step of selecting the sub-buckets to be matched and performing the matching further includes:

[0033] For non-singular buckets, select the objects therein one by one for matching.

[0034] For singular buckets, if they are merged into non-singular buckets after reducing the number of rounds of passing the hash signature, select the objects for matching.

[0035] The singular bucket only contains objects of the layout or objects of the schematic diagram.

[0036] Further, the step of selecting the sub-buckets to be matched and performing the matching further includes: sequentially select the sub-buckets for matching in the order of the number of objects in the bucket from more to less.

[0037] Furthermore, the step of re-dividing the sub-buckets and performing the matching iteration further includes:

[0038] Select a pair of objects of the layout and the schematic diagram from the current sub-bucket for matching. After successful matching, assign a unique hash signature to the pair of objects and pass it to the objects connected to them.

[0039] If no new sub-buckets are generated after passing based on the unique hash signature, continue to select objects from the current sub-bucket for matching until there is only one object left to be matched in the current sub-bucket, and directly match it;

[0040] If there are no matchable sub-buckets and there are multiple singular buckets remaining, roll back the division of the sub-buckets, reduce the number of rounds of hash signature passing, and use the hash signature division results of the previous rounds for matching.

[0041] The fuzzy matching method based on hierarchical graph hash signature provided by the present invention has the following beneficial effects compared with the prior art:

[0042] After sorting the buckets, select the initial buckets in turn to construct a hierarchical structure diagram hierarchically, calculate and pass the hash signature, and divide and match based on the hash signature, searching for a meaningful connection range as large as possible, minimizing the errors in the matching results, and improving the performance and accuracy of fuzzy matching at the same time.

[0043] Other features and advantages of the present invention will be described in the subsequent description, and part of them will be obvious from the description, or understood by implementing the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] The drawings are used to provide a further understanding of the present invention, and constitute a part of the description, and together with the embodiments of the present invention, are used to explain the present invention, and do not constitute a limitation to the present invention. In the drawings:

[0045] Figure 1 is a flowchart of the fuzzy matching method based on hierarchical graph hash signature according to Embodiment 1 of the present invention;

[0046] Figure 2 is a schematic diagram of the hierarchical structure according to Embodiment 1 of the present invention;

[0047] Figure 3 is a schematic diagram of bottom-up passing of hash signatures according to Embodiment 1 of the present invention;

[0048] Figure 4 is a schematic diagram of mutual passing of hash signatures between objects in the initial bucket according to Embodiment 1 of the present invention;

[0049] Figure 5 is a schematic diagram of the 3×3 resistor array structure according to Embodiment 2 of the present invention;

[0050] Figure 6 is a schematic diagram of the hierarchical structure according to Embodiment 2 of the present invention;

[0051] Figure 7 is a schematic diagram of the series resistor loop circuit structure of two groups according to Embodiment 3 of the present invention;

[0052] Figure 8 It is a schematic diagram of the hierarchical structure according to Embodiment 3 of the present invention. Detailed implementation manners

[0053] The preferred embodiments of the present invention will be described below with reference to the accompanying drawings. It should be understood that the preferred embodiments described herein are only for the purpose of illustrating and explaining the present invention, and are not used to limit the present invention.

[0054] The embodiments of the present invention will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present invention are shown in the drawings, it should be understood that the present invention can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. On the contrary, these embodiments are provided to more thoroughly and completely understand the present invention. It should be understood that the drawings and embodiments of the present invention are only for exemplary purposes and are not used to limit the protection scope of the present invention.

[0055] As used herein, the term "comprising" and its variations are open-ended, that is, "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description.

[0056] It should be understood that the concepts such as "first" and "second" that may be mentioned in the present invention are only used to distinguish different data or units, and are not used to limit the order or interdependence of the functions performed by these data or units. These terms are only used to distinguish one feature from another. For example, without departing from the scope of the exemplary embodiments, the first feature may be referred to as the second feature, and similarly the second feature may be referred to as the first feature.

[0057] It should be noted that the modifications of "one" and "multiple" that may be mentioned in the present invention are illustrative rather than restrictive. Those skilled in the art should understand that unless clearly stated otherwise in the context, it should be understood as "one or more". "Multiple" should be understood as two or more.

[0058] LVS verification is a very important part of the chip design process, mainly including two steps: the first step is to extract the netlist file from the layout and schematic diagram, called Layout and Source (schematic diagram). The netlist describes the logical function of the circuit and the connection relationship of the devices. The second step is to compare the logical equivalence of the netlists of the two. In the netlist comparison stage, first, the connection relationship and structure of the device instances (Instances) and nets (called Nets, that is, the connections between device instances) in the netlist are matched. When no more matching can be done based on the connection relationship, there may be multiple groups of device instances or nets waiting to be matched, and they will be divided into multiple buckets. Each object in the bucket (called Objects, that is, device instances or nets) has a similar surrounding structure and connection relationship, and it is impossible to directly find a unique matching method. At this time, it is necessary to consider the properties and subtypes of the devices to determine a matching result and minimize incorrect matches as much as possible. This kind of matching is called fuzzy matching.

[0059] Actually, the matching of device instances with the same attributes affects each other, and the attributes of the device instances connected to them may not be matched. Therefore, when fuzzy matching is based on the attributes and subtypes of the devices, it is not possible to directly randomly select device instances with the same attributes for matching. Similarly, there are intricate dependencies when multiple device instances are connected. Fuzzy matching needs to comprehensively consider their overall associations to select the matching with the fewest errors or even completely correct matches. The usual solution is to start from a certain device instance or net, obtain all the objects within a certain connection range, and regard them as an overall set to try to match between the layout and the schematic diagram. However, the matching results between different sets do not have transitivity because the comparison of attribute values allows for a tolerance (that is, the attribute differences between the device instances in the layout and the schematic diagram are within a certain range). In addition, a device may have multiple attributes, which further increases the complexity of the matching. Especially for cases with highly similar structures, such as memory arrays, the search domain for matching is often very large, and sequential comparison will become very inefficient. And the search range during matching also affects the matching effect and speed. The more objects considered during the search, the fewer possible incorrect matches there may be during the matching, but the more time it takes; the fewer objects considered during the search, although the matching speed is faster, the overall may not be the relatively optimal match, which will bring a large number of incorrect matches and make it difficult to accurately locate the truly incorrect attributes or subtypes.

[0060] Embodiment 1

[0061] In an embodiment of the present invention, a fuzzy matching method based on hierarchical graph hash signature is provided, including: sorting buckets, and sequentially selecting the sorted buckets as initial buckets; expanding and hierarchically partitioning the initial buckets to divide the netlist into a hierarchical structure graph; calculating hash signatures from the bottom up for the hierarchical structure graph and transmitting them to the top layer to obtain the hash signatures of each object in the initial bucket; dividing the initial bucket into multiple sub-buckets based on the hash signatures; selecting the sub-buckets to be matched and performing matching; re-dividing the sub-buckets and performing matching iterations.

[0062] Fuzzy matching is a data matching technique for comparing two or more records and calculating the possibility that they belong to the same entity. The matching algorithm of fuzzy matching is not within the protection scope of the present invention. For the convenience of description, the term "matching" may be used in this application to refer to fuzzy matching.

[0063] Figure 1 As shown in the flowchart of the fuzzy matching method based on hierarchical graph hash signature according to Embodiment 1 of the present invention, the following will be combined with Figure 1 The specific embodiments of the present invention will be described in detail.

[0064] First, in step 101, the buckets are sorted and selected.

[0065] In an embodiment of the present invention, in LVS verification, a pair of Layout (layout) and Source (schematic) netlists have been preliminarily matched and partitioned, including the matched objects and the buckets to be matched (the objects in the buckets are the device instances or wire nets to be matched, and these objects have similar connection relationships and cannot be further partitioned). Based on this, the present invention sorts these buckets and sequentially selects the sorted buckets as the initial buckets for subsequent matching. If the current initial bucket has been accessed in this round of fuzzy matching, it is skipped because this indicates that the information of the current initial bucket has been considered when matching a certain bucket connected to it.

[0066] In the embodiments of the present invention, when sorting the buckets, the sorting is performed in the order that the net buckets precede the device instance buckets, the balanced buckets precede the unbalanced buckets, the number of objects in the bucket increases from less to more, and the degree of the objects in the bucket decreases from large to small. Here, priority is given to the Net (net) buckets because the connection relationships represented by Nets are often more important than those of Instances (device instances). Secondly, balanced buckets are considered, that is, buckets with the same number of Objects (objects) in the layout and the schematic diagram, because the connection relationships of the objects in these buckets are more likely to be correct, and there will be fewer errors starting from them, while unbalanced buckets themselves cannot be fully matched and usually contain incorrect connection relationships. Furthermore, the number of objects in the bucket is considered, with those having fewer objects being prioritized. Fewer objects in the bucket mean fewer objects to be matched and less time required. Finally, the size of the degree (e.g., if a Net is connected to three Instances, the degree is 3) of the objects in the bucket is considered, with those having a larger degree being prioritized because they are associated with more structures and are the central nodes in the netlist, which can reduce the number of fuzzy matches.

[0067] In step 102, expand and layer the initial buckets. Expand and layer the initial buckets to partition the netlist into a hierarchical structure diagram.

[0068] In the embodiments of the present invention, starting from the objects in the initial bucket, the objects in the initial bucket are regarded as the first layer, and all the objects connected to them are regarded as the second layer. Then, for the objects in the second layer, search for the objects that are connected to them and not in the first layer as the third layer, that is, the next layer of the second layer; then for each object in the next layer, similarly regard the objects that are connected to it and not in the upper layer as the new next layer until there are no objects connected to the objects in the next layer, obtaining the final hierarchical structure diagram. In this way, the netlist is partitioned into a hierarchical structure diagram, which may be a single complete connected graph or a multi-graph. In the hierarchical structure diagram, two adjacent layers alternate between nets and device instances, as Figure 2 shown, Inst represents a device instance, and Net represents a net. During the continuous expansion process, the already matched objects will not be expanded downward, which avoids meaningless expansion because their matching relationships have been clarified. The hierarchical structure obtained by expanding and layering based on the initial bucket contains several buckets. Generally speaking, the objects in one bucket should belong to the same layer, otherwise obviously their connection relationships are different and should be partitioned.

[0069] In step 103, calculate and pass the hash signatures from bottom to top. Calculate the initial hash signatures of each object in each layer; the objects in two adjacent layers are connected by a connection coefficient; starting from the bottommost layer, sequentially pass the initial hash signature of each object and its connection coefficient with the upper layer to the upper layer for combination to obtain the final hash signature of each object in the initial bucket.

[0070] In the embodiments of the present invention, in the hierarchical structure diagram, the first layer is the topmost layer and the last layer is the bottommost layer. The hash signature of each object is calculated from bottom to top and passed to the topmost layer. Eventually, each object in the initial bucket has a hash signature, which characterizes the structural, Model (subtype), and Property (attribute) features of the object within a certain range. For each layer, if the object is an Instance (i.e., the device instance layer), its hash signature is determined by its own structure, subtype, and attributes: the hash signature on the structure depends on the bucket to which the nets connected to it belong; the hash signature of the subtype depends on its own subtype; and the hash signature of the attributes depends on all its attributes. If the object is a Net (i.e., the net layer), then its three hash signatures depend on the hash signatures of the device instances connected to it.

[0071] In the embodiments of the present invention, for adjacent layers of objects, a connection coefficient is obtained according to the connection relationship between the objects: the device instance and the net are connected through Pins (pins), and each pin has a connection coefficient (Coefficient) (indicating the connection relationship between the two objects). If the coefficients are the same between different pins of the same device instance, it means that their matching can be exchanged with each other. After each object in each layer obtains its own hash signature (i.e., the initial hash signature), it is passed upward and interacts with the connection coefficient of the pin, characterizing which group of exchangeable pins the hash signature comes from, so that the same hash signature represents a similar or exchangeable connection relationship, while different hash signatures indicate that they are not equivalent. As Figure 3 shown, the hierarchical structure Figure 1 has two layers, with two objects in each layer. Among them, the objects in Layer1 (the first layer) are A and B, and the objects in Layer2 (the second layer) are C and D. Hash(A) represents the hash signature of A, Pin(A,C) represents the connection coefficient between A and C, Comb(A,B) represents the new signature obtained by the interaction of the two hash signatures of A and B, and + represents a hash signature combination method with an exchangeable order. The hash signatures of C and D in Layer 2 are passed to A and B respectively through the Pin. At this time, the hash signatures in Layer1 take into account the structure and signatures of the lower layer. For a hierarchical structure diagram with more layers, similar processing is also performed. After the above transmission, each object in the initial bucket has a hash signature that characterizes it and all the lower-layer objects connected to it.

[0072] In step 104, the buckets are divided and the range of the transmitted signature is expanded.

[0073] In the embodiments of the present invention, after obtaining the hash signatures of each object in the initial bucket in step 103, this step will partition the initial bucket based on the hash signatures, grouping the objects with the same hash signature into the same sub-bucket to obtain sub-buckets. If the partitioning based on the hash signatures is successful (the initial bucket is partitioned into at least two sub-buckets), that is, there are different hash signatures in the initial bucket, it indicates that the objects in the initial bucket are different within the current range and may need further partitioning; conversely, if no partitioning occurs based on the hash signatures, it means that the objects in the initial bucket can no longer be distinguished and no further partitioning is required.

[0074] In the embodiments of the present invention, the further partitioning is achieved through the hash signature transmission between the objects in the initial bucket. Similar to the transmission method in step 103, the hash signatures of the objects in the initial bucket are first transmitted from top to bottom and then from bottom to top, so that the hash signature of each object can be transmitted to the object closest to it.

[0075] For example: The initial bucket has 4 objects, V1 - V4. As Figure 4 shown, according to the hash signatures, the initial bucket is partitioned into two buckets, that is, V1 is placed in one bucket and V2 - V4 are placed in another bucket. After a complete up-and-down transmission, the hash signature of V1 can be passed to V2 and V3, and it will be further partitioned into three buckets, that is, V1 is placed in the first bucket, V2 and V3 are placed in the second bucket, and V4 is placed in the third bucket. Such transmission enables the matching to consider as much information as possible. The objects in the initial bucket will continuously transmit their hash signatures up and down until the bucket can no longer be partitioned.

[0076] If there are a total of V objects in the hierarchical structure diagram and the number of connection edges between them is E, then the complexity of one up-and-down transmission is O(VE). And there are N objects in the initial bucket, so the number of up-and-down transmissions does not exceed N times because after N times, each object will surely have received the hash signatures of all the objects it can receive. In actual matching, because the initial buckets with fewer objects and larger degrees are preferentially selected, and in addition, the multi-graph structures cannot transmit to each other, the number of up-and-down transmissions will not be too many. The sub-buckets obtained by partitioning the initial bucket fully consider the overall connection relationship, and the objects within the sub-buckets are completely consistent in terms of the graph structure and attributes, and the matching between them has the fewest errors.

[0077] In step 105, match the objects in each sub-bucket.

[0078] In the embodiments of the present invention, all sub-buckets to be matched are targets that can be selected and matched. Sub-buckets with a larger number of objects are preferentially selected for matching because, after their objects are matched, they often have a greater impact on the bucket division, and the total number of matches required is less. For the currently selected sub-bucket, without considering hash collisions, all objects within the bucket can be randomly matched. However, to ensure correctness, the selected matching pairs can be compared and verified. Usually, the bucket division is reasonable, and each match only needs to be verified once. The matched objects will affect the matching of other objects through the connection relationship, resulting in the re-division of the sub-bucket.

[0079] In step 106, iterate and perform multiple matches.

[0080] In the embodiments of the present invention, after the matching of the sub-buckets is completed, the re-divided sub-buckets can still be matched. By repeating step 105, multiple rounds of matching iterations can be performed on the initial bucket. If all the re-divided sub-buckets are singular buckets (buckets without objects of the layout or schematic diagram), the matching can be based on the previous division results. The appearance of singular buckets is usually because the objects in the netlist itself are inconsistent. The inconsistent objects obtain different hash signatures, and the propagation will cause this difference to spread and affect other objects. Utilizing the previous division results can enable the matching to continue. When no more matching can be performed, the iteration ends.

[0081] The fuzzy matching method based on hierarchical graph hash signatures provided by the present invention improves the performance and accuracy of fuzzy matching. In terms of performance, if there are N objects to be matched in the layout and schematic diagram respectively, originally, the sequential matching requires an order of magnitude of N×N. The present invention reduces it to an order of magnitude of N×log(N) by means of propagating hash signatures. In terms of accuracy, starting from N objects, the present invention continuously expands hierarchically and calculates hash signatures until no further expansion is possible or no further differentiation can be achieved through expansion. In this way, the meaningful connection range is searched as large as possible, and the quality of the matching is considered from an overall perspective, minimizing the errors in the matching results.

[0082] Embodiment 2

[0083] In the embodiments of the present invention, taking the fuzzy matching of a 3×3 resistor array circuit for both the layout and the schematic diagram as an example, the specific implementation manner of the present invention will be further described in detail.

[0084] As Figure 5 shown, it is a 3×3 resistor array circuit, where the resistance values of 4 resistors are 3 and the resistance values of 5 resistors are 2. Assuming that both the layout and the schematic diagram have such a circuit structure and the resistance values of the resistors to be matched are the same, perform the matching. Each device instance is connected to 2 nets, and each net is connected to 3 device instances. They cannot be distinguished solely by the connection relationship, and fuzzy matching considering attributes is required for the matching.

[0085] First, according to steps 101 - 102 of Embodiment 1, select the initial bucket and construct a hierarchical structure diagram. In this embodiment, since the connection relationships of all resistors are equivalent, there will be only two buckets, that is, all device instances are in bucket 1 and all nets are in bucket 2. Devices within the same bucket cannot be directly distinguished from each other. Select bucket 2 as the initial bucket from all buckets, and expand to obtain a hierarchical structure diagram as Figure 6 shown, where Layer 1 is Nets and Layer 2 is Insts.

[0086] According to step 103 of Embodiment 1, calculate the hash signature of the initial bucket. In this step, calculate the hash signature of each object from bottom to top in the hierarchical structure diagram. The resistance values of the resistors in Layer 2 are only 2 and 3, and their subtypes are the same. Since the matching between the layout and the schematic requires the same resistance value, they can be divided into two categories according to the resistance value. In terms of the connection relationship, each resistor is connected to two nets, and the two ends can be exchanged, so their pins are all equivalent and exchangeable. After the hash signature of the resistors in Layer 2 is passed to Layer 1 through the pins, each net in Layer 1 will obtain its own hash signature. For example, N00 is connected to three resistors R00, R10, and R20, and there is no order among the three resistors. Therefore, the hash signature of N00 contains two resistors with a resistance value of 2 and one resistor with a resistance value of 3, and the hash signature is denoted as H1. Different from N00, N01 is connected to one resistor with a resistance value of 2 and two resistors with a resistance value of 3, and the hash signature is denoted as H2. The resistance value composition of the resistors connected to N02 is the same as that of N00, and the hash signature is denoted as H1. And so on, the hash signatures of N01 and N11 are the same, and the hash signatures of the remaining 4 Nets are the same. The initial bucket will be divided into two buckets (buckets with the same hash signature are divided into one bucket).

[0087] According to step 104 of Embodiment 1, transfer the hash signature. In the previous step, the initial hash signatures of each object are obtained. According to the initial hash signatures, the initial bucket is divided into two, and the hash signature needs to be transferred to ensure that the bucket cannot be divided any further. The hash signature of each net is passed from top to bottom through the pins to the device instances, and then passed from bottom to top to other nets. For example, Figure 6 in the net N00, the hash signature H1 is passed to N10, N11, and N12 through R00, R10, and R20 respectively, and N00 also receives the hash signatures from the latter three nets N10, N11, and N12. From Figure 5As can be seen, at this time, the hash signature of N00 already contains the information of the entire array circuit. It is first connected to three resistors R00, R10, and R20, and then via the nets at the other ends of these resistors to the remaining six resistors. It can be seen that through the transmission of the hash signature, the value of the hash signature has changed, but the partitioning result remains the same. The hash signatures of N01 and N11 are still the same (both are H2), and the hash signatures of the remaining 4 nets N00, N02, N10, and N12 are the same (both are H1). At this time, it shows that the transmission of the hash signature can no longer cause further bucketing, and the current sub-buckets should be matched.

[0088] According to step 105 of Embodiment 1, match the sub-buckets. From the larger sub-bucket, that is, the sub-bucket containing N00, N02, N10, and N12, select a pair of nets to try to match. Assume that N00 of the layout and the schematic diagram is selected for matching. After comparison, it is found that their connection relationships and attributes are exactly the same, so the matching is successful. After N00 is matched, it is separated from the original bucket, and its matching will be passed to other nets. The transmission here is also achieved by continuously updating the hash signature of the net and the device instance through the pins. Looking Figure 5 from above, the hash signature of N00 will first be passed to N10, N11, and N12, and then to N01 and N02. Combining the original sub-bucket partitioning, the sub-buckets where N11 and N01 are located are divided into two buckets with unique matching objects; the other sub-bucket is divided into two buckets, one bucket for N02, and one bucket for N10 and N12. At this time, there are 3 sub-buckets with unique matching objects, all of which are generated by the matching of N00 and can be directly matched.

[0089] According to step 106 of Embodiment 1, perform matching iteration. In this example, after the previous round of matching, only the sub-bucket where N10 and N12 are located remains unmatched. Therefore, there are buckets that can be matched, and the fuzzy matching will continue iteratively. Similarly, select a pair to try to match. For example, select N10. After N10 is matched, only N12 that can be uniquely matched remains. After N12 is also matched, all the nets are completed, and the fuzzy matching of the nets ends this time. The subsequent matching algorithm can quickly complete the matching of the corresponding resistors based on the matching results of the nets.

[0090] Embodiment 3

[0091] In the embodiments of the present invention, taking the fuzzy matching of a circuit where both the layout and the schematic diagram are composed of 5 resistor series rings and 3 resistor series rings as an example, the specific implementation manners of the present invention will be further described in detail.

[0092] As Figure 7As shown, it is a circuit composed of 5 series-connected resistor loops and 3 series-connected resistor loops. Such a circuit structure exists in both the layout and the schematic diagram. In terms of resistance values: the resistance value of resistor R0 in the layout is 3, and the resistance value of resistor R0 in the schematic diagram is 4. The resistance values of the remaining resistors are all 2. The resistors to be matched should have the same resistance value, and matching is carried out for this. Since each device instance is connected to 2 nets, and each net is connected to 2 device instances, they cannot be distinguished solely based on the connection relationship, and fuzzy matching considering attributes is required for matching.

[0093] First, according to steps 101 - 102 of Embodiment 1, select the initial bucket and construct the hierarchical structure. The device instances and nets are each in one bucket, and within the bucket, they cannot be directly distinguished from each other by virtue of the local connection relationship. Select the net bucket as the initial bucket from all the buckets, and the hierarchical structure obtained by expansion is as shown in Figure 8 As shown, Layer 1 is Nets, Layer 2 is Insts, where N0 - N4 are interconnected, and N5 - N7 are interconnected, that is, the hierarchical structure diagram is a connected graph.

[0094] According to step 103 of Embodiment 1, calculate the hash signature of the initial bucket. Calculate the hash signature of the objects from bottom to top. Only the resistance value of R0 in Layer 2 is different, which will directly affect the hash signatures of N0 and N1; and the device instances and nets included in N0 - N4 and N5 - N7 on the connected graph are different, so the hash signatures are naturally different. In summary, the hash signatures of Layer 1 in the layout and the schematic diagram will be divided into 4 types. The hash signatures of N0 and N1 in the layout are H1, the hash signatures of N0 and N1 in the schematic diagram are H2, the hash signatures of N2 - N4 in both the layout and the schematic diagram are H3, and the hash signatures of the remaining nets are all H4. Thus, the initial bucket will be divided into 4 sub - buckets, including 2 balanced buckets and 2 singular buckets.

[0095] According to steps 103 - 104 of Embodiment 1, pass the hash signature. The hash signatures of each sub - bucket will be passed to each other through the connection relationship of the pins, as shown in Figure 8 In it, the hash signatures of the nets in the singular bucket will gradually contaminate other nets in the connected graph. After the first round of passing the hash signature up and down, the hash signatures of N0 and N1 will be passed to N2 and N4; in the second round, it will be further passed to N3. After two rounds of passing, the initial bucket will be divided into 7 sub - buckets. N0 and N1 in the layout are sub - bucket 1, N2 and N4 are sub - bucket 2, N3 is sub - bucket 3; N0 and N1 in the schematic diagram are sub - bucket 4, N2 and N4 are sub - bucket 5, N3 is sub - bucket 6; the remaining objects are divided into sub - bucket 7. At this time, there is only one balanced bucket in the sub - bucket, and further division cannot be carried out by passing the hash signature.

[0096] According to steps 105-106 of Embodiment 1, perform the matching and iteration of sub-buckets. This step includes: selecting a pair of objects of the layout and the schematic diagram from the current sub-bucket for matching. After successful matching, assign a unique hash signature to this object and pass it to the objects connected to it. If no new sub-buckets are generated after passing based on the unique hash signature, continue to select objects from the current sub-bucket for matching until only the last object to be matched remains in the current sub-bucket, and directly match it. For example, select a pair of nets from the only balanced bucket, that is, sub-bucket 7 containing N5, N6, and N7, to attempt matching. Assume that N5 of the layout and the schematic diagram is selected for matching. After successful matching, assign a unique hash signature to N5 and pass it. Since N5 is only connected to N6 and N7, the hash signature of N5 will only be passed to them after matching. Since no new sub-buckets are generated after passing, the matching of the balanced bucket will continue. For example, after N6 is continued to be matched, at this time only N7 remains to be matched, and it will be directly matched.

[0097] After the above matching is completed, there are 6 remaining singular buckets, that is, sub-buckets 1-6, which cannot be directly matched. At this time, the bucket division result after passing the hash signature before will be used to attempt matching. That is, before the second round of hash signature passing in the above steps, N3 of the layout and the schematic diagram are in the same sub-bucket, and this sub-bucket is the balanced bucket farthest from the sub-bucket where the error is located (that is, the bucket where N0 and N1 are located), and N3 is directly matched. Since N3 is the only object to be matched in the balanced bucket, its hash signature does not need to be passed to the objects in other buckets within the connected graph. After N3 is matched, there are 4 remaining singular buckets, and it is necessary to judge the earlier bucket division result again, and it is obtained that N2 and N4 of the layout and the schematic diagram are in the same sub-bucket. Similarly, match and update their hash signatures successively. After the above matching is completed, only bucket 1 where N0 and N1 of the layout are located and bucket 2 where N0 and N1 of the schematic diagram are located remain. Although their hash signatures of attributes are different, their connection relationships are similar. Therefore, they can be matched depending on the connection relationship. After the matching is completed and there are no more objects to be matched, the fuzzy matching iteration of the net is ended. Based on the results of this fuzzy matching, the subsequent matching algorithm can quickly perform the matching of resistors and report that the resistance value of the matched resistor R0 is inconsistent. This is the matching result with the fewest error reports and can more accurately locate the error source.

[0098] In this embodiment, a fuzzy matching and iteration strategy for the objects to be matched in the connected graph is provided, as well as a pruning strategy for special cases such as unique matching objects. The sub-buckets to be matched are divided based on the hash signature, and the best candidate matching objects in the current round are continuously screened through the iterative passing method, making the matching between objects transitive, and considering the connection range of the objects as large as possible to perform fuzzy matching on the buckets, ensuring the performance of fuzzy matching while minimizing the wrong matching.

[0099] Those of ordinary skill in the art can understand that the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art can still modify the technical solutions described in the foregoing embodiments or perform equivalent replacements for some of the technical features. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.

Claims

1. A fuzzy matching method based on hierarchical graph hashing signature, characterized in that Including: Sort the buckets, and sequentially select the sorted buckets as the initial buckets; Expand and layer the initial buckets, and divide the netlist into a hierarchical structure diagram; Calculate the hash signatures from bottom to top for the hierarchical structure diagram and transfer them to the top layer to obtain the hash signatures of each object in the initial bucket; Divide the initial bucket into multiple sub-buckets based on the hash signatures; Select the sub-buckets to be matched and perform matching; Redivide the sub-buckets and perform matching iterations.

2. The fuzzy matching method based on hierarchical graph hash signature according to claim 1, characterized in that The step of sorting the buckets and sequentially selecting the sorted buckets as the initial buckets further includes: Sort in the order that the wire net buckets precede the device instance buckets, the balanced buckets precede the unbalanced buckets, the number of objects in the bucket increases from less to more, and the degree of the objects in the bucket decreases from large to small; For the balanced bucket, the number of layout and schematic objects it contains is the same; The degree of the object refers to the number of device instances connected around the wire net or the number of wire nets connected around the device instance.

3. The fuzzy matching method based on hierarchical graph hash signature according to claim 1, characterized in that The step of expanding and layering the initial buckets and dividing the netlist into a hierarchical structure diagram further includes: If the current initial bucket has been accessed in the current round of fuzzy matching, skip the current initial bucket.

4. The fuzzy matching method based on hierarchical graph hash signature according to claim 1, characterized in that The step of expanding and layering the initial buckets and dividing the netlist into a hierarchical structure diagram further includes: Take the objects of the initial bucket as the first layer, and take all the objects connected to the objects of the initial bucket as the second layer; For the objects of the second layer, take the objects connected to them and not in the first layer as the next layer; For the objects of the next layer, take the objects connected to them and not in the upper layer as the new next layer until there are no objects connected to the objects of the new next layer, to obtain the final hierarchical structure diagram; In the hierarchical structure diagram, the first layer is the top layer and the last layer is the bottom layer.

5. The fuzzy matching method based on hierarchical graph hashing signature according to claim 4, wherein, The step of calculating the hash signatures from bottom to top for the hierarchical structure diagram and transferring them to the top layer to obtain the hash signatures of each object in the initial bucket further includes: Calculate the initial hash signatures of each object in each layer; For the objects between adjacent layers, obtain the connection coefficients according to the connection relationship of the objects; Starting from the bottom layer, sequentially transfer the initial hash signature of each object and its connection coefficient with the upper layer to the upper layer for combination to obtain the final hash signature of each object in the initial bucket.

6. The fuzzy matching method based on hierarchical graph hash signature according to claim 5, characterized in that, The step of calculating the hash signatures of each object in each layer further includes: For the device instance layer, determine the structure hash signature according to the device instance and the bucket to which the connected wire net belongs; determine the subtype hash signature according to the subtype of the device instance; determine the attribute hash signature according to all the attributes of the device instance; For the wire net layer, determine the structure hash signature, subtype hash signature, and attribute hash signature according to the hash signatures of the device instances connected to the wire net.

7. The fuzzy matching method based on hierarchical graph hash signature according to claim 1, characterized in that, The step of dividing the initial bucket into multiple sub-buckets based on the hash signatures further includes: Divide the objects with the same hash signature in the initial bucket into the same sub-bucket; if the division based on the hash signature is successful, transfer the hash signatures among the objects in the initial bucket to each other and further divide the initial bucket based on the transferred hash signatures; The step of passing the hash signature among the objects within the initial bucket and further dividing the initial bucket based on the passed hash signature further includes: passing the hash signatures of the respective objects in the initial bucket from top to bottom and then from bottom to top, and re-dividing the initial bucket based on the passed hash signatures to obtain sub-buckets.

8. The fuzzy matching method based on hierarchical graph hashing signature according to claim 7, characterized in that The step of selecting the sub-buckets to be matched and performing matching further includes: For non-singular buckets, select the objects therein one by one for matching; For singular buckets, if they are merged into non-singular buckets after reducing the number of rounds of passing the hash signature, then select the objects for matching; The singular buckets only contain objects of the layout or objects of the schematic diagram.

9. The fuzzy matching method based on hierarchical graph hash signature according to claim 1, wherein, The step of selecting the sub-buckets to be matched and performing matching further includes: sequentially selecting the sub-buckets for matching in the order of the number of objects in the bucket from more to less.

10. The fuzzy matching method based on hierarchical graph hash signature according to claim 1, wherein The step of re-dividing the sub-buckets and performing matching iterations further includes: Select a pair of objects of the layout and the schematic diagram from the current sub-bucket for matching. After successful matching, assign a unique hash signature to the pair of objects and pass it to the objects connected thereto; If no new sub-buckets are generated after passing based on the unique hash signature, continue to select objects from the current sub-bucket for matching until there is only one object to be matched left in the current sub-bucket, and directly perform matching on it; If there are no sub-buckets available for matching and there are multiple remaining singular buckets, then roll back the division of the sub-buckets, reduce the number of rounds of passing the hash signature, and use the hash signature division results of the previous rounds for matching.

Citation Information

Cited By

  • Directional grouping index-based mask rule check rapid query method and device, medium, program product and terminal

    CN121454858A

  • Fast query methods, devices, media, program products, and terminals based on mask rule checking using directional grouping indexes.

    CN121454858B