Simulation coverage rate processing method and device

By assigning the coverage database of the register scan use case to a predetermined value, filtering and merging the coverage database, the problem of pseudo coverage of the register scan use case is solved, ensuring the accuracy of chip verification and coverage convergence.

CN120560992APending Publication Date: 2025-08-29T-HEAD (SHANGHAI) SEMICON CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510430648.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-07
Publication Date
2025-08-29

AI Technical Summary

Technical Problem

During the chip verification process, directly combining the coverage values ​​of the register scan use case into the coverage regression list will pollute the code/function coverage, resulting in pseudo coverage, masking real coverage vulnerabilities, and affecting verification accuracy.

Method used

By assigning the coverage value in the coverage database corresponding to the register scan use case to a predetermined value, filter out the coverage database list that does not contain or only the register scan use case, and merge it into the target coverage database to avoid directly combining the coverage regression list.

Benefits of technology

It effectively avoids the coverage value of the register scanning use case contaminating the code/function coverage, and retains the records of the register scanning use case for subsequent coverage inverse, ensuring the accuracy of coverage convergence and chip verification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120560992A_ABST
    Figure CN120560992A_ABST
Patent Text Reader

Abstract

The invention discloses a simulation coverage rate processing method and device, and the method comprises the steps: obtaining an initial database list through integrating coverage rate databases obtained through all simulation test operations, filtering out a first list and a second list from the initial database list, and storing the first list and the second list in a server; determining a coverage rate numerical value in the coverage rate database in the second list as a preset value, obtaining a third list, combining the first list and the third list, obtaining a new database list, and combining the coverage rate databases in the new database list into a target coverage rate database. Wherein the first list is a database list which does not contain the coverage rate database corresponding to the register scanning case, and the second list is a database list which only contains the coverage rate database corresponding to the register scanning case. Therefore, the coverage rate numerical value corresponding to the register scanning use case can be removed, so that the register scanning use case can be ensured to be subjected to back-mark tracking while the coverage rate numerical value is prevented from polluting related coverage points of the register to cause false coverage.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of semiconductor technology, and more particularly, to a simulation coverage processing method and device. Background Art

[0002] Currently, in the process of collecting simulation coverage, once the user directly incorporates the coverage values ​​corresponding to the register scan use case into the coverage regression list, it may contaminate the register-related coverage points in the code / function coverage, resulting in false coverage, thereby masking the real coverage vulnerabilities, and making it difficult to ensure the accuracy of chip verification. Summary of the Invention

[0003] In view of this, an embodiment of the present invention provides a simulation coverage processing method and device, which assigns the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage value corresponding to the register scan use case, thereby avoiding directly incorporating the coverage value corresponding to the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contaminated code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring the accuracy of coverage convergence and chip verification.

[0004] In a first aspect, an embodiment of the present invention provides a simulation coverage processing method, the method comprising:

[0005] Integrate the coverage databases obtained from each simulation test operation to obtain an initial database list;

[0006] Filtering the initial database list to obtain a first list and a second list, wherein the first list is a database list that does not include coverage databases corresponding to register scan use cases, and the second list is a database list that only includes coverage databases corresponding to register scan use cases;

[0007] determining the coverage value in the coverage database in the second list as a predetermined value, and obtaining an updated second list;

[0008] Merging the first list and the updated second list to obtain a new database list;

[0009] The coverage databases in the new database list are merged into the target coverage database.

[0010] Furthermore, filtering out the first list and the second list from the initial database list includes:

[0011] The first list and the second list are filtered out from the initial database list based on a predetermined regular expression, wherein the regular expression is used to specify a register scan case desired to be filtered.

[0012] Furthermore, filtering out the first list and the second list from the initial database list includes:

[0013] In response to receiving the filtering instruction, the first list and the second list are filtered out from the initial database list.

[0014] Furthermore, the method further comprises:

[0015] In response to not receiving the filtering instruction, the coverage databases in the initial database list are merged to obtain a corresponding target coverage database.

[0016] Furthermore, the method further comprises:

[0017] Coverage back-annotation is performed based on the target coverage database.

[0018] Furthermore, the predetermined value is 0.

[0019] In a second aspect, an embodiment of the present invention provides a simulation coverage processing device, the device comprising:

