Constraint optimization method and device, computer equipment and storage medium

By parsing and compiling logs and linear programming algorithms to optimize constraint files, the problems of constraint conflicts and redundant data in chip verification are solved, and verification efficiency and accuracy are improved.

CN119294348AActive Publication Date: 2025-01-10SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202411284980.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-13
Publication Date
2025-01-10
Estimated Expiration
2044-09-13

AI Technical Summary

Technical Problem

There are constraint conflicts in the design and implementation of randomized constraints in existing chip verification, which is difficult to identify and resolve, resulting in the generation of redundant test data and reduce verification efficiency.

Method used

By analyzing the compiled log to obtain constraint conflict information, using a linear planning algorithm to calculate the maximum satisfaction domain of the conflict variable, and introducing a usability evaluation mechanism to automatically adjust the constraint files to avoid conflicts and redundant data.

Benefits of technology

It significantly improves the efficiency and accuracy of constraint conflict identification and resolution, reduces the generation of redundant test data, optimizes the accuracy of test cases, and thus improves the efficiency of chip verification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119294348A_ABST
    Figure CN119294348A_ABST
Patent Text Reader

Abstract

The invention relates to a constraint optimization method and device, computer equipment and a storage medium. The method comprises the following steps: acquiring a compiling log of a randomized constraint file; the compilation log is analyzed, constraint conflict information is obtained, and the constraint conflict information comprises conflict variables and conflict constraint expressions; performing conflict optimization calculation according to the constraint conflict information to obtain a maximum satisfaction domain of the conflict variable; carrying out availability evaluation on the maximum satisfaction domain; in response to the fact that the availability evaluation result is unavailable, iteratively performing the conflict optimization calculation, and updating the maximum satisfaction domain; and in response to the availability evaluation result that the availability evaluation result is available, based on the maximum satisfaction domain, adjusting the value range of the conflict variable, and updating the randomized constraint file. By adopting the method, the constraint conflict can be identified and solved, the generation of redundant test data is reduced, and the accuracy of the test case is optimized, so that the chip verification efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of chip testing technology, and in particular to a constraint optimization method, apparatus, computer equipment and storage medium. Background Art

[0002] Verification is an indispensable part of the chip design process, which ensures that the chip design meets the predetermined functional requirements and performance indicators. As the complexity of chip design continues to increase, the verification process has become more time-consuming and complex. At present, the industry widely adopts the constrained randomization test (CTR) method to improve verification efficiency by randomly generating test cases. The CTR method limits the generation range of test cases by introducing randomization constraints, ensuring that the generated test stimuli are more effective and can cover more boundary scenarios and potential problems.

[0003] However, the design and implementation of randomized constraints also face many challenges. On the one hand, if the constraints are not designed properly, a large amount of redundant test data will be generated, reducing the verification efficiency; on the other hand, when multiple constraints coexist, constraint conflicts may occur, resulting in errors and interruptions during the simulation process. In addition, when a constraint conflict occurs, after the compiler reports an error, it is necessary to manually check the simulation log (log file) to locate and modify the constraints. This process is time-consuming and error-prone, especially when the constraint file is large in size, and manual inspection may not be able to fully cover all potential constraint conflicts. Summary of the invention

[0004] Based on this, it is necessary to provide a constraint optimization method, device, computer equipment and storage medium that can identify and resolve constraint conflicts, reduce the generation of redundant test data, optimize the accuracy of test cases, and thus improve the efficiency of chip verification in response to the above technical problems.

[0005] In one aspect, a constrained optimization method is provided, the method comprising:

[0006] Get the compilation log of the randomization constraint file;

[0007] Parsing the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflicting variables and conflicting constraint expressions;

[0008] Perform conflict optimization calculation according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable;

[0009] Performing availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively performing the conflict optimization calculation to update the maximum satisfaction domain;

[0010] In response to the availability evaluation result being available, based on the maximum satisfaction domain, the value range of the conflicting variable is adjusted, and the randomization constraint file is updated.

[0011] In one embodiment, parsing the compilation log to obtain constraint information and constraint conflict information includes:

[0012] Integrate a plurality of constraint variables and a plurality of constraint expressions into the same file to obtain the randomized constraint file;

[0013] Compiling the randomized constraint file by using a compilation-type simulation tool to obtain the compilation log;

[0014] Writing a regular expression for matching error patterns related to constraint violations in the compilation log;

[0015] The compilation log is traversed, and the regular expression is applied to obtain the constraint conflict information.

[0016] In one embodiment, conflict optimization calculation is performed according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable, including:

[0017] Parsing the constraint conflict information and generating an abstract syntax tree;

[0018] Traversing the abstract syntax tree to extract all node information, wherein the node information includes the name of the conflicting variable and related constraints;

[0019] The node information is converted into a linear programming problem and solved, the maximum value and the minimum value of the conflict variable when all constraints are satisfied are found, and the maximum satisfaction domain is obtained.

[0020] In one embodiment, the node information is converted into a linear programming problem and solved, and the maximum and minimum values ​​of the conflicting variables when all constraints are satisfied are found to obtain the maximum satisfaction domain, including:

[0021] Determine the target variable, where the target variable is the conflict variable, denoted by x1, x2, ..., x n ;

[0022] Determine the objective function and define the target to be optimized, denoted as f(x), where: Among them, x i is the i-th target variable, c i is the optimization coefficient of the ith objective variable, wherein the objective function includes at least one of the following: a maximization objective function and a minimization objective function; the maximization objective function is denoted as Max(x), and the minimization objective function is denoted as Min(x);

