Method for quickly counting and analyzing massive time sequence violation paths

By adopting shared memory I/O mapping technology, multi-mode string matching algorithm and multi-threading technology in the smart chip design, the problem of low efficiency of massive timing violation path analysis is solved, rapid statistics and analysis are realized, and large-scale timing data processing is supported.

CN120162368APending Publication Date: 2025-06-17ANHUI UNIV +1
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202510264264.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-06
Publication Date
2025-06-17

AI Technical Summary

Technical Problem

During the smart chip design process, the analysis and statistical efficiency of massive timing violation paths is low, resulting in slow convergence of timing and it is difficult for existing tools to support more than 1 million timing violation paths to analyze.

Method used

The storage I/O mapping technology in shared memory is used to read files, reducing data copying and I/O operation overhead; the multi-modal string matching algorithm is used to separate files, and the fragment information is processed in parallel through multi-threading technology; the callback function is used to obtain specific attributes in the string matching function, the child thread performs attribute extraction and distribution statistics, and the main thread uses quick sorting to merge statistical information.

Benefits of technology

It significantly improves the reading and analysis speed of massive timing violation paths, can handle more than 1 million timing violation path files, and generates a variety of distribution statistical sorting information, which facilitates engineers to quickly analyze and locate problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120162368A_ABST
    Figure CN120162368A_ABST
Patent Text Reader

Abstract

The invention relates to a method for rapidly counting and analyzing massive time sequence violation paths. The method comprises the following steps of: performing read operation on a time sequence report file generated by a static time sequence analysis tool by adopting a storage I / O mapping technology in a shared memory, and separating an original file into a plurality of independent fragments according to a multi-mode character string matching algorithm, starting a plurality of sub-threads and distributing information of corresponding fragments of the original file to the sub-threads; adopting a multi-mode character string matching algorithm to obtain specific attributes of a time sequence violation path according to the keyword information; the sub-threads are used for carrying out attribute extraction and distribution statistics according to specific attributes in sequence, and after the main thread receives that the sub-threads complete attribute extraction and distribution statistics, various kinds of distribution statistics information of the sub-threads is merged into a total statistical table of the main thread according to a rapid sorting algorithm to generate various kinds of distribution statistics sorting information. By adopting the method, rapid statistics and analysis of massive time sequence violation paths can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of chip data processing, and particularly to a method for quickly counting and analyzing a large number of timing violation paths. Background Art

[0002] In the process of intelligent chip design, especially in the back-end design process of the chip, a large amount of timing information will be generated. With the increase in the scale of intelligent chips and the gradual improvement of the requirements for chip timing performance, the timing generated in the back-end design process of the chip also increases exponentially. How to effectively count and analyze this large amount of timing information is crucial for improving R & D efficiency, improving chip performance, and shortening the chip R & D time.

[0003] Currently, static timing analysis (STA) is the key technology to achieve the above-mentioned large-scale timing analysis and statistics. Although static timing analysis tools can analyze and report violation paths, further analysis and judgment of the violation paths still need to be carried out by humans. Especially in the design process of intelligent chips, the design scale is large, and the number of violation paths may reach tens of millions. Designers are often trapped in the analysis and judgment of a large number of timing violation paths, resulting in extremely slow timing convergence. Some simple scripts have been developed within major design companies to assist humans in interpretation, but they have the characteristics of few functions and single support for STA tools, and are written in scripting languages such as Python or Perl, with slow running speeds. They can only support the analysis of timing violation paths below 1 million, cannot support the analysis of timing violation path files above 1 million, and the statistics are not comprehensive enough and are not user-friendly. Summary of the Invention

[0004] Based on this, in view of the above technical problems, it is necessary to provide a method for quickly counting and analyzing a large number of timing violation paths that can achieve the quick counting and analysis of a large number of timing violation paths.

[0005] A method for quickly counting and analyzing a large number of timing violation paths, the method comprising: Performing a read operation on the timing report file generated by a static timing analysis tool by using a storage I / O mapping technology in shared memory to obtain an original file; Separating the original file into multiple independent segments according to a multi-pattern string matching algorithm, starting multiple sub-threads, and distributing the information of the corresponding segments of the original file to the sub-threads; Using a multi-pattern string matching algorithm to obtain specific attributes of timing violation paths according to keyword information in a string matching function by using a callback function; Use a child thread to sequentially perform attribute extraction and distribution statistics according to specific attributes. After the main thread receives the completion of attribute extraction and distribution statistics by the child thread, according to the quicksort algorithm, merge various distribution statistics information of the child thread into the total statistical table of the main thread to generate various distribution statistics sorting information.

