Function coverage data compression storage method, system, device and storage medium

By dynamically selecting coverage levels to adjust the data structure, the problem of wasted data storage space for functional coverage data is solved, and compressed storage of coverage data is achieved, reducing storage overhead.

CN120832102BActive Publication Date: 2025-11-28成都融见软件科技有限公司 +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511341200.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-19
Publication Date
2025-11-28
Estimated Expiration
2045-09-19

AI Technical Summary

Technical Problem

In existing technologies, the way functional coverage data is stored leads to a large amount of wasted storage space, making it difficult to meet the needs of efficient and compact data storage in large-scale verification scenarios.

Method used

By dynamically selecting coverage levels based on a hierarchical structure of functional coverage, the data storage method is adjusted, including: dynamically selecting the target data structure based on coverage points or cross-coverage coverage, and using a dynamic storage selector to operate the target data structure, including the flag bits of the current data structure and the storage structure data.

Benefits of technology

A coverage data compression storage method was implemented, which dynamically selects the data structure based on the coverage level of the coverage point or cross-coverage. It abandons the traditional method of using a single data structure and data type to store coverage information, and instead dynamically adjusts the data structure according to different coverage levels. This fully utilizes the characteristics of coverage, achieves coverage data compression, reduces storage space, and significantly reduces storage overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120832102B_ABST
    Figure CN120832102B_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of electronic design automation, in particular to a function coverage data compression storage method, system, device and storage medium, based on the hierarchy of function coverage, each coverage point or cross coverage in the same hierarchy is traversed, the coverage rate of each coverage point or cross coverage and the hit times of each bin under it are collected; the coverage rate level and its corresponding data structure are obtained; according to the target coverage rate level where the coverage rate of the target coverage point or cross coverage falls, the target data structure is dynamically selected; according to the target data structure, the corresponding target data structure is operated by the dynamic storage selector, and the target data structure includes the flag bit of the current data structure and the storage structure data; wherein the storage structure data includes at least one of the number of bins and the hit times, which significantly reduces the storage overhead.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of electronic design automation, in particular to a functional coverage data compression storage method, system, device and storage medium. BACKGROUND

[0002] In the chip verification process, the functional coverage is an important indicator to measure the completeness of verification, and its data is usually organized and counted in the form of a complete bin set formed by cover points and cross coverages. In the prior art, the storage of functional coverage data generally uses a unified data structure and a fixed length data type to simplify data management and access logic. However, in a complex design scenario, a single cover point may contain tens of thousands of bins or even more, and the cross coverage between multiple cover points will cause the total number of bins to grow exponentially, thereby generating a large-scale coverage data entity. Each bin needs to independently record its identification information (such as index) and hit count metadata, and as the bin size expands rapidly, the amount of related data increases significantly. In order to ensure that the numbering space is sufficient and to avoid numerical overflow problems caused by a large number of bins, the existing scheme usually uses a fixed width data type such as uint64_t to store the type ID and hit count of the bin, that is, each field occupies 8 bytes. Although this method ensures the integrity and consistency of data representation and access, in the case where the actual index value or ID value of a large number of bins is much smaller than the maximum value that can be represented by 64 bits, high-bit redundant bits are generally present, causing serious storage space waste. Excessive memory overhead not only increases resource consumption during simulation, but also significantly reduces simulation efficiency, and poses a serious challenge to the storage, transmission and subsequent convergence analysis of coverage data. The fixed format storage of functional coverage data currently results in a large amount of storage space waste, making it difficult to meet the needs of efficient and compact data storage in large-scale verification scenarios. Therefore, there is an urgent need for a data compression storage method that reduces storage space waste. SUMMARY

[0003] In view of the above technical problems, the technical scheme adopted by the present application is as follows: a functional coverage data compression storage method, the method comprising the following steps:

[0004] S100, based on the hierarchy of functional coverage, traversing each cover point or cross coverage in the same level, collecting the hit count of each bin therein, and calculating the coverage of each cover point and cross coverage according to the hit count.