[0023] Convert the conflict constraint expression into a linear inequality or a linear equality to obtain a linear programming constraint condition, wherein the conflict constraint expression includes the conflict variable and the corresponding variable coefficient, and the linear programming constraint condition is recorded as AX≤B, wherein A is a coefficient matrix composed of variable coefficients, X is a variable vector composed of target variables, and B is a constant vector composed of constraint constants;

[0024] Combining the objective function with the linear programming constraints to construct a standard linear programming model, wherein the linear programming model includes at least one of the following: a maximization model and a minimization model;

[0025] Select a linear programming solution algorithm or tool to solve the constructed standard linear programming model to obtain an optimal solution;

[0026] Obtaining an optimal solution of the standard linear programming model, wherein the optimal solution includes the value of the target variable and the corresponding variable range;

[0027] Check and verify whether the optimal solution is available. If it is available, the variable range in the optimal solution is the maximum satisfaction domain of the conflicting variables.

[0028] In one embodiment, performing availability evaluation on the maximum satisfaction domain includes:

[0029] Performing constraint condition satisfaction evaluation to check whether the maximum satisfaction domain satisfies all constraint conditions, and obtaining a satisfaction evaluation result;

[0030] Performing a scale suitability assessment to check whether the scale of the maximum satisfaction domain is too large, and obtaining a suitability assessment result;

[0031] Availability evaluation is performed based on the satisfaction evaluation result and the suitability evaluation result; when the maximum satisfaction domain satisfies all constraints and is not too large in size, the evaluation passes and the maximum satisfaction domain is considered to be available.

[0032] In one embodiment, in response to the availability evaluation result being unavailable, iteratively performing the conflict optimization calculation and updating the maximum satisfaction domain include:

[0033] Obtaining the result of the usability evaluation, wherein the result of the usability evaluation includes the satisfiability evaluation result and the suitability evaluation result;

[0034] When the result of the satisfaction evaluation is not passed, performing satisfaction optimization on the conflict optimization calculation, wherein the satisfaction optimization includes at least one of the following: re-parsing the compilation log, regenerating and traversing the abstract syntax tree, and re-extracting the node information;

[0035] When the fitness evaluation result is not passed, the conflict optimization calculation is optimized for fitness, wherein the fitness optimization includes at least one of the following: re-determining the objective function, re-adjusting the constraint condition;

[0036] Repeat the satisfaction optimization and the suitability optimization until both the satisfaction evaluation result and the suitability evaluation result are passed, then the maximum satisfaction domain generated at this time is considered to be available, and the original maximum satisfaction domain is replaced to achieve the update of the maximum satisfaction domain.

[0037] In one embodiment, in response to the availability evaluation result being available, adjusting the value range of the conflict variable based on the maximum satisfaction domain, and updating the randomization constraint file include:

[0038] According to the maximum satisfaction domain, adjusting the value range of the conflict variable so that the value range of the conflict variable is not greater than the range shown by the maximum satisfaction domain;

[0039] Based on the adjusted conflicting variables, generating a corresponding new constraint expression;

[0040] Searching the conflict constraint expression in the randomized constraint file, wherein the conflict constraint expression includes the conflict variable;

[0041] The conflicting constraint expression is replaced with the new constraint expression to update the randomized constraint file.

[0042] In another aspect, a constrained optimization device is provided, the device comprising:

[0043] The log acquisition module is used to obtain the compilation log of the randomization constraint file;

[0044] A log parsing module, used to parse the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflict variables and conflict constraint expressions;

[0045] A conflict optimization module, used to perform conflict optimization calculation according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable;

[0046] an availability evaluation module, configured to perform availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively perform the conflict optimization calculation and update the maximum satisfaction domain;

[0047] The constraint file updating module adjusts the value range of the conflicting variable based on the maximum satisfaction domain and updates the randomization constraint file in response to the availability evaluation result being available.

[0048] In another aspect, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the following steps are implemented:

[0049] Get the compilation log of the randomization constraint file;

[0050] Parsing the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflicting variables and conflicting constraint expressions;

[0051] Perform conflict optimization calculation according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable;

[0052] Performing availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively performing the conflict optimization calculation to update the maximum satisfaction domain;

[0053] In response to the availability evaluation result being available, based on the maximum satisfaction domain, the value range of the conflicting variable is adjusted, and the randomization constraint file is updated.

[0054] In another aspect, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0055] Get the compilation log of the randomization constraint file;

[0056] Parsing the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflicting variables and conflicting constraint expressions;

[0057] Perform conflict optimization calculation according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable;

[0058] Performing availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively performing the conflict optimization calculation to update the maximum satisfaction domain;

[0059] In response to the availability evaluation result being available, based on the maximum satisfaction domain, the value range of the conflicting variable is adjusted, and the randomization constraint file is updated.

[0060] The above-mentioned constraint optimization method, device, computer equipment and storage medium avoid the tedious process of manually checking logs by automatically extracting constraint conflict information from compilation logs, thereby significantly improving the efficiency and accuracy of constraint conflict identification; at the same time, a linear programming algorithm is used to optimize the extracted constraint conflict information, automatically find the maximum satisfaction domain of the conflicting variables, and realize automatic resolution of constraint conflicts; and, an availability evaluation mechanism is introduced to continuously iteratively optimize the obtained maximum satisfaction domain to ensure that the generated test cases not only meet all constraints but also avoid the problem of excessive scale, thereby reducing the generation of redundant test data, optimizing the accuracy of test cases, and thus improving the efficiency of chip verification. BRIEF DESCRIPTION OF THE DRAWINGS