[0006] The above method for quickly counting and analyzing a large number of timing violation paths. In this application, by adopting the storage I / O mapping technology in shared memory to perform read operations on the timing report file generated by the static timing analysis tool, it reduces the data copy and I / O operation overhead in the traditional file reading process, directly maps the file to memory, enabling subsequent data processing to be directly carried out in memory, greatly improving the reading speed and providing a fast data input basis for subsequent analysis. Then, according to the multi-pattern string matching algorithm, the original file is separated into multiple independent segments, and multiple child threads are started to distribute the corresponding segment information. The multi-thread technology can utilize the parallel computing power of multi-core processors. Multiple child threads simultaneously process the data of different segments. Compared with single-thread sequential processing, it multiplies the processing speed. In the string matching function, a callback function is used in combination with the multi-pattern string matching algorithm to obtain the specific attributes of the timing violation paths according to the keyword information, which can quickly and accurately locate and extract the required attribute information, avoiding aimless traversal of the entire file and improving the efficiency of attribute extraction. After the child thread completes attribute extraction and distribution statistics, the main thread uses the quicksort algorithm to merge various distribution statistics information of the child thread into the total statistical table, which can complete the merging and sorting of a large amount of statistical information in a short time, and finally generate various distribution statistics sorting information, facilitating engineers to quickly analyze. Brief Description of the Drawings

[0007] Figure 1 It is a flowchart of a method for quickly counting and analyzing a large number of timing violation paths in an embodiment; Figure 2 It is a flowchart of distribution statistics of violation value intervals in an embodiment; Figure 3 It is a flowchart of distribution statistics of logic levels in an embodiment; Figure 4 It is a flowchart of distribution statistics of start point - end point pairs in another embodiment; Figure 5 It is a flowchart of distribution statistics of paths with the same start point in an embodiment; Figure 6 It is a flowchart of distribution statistics of clock domains in an embodiment. Detailed Description of the Embodiment

[0008] In order to make the objectives, technical solutions and advantages of the present application more clear and understandable, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0009] In one embodiment, as Figure 1 shown, a method for quickly counting and analyzing a large number of timing violation paths is provided, including the following steps: Step 102, perform a read operation on the timing report file generated by the static timing analysis tool by using the storage I / O mapping technology in the shared memory to obtain the original file.

[0010] For the large number of timing report files generated in the back-end design of intelligent chips, the data volume is extremely large. The traditional file reading method needs to frequently transfer data between the disk and the memory, with a large number of I / O operations, slow speed and high system resource consumption. For the timing report files generated by different static timing analysis tools such as PrimerTime, Tempus, and Innovus, first open the file in a read mode to obtain the total size of the file, and then use the storage I / O mapping technology in the shared memory to map the entire file to the virtual memory of the process. Subsequently, directly use the memory address to obtain the content of the file. This avoids frequent I / O calls and realizes fast access and processing of data files. At the same time, identify from the report file header which static timing analysis tool this file belongs to, as the basis for subsequent extraction of timing basic attributes, greatly improving the data reading efficiency.

[0011] Step 104, separate the original file according to the multi-pattern string matching algorithm into multiple independent segments, start multiple child threads, and distribute the information of the corresponding segments of the original file to the child threads.

[0012] For the report files generated by different static timing analysis tools, the start and end flags of the timing violation records are different. Initialize the corresponding keywords using the Aho-Corasick automaton and create the Aho-Corasick automaton. First, evenly divide the file segments into n parts, loop from n - 1 to 0, find the nearest start offset of a timing path after the end offset of the current task segment, and at the same time update the offset values of the previous and next file segments to ensure that a single timing path falls within a single file segment. By this algorithm, the original file is separated into multiple independent segments to prepare for multi-threaded processing. Due to the large data volume of the timing report file, the single-threaded processing time is long. After separation, each segment can be independently processed by a child thread to achieve parallel computing. This data partitioning method makes full use of the performance of multi-core processors, enabling multiple child threads to work simultaneously and accelerating the overall processing process.

