Management method and form verification method of clauses corresponding to dynamic integrated circuit

By dynamically managing learning clauses and utilizing multi-level interval diversion and conflict frequency evaluation value update mechanisms, the problem of inaccurate quality assessment of learning clauses is solved, and the solution efficiency and memory utilization of integrated circuit verification are improved.

CN120805820AActive Publication Date: 2025-10-17SHENZHEN GOUWEIXIN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511301478.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-09-12
Publication Date
2025-10-17
Estimated Expiration
2045-09-12

AI Technical Summary

Technical Problem

In the existing technology, the quality assessment of learning clauses is not accurate enough, resulting in low effectiveness of learning clause management, which affects the efficiency of SMT solvers in large-scale integrated circuit verification.

Method used

A dynamic clause management method corresponding to integrated circuits is adopted. Through multi-level interval diversion and conflict frequency evaluation value update mechanism, the changes in clause quality are accurately reflected, and learning clauses with high usage value are retained and low-quality clauses are deleted.

Benefits of technology

The solution efficiency of the SMT solver in large-scale integrated circuit verification is improved, memory usage is reduced, the efficiency of Boolean constraint propagation is improved, and the risk of premature deletion of high-quality clauses is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120805820A_ABST
    Figure CN120805820A_ABST
Patent Text Reader

Abstract

The invention discloses a dynamic management method and a form verification method for clauses corresponding to an integrated circuit. The method for managing the clauses corresponding to the dynamic integrated circuit comprises the following steps of: 1, converting to-be-verified attributes of integrated circuit design into an SMT (Surface Mount Technology) problem for solving; 2, dividing the learning clauses in the learning clause set into a plurality of intervals according to the LBD values of the learning clauses; 3, for each learning clause without the evaluation value, calculating the evaluation value according to the LBD value of the learning clause; 4, learning clauses between intervals except the interval with the maximum LBD value are moved according to the evaluation value; deleting a part of learning clauses with relatively large evaluation values in the interval with the maximum LBD value; and 5, when conflict analysis is carried out on the clauses, updating the evaluation values of the learning clauses, adding the learning clauses obtained by conflict analysis into the learning clause set, and returning to the step 2. According to the method, high-quality learning clauses can be effectively reserved, and low-quality learning clauses can be deleted in time.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of formal verification of integrated circuit design, and particularly to a dynamic management method of clauses corresponding to an integrated circuit. BACKGROUND

[0002] With the continuous increase of the scale and complexity of digital circuits, model checking-based formal verification technology has become a key means in circuit property verification. As shown in the formula (1), the current verification process usually converts the to-be-verified property into a satisfiability modulo theories (SMT) problem by constructing a circuit model, and then solves the problem by using an SMT solver. If the property P is true, the input negation Not (P) cannot occur (UNSAT), and if the property P is not true, the solver will provide a counterexample, i.e., an assignment that satisfies Not (P) (SAT), to help designers understand the reason why the property P is not true and how to fix the problem. Figure 1

[0003] However, with the expansion of the circuit scale, the number of variables and constraints involved in the SMT problem increases dramatically, resulting in a significant increase in solving complexity and computing resource consumption. In particular, SMT solvers based on the DPLL algorithm (Davis-Putnam-Logemann-Loveland algorithm) have gradually revealed limitations in dealing with large-scale problems. The DPLL algorithm determines whether a CNF formula composed of the conjunction of clauses is satisfiable (SAT / UNSAT), performs PCB propagation through variable assignment, eliminates variables that only appear in one polarity for pure literal simplification, guesses the value of unassigned variables for decision-making, and backtracks when conflicts are found, undoing part of the assignment and trying other branches.