[0061] Figure 1 An application environment diagram of a constraint optimization method in an embodiment;

[0062] Figure 2 A schematic diagram of a flow chart of a constraint optimization method in an embodiment;

[0063] Figure 3 is a structural block diagram of a constraint optimization device in one embodiment;

[0064] Figure 4 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0065] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0066] The present application provides a constrained optimization method which can be applied to Figure 1 In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. The terminal 102 sends a chip verification request to the server 104 and sends a randomized constraint file. The server 104 receives the chip verification request and optimizes the randomized constraint file. The server 104 then calls the randomized constraint file after the constraint optimization is completed to perform subsequent chip verification. Among them, the terminal 102 can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, and portable wearable devices, and the server 104 can be implemented with an independent server or a server cluster consisting of multiple servers.

[0067] In one embodiment, Figure 2 As shown, a constrained optimization method is provided, which is applied to Figure 1 The terminal in is used as an example to illustrate, including the following steps:

[0068] Step 201, obtaining a compilation log of a randomization constraint file.

[0069] Among them, the randomization constraint file is a compilable file, and the compilation log is a simulation log file generated during the compilation process.

[0070] Specifically, a plurality of constraint variables and a plurality of constraint expressions are integrated into the same file to obtain a randomized constraint file; the randomized constraint file is compiled by a compilation-type simulation tool to obtain a compilation log.

[0071] Step 202: parse the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflicting variables and conflicting constraint expressions.

[0072] Specifically, based on the regular expression, the compilation log is traversed to obtain the constraint conflict information.

[0073] Step 203: perform conflict optimization calculation based on constraint conflict information to obtain the maximum satisfaction domain of the conflicting variables.

[0074] The maximum satisfaction domain is the value range of the conflict variable when all constraints are met.

[0075] Specifically, based on the abstract syntax tree, the constraint conflict information is parsed to obtain node information, wherein the node information includes the name of the conflicting variable and the related constraint conditions; the node information is converted into a linear programming problem and solved to obtain the optimal solution, that is, the maximum satisfaction domain.

[0076] Step 204: perform availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, perform conflict optimization calculation iteratively to update the maximum satisfaction domain.

[0077] Specifically, the availability assessment includes constraint satisfaction assessment and scale suitability assessment. When the maximum satisfaction domain satisfies all constraints and is not too large, the assessment passes and the maximum satisfaction domain is considered available. Otherwise, it is unavailable. According to the results of the availability assessment, corresponding adjustments and optimizations are performed, and conflict optimization calculations are performed iteratively until the availability assessment result of the maximum satisfaction domain is available.

[0078] Step 205 : in response to the availability evaluation result being available, based on the maximum satisfaction domain, adjusting the value range of the conflicting variable, and updating the randomization constraint file.

[0079] Specifically, according to the maximum satisfaction domain, the value range of the conflicting variable is adjusted so that the value range of the conflicting variable is not greater than the range of the maximum satisfaction domain; based on the adjusted conflicting variable, a corresponding new constraint expression is generated to replace the constraint expression in the original randomized constraint file.

[0080] In the above-mentioned constraint optimization method, by automatically extracting constraint conflict information from the compilation log, the tedious process of manually checking the log is avoided, and the efficiency and accuracy of constraint conflict identification are significantly improved; at the same time, the extracted constraint conflict information is optimized and calculated using a linear programming algorithm to automatically find the maximum satisfaction domain of the conflicting variables, thereby realizing automatic resolution of constraint conflicts; and, an availability evaluation mechanism is introduced to continuously iterate and optimize the obtained maximum satisfaction domain to ensure that the generated test cases not only meet all constraints but also avoid the problem of being too large in scale, thereby reducing the generation of redundant test data, optimizing the accuracy of test cases, and thus improving the efficiency of chip verification.

[0081] In one embodiment, parsing the compilation log to obtain constraint information and constraint conflict information includes:

[0082] Integrate several constraint variables and several constraint expressions into the same file to obtain a randomized constraint file;

[0083] Compile the randomized constraint file through a compilation simulation tool to obtain a compilation log;

[0084] Write regular expressions to match error patterns related to constraint violations in the compilation log;

[0085] Traverse the compilation log, apply regular expressions, and get constraint violation information.

[0086] Specifically, this embodiment integrates constraint variables and expressions into the same file, which is convenient for compilation, management and maintenance, and realizes standardized management; at the same time, by matching constraint conflict information in the compilation log with regular expressions, the problem can be located quickly and accurately, and high-level identification of constraint conflict information can be achieved; in addition, by automating the identification of constraint conflict information, errors caused by human factors are reduced and the reliability of identifying conflict information is improved.

[0087] In one embodiment, conflict optimization calculation is performed based on constraint conflict information to obtain the maximum satisfaction domain of the conflicting variables, including:

[0088] Parse constraint conflict information and generate an abstract syntax tree;

[0089] Traverse the abstract syntax tree and extract all node information, where the node information includes the names of conflicting variables and related constraints;

[0090] The node information is converted into a linear programming problem and solved to find the maximum and minimum values ​​of the conflicting variables when they meet all constraints, and the maximum satisfaction domain is obtained.