[0020] an integration unit configured to integrate coverage databases obtained from various simulation test operations to obtain an initial database list;

[0021] a filtering unit configured to filter out a first list and a second list from the initial database list, wherein the first list is a database list that does not include coverage databases corresponding to register scan use cases, and the second list is a database list that only includes coverage databases corresponding to register scan use cases;

[0022] an assignment unit configured to determine the coverage value in the coverage database in the second list as a predetermined value, and obtain an updated second list;

[0023] a first merging unit, configured to merge the first list and the updated second list to obtain a new database list;

[0024] The second merging unit is configured to merge the coverage databases in the new database list into a target coverage database.

[0025] In a third aspect, an embodiment of the present invention provides an electronic device, comprising a memory and a processor, wherein the memory is used to store one or more computer program instructions, wherein the one or more computer program instructions are executed by the processor to implement the method as described above.

[0026] In a fourth aspect, an embodiment of the present invention provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method described above is implemented.

[0027] In a fifth aspect, an embodiment of the present invention provides a computer program product, which, when executed on a computer, enables the computer to execute the method described above.

[0028] The embodiment of the present invention integrates the coverage databases obtained by each simulation test operation to obtain an initial database list, filters out a first list and a second list from the initial database list, determines the coverage values ​​in the coverage database in the second list as predetermined values, obtains an updated second list, merges the first list and the updated second list, obtains a new database list, and merges the coverage databases in the new database list into a target coverage database. Among them, the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. Therefore, the embodiment of the present invention can assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage values ​​corresponding to the register scan use case, thereby avoiding directly incorporating the coverage values ​​corresponding to the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring coverage convergence. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] The above and other objects, features and advantages of the present invention will become more apparent through the following description of the embodiments of the present invention with reference to the accompanying drawings, in which:

[0030] Figure 1 is a flow chart of a simulation coverage processing method according to an embodiment of the present invention;

[0031] Figure 2 is a flow chart of another simulation coverage processing method according to an embodiment of the present invention;

[0032] Figure 3 is a schematic diagram of a simulation coverage processing process according to an embodiment of the present invention;

[0033] Figure 4 is a schematic diagram of a simulation coverage processing device according to an embodiment of the present invention;

[0034] Figure 5 is a schematic diagram of an electronic device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0035] The present application is described below based on the following embodiments, but the present application is not limited to these embodiments. In the detailed description of the present application below, certain specific details are described in detail. Those skilled in the art can fully understand the present application without the description of these details. To avoid obscuring the essence of the present application, well-known methods, processes, procedures, components, and circuits are not described in detail.

[0036] Furthermore, persons of ordinary skill in the art will appreciate that the figures provided herein are for illustration purposes only and are not necessarily drawn to scale.

[0037] Unless the context clearly requires otherwise, words like “include”, “comprising” and the like throughout this application should be interpreted as including rather than exclusive or exhaustive; that is, as meaning “including but not limited to”.

[0038] In the description of this application, it should be understood that the terms "first", "second", etc. are used for descriptive purposes only and should not be understood to indicate or imply relative importance. In addition, in the description of this application, unless otherwise specified, "plurality" means two or more.

[0039] Where the solutions described in this specification and in the examples involve the processing of personal information, such processing will be conducted with a legitimate basis (e.g., with the consent of the personal information subject or as necessary for the performance of a contract) and only within the prescribed or agreed scope. A user's refusal to process personal information other than that required for basic functions will not affect the user's use of these basic functions.

[0040] Simulation coverage is a key metric for measuring the completeness of the chip verification process. It quantitatively demonstrates which parts have been tested. Simulation coverage is generally divided into code coverage and functional coverage. Code coverage refers to the proportion of the total code volume actually executed during simulation, including but not limited to toggle coverage, line coverage, statement coverage, branch coverage, and state machine coverage (FSMC coverage). Toggle coverage checks whether a signal has ever transitioned from 0 to 1 or from 1 to 0. Line coverage measures whether each line in the source code has been executed at least once. Statement coverage checks whether every statement has been executed. Branch coverage checks whether all possible paths in if-else and other branching structures have been executed. State machine coverage analyzes the state transitions of finite state machines. Functional coverage assesses whether specific functional points in the design are adequately covered by test cases. Functional coverage can often be customized based on user requirements.