[0004] ​To improve the verification efficiency, various improvement strategies are introduced in the prior art, such as the restart mechanism, the activity-based branch heuristic and the conflict-driven clause learning (CDCL) technology. The CDCL technology adds a new constraint (for example, formally taking the opposite of the conflict clause) to the original formula by analyzing the cause of the conflict, that is, which assignment of the variable leads to the final conflict, to prevent the same conflict from occurring in the next search process. The CDCL technology extracts and learns key information at the time of conflict, and then adds the generated clauses to the CNF expression of the SMT problem, effectively prunes the search space, and becomes the current mainstream solving strategy. However, in large-scale SMT problems, frequent conflicts will lead to the generation of a large number of learned clauses, and these accumulated clauses not only occupy a large amount of memory, but also can reduce the efficiency of Boolean constraint propagation (BCP), thereby affecting the overall solving performance. The existing clause management methods mostly rely on preset timing cleaning strategies and single evaluation indicators, and cannot effectively retain high-quality clauses and delete low-quality clauses. For example, only considering the size of the LBD value of the clause when evaluating the clause leads to evaluation errors in the quality of the clause.

[0005] Therefore, under the constraints of limited computing resources and time, how to more accurately evaluate the quality of the clause and manage the clause to improve the SMT solving efficiency becomes a key problem to be solved. SUMMARY

[0006] The present application proposes a dynamic integrated circuit corresponding clause management method and a formal verification method to solve the technical problem that the evaluation of the quality of the learned clause in the prior art is not accurate enough, resulting in low management effectiveness of the learned clause.

[0007] The dynamic integrated circuit corresponding clause management method proposed by the present application comprises: Step 1, converting the to-be-verified attribute of the integrated circuit design into a satisfiability modulo theory problem, and solving by using a satisfiability modulo theory solver; Step 2, obtaining a current learned clause set, and dividing the learned clauses in the learned clause set into multiple intervals according to the LBD values of the learned clauses; Step 3, for each learned clause without an evaluation value, calculating an evaluation value according to the LBD value thereof, and sorting the learned clauses in each interval according to the size of the evaluation value; Step 4, for other intervals except the intervals with the minimum and maximum LBD values, performing the following processing: moving a part of the learned clauses with larger evaluation values in the currently processed interval to a next adjacent interval with a larger LBD value than the currently processed interval, and moving a part of the learned clauses with smaller evaluation values to a previous adjacent interval with a smaller LBD value than the currently processed interval; The part of the learning clause with a larger evaluation value in the interval with the smallest LBD value is moved to a next adjacent interval with a larger LBD value than the interval; The part of the learning clause with a larger evaluation value in the interval with the largest LBD value is deleted. Step 5, when the conflict analysis is performed on the clause, it is determined whether the current clause is a learning clause, if yes, the evaluation value of the learning clause is updated according to the LBD value of the learning clause, the number of conflicts when the learning clause is generated and the number of conflicts used in the conflict analysis, the learning clause obtained by the conflict analysis is added to the learning clause set, and step 2 is returned.

[0008] Further, for each learning clause without an evaluation value, the evaluation value is calculated according to the LBD value of the learning clause, and the formula 1 / LBD value is used for calculation.

[0009] Further, for each learning clause without an evaluation value, the evaluation value is calculated according to the LBD value of the learning clause, and the formula is calculated, wherein, is the error strength (0.01-0.1), C is the learning clause, and Noise(C) is the random noise.

[0010] Further, for each learning clause without an evaluation value, the evaluation value is calculated according to the LBD value of the learning clause, and the formula is calculated, wherein, is a fixed offset, , C is the learning clause.

[0011] Further, for each learning clause without an evaluation value, the evaluation value is calculated according to the LBD value of the learning clause, and the formula is calculated, wherein, is an offset, C is the learning clause, and k is the LBD threshold value.

[0012] Further, the evaluation value of the learning clause is updated according to the LBD value of the learning clause, the number of conflicts when the learning clause is generated and the number of conflicts used in the conflict analysis, and the formula E = A*P + (1-A)*E is used for updating, A is the attenuation factor, P i =P i-1 +1 / (S2-S1), S1 is the number of conflicts when the learning clause is generated, S2 is the number of conflicts used in the conflict analysis, and after the P value is obtained, the value of S2 is used to replace the value of S1, when S1=S2, P=1.