[0091] Specifically, this embodiment can accurately reflect the grammatical structure of the code by parsing constraint conflict information and generating an abstract syntax tree, namely, AST, so as to have a deeper understanding of the relationship between constraints and provide a solid foundation for subsequent linear programming solutions. At the same time, complex constraint problems are converted into standard linear programming problems and solved using mature linear programming algorithms, which can efficiently find the optimal solution for variables that meets all constraints, which not only improves the solution efficiency, but also ensures the accuracy and reliability of the solution results.

[0092] In one embodiment, the node information is converted into a linear programming problem and solved to find the maximum and minimum values ​​of the conflicting variables when they satisfy all constraints, and obtain the maximum satisfaction domain, including:

[0093] Determine the target variable, where the target variable is the conflict variable, denoted by x1, x2, ..., x n ;

[0094] Determine the objective function and define the target to be optimized, denoted as f(x), where: Among them, x i is the i-th target variable, c i is the optimization coefficient of the ith objective variable, where the objective function includes at least one of the following: maximization objective function and minimization objective function; the maximization objective function is denoted as Max(x), and the minimization objective function is denoted as Min(x);

[0095] The conflict constraint expression is converted into a linear inequality or a linear equality to obtain a linear programming constraint condition, wherein the conflict constraint expression includes conflict variables and corresponding variable coefficients, and the linear programming constraint condition is recorded as AX≤B, wherein A is a coefficient matrix composed of variable coefficients, X is a variable vector composed of target variables, and B is a constant vector composed of constraint constants;

[0096] The objective function is combined with the linear programming constraints to construct a standard linear programming model, wherein the linear programming model includes at least one of the following: a maximization model and a minimization model;

[0097] Select a linear programming algorithm or tool to solve the constructed standard linear programming model and obtain the optimal solution, wherein the linear programming algorithm includes at least one of the following: simplex method, interior point method, and the linear programming tool includes at least one of the following: SciPy.optimize.linprog, CVXOPT;

[0098] Obtain the optimal solution of the standard linear programming model, where the optimal solution includes the value of the target variable and the corresponding variable range;

[0099] Check and verify whether the optimal solution is available. If it is available, the variable range in the optimal solution is the maximum satisfaction domain of the conflicting variables.

[0100] Specifically, this embodiment achieves flexible modeling by supporting the setting of multiple objective functions and optimization coefficients, thereby making the method more flexible and applicable to different verification needs; at the same time, by using standard linear programming models and efficient solution algorithms, the accuracy and reliability of the solution results can be ensured; and, it supports different linear programming solution tools, which facilitates integration with existing verification environments and improves scalability.

[0101] In one embodiment, the availability evaluation is performed on the maximum satisfaction domain, including:

[0102] Perform constraint satisfaction evaluation, check whether the maximum satisfaction domain satisfies all constraint conditions, and obtain the satisfaction evaluation result;

[0103] Conduct a scale appropriateness assessment to check whether the scale of the maximum satisfaction domain is too large and obtain a scale appropriateness assessment result;

[0104] Availability evaluation is performed based on the results of the satisfaction evaluation and the suitability evaluation. When the maximum satisfaction domain satisfies all constraints and is not too large, the evaluation passes and the maximum satisfaction domain is considered available.

[0105] It is worth noting that the constraint satisfaction evaluation is performed to verify whether the obtained maximum satisfaction domain satisfies all the constraints, including:

[0106] Traverse each constraint condition and check whether each point in the solved maximum satisfaction domain satisfies the constraint;

[0107] If and only if any point in the maximum satisfaction domain satisfies any constraint condition, the maximum satisfaction domain is considered to satisfy all constraints, and the constraint satisfaction evaluation result is passed. On the contrary, if there is a constraint condition that makes any point in the maximum satisfaction domain not satisfy the constraint condition, the constraint satisfaction evaluation result is failed, the maximum satisfaction domain is unavailable, and needs to be re-optimized.

[0108] It is worth noting that the scale appropriateness assessment is performed to ensure that the maximum satisfaction domain is not too large and to avoid generating too many redundant test cases, including:

[0109] Based on the maximum satisfaction domain of each conflicting variable, a maximum combination domain is obtained, wherein the maximum combination domain is composed of the maximum satisfaction domains of all conflicting variables;

[0110] Calculate the volume of the maximum binding domain based on the formula: in, and Respectively represent the maximum and minimum values ​​in the maximum satisfaction domain of the i-th conflict variable, V max It is the maximum binding domain which is mathematically considered as the volume of a polyhedron in multidimensional space;

[0111] According to the test requirements and system resources, set the threshold, denoted as V threshold ;

[0112] Based on the fitness function, fitness evaluation is performed, where the fitness function is

[0113]

[0114] ; G(V max )=1 means the maximum binding domain is moderate, G(V max ) = 0 means the maximum binding domain is too large;

[0115] When the maximum combination domain is moderate, it means that the maximum satisfaction domain of each conflicting variable is moderate in size and the size of the generated test case is moderate; when the maximum combination domain is too large, it means that there are conflicting variables with too large maximum satisfaction domains, and re-optimization is required.

[0116] Specifically, this embodiment ensures that the test cases finally generated satisfy all constraints and avoid being too large in scale by comprehensively evaluating the maximum satisfaction domain from two aspects: constraint satisfaction and scale appropriateness, thereby reducing the generation of redundant test cases. This is beneficial to improving the quality and reliability of the verification process while improving the efficiency of subsequent chip verification.

[0117] In one embodiment, in response to the availability evaluation result being unavailable, iteratively performing conflict optimization calculations to update the maximum satisfaction domain includes:

[0118] Obtaining a usability evaluation result, wherein the usability evaluation result includes a satisfiability evaluation result and a suitability evaluation result;