[0005] S200, obtaining the coverage level and its corresponding data structure.

[0006] S300, dynamically selecting a target data structure according to a target coverage rate level to which the target coverage point or the cross-coverage coverage rate falls.

[0007] S400, operating a corresponding target data structure through a dynamic storage selector according to the target data structure, the target data structure including a flag bit of a current data structure and storage structure data; wherein the storage structure data includes at least one of a bin number and a hit frequency thereof.

[0008] In addition, the present application also provides a functional coverage rate data compression storage system, which includes: a unified data access interface, which receives a storage or reading request for functional coverage rate data sent by an upper application; a dynamic storage selector, which responds to the request, acquires a target distribution type according to a current object coverage rate, dynamically selects a target storage adapter from a plurality of storage adapters based on the target distribution type, and forwards the request to the selected target storage adapter; and a plurality of storage adapters, each of which is connected with and operates a type of data structure to complete the storage or reading of the functional coverage rate data.

[0009] In addition, the present application also provides a non-transitory computer readable storage medium, which stores at least one instruction or at least one program, the at least one instruction or the at least one program is loaded and executed by a processor to implement the above method.

[0010] In addition, the present application also provides an electronic device, which includes a processor and the above non-transitory computer readable storage medium.

[0011] The present application has at least the following beneficial effects:

[0012] The embodiment of the present application provides a functional coverage rate data compression storage method, system, device and storage medium, which dynamically selects a data structure through a coverage rate level to which a coverage point or cross-coverage falls, discards a traditional single data structure and data type for storing bin coverage, and dynamically adjusts a data structure according to different coverage rates, fully utilizes the characteristics of the coverage rate, realizes coverage rate data compression, reduces storage space, and significantly reduces storage overhead, so as to achieve the purpose of storing related bin data by using an optimal data structure. BRIEF DESCRIPTION OF DRAWINGS

[0013] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.

[0014] Figure 1 A functional coverage data compression storage method flow chart is provided for the embodiments of the present application. DETAILED DESCRIPTION

[0015] The technical solutions in the embodiments of the present application will be clearly and completely described with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person skilled in the art without creative work are within the protection scope of the present application.

[0016] Unless otherwise defined, all technical and scientific terms used in the embodiments of the present application have the same meanings as commonly understood by a person skilled in the art.

[0017] Please refer to Figure 1 which shows a functional coverage data compression storage method, the method comprising the following steps:

[0018] S100, based on the hierarchy of functional coverage, traversing each cover point or cross coverage in the same level, collecting the hit times of each bin therein, and calculating the coverage of each cover point and cross coverage according to the hit times.

[0019] Wherein, the cover point (Coverpoint) and the cross coverage (Cross) are the core structures of the functional coverage model, and are respectively used for counting the hit conditions of the values of variables (or expressions) and combinations thereof. Both of them contain one or more bins (Bins) as the basic units for recording the hit times. Specifically, in the functional coverage model, the cover point (Coverpoint) and the cross coverage (Cross) are the core coverage constructs (Coverage Constructs) for defining and counting the hit conditions of specific values or value combinations. Among them, the cover point (Coverpoint): a basic statistical unit for dividing and sampling the value space of a single variable or expression. It monitors the occurrence times of target values or value intervals by defining a set of bins (Bins). Among them, the cross coverage (Cross): a statistical unit for jointly sampling the value combinations of two or more cover points. It automatically generates cross bins (Cross Bins) by calculating the Cartesian product of the values of each cover point, to monitor the occurrence of specific scenarios or state combinations. Among them, each cover point or cross coverage contains one or more bins (Bins) as the basic container for finally recording the specific hit times.

[0020] Wherein, in the coverage collection process, bin is a predefined container for classifying and counting the values or states of the sampling points, and the calculation of the coverage directly depends on whether each bin is hit by the sampling value.