[0041] After obtaining simulation coverage, regression testing is usually performed. Regression testing involves rerunning previous test cases after each design modification to ensure that the new changes have not broken existing functionality. During this process, a series of coverage databases are generated, forming a simulation coverage regression list.

[0042] To verify the correct register configuration in a chip design, register scan test cases are often used. Register scan test cases can be automatically generated by tools and can quickly read and write corresponding registers. Furthermore, register scan test cases traverse all register addresses and attempt basic read and write operations on each register. They typically do not deeply verify the specific functions or boundary conditions of registers, focusing solely on register existence and accessibility. Due to these characteristics of register scan test cases, high coverage (such as row coverage and flip coverage) reported by register scan test cases can be mistakenly interpreted as indicating that register-related code has been fully verified, thereby overlooking other more critical verification requirements. Consequently, high coverage rates associated with register scan test cases can result in certain code paths being marked as covered, even though these paths have not been rigorously verified. Furthermore, register scan test cases typically do not verify interactions, dependencies, or specific operation sequences between registers. Therefore, coverage test results using register scan test cases can misleadingly reflect verification completeness. Clearly, directly incorporating the coverage values ​​of register scan test cases into the coverage regression list can contaminate register-related coverage points in the code / function coverage, resulting in false coverage and potentially masking true coverage gaps. Therefore, an embodiment of the present invention provides a simulation coverage processing method and device to assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value, so as to eliminate the coverage value corresponding to the register scan use case, thereby avoiding directly incorporating the coverage value of the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and being able to retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring the accuracy of coverage convergence and chip verification.

[0043] Figure 1 This is a flow chart of a simulation coverage processing method according to an embodiment of the present invention. Figure 1 As shown, the simulation coverage processing method of the embodiment of the present invention includes the following steps:

[0044] Step S110 , integrating the coverage databases obtained from each simulation test operation to obtain an initial database list.

[0045] Wherein, the coverage rate database is obtained based on the simulation test operation performed each time, that is, each time a simulation test operation is performed, a coverage rate database is obtained, which includes the simulation coverage rate results obtained by the simulation test operation. It should be understood that the present embodiment can execute pre-written test cases (such as register scan cases, etc.) based on corresponding simulation tools to perform corresponding simulation test operations. Wherein, the simulation tool can adopt VCS (Verilog Compiled Simulator), or other simulation tools such as ModelSim, Questa Sim, etc. It should be understood that the present embodiment does not limit the simulation tool adopted, and it can adopt existing or future simulation tools that are updated or newly added in the process of technological development and have simulation test functions such as corresponding debugging functions and coverage analysis functions.

[0046] In this embodiment, the coverage databases obtained from the executed simulation test operations are integrated to form an initial database list. Optionally, in this embodiment, the coverage databases distributed in different folders are integrated into the same folder to obtain the initial database list.

[0047] Step S120 , filtering out a first list and a second list from the initial database list. The first list is a database list that does not include coverage databases corresponding to register scan use cases, and the second list is a database list that only includes coverage databases corresponding to register scan use cases.

[0048] During the overall simulation test process of the design, different test cases are used, such as register scan test cases and other test cases other than register scan test cases. As mentioned above, the coverage database corresponding to the register scan test case may contaminate the register-related coverage points in the code / function coverage, resulting in false coverage. Therefore, this embodiment finds the coverage database corresponding to the desired register scan test case from the initial database list and performs targeted processing to avoid directly incorporating the coverage values ​​of the register scan test case into the coverage regression list, thereby avoiding false coverage caused by contaminating the register-related coverage points in the code / function coverage.

[0049] In an optional implementation, this embodiment filters out the first list and the second list from the initial database list based on a predetermined regular expression, wherein the regular expression is used to specify a register scan case that is desired to be filtered.

[0050] A regular expression is a tool for matching character patterns within a string. In this embodiment, a regular expression for matching and extracting corresponding coverage databases can be written based on keywords contained in the coverage database names (e.g., reg, register, reg_test, register_test, etc.). The regular expression is then used to match each coverage database in the initial database list to filter out coverage databases corresponding to register scan use cases that meet the regular expression criteria, forming a second list. The coverage databases in the initial database list, except for the second list, are then combined to form a first list.