[0119] When the result of the satisfaction evaluation is not passed, the conflict optimization calculation is subjected to satisfaction optimization, wherein the satisfaction optimization includes at least one of the following: re-parsing the compilation log, regenerating and traversing the abstract syntax tree, and re-extracting the node information;

[0120] When the result of the suitability evaluation is not passed, the conflict optimization calculation is optimized for suitability, wherein the suitability optimization includes at least one of the following: re-determining the objective function and re-adjusting the constraint conditions;

[0121] Repeat the satisfaction optimization and suitability optimization until both the satisfaction evaluation results and the suitability evaluation results are passed. Then the maximum satisfaction domain generated at this time is considered to be available, and the original maximum satisfaction domain is replaced to achieve the update of the maximum satisfaction domain.

[0122] Specifically, this embodiment can continuously adjust and improve the solution results through iterative optimization calculations to ensure that the solution finally generated is optimal and usable; at the same time, it can find the most satisfactory solution through multiple optimization calculations for different constraints and verification requirements, thereby improving the availability of the maximum satisfaction domain and thus improving the efficiency of subsequent chip testing; in addition, it can also avoid the same constraint conflict problem that occurs repeatedly during the compilation process, further improving work efficiency.

[0123] In one embodiment, in response to the availability evaluation result being available, based on the maximum satisfaction domain, adjusting the value range of the conflicting variable and updating the randomization constraint file include:

[0124] According to the maximum satisfaction domain, the value range of the conflict variable is adjusted so that the value range of the conflict variable is not greater than the range of the maximum satisfaction domain;

[0125] Based on the adjusted conflict variables, a corresponding new constraint expression is generated;

[0126] Searching for conflicting constraint expressions in the randomized constraint file, wherein the conflicting constraint expressions include conflicting variables;

[0127] Replace the conflicting constraint expressions with new constraint expressions to update the randomized constraint file.

[0128] Specifically, this embodiment adjusts the value range of the conflicting variables in real time according to the availability evaluation results, realizes the rapid update of the randomized constraint file, thereby reducing the constraint conflict problems in the subsequent verification process and improving the overall verification efficiency; in addition, it realizes a closed-loop verification process from problem identification to problem solving, and improves the systematicness and integrity of the verification process.

[0129] It should be understood that although Figure 2 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figure 2 At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.

[0130] In one embodiment, Figure 3As shown, a constraint optimization device is provided, including: a log acquisition module, a log parsing module, a conflict optimization module, an availability evaluation module and a constraint file update module, wherein:

[0131] The log acquisition module is used to obtain the compilation log of the randomization constraint file;

[0132] A log parsing module, used to parse the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflict variables and conflict constraint expressions;

[0133] The conflict optimization module is used to perform conflict optimization calculations based on constraint conflict information to obtain the maximum satisfaction domain of conflict variables;

[0134] An availability evaluation module is used to perform availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively perform conflict optimization calculations and update the maximum satisfaction domain;

[0135] The constraint file updating module is used to respond to the availability evaluation result being available, adjust the value range of the conflicting variable based on the maximum satisfaction domain, and update the randomized constraint file.

[0136] The log acquisition module is also used to integrate a number of constraint variables and a number of constraint expressions into the same file to obtain a randomized constraint file; and to compile the randomized constraint file through a compilation simulation tool to obtain a compilation log.

[0137] The log parsing module is also used to write regular expressions to match error patterns related to constraint conflicts in the compilation log; traverse the compilation log, apply the regular expressions, and obtain constraint conflict information.

[0138] The conflict optimization module is also used to parse constraint conflict information and generate an abstract syntax tree; traverse the abstract syntax tree and extract all node information; convert the node information into a linear programming problem and solve it, find the maximum and minimum values ​​of the conflicting variables when they meet all constraints, and obtain the maximum satisfaction domain.

[0139] The availability evaluation module is also used to perform constraint satisfaction evaluation, check whether the maximum satisfaction domain satisfies all constraints, and obtain satisfaction evaluation results; perform scale suitability evaluation, check whether the scale of the maximum satisfaction domain is too large, and obtain suitability evaluation results; perform availability evaluation based on the satisfaction evaluation results and the suitability evaluation results; when the maximum satisfaction domain satisfies all constraints and the scale is not too large, the evaluation passes and the maximum satisfaction domain is considered to be available.

[0140] The availability evaluation module is also used to obtain the results of the availability evaluation, wherein the results of the availability evaluation include the results of the satisfaction evaluation and the results of the suitability evaluation; when the result of the satisfaction evaluation is not passed, the conflict optimization calculation is subjected to satisfaction optimization, wherein the satisfaction optimization includes at least one of the following: re-parsing the compilation log, regenerating and traversing the abstract syntax tree, and re-extracting the node information; when the result of the suitability evaluation is not passed, the conflict optimization calculation is subjected to suitability optimization, wherein the suitability optimization includes at least one of the following: re-determining the objective function and re-adjusting the constraint conditions; repeating the satisfaction optimization and the suitability optimization until both the satisfaction evaluation result and the suitability evaluation result are passed, then it is considered that the maximum satisfaction domain generated at this time is available, and the original maximum satisfaction domain is replaced to achieve the update of the maximum satisfaction domain.

[0141] The constraint file updating module is also used to adjust the value range of the conflict variable according to the maximum satisfaction domain so that the value range of the conflict variable is not greater than the range of the maximum satisfaction domain; generate a corresponding new constraint expression based on the adjusted conflict variable; query the conflict constraint expression in the randomized constraint file, wherein the conflict constraint expression contains the conflict variable; replace the conflict constraint expression with the new constraint expression to implement the update of the randomized constraint file.