[0021] Wherein, the hierarchy of the functional coverage can be abstractly represented by a tree model, and the nodes thereof are as follows: a root node (Root Node), an intermediate node (Intermediate Node), a child node (Child Node), and a leaf node (Leaf Node). The root node (Root Node) represents the entire functional coverage model or a top-level covergroup instance set. It is the logical starting point of all coverage data. The intermediate node (Intermediate Node) is acted by a covergroup instance. The covergroup is a unit for encapsulating the coverage behavior of a specific interface, module, or functional point. The child node (Child Node) is a coverpoint and a cross cover defined inside the covergroup. The coverpoint samples the value of a single variable or expression, and the cross cover monitors the combination of the values of multiple coverpoints. The leaf node (Leaf Node) is a bin, which is the smallest unit of coverage statistics. Each bin defines one or more values or value levels of a coverpoint or a cross cover. The hit count of the bin directly reflects the number of times the corresponding design state is triggered by the test stimulus.

[0022] Wherein, the coverage of the coverpoint or the cross cover is the percentage of the number of bins that have been hit in the coverpoint or the cross cover to the total number of all defined bins under the coverpoint or the cross cover, which is used to measure the completeness of the verification.

[0023] Wherein, the hit count of the bin refers to the cumulative count triggered when the value of the sampled signal or variable meets the value condition or combination condition defined by the bin during simulation. This value is the most basic atomic data unit in functional coverage statistics.

[0024] In an embodiment, the step of collecting the coverage and the hit counts of all bins thereunder includes: traversing the hierarchy, identifying all covergroup instances; obtaining all coverpoints or cross covers under each covergroup; for each coverpoint or cross cover, independently performing: reading the coverage of the current coverpoint or cross cover, traversing the bins under the current coverpoint or cross cover, and collecting the original hit counts of all bins. The collected coverage and hit counts of the bins are organized into an intermediate data structure according to the coverpoints or cross covers and the hierarchical relationship, for subsequent compressed storage.

[0025] S200, obtaining the coverage level and a corresponding data structure.

[0026] The distribution type is directly determined according to the coverage level, and different data structures are selected for compression storage according to the different distribution types.

[0027] The object to be processed for this compression is indicated in the data structure, which can be a data category to be stored selected according to the distribution characteristics of the bin, including a bin number, a hit number, a continuous index number range and a single-bit flag. The continuous index number range includes a start index and an end index, or a start index and a length. The single-bit flag is used to mark the case of complete coverage. The application optimizes the use of storage resources by configuring different target information types for different distribution types. As an example, the target information is a "bin number", a "bin number and hit number", a "hit number", or a "recorded identifier of complete coverage only".

[0028] The data structure is used to indicate the organization form of the compressed data, such as a hash table, a grayscale map, a block compression or a single-bit identifier.

[0029] In an embodiment, the coverage rate is divided into four coverage levels from low to high. The coverage rate in the first coverage level is low, which is a sparse matrix, and most bins are not covered. Therefore, the data of the covered bins is stored by a hash table, and the number of the bin is the key and the hit number is the value in the recorded key-value pair. The coverage rate in the second coverage level is moderate, and a certain proportion of bins are covered, and a certain continuous area is covered. Therefore, the bin data in the continuous area is recorded by block compression, and the information of the discrete bins outside the continuous area is recorded by a hash table or a grayscale map. The coverage rate in the third coverage level is large, and most bins are covered. Therefore, only the bin number of the uncovered bin is recorded by a hash table due to the coverage rate. If the difference of the covered bins is greater than a preset difference threshold, the grayscale map can be selected for separate storage. The coverage rate in the fourth coverage level is 100%, which is complete coverage, and the state of complete coverage is marked by one bit.

[0030] It should be noted that different data structures are dynamically selected for compression storage according to the coverage level, and the coverage rate data is efficiently organized and compressed, so that the bin data of different distribution types can adopt the optimal storage scheme.

[0031] It should be noted that other configuration methods between the distribution type, the coverage level and the data structure also fall within the protection scope of the application.

[0032] S300, dynamically selecting a target data structure according to a target coverage rate level to which the target coverage point or the intersecting coverage falls.