[0051] It should be understood that this embodiment does not limit the method of distinguishing the coverage database corresponding to the register scan use case and the coverage database corresponding to the non-register scan use case from the initial database list. It can only filter out the above-mentioned first list and second list from the initial database list, and no further examples will be given here.

[0052] Furthermore, in an optional implementation, the direct execution of steps S120-S150 can be pre-configured. In another optional implementation, based on different test scenarios, under certain specific requirements, the coverage values ​​of the register scan use cases may also need to be incorporated into the coverage regression list. This requires relevant staff to actively trigger whether to execute steps S120-S150, or set corresponding trigger conditions to determine whether to execute steps S120-S150 by judging whether the trigger conditions are met. Specifically, in response to receiving a filtering instruction, this embodiment filters out the first list and the second list from the initial database list, and then executes steps S130-S150. Therefore, this embodiment can enable the entire simulation coverage processing method to adapt to various practical application scenarios by setting this instruction, thereby improving the flexibility of the simulation coverage processing configuration.

[0053] In step S130, the coverage value in the coverage database in the second list is determined as a predetermined value, and an updated second list is obtained. Optionally, the predetermined value can be any value or character that can be judged as invalid, and this embodiment does not limit this. Furthermore, the predetermined value can be 0, so that the coverage database corresponding to the register scan use case in the updated second list can retain the execution record of the register scan use case, but its coverage value does not affect the judgment of the simulation coverage, thereby avoiding directly incorporating the coverage value of the register scan use case into the coverage regression list to avoid its contamination of the pseudo coverage caused by the register-related cover points in the code / function coverage.

[0054] In an optional implementation, the number of coverage databases in the updated second list is the same as that in the original second list, that is, step S130 performs a coverage value update operation on each coverage database in the second list respectively.

[0055] In another optional implementation, the updated second list includes only one coverage database, which merges the coverage data in each coverage database in the second list. That is, step S130 can perform a coverage value update operation on each coverage database in the second list, and then merge the coverage databases in each coverage database after the coverage value is updated to obtain a coverage database. Alternatively, step S130 can first perform a data merging operation on each coverage database in the second list, and after merging into one coverage database, update the coverage value in the coverage database to a predetermined value. It should be understood that this embodiment does not limit the form of the updated second list, and it can be configured based on specific needs.

[0056] Step S140: Merge the first list and the updated second list to obtain a new database list.

[0057] Furthermore, the coverage database in the first list and the updated coverage database in the second list are merged into the same folder, that is, the new database list.

[0058] Step S150: Merge the coverage databases in the new database list into a target coverage database.

[0059] Furthermore, this embodiment merges the coverage data in each coverage database in the new database list into the same target coverage database. Optionally, this embodiment can use the coverage data merging function in the corresponding simulation tool to merge the data. This embodiment does not limit the specific method of data merging, and it only needs to be able to achieve the corresponding data merging.

[0060] In another optional implementation, if this embodiment uses the triggering of a filtering instruction to execute the corresponding simulation coverage processing method, this embodiment responds to not receiving a filtering instruction by merging the coverage databases in the initial database list to obtain the corresponding target coverage database.

[0061] Furthermore, the simulation coverage processing method of this embodiment further includes: performing coverage back-annotation based on the target coverage database. Furthermore, this embodiment can use existing or future development updated or newly added coverage back-annotation tools to perform coverage back-annotation operations. This embodiment does not limit the specific back-annotation tool used, as long as it can implement the back-annotation function.

[0062] Coverage backannotation is a method of feeding back simulation coverage data into the source code or verification environment during the chip design verification process. This helps verification engineers understand which parts of the design have been fully tested and which parts require more attention. This allows them to effectively adjust and optimize the verification plan to ensure that the design meets the expected quality standards.

[0063] Therefore, before back-annotating the coverage, this embodiment assigns the coverage value corresponding to the register scan use case to a predetermined value, so that after back-annotation based on the acquired target coverage database, engineers can query the execution records of the register scan use case, and the coverage judgment of various test nodes will not rely on the coverage database corresponding to the register scan use case. This obviously avoids the false coverage caused by the register-related coverage points in the contaminated code / function coverage, allowing engineers to design and accurately judge and verify the adjustment and optimization of the plan.