[0142] For the specific definition of a constraint optimization device, please refer to the definition of a constraint optimization method above, which will not be repeated here. Each module in the above-mentioned constraint optimization device can be implemented in whole or in part by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.

[0143] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 4 As shown. The computer device includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store compilation log data. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a constraint optimization method is implemented.

[0144] Those skilled in the art will understand that Figure 4The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0145] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program:

[0146] Get the compilation log of the randomization constraint file;

[0147] Parse the compilation log to obtain constraint conflict information, where the constraint conflict information includes conflicting variables and conflicting constraint expressions;

[0148] According to the constraint conflict information, conflict optimization calculation is performed to obtain the maximum satisfaction domain of the conflict variable;

[0149] Performing availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively performing conflict optimization calculations to update the maximum satisfaction domain;

[0150] In response to the availability evaluation result being available, based on the maximum satisfaction domain, the value range of the conflicting variable is adjusted, and the randomization constraint file is updated.

[0151] In one embodiment, when the processor executes the computer program, the following steps are further implemented: parsing the compilation log, obtaining constraint information, and obtaining constraint conflict information, including:

[0152] Integrate several constraint variables and several constraint expressions into the same file to obtain a randomized constraint file;

[0153] Compile the randomized constraint file through a compilation simulation tool to obtain a compilation log;

[0154] Write regular expressions to match error patterns related to constraint violations in the compilation log;

[0155] Traverse the compilation log, apply regular expressions, and get constraint violation information.

[0156] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0157] Parse constraint conflict information and generate an abstract syntax tree;

[0158] Traverse the abstract syntax tree and extract all node information, where the node information includes the names of conflicting variables and related constraints;

[0159] Convert the node information into a linear programming problem and solve it to find the maximum and minimum values ​​of the conflicting variables when they meet all constraints, and obtain the maximum satisfaction domain;

[0160] It also includes:

[0161] Determine the target variable, where the target variable is the conflict variable, denoted by x1, x2, ..., x n ;

[0162] Determine the objective function and define the target to be optimized, denoted as f(x), where: Among them, x i is the i-th target variable, c i is the optimization coefficient of the ith objective variable. The objective function includes at least one of the following: maximization objective function and minimization objective function. The maximization objective function is denoted as Max(x) and the minimization objective function is denoted as Min(x).

[0163] The conflict constraint expression is converted into a linear inequality or a linear equality to obtain a linear programming constraint condition, wherein the conflict constraint expression includes conflict variables and corresponding variable coefficients, and the linear programming constraint condition is recorded as AX≤B, wherein A is a coefficient matrix composed of variable coefficients, X is a variable vector composed of target variables, and B is a constant vector composed of constraint constants;

[0164] The objective function is combined with the linear programming constraints to construct a standard linear programming model, wherein the linear programming model includes at least one of the following: a maximization model and a minimization model;

[0165] Select a linear programming algorithm or tool to solve the constructed standard linear programming model and obtain the optimal solution, wherein the linear programming algorithm includes at least one of the following: simplex method, interior point method, and the linear programming tool includes at least one of the following: SciPy.optimize.linprog, CVXOPT;

[0166] Obtain the optimal solution of the standard linear programming model, where the optimal solution includes the value of the target variable and the corresponding variable range;

[0167] Check and verify whether the optimal solution is available. If it is available, the variable range in the optimal solution is the maximum satisfaction domain of the conflicting variables.

[0168] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0169] Perform constraint satisfaction evaluation, check whether the maximum satisfaction domain satisfies all constraint conditions, and obtain the satisfaction evaluation result;

[0170] Conduct a scale appropriateness assessment to check whether the scale of the maximum satisfaction domain is too large and obtain a scale appropriateness assessment result;

[0171] Availability evaluation is performed based on the results of the satisfaction evaluation and the suitability evaluation. When the maximum satisfaction domain satisfies all constraints and is not too large, the evaluation passes and the maximum satisfaction domain is considered available.

[0172] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0173] Obtaining a usability evaluation result, wherein the usability evaluation result includes a satisfiability evaluation result and a suitability evaluation result;

[0174] When the result of the satisfaction evaluation is not passed, the conflict optimization calculation is subjected to satisfaction optimization, wherein the satisfaction optimization includes at least one of the following: re-parsing the compilation log, regenerating and traversing the abstract syntax tree, and re-extracting the node information;

[0175] When the result of the suitability evaluation is not passed, the conflict optimization calculation is optimized for suitability, wherein the suitability optimization includes at least one of the following: re-determining the objective function and re-adjusting the constraint conditions;

[0176] Repeat the satisfaction optimization and suitability optimization until both the satisfaction evaluation results and the suitability evaluation results are passed. Then the maximum satisfaction domain generated at this time is considered to be available, and the original maximum satisfaction domain is replaced to achieve the update of the maximum satisfaction domain.

[0177] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0178] According to the maximum satisfaction domain, the value range of the conflict variable is adjusted so that the value range of the conflict variable is not greater than the range of the maximum satisfaction domain;

[0179] Based on the adjusted conflict variables, a corresponding new constraint expression is generated;

[0180] Searching for conflicting constraint expressions in the randomized constraint file, wherein the conflicting constraint expressions include conflicting variables;

[0181] Replace the conflicting constraint expressions with new constraint expressions to update the randomized constraint file.