[0013] Further, when a part of the learning clause in each interval is moved to the previous or next adjacent interval, the first or last quarter of the learning clause in the interval is selected to be moved.

[0014] Further, the half of the learning clauses with smaller evaluation values in the interval with the largest LBD value are deleted.

[0015] The form verification method provided by the application manages the learning clauses generated in the solving of the integrated circuit design by the SMT solver by using the management method of the dynamic integrated circuit corresponding clauses.

[0016] The application uses multi-level intervals to dynamically distribute the learning clauses, which can more accurately reflect the change trend of the clause quality with the use, so that the algorithm is more inclined to retain the learning clauses with high use value. The application further adds the conflict frequency to the calculation of the evaluation value of the learning clause, so that the evaluation value of the part of the clauses can be quickly updated to a reasonable value when the clauses are started in the solving process, avoiding being deleted too early. BRIEF DESCRIPTION OF DRAWINGS

[0017] The application will be described in detail below with reference to the embodiments and drawings, in which: Figure 1 is the main flowchart of the form verification of the integrated circuit in the prior art.

[0018] Figure 2 is the learning clause dynamic management flowchart of an embodiment of the application. DETAILED DESCRIPTION

[0019] In order to make the technical problems, technical solutions and beneficial effects of the application more clear and explicit, the application will be further described in detail below with reference to the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the application and not to limit the application.

[0020] Therefore, one feature described in the specification will be used to explain one feature of one embodiment of the application, and it is not implied that each embodiment of the application must have the explained feature. In addition, it should be noted that the specification describes many features. Although some features can be combined together to show possible system designs, these features can also be used in other combinations that are not explicitly described. Therefore, unless otherwise stated, the described combinations are not intended to be limiting.

[0021] The dynamic integrated circuit corresponding clause management method of the application mainly includes the following steps.

[0022] Step 1, converting the to-be-verified attribute of the integrated circuit design into a SMT problem, and solving by using a SMT solver; Step 2: Obtain the current set of learning clauses and divide them into multiple intervals based on their LBD values. The LBD value refers to the number of assignment levels contained in the learning clause. A smaller LBD value indicates that the learning clause contains fewer assignment levels, and the constraints between variables are more compact.

[0023] Step 3: For each learning clause without an evaluation value, calculate the evaluation value based on its LBD value; sort the learning clauses in each interval according to the size of the evaluation value; Step 4: Perform the following processing on the intervals other than the intervals with the minimum and maximum LBD values: move some learning clauses with larger evaluation values ​​in the currently processed interval to the next adjacent interval with a larger LBD value than the currently processed interval, and move some learning clauses with smaller evaluation values ​​to the previous adjacent interval with a smaller LBD value than the currently processed interval; Move a portion of the learning clauses with larger evaluation values ​​in the interval with the smallest LBD value to the next adjacent interval with a larger LBD value than the interval; Delete some learning clauses with larger evaluation values ​​in the interval with the smallest LBD value; Step 5. When performing conflict analysis on a clause, determine whether the current clause is a learning clause. If so, update the evaluation value of the learning clause based on the LBD value of the learning clause, the number of conflicts when the learning clause is generated, and the number of conflicts used in the conflict analysis. Add the learning clause obtained by the conflict analysis to the learning clause set and return to step 2.

[0024] The present invention calculates the evaluation value of the learning clause based on the LBD value, and deletes the learning clauses with both low LBD value and evaluation value, effectively deleting the learning clauses with low quality. The present invention also adds a conflict frequency evaluation mechanism, calculates the evaluation value of the learning clause by the conflict frequency, accelerates the update rate of the learning clause, and enables the learning clauses that are frequently used in a short period of time to quickly improve their evaluation value, effectively retaining high-quality learning clauses.

[0025] In one embodiment, for each learning clause without an evaluation value, the evaluation value is calculated according to its LBD value using the formula 1 / LBD value.

[0026] The larger the LBD value, the smaller the evaluation value, which can filter out low-quality clauses with a large number of assignment layers and too loose constraints between variables.