[0013] In chip design, the analysis of a large number of timing violation paths is computationally intensive. When processing single-threadedly, each path needs to be processed sequentially, and the time overhead increases linearly with the increase in the number of paths. Multithreading technology allows multiple thread tasks to be executed simultaneously. In this application, each sub-thread is responsible for processing a file segment. Each thread can read and analyze data simultaneously, greatly shortening the processing time. The file segments are reasonably allocated to the sub-threads to achieve load balancing. This avoids the situation where some thread tasks are overloaded while some threads are idle, enabling full utilization of the processor resources. Moreover, the sub-threads process different segments in parallel, reducing the waiting time and improving the overall processing efficiency.

[0014] Step 106: Use a multi-pattern string matching algorithm and a callback function in the string matching function to obtain specific attributes of the timing violation path according to the keyword information.

[0015] Use the Aho-Corasick automaton of the multi-pattern string matching algorithm. In the string matching function, use a callback function to obtain specific attributes of the timing violation path, such as the start point, end point, clock domain, logic level, violation value, launch clock length, and violation clock length, according to the keyword information. Using a callback function in the string matching function, combined with the multi-pattern string matching algorithm, can accurately obtain specific attributes. When a keyword string related to an attribute is matched, the callback function is triggered to perform corresponding operations to extract the attribute value. This method has strong pertinence and flexibility, can quickly extract the required information according to different attribute keywords, and avoid ineffective processing of irrelevant data.

[0016] Step 108: Use sub-threads to sequentially perform attribute extraction and distribution statistics according to specific attributes. After the main thread receives the completion of attribute extraction and distribution statistics from the sub-threads, it merges various distribution statistics information of the sub-threads into the total statistical table of the main thread according to the quicksort algorithm to generate various distribution statistics sorting information.

[0017] The sub-threads perform statistics according to specific attributes mainly by extracting basic characteristics and judging the violation value. If the violation value >= 0, this record is not a violation sequence and no subsequent statistics are required; if the violation value < 0, this record is a violation sequence, and the values extracted through the basic attributes need to be combined into the data required for corresponding characteristic statistics to form a structure for subsequent steps. When a certain sub-thread finishes the feature extraction and various attribute statistics tasks of the file segment it is responsible for, it tells the main thread through a semaphore. After receiving the signal from the sub-thread, the main thread sequentially merges the violation value interval data, logic level distribution data, start point-end point pair data, same start point different end point data, and clock domain distribution data statistically under this thread into the total statistical table.

[0018] After all sub-threads have completed their respective responsibilities, the main thread uses quicksort to sort the final results.

[0019] Output the violation value interval distribution statistics, logic level distribution statistics, start - end pair distribution statistics, same - start path distribution statistics, and clock domain distribution statistics to a file in a fixed format. After the child threads complete the attribute extraction and distribution statistics, a large amount of statistical information needs to be merged. The quicksort algorithm is used to merge the statistical results of multiple threads and generate various distribution statistics sorting information. These information are presented in a structured form, such as by violation value interval distribution, logic level distribution, etc. Chip design engineers can quickly locate problems based on these clear statistical information. For example, if it is found that the timing violation paths in a certain clock domain are concentrated, or the violations are serious under a certain type of logic level, then targeted chip design iterations can be carried out to shorten the timing convergence time and improve the R & D efficiency.

[0020] For the above - mentioned method of quickly counting and analyzing a large number of timing violation paths, in this application, the read operation of the timing report file generated by the static timing analysis tool is performed by using the storage I / O mapping technology in shared memory, reducing the data copy and I / O operation overhead in the traditional file reading process. The file is directly mapped into memory, enabling subsequent data processing to be directly carried out in memory, greatly improving the reading speed and providing a fast data input basis for subsequent analysis. Then, according to the multi - pattern string matching algorithm, the original file is separated into multiple independent segments, and multiple child threads are started to distribute the corresponding segment information. The multi - thread technology can utilize the parallel computing power of the multi - core processor. Multiple child threads simultaneously process the data of different segments. Compared with single - thread sequential processing, the processing speed is increased several times. In the string matching function, the callback function is combined with the multi - pattern string matching algorithm to obtain the specific attributes of the timing violation paths according to the keyword information, which can quickly and accurately locate and extract the required attribute information, avoiding the aimless traversal of the entire file and improving the efficiency of attribute extraction. After the child threads complete the attribute extraction and distribution statistics, the main thread uses the quicksort algorithm to merge the various distribution statistics information of the child threads into the total statistical table, which can complete the merging and sorting of a large amount of statistical information in a short time and finally generate various distribution statistics sorting information for engineers to quickly analyze.