[0182] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0183] Get the compilation log of the randomization constraint file;

[0184] Parse the compilation log to obtain constraint conflict information, where the constraint conflict information includes conflicting variables and conflicting constraint expressions;

[0185] According to the constraint conflict information, conflict optimization calculation is performed to obtain the maximum satisfaction domain of the conflict variable;

[0186] Performing availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively performing conflict optimization calculations to update the maximum satisfaction domain;

[0187] In response to the availability evaluation result being available, based on the maximum satisfaction domain, the value range of the conflicting variable is adjusted, and the randomization constraint file is updated.

[0188] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0189] Parse the compilation log to obtain constraint information and constraint conflict information, including:

[0190] Integrate several constraint variables and several constraint expressions into the same file to obtain a randomized constraint file;

[0191] Compile the randomized constraint file through a compilation simulation tool to obtain a compilation log;

[0192] Write regular expressions to match error patterns related to constraint violations in the compilation log;

[0193] Traverse the compilation log, apply regular expressions, and get constraint violation information.

[0194] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0195] Parse constraint conflict information and generate an abstract syntax tree;

[0196] Traverse the abstract syntax tree and extract all node information, where the node information includes the names of conflicting variables and related constraints;

[0197] Convert the node information into a linear programming problem and solve it to find the maximum and minimum values ​​of the conflicting variables when they meet all constraints, and obtain the maximum satisfaction domain;

[0198] It also includes:

[0199] Determine the target variable, where the target variable is the conflict variable, denoted by x1, x2, ..., x n ;

[0200] Determine the objective function and define the target to be optimized, denoted as f(x), where: Among them, xi is the i-th target variable, c i is the optimization coefficient of the ith objective variable. The objective function includes at least one of the following: maximization objective function and minimization objective function. The maximization objective function is denoted as Max(x) and the minimization objective function is denoted as Min(x).

[0201] Convert the conflict constraint expression into a linear inequality or a linear equality to obtain a linear programming constraint condition, wherein the conflict constraint expression includes conflict variables and corresponding variable coefficients;

[0202] Among them, the linear programming constraint condition is recorded as AX≤B, where A is the coefficient matrix composed of variable coefficients, X is the variable vector composed of target variables, and B is the constant vector composed of constraint constants;

[0203] The objective function is combined with the linear programming constraints to construct a standard linear programming model, wherein the linear programming model includes at least one of the following: a maximization model and a minimization model;

[0204] Select a linear programming algorithm or tool to solve the constructed standard linear programming model and obtain the optimal solution, wherein the linear programming algorithm includes at least one of the following: simplex method, interior point method; the linear programming tool includes at least one of the following: SciPy.optimize.linprog, CVXOPT;

[0205] Obtain the optimal solution of the standard linear programming model, where the optimal solution includes the value of the target variable and the corresponding variable range;

[0206] Check and verify whether the optimal solution is available. If it is available, the variable range in the optimal solution is the maximum satisfaction domain of the conflicting variables.

[0207] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0208] Perform constraint satisfaction evaluation, check whether the maximum satisfaction domain satisfies all constraint conditions, and obtain the satisfaction evaluation result;

[0209] Conduct a scale appropriateness assessment to check whether the scale of the maximum satisfaction domain is too large and obtain a scale appropriateness assessment result;

[0210] Availability evaluation is performed based on the results of the satisfaction evaluation and the suitability evaluation. When the maximum satisfaction domain satisfies all constraints and is not too large, the evaluation passes and the maximum satisfaction domain is considered available.

[0211] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0212] Obtaining a usability evaluation result, wherein the usability evaluation result includes a satisfiability evaluation result and a suitability evaluation result;

[0213] When the result of the satisfaction evaluation is not passed, the conflict optimization calculation is subjected to satisfaction optimization, wherein the satisfaction optimization includes at least one of the following: re-parsing the compilation log, regenerating and traversing the abstract syntax tree, and re-extracting the node information;

[0214] When the result of the suitability evaluation is not passed, the conflict optimization calculation is optimized for suitability, wherein the suitability optimization includes at least one of the following: re-determining the objective function and re-adjusting the constraint conditions;

[0215] Repeat the satisfaction optimization and suitability optimization until both the satisfaction evaluation results and the suitability evaluation results are passed. Then the maximum satisfaction domain generated at this time is considered to be available, and the original maximum satisfaction domain is replaced to achieve the update of the maximum satisfaction domain.

[0216] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0217] According to the maximum satisfaction domain, the value range of the conflict variable is adjusted so that the value range of the conflict variable is not greater than the range of the maximum satisfaction domain;

[0218] Based on the adjusted conflict variables, a corresponding new constraint expression is generated;

[0219] Searching for conflicting constraint expressions in the randomized constraint file, wherein the conflicting constraint expressions include conflicting variables;

[0220] Replace the conflicting constraint expressions with new constraint expressions to update the randomized constraint file.

[0221] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in the present application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).

[0222] The technical features of the above embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0223] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.

Claims

1. A constrained optimization method, characterized in that: include: Get the compilation log of the randomization constraint file; Parsing the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflicting variables and conflicting constraint expressions; Perform conflict optimization calculation according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable; Performing availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively performing the conflict optimization calculation to update the maximum satisfaction domain; In response to the availability evaluation result being available, based on the maximum satisfaction domain, the value range of the conflicting variable is adjusted, and the randomization constraint file is updated.