[0064] The embodiment of the present invention integrates the coverage databases obtained by each simulation test operation to obtain an initial database list, filters out a first list and a second list from the initial database list, determines the coverage values ​​in the coverage database in the second list as predetermined values, obtains an updated second list, merges the first list and the updated second list, obtains a new database list, and merges the coverage databases in the new database list into a target coverage database. Among them, the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. Therefore, the embodiment of the present invention can assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage values ​​corresponding to the register scan use case, thereby avoiding the coverage values ​​of the register scan use case from being incorporated into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring coverage convergence.

[0065] Figure 2 FIG. 1 is a flow chart of another simulation coverage processing method according to an embodiment of the present invention. Figure 2 As shown, the simulation coverage method of the embodiment of the present invention includes the following steps:

[0066] Step S210 , integrating the coverage databases obtained from each simulation test operation to obtain an initial database list.

[0067] The coverage database is obtained based on each executed simulation test operation, that is, each time a simulation test operation is executed, a coverage database is obtained, which contains the simulation coverage results obtained by the simulation test operation.

[0068] In this embodiment, the coverage databases obtained from the executed simulation test operations are integrated to form an initial database list. Optionally, in this embodiment, the coverage databases distributed in different folders are integrated into the same folder to obtain the initial database list.

[0069] Step S220, determine whether a filtering instruction has been received. Based on different test scenarios, under certain specific requirements, the coverage value of the register scan use case may also need to be incorporated into the coverage regression list. This requires relevant staff to actively trigger whether to filter out the register scan use case, or set the corresponding trigger condition to determine whether to filter out the register scan use case by judging whether the trigger condition is met. Therefore, this embodiment can make the entire simulation coverage processing method adapt to various actual application scenarios by setting this instruction, thereby improving the flexibility of the simulation coverage processing configuration.

[0070] Furthermore, this embodiment executes steps S230 to S260 when a filtering instruction is received, and executes step S270 when no filtering instruction is received.

[0071] Step S230: In response to receiving the filtering instruction, filter out a first list and a second list from the initial database list. The first list is a database list that does not include coverage databases corresponding to register scan use cases, and the second list is a database list that only includes coverage databases corresponding to register scan use cases.

[0072] During the overall simulation test process of the design, different test cases are used, such as register scan test cases and other test cases other than register scan test cases. As mentioned above, the coverage database corresponding to the register scan test case may contaminate the register-related coverage points in the code / function coverage, resulting in false coverage. Therefore, this embodiment finds the coverage database corresponding to the desired register scan test case from the initial database list and performs targeted processing to avoid directly incorporating the coverage values ​​of the register scan test case into the coverage regression list, thereby avoiding false coverage caused by contaminating the register-related coverage points in the code / function coverage.

[0073] In an optional implementation, this embodiment filters out the first list and the second list from the initial database list based on a predetermined regular expression, wherein the regular expression is used to specify a register scan case that is desired to be filtered.

[0074] It should be understood that this embodiment does not limit the method of distinguishing the coverage database corresponding to the register scan use case and the coverage database corresponding to the non-register scan use case from the initial database list. It can only filter out the above-mentioned first list and second list from the initial database list, and no further examples will be given here.

[0075] In step S240, the coverage value in the coverage database in the second list is determined as a predetermined value, and an updated second list is obtained. Optionally, the predetermined value can be any value or character that can be judged as invalid, and this embodiment does not limit this. Furthermore, the predetermined value can be 0, so that the coverage database corresponding to the register scan use case in the updated second list can retain the execution record of the register scan use case, but its coverage value does not affect the judgment of the simulation coverage, thereby avoiding directly incorporating the coverage value of the register scan use case into the coverage regression list to avoid its contamination of the pseudo coverage caused by the register-related coverage points in the code / function coverage.

[0076] In an optional implementation, the number of coverage databases in the updated second list is the same as that in the original second list, that is, step S130 performs a coverage value update operation on each coverage database in the second list respectively.