[0021] In one of the embodiments, the read operation of the timing report file generated by the static timing analysis tool is performed by using the storage I / O mapping technology in shared memory to obtain the original file, including: Open the timing report files generated by different static timing analysis tools in a read mode to obtain the total size of the files. Then, use the storage I / O mapping technology in shared memory to map the entire file into the virtual memory of the process and directly use the memory address to obtain the content of the file. At the same time, identify which static timing analysis tool generated this file from the report file header as the original file for subsequent extraction of timing basic attributes.

[0022] In one embodiment, the original file is separated according to the multi - mode string matching algorithm into multiple independent segments, including: Initialize the corresponding keywords according to the Aho - Corasick automaton, and create an Aho - Corasick automaton to evenly divide the segments of the original file into n parts. Loop from n - 1 to 0 to find the starting offset of the nearest timing path after the end offset of the current task segment, and at the same time update the corresponding previous and next file segment offset values to ensure that a single timing path falls within a single file segment.

[0023] In one embodiment, the specific attributes include start point, end point, clock domain, logic levels, violation value, launch clock length, and violation clock length.

[0024] In one embodiment, use sub - threads to sequentially perform attribute extraction and distribution statistics according to specific attributes, including: Use sub - threads to sequentially perform attribute extraction according to specific attributes. Based on the extracted basic characteristics, judge the violation value. If the violation value >= 0, this record is not a violation sequence and no subsequent statistics are required; if the violation value < 0, this record is a violation sequence, and the values extracted from the basic attributes need to be combined into the data required for corresponding characteristic statistics, and a structure is formed for subsequent statistics.

[0025] In a specific embodiment, using sub - threads for parallel processing can give full play to the performance of multi - core processors. Multiple sub - threads simultaneously perform extraction and judgment according to specific attributes. Compared with processing a large number of timing records one by one in a single - thread manner, it can significantly shorten the processing time and meet the need for rapid analysis of a large number of timing violation paths. By judging the violation value, records of non - violation sequences can be quickly filtered out, and only the real violation sequences are processed subsequently. This avoids unnecessary statistical operations on a large amount of invalid data, reduces the data processing volume, focuses the analysis on the key timing violation paths, and improves the pertinence and effectiveness of statistical analysis. Combining the values extracted from the basic attributes into a structure provides a standardized data format for subsequent distribution statistics. This structured data is more conducive to various - dimensional statistical analysis, such as distribution statistics according to violation value intervals, logic levels, etc., facilitating chip design engineers to quickly understand the timing violation situation from different perspectives, so as to accurately locate design problems. At the same time, not processing non - violation sequence records reduces the storage of intermediate data and the occupation of computing resources. When processing a large amount of data, it effectively reduces the memory pressure, avoids problems such as system resource exhaustion or slow operation caused by excessive data, and ensures the stability and fluency of the analysis process.

[0026] In one embodiment, the multiple distribution statistics information includes violation value interval data, logic level distribution data, start - end point pair data, same - start - different - end - point data, and clock domain distribution data.

[0027] In one embodiment, the sub-thread performs statistics according to the violation value intervals. The interval range and the number of intervals are set according to certain rules. After the path violation value matches the interval range, the count of that interval is incremented by 1. The sub-thread performs statistics according to the distribution of logic levels. For each logic level in the path violation attribute, the count of that logic level is incremented by 1.

[0028] In a specific embodiment, as Figure 2 shown in the flowchart of the violation value interval distribution statistics, the sub-thread performs statistics according to the violation value intervals. It is mainly implemented by setting the interval range and the number of intervals according to certain rules. After the path violation value matches the interval range, the count of that interval is incremented by 1. In the figure, Range 1 represents Range 1, Range 2 represents Range 2, Range 3 represents Range 3, Range N represents Range N, SlackRange represents the slack range, Timing Path slack represents the timing path slack, match represents matching, Y represents yes, N represents no, count represents counting, and exit represents exiting.

[0029] As Figure 3 shown in the flowchart of the logic level distribution, the sub-thread performs statistics according to the distribution of logic levels. For each logic level in the path violation attribute, the count of that logic level is incremented by 1. In the figure, TimingPath Stage represents the timing path stage, stages represents stages, out of range represents out of range, match represents matching, create new stage represents creating a new stage, count represents counting, check worst slack represents checking the worst slack value, and replace worstslack represents replacing the worst slack value.