2. A constrained optimization method according to claim 1, characterized in that: Parse the compilation log to obtain constraint information and constraint conflict information, including: Integrate a plurality of constraint variables and a plurality of constraint expressions into the same file to obtain the randomized constraint file; Compiling the randomized constraint file by using a compilation-type simulation tool to obtain the compilation log; Writing a regular expression for matching error patterns related to constraint violations in the compilation log; The compilation log is traversed, and the regular expression is applied to obtain the constraint conflict information.

3. A constrained optimization method according to claim 1, characterized in that: According to the constraint conflict information, conflict optimization calculation is performed to obtain the maximum satisfaction domain of the conflict variable, including: Parsing the constraint conflict information and generating an abstract syntax tree; Traversing the abstract syntax tree to extract all node information, wherein the node information includes the name of the conflicting variable and related constraints; The node information is converted into a linear programming problem and solved, the maximum value and the minimum value of the conflict variable when all constraints are satisfied are found, and the maximum satisfaction domain is obtained.

4. A constrained optimization method according to claim 3, characterized in that: The node information is converted into a linear programming problem and solved, the maximum and minimum values ​​of the conflicting variables when they satisfy all constraints are found, and the maximum satisfaction domain is obtained, including: Determine the target variable, where the target variable is the conflict variable, denoted by x1, x2, ..., x n ; Determine the objective function and define the target to be optimized, denoted as f(x), where: Among them, x i is the i-th target variable, c i is the optimization coefficient of the ith objective variable, wherein the objective function includes at least one of the following: a maximization objective function and a minimization objective function, wherein the maximization objective function is denoted as Max(x) and the minimization objective function is denoted as Min(x); Convert the conflict constraint expression into a linear inequality or a linear equality to obtain a linear programming constraint condition, wherein the conflict constraint expression includes the conflict variable and the corresponding variable coefficient, and the linear programming constraint condition is recorded as AX≤B, wherein A is a coefficient matrix composed of variable coefficients, X is a variable vector composed of target variables, and B is a constant vector composed of constraint constants; Combining the objective function with the linear programming constraints to construct a standard linear programming model; Select a linear programming solution algorithm or tool to solve the constructed standard linear programming model to obtain an optimal solution; Obtaining an optimal solution of the standard linear programming model, wherein the optimal solution includes the value of the target variable and the corresponding variable range; Check and verify whether the optimal solution is available. If it is available, the variable range in the optimal solution is the maximum satisfaction domain of the conflicting variables.

5. A constrained optimization method according to claim 3, characterized in that: A usability evaluation is performed on the maximum satisfaction domain, including: Performing constraint condition satisfaction evaluation to check whether the maximum satisfaction domain satisfies all the constraint conditions, and obtaining a satisfaction evaluation result; Performing a scale suitability assessment to check whether the scale of the maximum satisfaction domain is too large, and obtaining a suitability assessment result; Availability evaluation is performed based on the satisfaction evaluation result and the suitability evaluation result; when the maximum satisfaction domain satisfies all the constraint conditions and is not too large in size, the evaluation passes and the maximum satisfaction domain is considered to be available.

6. A constrained optimization method according to claim 5, characterized in that: In response to the availability evaluation result being unavailable, iteratively performing the conflict optimization calculation and updating the maximum satisfaction domain, including: Obtaining the result of the usability evaluation, wherein the result of the usability evaluation includes the satisfiability evaluation result and the suitability evaluation result; When the satisfaction evaluation result is not passed, performing satisfaction optimization on the conflict optimization calculation; When the suitability evaluation result is not passed, performing suitability optimization on the conflict optimization calculation; Repeat the satisfaction optimization and the suitability optimization until both the satisfaction evaluation result and the suitability evaluation result are passed, then the maximum satisfaction domain generated at this time is considered to be available, and the original maximum satisfaction domain is replaced to achieve the update of the maximum satisfaction domain.

7. A constrained optimization method according to claim 1, characterized in that: In response to the availability evaluation result being available, adjusting the value range of the conflict variable based on the maximum satisfaction domain, and updating the randomization constraint file, including: According to the maximum satisfaction domain, adjusting the value range of the conflict variable so that the value range of the conflict variable is not greater than the range shown by the maximum satisfaction domain; Based on the adjusted conflicting variables, generating a corresponding new constraint expression; Searching the conflict constraint expression in the randomized constraint file, wherein the conflict constraint expression includes the conflict variable; The conflicting constraint expression is replaced with the new constraint expression to update the randomized constraint file.

8. A constrained optimization device, characterized in that: The device comprises: The log acquisition module is used to obtain the compilation log of the randomization constraint file; A log parsing module, used to parse the compilation log to obtain constraint conflict information, wherein the constraint conflict information includes conflict variables and conflict constraint expressions; A conflict optimization module, used to perform conflict optimization calculation according to the constraint conflict information to obtain the maximum satisfaction domain of the conflict variable; an availability evaluation module, configured to perform availability evaluation on the maximum satisfaction domain; in response to the availability evaluation result being unavailable, iteratively perform the conflict optimization calculation and update the maximum satisfaction domain; The constraint file updating module is used for adjusting the value range of the conflicting variable based on the maximum satisfaction domain and updating the randomization constraint file in response to the availability evaluation result being available.

9. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Agent model constraint optimization method and device based on multi-point sampling

    CN112434448A

  • Test method and device

    CN114020637A

  • Digital chip layout wiring global optimization method and system

    CN116341480A

  • Method and System for Part Design Using Heterogeneous Constraints

    US20210073349A1

  • Method and system for optimizing an objective having discrete constraints

    US20210224351A1