[0033] It should be noted that, according to the distribution type to which different coverage rates belong, the embodiment of the present application dynamically adjusts the data structure to compress the huge bin data and reduce the occupied storage space.

[0034] S400, operating a corresponding target data structure through a dynamic storage selector according to the target data structure, the target data structure including a flag bit of a current data structure and storage structure data; wherein the storage structure data includes at least one of a bin number and a hit frequency.

[0035] In one embodiment, in S400, the data structure for storing the bin number includes an object type flag bit, a storage level flag bit of the number and an index number of the layer where the object is located; the data structure for storing the hit frequency includes a data length level flag bit and the hit frequency.

[0036] The object type includes a coverage group, a coverage point, an intersecting coverage and a bin. Each object corresponds to a storage level of a number.

[0037] The storage level refers to a preset storage capacity level of the number of a certain object type. Each storage level corresponds to a fixed bit length and is marked by a binary number. The storage level of the number of different object types can be different. For example, the storage level of the bin number is divided into four levels and is represented by two bits, wherein the first storage level corresponds to a bin number range of 0 to 1023, occupying 10 bits of storage space; the second storage level corresponds to a bin number range of 1024 to 16383, occupying 14 bits of storage space; the third storage level corresponds to a bin number range of 16384 to 262143, occupying 18 bits of storage space; and the fourth storage level corresponds to a bin number range of 262144 to 1048575, occupying 20 bits of storage space. By introducing the storage level mechanism, the optimal storage bit number can be dynamically selected according to the actual range of the number, avoiding the space waste caused by uniform high bit width and significantly improving the storage efficiency.

[0038] The index number is the index of the same type of object in the same layer.

[0039] It should be noted that the object type flag bit and the number storage level flag bit are respectively represented by corresponding bits. For example, when there are four kinds of objects in total, the four kinds of objects are represented by two bits. When the number storage level of the bin is divided into four levels, the four levels are represented by two bits. When the number storage level of the coverage point is divided into two levels, the two levels are represented by one bit.

[0040] As an example, assume that there are four kinds of objects: coverage group, coverage point, cross coverage and bin, wherein the number storage level of the coverage group, cross coverage and bin is divided into four levels, and the number storage level of the coverage point is divided into two levels; the type flag bits of the four kinds of objects are respectively: 00 represents coverage group, 01 represents coverage point, 10 represents cross coverage and 11 represents bin; the number storage level flag bits of the four levels are respectively: 00 represents the first level, 01 represents the second level, 10 represents the third level and 11 represents the fourth level; the number storage level flag bits of the two levels are respectively: 0 represents the first level and 1 represents the second level. When the number of a bin is "11000101101000", wherein the highest two bits "11" represent that the object is a bin, the third and fourth bits "00" of the high bit represent that the number storage level is the first level, and "0101101000" is the index of the current bin among the same type of objects in the same level. When the number of a coverage point is "0101001", wherein the highest two bits "01" represent that the object is a coverage point, the third bit "0" of the high bit represents that the number storage level is the first level, and "1001" is the index of the current coverage point among the same type of objects in the same level.

[0041] It should be noted that the most suitable data type is dynamically selected according to the number size to store the number, so as to eliminate redundant space.

[0042] The data length level refers to the level of the storage capacity preset for the hit number. Each data length level corresponds to a fixed bit length and is marked by a binary number. For different sizes of hit numbers, the bit length required is different, so the appropriate data length level can be dynamically selected. As an example, assume that the data length level is divided into four levels. 00 represents the first data length level, occupying 1 bit of storage space; 01 represents the second data length level, occupying 4 bits of storage space; 10 represents the third data length level, occupying 16 bits of storage space; and 11 represents the fourth data length level, occupying 27 bits of storage space.

[0043] In an embodiment, in S400, when none of the bins under the target coverage point or the cross-coverage hits, the hit number of each bin is not stored. In this way, the space overhead can be further saved.