[0027] In addition to the above formula, there are other forms of calculating the evaluation value based on the LBD value. For example, the reciprocal of the LBD value can be linearly transformed by introducing an error term. The specific formula is as follows.

[0028]

[0029] By breaking the strict ordering of LBD values through small perturbations, over-reliance on a single metric is avoided.

[0030] wherein, is the error strength, which can be set as needed, for example, set to [0.01, 0.1], C is the learning clause, Noise(C) is random noise, which can be uniformly distributed in [-1, 1], for example, or a bias based on other features of the clause, such as a bias based on the length of the clause, or a bias based on the number of times of participating in conflicts, etc.

[0031] In another embodiment, the reciprocal of the LBD value can also be adjusted by a non-linear decay, and the evaluation value can be calculated according to the LBD value using the following formula.

[0032]

[0033] The formula compresses the difference of high LBD values and avoids the dominant role of extreme values, wherein, is a fixed offset, which can be regarded as compensation for LBD error, for example, the value of can be defined as [0.5~2].

[0034] In other embodiments, a piecewise function can also be used to calculate the evaluation value, as shown in the following formula.

[0035]

[0036] In this embodiment, the advantage of the learning clause with low LBD value is strengthened, and the clause with high LBD value is suppressed, wherein k is the threshold value of the LBD value, and r is the offset. For example, a person skilled in the art can define k as [3, 5] and r = 0.05, etc. according to needs.

[0037] The values of the parameters in the above embodiments can be determined by a person skilled in the art according to the range of LBD values of the specific circuit, and the details of the above listed data are for illustrating the concept of the present application, and are not used to limit the protection scope of the present application.

[0038] In one embodiment, the evaluation value of the learning clause is updated according to the LBD value of the learning clause and the number of conflicts when the learning clause is generated and the number of conflicts used in conflict analysis, using the formula E = A*P + (1-A)*E, A is the decay factor, P = 1 / (S2 – S1), S1 is the number of conflicts when the learning clause is generated, S2 is the number of conflicts used in conflict analysis, and after obtaining the value of P, the value of S2 is used to replace the value of S1, and when S1 = S2, P = 1.

[0039] The embodiment adds the conflict frequency to the evaluation value, can quickly promote the evaluation value of the clause with high frequency, and effectively screens the high-quality clause. Once the clause is enabled in the subsequent solving process, the evaluation score of the clause is quickly updated, so that the clause is effectively retained. The design maximally reduces the risk of losing potential useful clauses in the later period due to early deletion, and optimizes the overall quality and solving efficiency of the learned clause library.

[0040] In an embodiment, when moving a part of the learned clauses in each interval to the previous or next adjacent interval, the top or bottom quarter of the learned clauses in the interval is selected for moving. For the middle interval with the evaluation value not being the maximum or minimum, half of the learned clauses can be moved each time, effectively adjusting the active clauses in each interval. Of course, the application is not limited to moving a quarter each time, and those skilled in the art can adjust the number of moving each time as needed.

[0041] In an embodiment, the application deletes the half of the learned clauses with small evaluation values in the interval with the maximum LBD value.

[0042] The screening of the clauses with large LBD values and small evaluation values realizes the screening of the low-quality learned clauses, and deleting the clauses can avoid the problem of too many clauses in the SMT solving process, effectively reduce the memory burden, and improve the efficiency of the Boolean constraint propagation (BCP propagation).

[0043] The application also protects a formal verification method, which uses the above technical solution of the dynamic management method of the clauses corresponding to the integrated circuit to manage the learned clauses generated when the integrated circuit design is solved by using a satisfiability modulo theory solver.

[0044] As shown in Figure 2 The application divides the learned clause set into three intervals for example, and the technical solution of the application is described in detail. It should be noted that the application is not limited to dividing the learned clause set into three intervals, but can also be two intervals, four or more intervals, and the specific number can be considered by those skilled in the art according to the size of the integrated circuit and other factors.