[0030] In one embodiment, the sub-thread performs statistics according to the distribution of start point - end point pairs. It obtains the start module and the end module in each path violation attribute, matches the existing objects in the statistical table. If the match is successful, the count is incremented by 1, and it is compared with the current maximum violation value, and the one with the larger absolute value is used as the new maximum violation value; if the match fails, a new object is created for the current path.

[0031] In a specific embodiment, as Figure 4As shown in the start-end pair distribution statistical flowchart, the sub-thread performs statistics according to the start-end pair distribution. It obtains the start module and the end module in the attributes violated by each path, matches the existing objects in the statistical table. If the match is successful, the count is incremented by 1. And it compares with the current maximum violation value, and uses the one with the larger absolute value as the new maximum violation value. If the match fails, a new object is created for the current path. In the figure, TimingPath mapTable represents the timing path mapping table, get startblock&endblock represents obtaining the start module and the end module, startblocks&endblocks represents the start module and the end module (plural), out of range represents out of range, match represents match, create newstartblock&endblock represents creating a new start module and a new end module, count represents count, check worstslack represents checking the worst slack value, replace worst slack represents replacing the worst slack value.

[0032] In one embodiment, the sub-thread performs statistics according to the distribution of different paths with the same start point. It traverses all paths, obtains the group where the path is located, matches the existing objects. If the match is successful, the count is incremented by 1. And it compares with the maximum violation value of the current path, and uses the one with the larger absolute value as the new maximum violation value. If the match fails, a new object is created for the current path; The sub-thread performs statistics according to the clock domain distribution. It traverses all paths, obtains the start clock and the end clock, matches the existing objects. If the match is successful, the count is incremented by 1. And it compares with the maximum violation value of the current path, and uses the one with the larger absolute value as the new maximum violation value; If the match fails, a new object is created for the current path.

[0033] In a specific embodiment, such as Figure 5 As shown in the same-start-point path statistical flowchart, the sub-thread performs statistics according to the distribution of different paths with the same start point. It traverses all paths, obtains the group where the path is located, matches the existing objects. If the match is successful, the count is incremented by 1. And it compares with the maximum violation value of the current path, and uses the one with the larger absolute value as the new maximum violation value. If the match fails, a new object is created for the current path. In the figure, TimingPath group represents the timing path group, groups represents the group (plural form), outof range represents out of range, match represents match, create new group represents creating a new group, count represents count, check worst slack represents checking the worst slack value, replace worst slack represents replacing the worst slack value.

[0034] Such as Figure 6As shown in the clock domain distribution statistics flowchart, the sub-thread performs statistics according to the clock domain distribution. It traverses all paths, obtains the start clock and end clock, matches the existing objects. If the match is successful, the count is incremented by 1, and it is compared with the maximum violation value of the current path, and the one with the larger absolute value is used as the new maximum violation value. If the match fails, a new object is created for the current path. In the figure, TimingPath clocksource&clockend represents the clock source and clock end of the timing path, startclocks&endclocks represents the start clock and end clock, out of range represents out of range, match represents match, create new startclock&endclock represents creating a new start clock and end clock, count represents the count, check worst slack represents checking the worst slack value, and replace worst slack represents replacing the worst slack value.

[0035] In one embodiment, according to the quicksort algorithm, various distribution statistics information of the sub-thread is merged into the total statistical table of the main thread to generate various distribution statistics sorting information, including: According to the quicksort algorithm, various distribution statistics information of the sub-thread is merged into the total statistical table of the main thread. After all sub-threads have completed their respective tasks, the main thread sorts the final result and outputs the violation value interval distribution statistics, logic level distribution statistics, start-end pair distribution statistics, same start path distribution statistics, and clock domain distribution statistics in the final result to a file in a fixed format to form various distribution statistics sorting information.

[0036] It should be understood that although Figure 1 the steps in the flowchart are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear indication in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, Figure 1 at least a part of the steps in may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or sub-steps or stages of other steps.

[0037] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.

[0038] The embodiments described above merely represent several implementation manners of the present application. Their descriptions are relatively specific and detailed, but they should not be construed as limiting the scope of the invention. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all fall within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.

Claims