[0044] In an embodiment, in S400, when the hit numbers of all bins under the target coverage point or the cross-coverage are the same, the hit number of each bin is not stored individually, but the hit number is associated with the coverage point or the cross-coverage; if all coverage points and cross-coverage in the same level are associated with the same hit number, the hit number is promoted and associated with the common parent node of all coverage points and cross-coverage in the same level; in this way, the hit number is aggregated layer by layer upwards until the hit number is no longer the same or the root node is reached. It should be noted that this method takes advantage of the repetition and level consistency that may exist in the coverage rate data, and significantly reduces redundant storage by aggregating upwards.

[0045] In an embodiment, in S400, when the hit numbers of multiple consecutive index numbered bins under the target coverage point are the same, the consecutive index number range of the bins is obtained, and the bins in the consecutive index number range no longer store the hit number individually, but the index information of the consecutive index number range and the common hit number are associated with the first bin of the target range. Range aggregation storage of consecutive index and same hit number bins is also called block compression, which is a very efficient and practical local deduplication compression technology that combines spatial continuity and value consistency in two dimensions to achieve precise redundancy elimination.

[0046] In an embodiment, in S400, when the number of high-frequency bins under the target coverage point is greater than a preset number threshold of bins, the high-frequency bins are bins with a hit number greater than a preset number threshold, and each hit number corresponding to all high-frequency bins is stored in a compression dictionary; wherein the establishment step of the compression dictionary comprises:

[0047] S441, obtaining the hit number of the high-frequency bin, and determining a set of all non-repeating hit numbers;

[0048] S442, determining the encoding bit width M according to the number N of types of the hit number set, wherein M is the smallest integer satisfying 2 M ≥N;

[0049] S443, assigning a unique M-bit binary code to each hit number;

[0050] S444, establishing a mapping relationship between the hit number and the M-bit binary code to form an encoding dictionary.

[0051] It should be noted that, for the hit number with a large value and repeated hit number, only one definition is needed in the dictionary table, and binary coding is used instead of the original hit number when the hit number is associated with the bin.

[0052] As an example, if there are four large hit numbers, 100000, 150000, 180000, and 200000, and the number of bins containing these hit numbers is greater than the preset number threshold of the bin, for example, the preset number threshold of the bin is 100 bins. The total number of bits required is: (2+7) x 100 x 4 = 11600. Among them, 2 represents the grade type mark, and 27 represents the 27-bit bit required for the fourth to store the hit number. When the dictionary table scheme is used, a dictionary table is created according to the possible hit numbers: binary code 00 represents 100000, binary code 01 represents 150000, binary code 10 represents 180000, and binary code 11 represents 200000. After using the dictionary table, the total number of bits required is: 2 x 100 x 4 = 800.

[0053] It should be noted that, by dynamically constructing the compression dictionary of the hit number, efficient coding of the high-frequency count value is realized. It fully utilizes the aggregation characteristics of the hit number in the coverage rate data, and significantly reduces the storage overhead of the high-frequency area.

[0054] In an embodiment, the object in the numbered compressed storage format is a coverage group, a cross-coverage group, or a coverage point in the functional coverage data.

[0055] It should be noted that, by selecting a suitable data structure according to the coverage rate, the storage number of the bin can be reduced; and by designing the composition of the data structure, the data storage amount of each bin can be further reduced. Through these two dimensions, the data storage amount is comprehensively reduced, thereby reducing the storage space occupation and achieving the purpose of data compression.

[0056] In summary, the embodiment of the present application provides a functional coverage data compression storage method, which dynamically selects a data structure according to the coverage rate of the coverage point or the cross-coverage. It discards the traditional single data structure and data type used to store the coverage of the bin, but dynamically adjusts the data structure according to different coverage rates. It fully utilizes the characteristics of the coverage rate, realizes the compression of the coverage rate data, reduces the storage space, and significantly reduces the storage overhead, so as to achieve the purpose of storing the relevant bin data using the optimal data structure.

[0057] In order to support any other data structure that can be used to store the bin, the present application provides embodiment two.

[0058] Embodiment two