[0077] In another optional implementation, the updated second list includes only one coverage database, which merges the coverage data in each coverage database in the second list. That is, step S130 can perform a coverage value update operation on each coverage database in the second list, and then merge the coverage databases in each coverage database after the coverage value is updated to obtain a coverage database. Alternatively, step S130 can first perform a data merging operation on each coverage database in the second list, and after merging into one coverage database, update the coverage value in the coverage database to a predetermined value. It should be understood that this embodiment does not limit the form of the updated second list, and it can be configured based on specific needs.

[0078] Step S250: Merge the first list and the updated second list to obtain a new database list.

[0079] Furthermore, the coverage database in the first list and the updated coverage database in the second list are merged into the same folder, that is, the new database list.

[0080] Step S260: Merge the coverage databases in the new database list into a target coverage database.

[0081] Furthermore, this embodiment merges the coverage data in each coverage database in the new database list into the same target coverage database. Optionally, this embodiment can use the coverage data merging function in the corresponding simulation tool to merge the data. This embodiment does not limit the specific method of data merging, and it only needs to be able to achieve the corresponding data merging.

[0082] Step S270 , in response to not receiving the filtering instruction, merging the coverage databases in the initial database list to obtain a corresponding target coverage database.

[0083] Step S280: Perform coverage back-annotation based on the target coverage database. Further, this embodiment can use existing or future development of updated or newly added coverage back-annotation tools to perform coverage back-annotation. This embodiment does not limit the specific back-annotation tool used, as long as it can achieve the back-annotation function.

[0084] Therefore, after receiving the filtering instruction, this embodiment can assign the coverage value corresponding to the register scan use case to a predetermined value before back-annotating the coverage, so that after back-annotation based on the acquired target coverage database, engineers can query the execution records of the register scan use case, and the coverage judgment of various test nodes will not rely on the coverage database corresponding to the register scan use case. This obviously avoids the false coverage caused by the register-related coverage points in the contaminated code / function coverage, allowing engineers to design and accurately judge and verify the adjustment and optimization of the plan.

[0085] The embodiment of the present invention integrates the coverage databases obtained by each simulation test operation to obtain an initial database list, filters out a first list and a second list from the initial database list, determines the coverage values ​​in the coverage database in the second list as predetermined values, obtains an updated second list, merges the first list and the updated second list, obtains a new database list, and merges the coverage databases in the new database list into a target coverage database. Among them, the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. Therefore, the embodiment of the present invention can assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage values ​​corresponding to the register scan use case, thereby avoiding directly incorporating the coverage values ​​of the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring coverage convergence.

[0086] Figure 3This is a schematic diagram of the simulation coverage processing process of an embodiment of the present invention. This embodiment takes receiving a filtering instruction as an example. Figure 3 As shown, this embodiment integrates the currently acquired N (N≥1) discrete coverage databases Vdb1, Vdb2, ..., VdbN to obtain an initial database list full_vdb_list. Furthermore, in response to receiving a filtering instruction, this embodiment filters out a first list exclude_reg_vdb_list and a second list include_reg_vdb_list from the initial database list full_vdb_list based on a predetermined regular expression. Among them, the first list exclude_reg_vdb_list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list include_reg_vdb_list is a database list that only includes the coverage database corresponding to the register scan use case. Regular expressions are used to specify the register scan use case that is desired to be filtered.

[0087] Furthermore, this embodiment updates the coverage values ​​in the coverage database in the second list include_reg_vdb_list, and performs coverage data merging to obtain the register coverage database reg.vdb (that is, the second list after the above update contains a total register coverage database).

[0088] Furthermore, this embodiment integrates the first list exclude_reg_vdb_list and the register coverage database reg.vdb to obtain a new database list new_vdb_list, wherein the new database list new_vdb_list includes the coverage databases corresponding to each register-excluded scan case and the register coverage database reg.vdb.

[0089] Furthermore, this embodiment performs a merging of coverage data on the new database list new_vdb_list to obtain a target coverage database merged.vdb, and then performs a back-annotation operation based on the target coverage database merged.vdb.

[0090] It should be understood that the specific execution process of each of the above steps is similar to the above embodiment and will not be described in detail here.