1. A method for fast statistics and analysis of massive timing violation paths, characterized in that: The method comprises: The storage I / O mapping technology in the shared memory is used to read the timing report file generated by the static timing analysis tool to obtain the original file; The original file is divided into multiple independent segments according to a multi-mode string matching algorithm, multiple sub-threads are started, and information of corresponding segments of the original file is distributed to the sub-threads; A multi-mode string matching algorithm is used to use a callback function in the string matching function to obtain specific attributes of the timing violation path based on keyword information; Sub-threads are used to extract attributes and perform distribution statistics according to specific attributes in turn. After the main thread receives the attribute extraction and distribution statistics completed by the sub-threads, the various distribution statistics information of the sub-threads are merged into the total statistics table of the main thread according to the quick sorting algorithm to generate various distribution statistics sorting information.

2. The method according to claim 1, characterized in that The storage I / O mapping technology in shared memory is used to read the timing report file generated by the static timing analysis tool to obtain the original file, including: Open the timing report files generated by different static timing analysis tools in read mode to obtain the total size of the file, and then use the storage I / O mapping technology in the shared memory to map the entire file to the virtual memory of the process. Directly use the memory address to obtain the content of the file. At the same time, identify from the report file header which static timing analysis tool this file belongs to, and use it as the original file for subsequent timing basic attribute extraction.

3. The method according to claim 1, characterized in that The original file is separated into multiple independent segments according to the multi-pattern string matching algorithm, including: Initialize the corresponding keywords according to the AC automaton, and create an AC automaton to divide the fragments of the original file into n parts on average, loop from n-1 to 0, find the starting offset of the most recent timing path after the end offset of the current task fragment, and update the corresponding previous and next file fragment offset values ​​to ensure that a single timing path falls in a separate file fragment.

4. The method according to claim 1, characterized in that: The specific attributes include a start point, an end point, a clock domain, a logic level, a violation value, a launch clock length, and a violation clock length.

5. The method according to claim 1, characterized in that Use sub-threads to extract attributes and perform distribution statistics according to specific attributes in turn, including: Use child threads to extract attributes according to specific attributes in turn, and judge the violation value through the extracted basic characteristics. If the violation value is >= 0, this record is not a violation sequence and no subsequent statistics are required; if the violation value is < 0, this record is a violation sequence, and the values ​​extracted from the basic attributes need to be combined into the data required for the corresponding characteristic statistics to form a structure for subsequent statistics.

6. The method according to claim 1, characterized in that The various distribution statistics information include violation value interval data, logic level distribution data, start point and end point pair data, same start point and different end point data and clock domain distribution data.

7. The method according to claim 5, characterized in that The method further comprises: The child thread counts the violation value interval, sets the interval range and the number of intervals according to certain rules, and increases the interval count by 1 when the path violation value matches the interval range; The sub-threads are counted according to the distribution of logical levels. For each path that violates the logical level in the attribute, the logical level count is increased by 1.

8. The method according to claim 7, characterized in that The method further comprises: The child thread counts the distribution according to the starting point and end point, obtains the starting point module and end point module in the violation attribute of each path, matches the existing objects in the statistics table, and if the match is successful, the count is increased by 1 and compared with the current maximum violation value, and the one with a larger absolute value is used as the new maximum violation value; if the match fails, a new object is created for the current path.

9. The method according to claim 8, characterized in that The method further comprises: The child thread counts the distribution of different paths with the same starting point, traverses all paths, obtains the group to which the path belongs, matches the existing object, and if the match is successful, the count is increased by 1, and compared with the maximum violation value of the current path, the one with a larger absolute value is used as the new maximum violation value. If the match fails, a new object is created for the current path; The child thread performs statistics according to the clock domain distribution, traverses all paths, obtains the starting clock and the end clock, matches the existing objects, and if the match is successful, the count is increased by 1 and compared with the maximum violation value of the current path, and the one with the larger absolute value is used as the new maximum violation value; if the match fails, a new object is created for the current path.

10. The method according to claim 1, characterized in that According to the quick sorting algorithm, various distribution statistics of the child threads are merged into the total statistics table of the main thread to generate various distribution statistics sorting information, including: According to the quick sorting algorithm, various distribution statistics of sub-threads are merged into the total statistics table of the main thread. After all sub-threads have completed their respective tasks, the main thread sorts the final results and outputs the violation value interval distribution statistics, logic level distribution statistics, start-end point pair distribution statistics, same-starting point path distribution statistics and clock domain distribution statistics in the final results into a file in a fixed format to form various distribution statistics sorting information.

Citation Information

Cited By

  • AI-assisted time sequence report analysis method

    CN122065745A