[0045] First, a set of learning clauses C is obtained, and the learning clauses are divided into three categories according to the size of the LBD value of each learning clause, that is, three intervals. Among them, the learning clauses with an LBD value less than or equal to 6 are divided into a category, that is, C1; then the learning clauses with an LBD value greater than 6 and less than or equal to 12 are divided into a category, that is, C2; and the learning clauses with an LBD value greater than 12 are divided into a category, that is, C3. The specific threshold value of the LBD value is selected according to the LBD value of all learning clauses in the set of learning clauses, and the specific numerical value listed in the embodiment is not used to limit the protection scope of the present application.

[0046] The evaluation value of each learning clause is calculated, and the calculation method is as follows: The conflict frequency is calculated, and the calculation of the conflict frequency is performed in the conflict analysis. Each time the conflict analysis is performed, it is judged whether the clause is a learning clause. If it is a learning clause, the current score P is calculated; The calculation of the current score P requires that the variables required for the calculation of the conflict frequency be defined for each learning clause, including: the number of conflicts S1 when the learning clause is generated, and the number of conflicts S2 when it is used in the conflict analysis. Each time the current score P is calculated, the size of S1 and S2 is judged. If the two values are equal, P is 1, otherwise, P i = P i-1 + 1 / (S2– S1); After obtaining the current score P each time, the value of S2 is used to replace the value of S1, and it is updated. In this way, the next time P is calculated, the updated frequency of the last time will not be added. The current score P needs to be accumulated each time it is used in the learning clause, so the update of the P value is in the form of accumulation, that is, the P value of a learning clause = the current P value + all previous calculated P values.

[0047] The evaluation value E is initialized and updated. The initialization of the evaluation value E is performed after the learning clause is generated and the LBD value is obtained, and the initialization is the reciprocal of the LBD value, that is, E = 1 / LBD value. The update of the evaluation value E is performed after the calculation of the current score P is completed, and the following formula is used to update it.

[0048] E = A*P + (1-A)*E Wherein, A is a decay factor, when A<0.6, it is set to 10 -6 . The decay factor controls the relative weight between the recent and past data, and the setting of the value of the decay factor will have a certain influence on the final result. The value of the decay factor is obtained according to the exponentially weighted average of the combination sequence. The A initialization value is less than 0.6, for example, it can be 0.4, and the specific value of A can be obtained through the variable monitoring of the formal verification tool. The combination sequence referred to in the present application is a sequence composed of the LBD values of all learning clauses.

[0049] The three intervals C1, C2 and C3 above will be updated synchronously with the evaluation value E of the learning clause when the learning clause is updated in the BCP propagation and conflict analysis; When the learning clause is divided into interval C2, the learning clauses are first sorted according to the evaluation value E from large to small, and then the first quarter is moved to interval C1 and the last quarter is moved to interval C3.

[0050] When the learning clause is divided into interval C1, the learning clauses are first sorted according to the evaluation value E from large to small, and then the last quarter is moved to interval C2. The processing order of intervals C1 and C2 is not limited.

[0051] Finally, the deletion of the learning clauses in interval C3, similarly, the learning clauses are sorted according to the evaluation value E from large to small, and the last half of the learning clauses are deleted.

[0052] This embodiment designs a three-level (C1, C2, C3) learning clause grading flow mechanism, which can more accurately reflect the trend of the quality of the clauses changing with the use, so that the algorithm is more inclined to retain the learning clauses with high use value. In particular, the C3 layer regularly deletes the last half of the clauses with low evaluation scores, and this strategy allows the first half of the clauses that are not used temporarily to be retained for a period of observation. Once these clauses are enabled in the subsequent solving process, their evaluation scores will be updated quickly, thereby effectively ensuring their retention. This design maximizes the reduction of the risk of losing potentially useful clauses in the later period due to premature deletion, and optimizes the overall quality and solving efficiency of the learning clause library.

[0053] The above only describes the preferred embodiments of the present application and is not intended to limit the present application. Any modification, equivalent replacement and improvement made within the spirit and principle of the present application shall be included in the protection scope of the present application.