[0059] A functional coverage data compression storage system, characterized in that the system comprises a unified data access interface, a dynamic storage selector and a plurality of storage adapters.

[0060] Further, the unified data access interface receives a storage or read request for functional coverage data sent by an upper application.

[0061] Further, the dynamic storage selector responds to the request, acquires a target data structure according to the coverage of a current object, dynamically selects a target storage adapter from the plurality of storage adapters based on the target data structure, and forwards the request to the selected target storage adapter.

[0062] The dynamic storage selector selects a suitable storage structure to store bin data according to the distribution type of the coverage and the hit frequency of the current object, and appends a corresponding storage structure flag bit before each data block to identify the storage mode adopted by the current data block, so as to facilitate the dynamic storage selector to call a corresponding storage adapter to perform read and write operations on the data.

[0063] It should be noted that the object and the data structure in embodiment one are also applicable to embodiment two.

[0064] Further, each storage adapter of the plurality of storage adapters is connected to and operates a type of data structure to complete the storage or read of the functional coverage data.

[0065] In an embodiment, the data structure for storing data comprises a storage structure flag bit, a data block length and storage structure data. As an example, assuming that there are four types of data structures, for the four types of data structures: the storage structure flag bit 00 represents a sparse storage structure, the storage structure flag bit 01 represents a moderate storage structure, the storage structure flag bit 10 represents a dense storage structure and the storage structure flag bit 11 represents a full coverage storage structure. It should be noted that when the data file is a binary file, the data structure for storing data comprises a storage structure flag bit and storage structure data, and does not need to separately add a data block length, because the data block length is automatically added when the binary file is generated, and does not need to be manually added again. The storage structure flag bit in front can be used to adapt to the corresponding adapter to perform read and write operations on the data. The number of bits of the storage structure flag bit depends on the number of storage adapters that can be supported by the current system. If there is a new bin storage structure, only the corresponding storage adapter needs to be implemented to support the read and write operations of the structure, and the existing outer access API does not need to be modified, so that the function can be extended.

[0066] The storage adapter connects and operates a type of data structure as the data structure in Embodiment 1, and details are not repeated.

[0067] It should be noted that the storage method implemented by the system when executed is the method provided in Embodiment 1, and details are not repeated.

[0068] Embodiments of the present application also provide a non-transitory computer readable storage medium, which can be arranged in an electronic device to save at least one instruction or at least one program related to a method in the method embodiments, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the method provided in the above embodiments.

[0069] Embodiments of the present application also provide an electronic device, comprising a processor and the aforementioned non-transitory computer readable storage medium.

[0070] Embodiments of the present application also provide a computer program product, which comprises program code, and when the program product is run on an electronic device, the program code is used to make the electronic device execute the steps in the method according to various exemplary embodiments of the present application described in the specification.

[0071] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above-mentioned division of each functional unit and module is exemplified, and in actual application, the above-mentioned functions can be completed by different functional units and modules according to needs, that is, the internal structure of the device is divided into different functional units or modules to complete all or part of the above-described functions.

[0072] Although some specific embodiments of the present application have been described in detail through examples, those skilled in the art should understand that the above examples are only for illustration, and are not intended to limit the scope of the present application. Those skilled in the art should also understand that various modifications can be made to the embodiments without departing from the scope and spirit of the present application. The scope of the present application is defined by the appended claims.

Claims

1. A method for compressing and storing functional coverage data, characterized in that, The method includes the following steps: S100, based on the hierarchical structure of functional coverage, traverses each coverage point and cross-coverage in the same level, collects the number of hits for each bin, and calculates the coverage rate of each coverage point and cross-coverage based on the number of hits; S200, obtain the coverage level and its corresponding data structure; S300, dynamically select the target data structure based on the target coverage level to which the coverage point or cross-coverage falls; S400, based on the target data structure, the corresponding target data structure is operated through a dynamic storage selector, the target data structure including the flag bit of the current data structure and the storage structure data; The storage structure data mentioned therein includes at least one of the bin number and the number of times it was hit; In S400, the data structure used to store the bin number includes: an object type flag, a storage level flag, and an index number of the object's level; the data structure used to store the hit count includes: a data length level flag and the hit count; wherein, the object type includes cover group, cover point, cross-cover, and bin, and each object corresponds to a storage level; the storage level refers to the preset storage capacity level for the number of a certain object type, and each storage level corresponds to a fixed bit length and is marked by a binary number; the index number is the index of the same type of object in the same level; the data length level refers to the preset storage capacity level for the hit count.