[0091] The embodiment of the present invention integrates the coverage databases obtained by each simulation test operation to obtain an initial database list, filters out a first list and a second list from the initial database list, determines the coverage values ​​in the coverage database in the second list as predetermined values, obtains an updated second list, merges the first list and the updated second list, obtains a new database list, and merges the coverage databases in the new database list into a target coverage database. Among them, the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. Therefore, the embodiment of the present invention can assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage values ​​corresponding to the register scan use case, thereby avoiding directly incorporating the coverage values ​​of the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring coverage convergence.

[0092] Figure 4 Schematic diagram of a simulation coverage processing device according to an embodiment of the present invention. Figure 4 As shown, the simulation coverage processing device 4 of the embodiment of the present invention includes an integration unit 41 , a filtering unit 42 , an assignment unit 43 , a first merging unit 44 and a second merging unit 45 .

[0093] The integration unit 41 is configured to integrate the coverage databases obtained by each simulation test operation to obtain an initial database list. The filtering unit 42 is configured to filter out a first list and a second list from the initial database list, wherein the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. The assignment unit 43 is configured to determine the coverage value in the coverage database in the second list as a predetermined value to obtain an updated second list. Optionally, the predetermined value is 0. The first merging unit 44 is configured to merge the first list and the updated second list to obtain a new database list. The second merging unit 45 is configured to merge the coverage databases in the new database list into a target coverage database.

[0094] In an optional implementation, the filtering unit 42 is further configured to filter out the first list and the second list from the initial database list based on a predetermined regular expression, wherein the regular expression is used to specify a register scanning case desired to be filtered.

[0095] In an optional implementation, the filtering unit 42 is further configured to filter out the first list and the second list from the initial database list in response to receiving a filtering instruction.

[0096] In an optional implementation, the simulation coverage processing device 4 further includes a third merging unit configured to merge the coverage databases in the initial database list in response to not receiving a filtering instruction, and obtain a corresponding target coverage database.

[0097] In an optional implementation, the simulation coverage processing device 4 further includes a back-annotation unit configured to perform coverage back-annotation based on the target coverage database.

[0098] The embodiment of the present invention integrates the coverage databases obtained by each simulation test operation to obtain an initial database list, filters out a first list and a second list from the initial database list, determines the coverage values ​​in the coverage database in the second list as predetermined values, obtains an updated second list, merges the first list and the updated second list, obtains a new database list, and merges the coverage databases in the new database list into a target coverage database. Among them, the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. Therefore, the embodiment of the present invention can assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage values ​​corresponding to the register scan use case, thereby avoiding directly incorporating the coverage values ​​of the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring coverage convergence.

[0099] Figure 5 Schematic diagram of an electronic device according to an embodiment of the present invention. In this embodiment, the electronic device 5 includes a server, a terminal, etc., wherein the electronic device 5 is equipped with a simulation test tool for implementing chip design simulation test. Figure 5 As shown, the electronic device 5 includes: at least one processor 51; a memory 52 connected to the at least one processor 51 for communication; and a communication component 53 connected to the scanning device for communication, and the communication component 53 receives and sends data under the control of the processor 51; wherein the memory 52 stores instructions that can be executed by at least one processor 51, and the instructions are executed by at least one processor 51 to implement the above-mentioned simulation coverage processing method.

[0100] Specifically, the electronic device includes: one or more processors 51 and a memory 52, Figure 5A processor 51 is taken as an example. The processor 51 and the memory 52 may be connected via a bus or other means. Figure 5 In the example above, a bus connection is used. Memory 52, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer executable programs, and modules. Processor 51 executes the non-volatile software programs, instructions, and modules stored in memory 52 to execute various functional applications and data processing of the device, thereby implementing the above-mentioned simulation coverage processing method.

[0101] The memory 52 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and application programs required for at least one function; the data storage area may store a list of options, etc. In addition, the memory 52 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some embodiments, the memory 52 may optionally include a memory remotely located relative to the processor 51, and these remote memories may be connected to an external device via a network. Examples of the aforementioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0102] One or more modules are stored in the memory 52 , and when executed by one or more processors 51 , perform the simulation coverage processing method in any of the above method embodiments.