Claims

1. A method for managing clauses corresponding to dynamic integrated circuits, characterized in that: include: Step 1: Convert the properties to be verified of the integrated circuit design into a satisfiability modulus theory problem and solve it using a satisfiability modulus theory solver; Step 2: Obtain the current learning clause set, and divide the learning clauses in the learning clause set into multiple intervals according to the LBD values ​​of the learning clauses; Step 3: For each learning clause without an evaluation value, calculate the evaluation value based on its LBD value; sort the learning clauses in each interval according to the size of the evaluation value; Step 4: Perform the following processing on the intervals other than the intervals with the minimum and maximum LBD values: move some learning clauses with larger evaluation values ​​in the currently processed interval to the next adjacent interval with a larger LBD value than the currently processed interval, and move some learning clauses with smaller evaluation values ​​to the previous adjacent interval with a smaller LBD value than the currently processed interval; Move a portion of the learning clauses with larger evaluation values ​​in the interval with the smallest LBD value to the next adjacent interval with a larger LBD value than the interval; Delete some learning clauses with larger evaluation values ​​in the interval with the largest LBD value; Step 5. When performing conflict analysis on a clause, determine whether the current clause is a learning clause. If so, update the evaluation value of the learning clause based on the LBD value of the learning clause, the number of conflicts when the learning clause is generated, and the number of conflicts used in the conflict analysis. Add the learning clause obtained by the conflict analysis to the learning clause set and return to step 2.

2. The method for managing clauses corresponding to dynamic integrated circuits according to claim 1, wherein: For each learning clause without an evaluation value, the evaluation value is calculated according to its LBD value using the formula 1 / LBD value.

3. The method for managing clauses corresponding to dynamic integrated circuits according to claim 1, wherein: For each learning clause without evaluation value, the evaluation value is calculated according to its LBD value using the formula Calculate, where is the error intensity (0.01~0.1), C is the learning clause, and Noise(C) is the random noise.

4. The method for managing clauses corresponding to dynamic integrated circuits according to claim 1, wherein: For each learning clause without evaluation value, the evaluation value is calculated according to its LBD value using the formula Calculate, where is a fixed offset, , C is the learning clause.

5. The method for managing clauses corresponding to dynamic integrated circuits according to claim 1, wherein: For each learning clause without evaluation value, the evaluation value is calculated according to its LBD value using the formula Calculate, where is the offset, C is the learning clause, and k is the LBD threshold.

6. The method for managing clauses corresponding to dynamic integrated circuits according to any one of claims 2 to 5, wherein: The evaluation value of the learning clause is updated according to the LBD value of the learning clause, the number of conflicts when the learning clause is generated, and the number of conflicts used in the conflict analysis. The specific formula is E = A*P + (1-A)*E, where A is the attenuation factor and P is the attenuation factor. i =P i-1 +1 / (S2 – S1), where S1 is the number of conflicts when generating the learning clause, and S2 is the number of conflicts used in conflict analysis. After obtaining the P value, the value of S2 is used to replace the value of S1. When S1=S2, P=1.

7. The method for managing clauses corresponding to dynamic integrated circuits according to any one of claims 2 to 5, wherein: When moving a portion of the learning clauses in each interval to the previous or next adjacent interval, the quarter of the learning clauses with the evaluation values ​​at the front or back of the interval are selected for moving.

8. The method for managing clauses corresponding to dynamic integrated circuits according to any one of claims 2 to 5, wherein: Delete half of the learning clauses with smaller evaluation values ​​in the interval with the largest LBD value.

9. A formal verification method, characterized in that When solving the integrated circuit design using the satisfiability modulo theory solver, the generated learning clauses are managed using the dynamic integrated circuit corresponding clause management method as described in any one of claims 1 to 8.

Citation Information

Patent Citations

  • Method for deleting learning clauses in Boolean satisfiability solver, and Boolean satisfiability solver

    CN112800681A

  • Method for deleting learning clauses based on LBD and Berkmin strategies

    CN116957081A