2. The method according to claim 1, characterized in that, In S400, if all bins under the coverage point or cross coverage are not hit, the hit count for each bin is not stored.

3. The method according to claim 1, characterized in that, In S400, when the number of hits in all bins under the coverage point or cross-cover is the same, the number of hits is not stored separately for each bin, but is associated with the coverage point or cross-cover. If all coverage points and cross-covers in the same level are associated with the same number of hits, the number of hits is moved up and associated with the common parent node of all coverage points and cross-covers in the same level. This process continues, aggregating upwards layer by layer until the number of hits is no longer the same or the root node is reached.

4. The method according to claim 1, characterized in that, In S400, when multiple bins with consecutive index numbers have the same number of hits under the coverage point or cross coverage, the range of consecutive index numbers of the bin is obtained. The bins within the range of consecutive index numbers no longer store the hit counts separately, but instead associate the range of consecutive index numbers and their common hit counts with the first bin of the range of consecutive index numbers.

5. The method according to claim 1, characterized in that, In S400, when the number of high-frequency bins under the coverage point or cross-coverage is greater than a preset threshold for the number of bins, the high-frequency bins are bins whose hit counts are greater than a preset threshold, and the hit counts corresponding to each type of high-frequency bin are stored in a compressed dictionary; wherein, the steps for establishing the compressed dictionary include: S441, obtain the hit count of the high-frequency bin and determine the set of all non-repeating hit counts; S442, determine the encoding bit width M based on the number N of types in the hit count set, where M is a set of bits that satisfy 2^N ... M The smallest integer ≥ N; S443 assigns a unique M-bit binary code to each type of hit count; S444, Establish the mapping relationship between the number of hits and the M-bit binary code to form an encoding dictionary.

6. The method according to claim 1, characterized in that, The objects in the compressed storage format of the number are coverage groups, coverage points, or cross-coverages in the functional coverage data.

7. A functional coverage data compression and storage system, characterized in that, The system includes: A unified data access interface receives storage or retrieval requests for functional coverage data from upper-layer applications. A dynamic storage selector, in response to the request, obtains a target data structure based on the coverage of the current object, dynamically selects a target storage adapter from multiple storage adapters based on the target data structure, and forwards the request to the selected target storage adapter; Multiple storage adapters, each connected to and operating a type of data structure, to perform the storage or retrieval of the functional coverage data; The target data structure includes a flag bit of the current data structure and storage structure data; the storage structure data includes at least one of bin number and hit count; the data structure for storing the bin number includes: an object type flag bit, a storage level flag bit, and an index number of the object's level; the data structure for storing the hit count includes: a data length level flag bit and the hit count; the object type includes cover group, cover point, cross-cover, and bin, each object corresponding to a storage level number; the storage level refers to the preset storage capacity level for a certain object type number, each storage level corresponds to a fixed bit length and is marked by a binary number; the index number is the index of the same type of object at the same level; the data length level refers to the preset storage capacity level for the hit count.

8. A non-transitory computer-readable storage medium, wherein the storage medium stores at least one instruction or at least one program segment, characterized in that, The at least one instruction or the at least one program segment is loaded and executed by the processor to implement the method as described in any one of claims 1-6.

9. An electronic device, characterized in that, Includes a processor and the non-transitory computer-readable storage medium as described in claim 8.

Citation Information

Patent Citations

  • Method and device for automatically generating ignored bins in cross coverage points, equipment

    CN112560390A

  • Complex cross coverage rate calculation system based on combined operation

    CN118171611A