[0103] The above-mentioned product can execute the method provided in the embodiment of this application, and has the functional modules and beneficial effects corresponding to the execution method. For technical details not fully described in this embodiment, please refer to the method provided in the embodiment of this application.

[0104] The embodiment of the present invention integrates the coverage databases obtained by each simulation test operation to obtain an initial database list, filters out a first list and a second list from the initial database list, determines the coverage values ​​in the coverage database in the second list as predetermined values, obtains an updated second list, merges the first list and the updated second list, obtains a new database list, and merges the coverage databases in the new database list into a target coverage database. Among them, the first list is a database list that does not include the coverage database corresponding to the register scan use case, and the second list is a database list that only includes the coverage database corresponding to the register scan use case. Therefore, the embodiment of the present invention can assign the coverage in the coverage database corresponding to the register scan use case to a predetermined value to eliminate the coverage values ​​corresponding to the register scan use case, thereby avoiding directly incorporating the coverage values ​​of the register scan use case into the coverage regression list, thereby avoiding the pseudo coverage caused by the register-related coverage points in the contamination code / function coverage, and can retain the records of the register scan use case for subsequent coverage back-labeling, thereby ensuring coverage convergence.

[0105] Another embodiment of the present invention relates to a non-volatile storage medium for storing a computer-readable program, wherein the computer-readable program is used to enable a computer to execute part or all of the above method embodiments.

[0106] That is, those skilled in the art will understand that all or part of the steps in the above-mentioned embodiments can be implemented by instructing the relevant hardware through a program, which is stored in a storage medium and includes a number of instructions for causing a device (which may be a single-chip microcomputer, chip, etc.) or a processor to execute all or part of the steps of the methods described in the embodiments of the present application. The aforementioned storage medium includes: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc., various media that can store program code.

[0107] The foregoing is merely a preferred embodiment of the present application and is not intended to limit the present application. Persons skilled in the art will readily appreciate that various modifications and variations are possible. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present application are intended to be within the scope of protection of the present application.

Claims

1. A simulation coverage processing method, characterized in that: The method comprises: Integrate the coverage databases obtained from each simulation test operation to obtain an initial database list; Filtering the initial database list to obtain a first list and a second list, wherein the first list is a database list that does not include coverage databases corresponding to register scan use cases, and the second list is a database list that only includes coverage databases corresponding to register scan use cases; Determine the coverage value in the coverage database in the second list as a predetermined value, and obtain an updated second list; Merging the first list and the updated second list to obtain a new database list; The coverage databases in the new database list are merged into the target coverage database.

2. The method according to claim 1, characterized in that The filtering out the first list and the second list from the initial database list comprises: The first list and the second list are filtered out from the initial database list based on a predetermined regular expression, wherein the regular expression is used to specify a register scan case desired to be filtered.

3. The method according to claim 1, characterized in that The filtering out the first list and the second list from the initial database list comprises: In response to receiving the filtering instruction, the first list and the second list are filtered out from the initial database list.

4. The method according to claim 3, characterized in that The method further comprises: In response to not receiving the filtering instruction, the coverage databases in the initial database list are merged to obtain a corresponding target coverage database.

5. The method according to any one of claims 1 to 4, characterized in that The method further comprises: Coverage back-annotation is performed based on the target coverage database.

6. The method according to claim 1, characterized in that The predetermined value is 0.

7. A simulation coverage processing device, characterized in that: The device comprises: an integration unit configured to integrate coverage databases obtained from various simulation test operations to obtain an initial database list; a filtering unit configured to filter out a first list and a second list from the initial database list, wherein the first list is a database list that does not include coverage databases corresponding to register scan use cases, and the second list is a database list that only includes coverage databases corresponding to register scan use cases; an assignment unit configured to determine the coverage value in the coverage database in the second list as a predetermined value, and obtain an updated second list; a first merging unit, configured to merge the first list and the updated second list to obtain a new database list; The second merging unit is configured to merge the coverage databases in the new database list into a target coverage database.

8. An electronic device comprising a memory and a processor, characterized in that: The memory is configured to store one or more computer program instructions, wherein the one or more computer program instructions are executed by the processor to implement the method according to any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.

10. A computer program product, characterized in that When the computer program product is run on a computer, the computer is caused to perform the method according to any one of claims 1 to 6.