Method and apparatus for locating timing violation on basis of timing report

By dividing the start and end points of the timing path according to the group signal and determining the positioning timing violations based on the proportion reported in the timing, the problem of complex timing violation positioning in integrated circuit design is solved, and fast and effective timing problem repair is achieved.

WO2025050391A1PCT designated stage expired Publication Date: 2025-03-13SUNLUNE (SINGAPORE) PTE LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2023/117788
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-08
Publication Date
2025-03-13

AI Technical Summary

Technical Problem

As the scale of integrated circuit design increases, processing and analyzing timing violations in a large number of timing reports becomes complicated and cumbersome, making it difficult for module owners to take quick action to fix timing problems.

Method used

By dividing the start and end points of the timing path according to the group signal, the corresponding first, second and third timing reports are extracted, and which timing report is used to locate the timing violation based on the proportion in these reports.

Benefits of technology

This method effectively simplifies the positioning and analysis process of timing violations, helps module owners quickly identify and repair timing problems, and improves the performance and reliability of the circuit.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023117788_13032025_PF_FP_ABST
    Figure CN2023117788_13032025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present application are a method and apparatus for locating a timing violation on the basis of a timing report. The method comprises: according to different signal groups, dividing starting points of timing paths and ending points of timing paths, dividing starting points of timing paths of the same signal group into one category, and dividing ending points of timing paths of the same signal group into one category; on the basis of the divided starting points of the timing paths and ending points of the timing paths, extracting, from a timing report, a first timing report corresponding to the starting points of the timing paths, a second timing report corresponding to the ending points of the timing paths, and a third timing report corresponding to from the starting points of the timing paths to the ending points of the timing paths; and on the basis of proportion values in the first timing report, the second timing report, and the third timing report, determining to employ one or more timing reports among the first timing report, the second timing report, and the third timing report to locate a timing violation.
Need to check novelty before this filing date? Find Prior Art

Description

A method and device for locating timing violations based on timing reports Technical Field

[0001] The present application relates to, but is not limited to, integrated circuit technology, and more particularly to a method and apparatus for locating timing violations based on timing reports. Background Art

[0002] With advancements in integrated circuit technology and increasingly advanced process nodes, Moore's Law has led to an exponential increase in the number of transistors on a chip. As the scale of integrated circuit designs increases, especially at advanced process nodes, the number of timing paths in the design increases exponentially, making processing corresponding timing reports more complex and difficult. A timing path refers to a signal transmission path with timing constraints within a design. The timing path is critical to the correct functionality and performance of the circuit. When timing constraints cannot be met, a timing violation occurs, meaning that the signal arrival time or delay exceeds the design requirements. A timing report is a tool used to analyze and report timing violations.

[0003] As the number of timing paths in a design grows exponentially, the corresponding timing reports contain a large amount of data, making analysis and sorting out violation patterns extremely tedious and confusing. This makes it difficult for block owners to take quick action to fix timing issues.

[0004] SUMMARY OF THE INVENTION

[0005] The present application provides a method and device for locating timing violations based on timing reports, which can solve any of the above technical problems.

[0006] An embodiment of the present application provides a method for locating timing violations based on timing reports, including:

[0007] Divide the starting points and end points of the timing paths according to different group signals, and divide the starting points of the timing paths of the same group of signals into one category, and divide the end points of the timing paths of the same group of signals into one category;

[0008] Based on the start point and the end point of the divided timing path, extract from the timing report a first timing report corresponding to the start point of the timing path, a second timing report corresponding to the end point of the timing path, and a third timing report corresponding from the start point of the timing path to the end point of the timing path;

[0009] According to the proportion values ​​in the first timing report, the second timing report, and the third timing report, it is determined to use one or more timing reports among the first timing report, the second timing report, and the third timing report to locate the timing violation.

[0010] In an exemplary embodiment, the names of the start points / end points of the timing paths in different groups of signals are distinguished by different identifiers, and the names of the start points / end points of different timing paths in the same group of signals are distinguished by identifiers+numbers;

[0011] The dividing the starting point and the end point of the timing path according to the group signal includes:

[0012] The numerical part in the name of the same group of signals is replaced by one character, so that the starting points / end points of the timing paths of the same group of signals are classified into one category.

[0013] In an exemplary embodiment, the first timing report includes timing report information corresponding to starting points of timing paths of different groups of signals, and the timing report information corresponding to the starting point of the timing path of each group of signals includes: a first proportion value, indicating a proportion of the number of paths corresponding to the starting points of all timing paths of the group of signals to the number of paths corresponding to the starting points of the timing paths of different groups of signals included in the first timing report;

[0014] The second timing report includes timing report information corresponding to endpoints of timing paths of different groups of signals, and the timing report information corresponding to the endpoints of the timing paths of each group of signals includes: a second proportion value, indicating a proportion of the number of paths corresponding to the endpoints of all timing paths of the group of signals to the number of paths corresponding to the endpoints of timing paths of different groups of signals included in the second timing report;

[0015] The third timing report includes timing report information corresponding to different groups of signals from the starting point of the timing path to the end point of the timing path, and the timing report information corresponding to each group of signals from the starting point of the timing path to the end point of the timing path includes: a third proportion value, which represents the ratio of the number of paths corresponding to all paths from the starting point of the timing path to the end point of the timing path of the group of signals to the number of paths corresponding to the starting point of the timing path to the end point of the timing path of different groups of signals included in the third timing report.

[0016] In an exemplary embodiment, determining to locate the timing violation using one or more of the first timing report, the second timing report, and the third timing report includes:

[0017] The maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, and the maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, and it is determined that the third timing report is used to locate the timing violation.

[0018] In an exemplary embodiment, determining to locate the timing violation using one or more of the first timing report, the second timing report, and the third timing report includes:

[0019] The maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, but the maximum third proportion value in the third timing report is less than the maximum second proportion value in the second timing report, and it is determined that the third timing report and the second timing report are used to locate the timing violation.

[0020] In an exemplary embodiment, determining to locate the timing violation using one or more of the first timing report, the second timing report, and the third timing report includes:

[0021] The maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, but the maximum third proportion value in the third timing report is less than the maximum first proportion value in the first timing report, and it is determined that the third timing report and the first timing report are used to locate the timing violation.

[0022] In an exemplary embodiment, determining to locate the timing violation using one or more of the first timing report, the second timing report, and the third timing report includes:

[0023] The maximum third proportion value in the third timing report is smaller than the maximum second proportion value in the second timing report, and the maximum third proportion value in the third timing report is smaller than the maximum first proportion value in the first timing report, and it is determined that the third timing report, the first timing report and the second timing report are used to locate the timing violation.

[0024] In an exemplary embodiment, the locating the timing violation according to the determined timing report includes:

[0025] Start checking timing violations from the reports corresponding to the group of timing paths from the starting point to the end point of the timing path with the largest proportion in the third timing report; then start checking timing violations from the reports corresponding to the starting point and / or the end point of the timing path with the largest proportion in the first timing report and / or the second timing report.

[0026] In an exemplary embodiment, the method further includes: for a group of timing reports in which the third proportion value in the third timing report is less than a preset proportion threshold and the third TNS in the third timing report is less than a preset TNS threshold, abandoning the timing violation check;

[0027] Alternatively, for a group of timing reports in which the second proportion value in the second timing report is less than a preset proportion threshold and the second TNS in the second timing report is less than a preset TNS threshold, abandon the timing violation check;

[0028] Alternatively, for a group of timing reports in which the first proportion value in the first timing report is smaller than a preset proportion threshold and the first TNS in the first timing report is smaller than a preset TNS threshold, the timing violation check is abandoned.

[0029] In an exemplary embodiment, the method further includes: performing a timing violation check on a corresponding register according to a third WNS in the third timing report;

[0030] Alternatively, performing a timing violation check on a corresponding register according to the second WNS in the second timing report;

[0031] Alternatively, a timing violation check is performed on a corresponding register according to the first WNS in the first timing report.

[0032] An embodiment of the present application further provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute any of the above methods for locating timing violations based on timing reports.

[0033] An embodiment of the present application further provides a computer device, including a memory and a processor, wherein the memory stores the following instructions that can be executed by the processor: used to execute the steps of any of the above-mentioned methods for locating timing violations based on timing reports.

[0034] The embodiment of the present application further provides a device for locating timing violations based on timing reports, comprising: a division module, an extraction module, and a positioning module; wherein,

[0035] A division module, configured to divide the starting points and end points of the timing paths according to different group signals, and to divide the starting points of the timing paths of the same group of signals into one category and the end points of the timing paths of the same group of signals into one category;

[0036] an extraction module, configured to extract, from the timing report, a first timing report corresponding to the starting point of the timing path, a second timing report corresponding to the end point of the timing path, and a third timing report corresponding to the distance from the starting point of the timing path to the end point of the timing path based on the divided starting point and the end point of the timing path;

[0037] The positioning module is used to determine whether to use one or more timing reports among the first timing report, the second timing report and the third timing report to locate the timing violation according to the proportion values ​​in the first timing report, the second timing report and the third timing report.

[0038] Other features and advantages of the present invention will be described in the following description, and in part will become apparent from the description, or will be understood by practicing the present invention. The purposes and other advantages of the present invention can be realized and obtained by the structures particularly pointed out in the description, claims and drawings.

[0039] Summary of the Figures

[0040] The accompanying drawings are used to provide a further understanding of the technical solution of the present application and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the technical solution of the present application and do not constitute a limitation on the technical solution of the present application.

[0041] FIG1 is a schematic diagram of a Timing Path in an embodiment of the present application;

[0042] FIG2 is a flow chart of a method for locating timing violations based on timing reports in an embodiment of the present application;

[0043] FIG3 is a schematic diagram showing a first timing report, a second timing report, and a third timing report in an embodiment of the present application;

[0044] FIG4 is a schematic diagram of the composition structure of an apparatus for locating timing violations based on timing reports in an embodiment of the present application.

[0045] Details

[0046] To make the purpose, technical solutions and advantages of this application more clear, the embodiments of this application will be described in detail below with reference to the accompanying drawings. It should be noted that, unless there is a conflict, the embodiments and features in the embodiments of this application can be combined with each other in any way.

[0047] To facilitate understanding of the present application, the present application will be described more fully below with reference to the accompanying drawings. The accompanying drawings provide embodiments of the present application. However, the present application may be implemented in many different forms and is not limited to the embodiments described herein. Rather, these embodiments are provided to make the disclosure of the present application more thorough and comprehensive.

[0048] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application pertains. The terms used herein in the specification of this application are for the purpose of describing specific embodiments only and are not intended to limit this application.

[0049] In modern integrated circuit design, a timing path refers to a signal transmission path within a design that has timing constraints. These timing paths are critical to the correct functionality and performance of the circuit. When timing constraints cannot be met, a timing violation occurs, such as when signal arrival time or delay exceeds design requirements. A timing report is a tool used to analyze and report timing violations. The timing report provides information on timing constraints, path delays, clock frequencies, and other aspects, as well as specific violation conditions and locations. However, as design size increases and the number of timing paths increases, processing and analyzing timing reports becomes complex and tedious.

[0050] Figure 1 is a schematic diagram of a Timing Path in an embodiment of the present application. Figure 1 shows a timing path from register UFF0 to register UFF1, and UFF0 and UFF1 are connected by a combinatorial logic data path. The basic information of a Timing Path shown in Figure 1 includes: UFF0 as the starting point of the Timing Path, UFF1 as the end point of the Timing Path, and the timing requirements between the starting point and the end point, which are defined and evaluated by the Synopsys Design Constraints (SDC) file and the Timing Report. Among them, the SDC constraint file provides specifications and constraints for the design, and the Timing Report is a report generated after timing analysis based on these constraints.

[0051] Timing Report is a report generated after timing analysis. Timing Report provides information about each timing path in the design, including beginpoint, endpoint, timing violation, slack value and other information. The slack value refers to the remaining time for the signal to reach the target register or constraint time, that is, the available time window of the signal. The slack value indicates the maximum time that the signal can be delayed while meeting the timing constraints. Under normal circumstances, when the arrival time of a signal is earlier than or equal to the constraint time of the target register, the slack value of the signal is non-negative, indicating that there is enough room to meet the timing constraints. If the arrival time of a signal is later than the constraint time of the target register, the slack value of the signal will be negative, indicating that the timing constraints cannot be met and a timing violation has occurred.

[0052] FIG2 is a flow chart of a method for locating timing violations based on timing reports in an embodiment of the present application. As shown in FIG2 , the method may include:

[0053] Step 200: Divide the starting points and end points of the timing paths according to group signals, and divide the starting points of the timing paths of the same group of signals into one category, and divide the end points of the timing paths of the same group of signals into one category.

[0054] In an exemplary embodiment, in the front-end design, the names of the starting points of the timing paths in different groups of signals are distinguished by different identifiers. The same group of signals may include multiple timing paths, and the names of the starting points of different timing paths in the same group of signals are distinguished by identifiers + numbers. For example: register ba1, register ba2, and register ba3 are different registers belonging to the same group of signals, wherein the identifiers of these three registers are the same, namely ba, and the three registers are distinguished by the numbers 1, 2, and 3 respectively. For another example: register ba1 and register bc1 are registers belonging to different groups of signals, and the identifiers of these two registers are different, namely ba and bc. The starting point of the timing path can be a register or other device. Here, only the starting point as a register is used as an example for illustration, and is not used to limit the scope of protection of this application.

[0055] In an exemplary instance, the names of the starting points / end points of timing paths in different group signals are distinguished by different identifiers, and the names of the starting points / end points of different timing paths in the same group signal are distinguished by identifiers + numbers; dividing the starting points and end points of the timing paths according to the group signals in step 200 may include: replacing the numerical part in the name of the same group signal with a character, so that the starting points / end points of the timing paths of the same group signal are divided into one category.

[0056] In an embodiment of the present application, the starting points of the timing paths are divided according to different groups of signals, and the starting points of the timing paths of the same group of signals are divided into one category, and ba1 is changed to ba*, ba2 is changed to ba*, and ba3 is changed to ba*. That is, a character such as "*" is used to replace the numerical part in the name of the same group of signals, so that the starting points of the timing paths of the same group of signals are divided into one category. In this embodiment, registers ba1, registers ba2, and registers ba3 are divided into the register ba* category.

[0057] Likewise, a character such as “*” may be used to replace the numeric portion of the names of the endpoints of the timing paths of the same group of signals, so that the endpoints of the timing paths of the same group of signals are classified into one category.

[0058] Step 201: Based on the starting point and the end point of the divided timing path, extract from the timing report a first timing report corresponding to the starting point of the timing path, a second timing report corresponding to the end point of the timing path, and a third timing report corresponding from the starting point of the timing path to the end point of the timing path.

[0059] In an exemplary embodiment, the first timing report includes timing report information corresponding to starting points of timing paths of different groups of signals. The timing report information corresponding to the starting point of the timing path of each group of signals includes at least:

[0060] The first total negative slack (TNS) represents the sum of the slack values ​​at the starting points of all timing paths of the group of signals. In one embodiment, taking the starting points of different timing paths in the same group of signals including registers ba1, ba2, and ba3 as an example, assuming that register ba1 corresponds to a timing violation value slack1 (i.e., the slack value from register ba1 to a certain end point), register ba2 corresponds to a timing violation value slack2 (i.e., the slack value from register ba2 to a certain end point), and register ba3 corresponds to a timing violation value slack3 (i.e., the slack value from register ba3 to a certain end point), then the first TNS is equal to the sum of slack1+slack2+slack3.

[0061] The first worst negative slack (WNS) indicates the worst timing violation corresponding to the starting point of all timing paths of the group of signals;

[0062] The first path number (path_num) indicates the number of paths corresponding to the starting points of all timing paths of the group of signals;

[0063] A first ratio indicates a ratio of the number of paths corresponding to the starting points of all timing paths of the group of signals to the number of paths corresponding to the starting points of timing paths of different groups of signals included in the first timing report.

[0064] In an exemplary embodiment, the second timing report includes timing report information corresponding to endpoints of timing paths of different groups of signals. The timing report information corresponding to the endpoints of the timing path of each group of signals includes at least:

[0065] The second TNS represents the sum of the slack values ​​of the endpoints of all timing paths of the group of signals. In one embodiment, taking the endpoints of different timing paths in the same group of signals including registers ba4 and ba5 as an example, assuming that register ba4 has a corresponding timing violation value slack4 (i.e., the slack value from a certain starting point to register ba4), and register ba5 has a corresponding timing violation value slack5 (i.e., the slack value from a certain starting point to register ba4), then the second TNS is equal to the sum of slack4 + slack5.

[0066] The second WNS indicates the worst timing violation corresponding to the endpoint of all timing paths of the group of signals;

[0067] The second path number indicates the number of paths corresponding to the end points of all timing paths of the group of signals;

[0068] The second proportion value indicates the ratio of the number of paths corresponding to the end points of all timing paths of the group of signals to the number of paths corresponding to the end points of timing paths of different groups of signals included in the second timing report.

[0069] In an exemplary embodiment, the third timing report includes timing report information corresponding to different groups of signals from the start point to the end point of the timing path. The timing report information corresponding to each group of signals from the start point to the end point of the timing path includes at least:

[0070] The third TNS represents the sum of all slack values ​​from the start point to the end point of the timing path of the group of signals. In one embodiment, taking the example of different timing paths from the start point to the end point of the timing path in the same group of signals including register ba1 to register ba4 and register ba2 to register ba5, assuming that there is a timing violation value slack6 corresponding to the path from register ba1 to register ba4, and a timing violation value slack7 corresponding to the path from register ba2 to register ba5, then the third TNS is equal to the sum of slack6 + slack6.

[0071] The third WNS represents the worst timing violation among all the timing violations from the start point to the end point of the timing path for the group of signals;

[0072] The third path number indicates the number of paths corresponding to all the paths from the starting point to the end point of the timing path of the group of signals;

[0073] The third proportion value represents the ratio of the number of paths corresponding to all timing paths from the start point to the end point of the timing path of the group of signals to the number of paths corresponding to the start point to the end point of the timing path of different groups of signals included in the third timing report.

[0074] Figure 3 is a schematic diagram showing a first timing report, a second timing report and a third timing report in an embodiment of the present application. As shown in Figure 3, Figure 3 is divided into three parts by two dotted lines. Part I is a schematic diagram showing an embodiment of the first timing report, Part II is a schematic diagram showing an embodiment of the second timing report, and Part III is a schematic diagram showing an embodiment of the third timing report.

[0075] As shown in Figure 3, the first timing report includes report information corresponding to the starting points of the timing paths of three groups of signals. The report information corresponding to the starting points of the timing paths of different groups of signals is arranged according to the first proportion ratio: the report information corresponding to the starting point of the first group of timing paths, namely RS*_BA*_L*_*_u_rs*_ba*_l* / d / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q, includes: ratio is 82.40%, TNS is -329.6428, path_num is 412, and WNS is -0.8333; the report information corresponding to the starting point of the second group of timing paths, namely RS*_BCC*_L*_*_u_rs*_bcc*_l*)d / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q, includes : ratio is 16.00%, TNS is -63.4807, path_num is 80, and WNS is -0.8104; the starting point of the third group of timing paths, namely ALU_CFG_GROUP_*_u_remap_rs / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q, reports information includes: ratio is 1.60%, TNS is -6.3377, path_num is 8, and WNS is -0.7977.

[0076] As shown in Figure 3, the second timing report includes report information corresponding to the end points of the timing paths of 5 groups of signals, and the report information corresponding to the starting points of the timing paths of different groups of signals is arranged according to the second proportion ratio: the report information corresponding to the end point of the first group of timing paths, i.e., ba*_ba*_l*_rdata*, includes: ratio is 81.60%, TNS is -326.4609, path_num is 408, and WNS is -0.8333; the report information corresponding to the end point of the second group of timing paths, i.e., ba*_bcc*_l*_rdata*, includes: ratio is 16.00%, TNS is -63.4807, path_num is 80, and WNS is -0.8104; The report information corresponding to the endpoint of the three groups of timing paths, namely ba*_remap_araddr*, includes: ratio is 1.40%, TNS is -5.5484, path_num is 7, and WNS is -0.7977; the report information corresponding to the endpoint of the fourth group of timing paths, namely ba*_ba*_l*_rid*, includes: ratio is 0.80%, TNS is -3.1819, path_num is 4, and WNS is -0.8003; the report information corresponding to the endpoint of the fifth group of timing paths, namely ba*_remap_arid*, includes: ratio is 0.20%, TNS is -0.7893, path_num is 1, and WNS is -0.7893.

[0077] As shown in Figure 3, the third timing report includes report information corresponding to 5 groups of signals from the start point of the timing path to the end point of the timing path. The report information corresponding to different groups of signals from the start point of the timing path to the end point of the timing path is arranged according to the third proportion ratio: the first group from the start point of the timing path to the end point of the timing path, that is, RS*_BA*_L*_*_u_rs*_ba*_l*)d / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q to ba*_ba*_l*_rdata*, the report information includes: ratio is 81.60%, TNS is -326.4609, path_num is 408, and WNS is -0.8333; the second group from the start point of the timing path to the end point of the timing path, that is, RS*_BCC*_L*_*_u_rs*_bcc*_l*)d / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q to The report information corresponding to ba*_bcc*_l*_rdata* includes: ratio of 16.00%, TNS of -63.4807, path_num of 80, and WNS of -0.8104; The third group is from the start point of the timing path to the end point of the timing path, that is, ALU_CFG_GROUP_*_u_remap_rs / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q to ba*_remap_araddr*. The report information corresponding to ba*_bcc*_l*_rdata* includes: ratio of 16.00%, TNS of -63.4807, path_num of 80, and WNS of -0.8104; The report information corresponding to the third group from the start point of the timing path to the end point of the timing path, that is, ALU_CFG_GROUP_*_u_remap_rs / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q to ba*_remap_araddr* includes: ratio of 1.40%, TNS of -5.5484, path_num of 7, and WNS of -0.7977; The fourth group is from the start point of the timing path to the end point of the timing path, that is, RS*_BA*_L*_*_u_rs*_ba*_l* / d / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q to The report information corresponding to ba*_ba*_l*_rid* includes: ratio is 0.80%, TNS is -3.1819, path_num is 4, and WNS is -0.8003; the report information corresponding to the fifth group from the start point of the timing path to the end point of the timing path, that is, ALU_CFG_GROUP_*_u_remap_rs / CB_PORT_*_u*_cb_rs / pointer_out_reg / Q to ba*_remap_arid* includes: ratio is 0.20%, TNS is -0.7893, path_num is 1, and WNS is -0.7893.

[0078] Through steps 200 and 201, the timing report is divided into a first timing report that locates the timing violation at the starting point of the timing path, a second timing report that locates the timing violation at the end point of the timing path, and a third timing report that locates the timing violation at both the starting point and the end point of the timing path. In this way, the first timing report can clearly analyze which registers at the starting point of the timing path have a timing violation, the second timing report can clearly analyze which registers at the end point of the timing path have a timing violation, and the third timing report can clearly analyze which registers at the starting point of the timing path and the registers at the end point of the timing path have a timing violation. Furthermore, based on the percentage values ​​in the timing report, it can be clearly seen which registers at the starting point of the timing path and / or the registers at the end point of the timing path have a higher probability of having a timing violation.

[0079] Step 202: Determine, based on the proportions of the first timing report, the second timing report, and the third timing report, whether to use one or more timing reports from among the first timing report, the second timing report, and the third timing report to locate the timing violation.

[0080] In an exemplary instance, step 202 may include: the maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, and the maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, and determining to use the third timing report to locate the timing violation.

[0081] In an exemplary instance, step 202 may include: the maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, but the maximum third proportion value in the third timing report is less than the maximum second proportion value in the second timing report, and determining to use the third timing report and the second timing report to locate the timing violation.

[0082] In an exemplary instance, step 202 may include: the maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, but the maximum third proportion value in the third timing report is less than the maximum first proportion value in the first timing report, and determining to use the third timing report and the first timing report to locate the timing violation.

[0083] In an exemplary instance, step 202 may include: the maximum third proportion value in the third timing report is less than the maximum second proportion value in the second timing report, and the maximum third proportion value in the third timing report is less than the maximum first proportion value in the first timing report, and determining to locate the timing violation using the third timing report, the first timing report, and the second timing report.

[0084] In an exemplary embodiment, locating a timing violation based on the determined timing report may include: starting to check for timing violations from a group of reports corresponding to the largest proportion value from the start point of the timing path to the end point of the timing path in the third timing report; and then starting to check for timing violations from a group of reports corresponding to the start point and / or the end point of the timing path in the first timing report and / or the second timing report. In one embodiment, for a group of timing reports whose proportion value is less than a preset proportion threshold and whose TNS is less than a preset TNS threshold, the timing violation check may be abandoned.

[0085] In one exemplary embodiment, for a group with a large percentage but a small TNS, the corresponding registers can be checked for timing violations based on WNS, while other registers with smaller timing violations may not be processed. In this way, critical paths can be identified and timing optimized based on WNS information, ensuring that the circuit meets timing requirements and improving circuit performance and reliability.

[0086] In an exemplary embodiment, checking for timing violations may include, but is not limited to, finding the location of registers with timing violations in a database, checking whether the location of the registers with timing violations is reasonable, whether the constraints are reasonable, etc. In one embodiment, the registers with timing violations shown in a group of timing reports with the largest corresponding proportion can be placed in a check group, and a high weight for using the tool to repair timing can be set for the check group, so that the tool will give priority to repairing timing violations in the check group with a high weight. In one embodiment, the registers with timing violations shown in a group of timing reports with the largest corresponding proportion can be repaired by adding one beat, such as changing the occupied period from one cycle to two or more cycles, so as to better ensure the success of the repair of the timing violation.

[0087] In this embodiment, the Perl language's ability to quickly process large amounts of data and extract useful information is leveraged. A Perl script is used to implement a method for locating timing violations based on timing reports. This allows block owners to quickly locate the paths where timing violations occur and understand their distribution. This allows block owners to more effectively take appropriate actions based on the processing reports to fix timing issues, saving time during the iterative process of chip design and accelerating back-end iterations.

[0088] The method for locating timing violations based on timing reports provided in the embodiments of the present application classifies and analyzes the timing violations in the Timing Report, clarifies the violation patterns, and effectively locates the timing violations, so that the Block Owner can effectively take corresponding actions to fix the timing problems based on the processing report, quickly realize the repair of the timing problems, save time in the iterative process of chip design, and accelerate the iteration speed of the back-end.

[0089] An embodiment of the present application further provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute any of the above-mentioned methods for locating timing violations based on timing reports.

[0090] An embodiment of the present application further provides a computer device, including a memory and a processor, wherein the memory stores the following instructions that can be executed by the processor: used to execute the steps of any of the above-mentioned methods for locating timing violations based on timing reports.

[0091] FIG4 is a schematic diagram of the structure of the apparatus for locating timing violations based on timing reports in an embodiment of the present application. As shown in FIG4 , the apparatus may include: a division module, an extraction module, and a positioning module; wherein,

[0092] A division module, configured to divide the starting points and end points of the timing paths according to different group signals, and to divide the starting points of the timing paths of the same group of signals into one category and the end points of the timing paths of the same group of signals into one category;

[0093] an extraction module, configured to extract, from the timing report, a first timing report corresponding to the starting point of the timing path, a second timing report corresponding to the end point of the timing path, and a third timing report corresponding to the distance from the starting point of the timing path to the end point of the timing path based on the divided starting point and the end point of the timing path;

[0094] The positioning module is used to determine whether to use one or more timing reports among the first timing report, the second timing report and the third timing report to locate the timing violation according to the proportion values ​​in the first timing report, the second timing report and the third timing report.

[0095] In an exemplary instance, the first timing report includes timing report information corresponding to the starting points of timing paths of different groups of signals, and the timing report information corresponding to the starting points of the timing paths of each group of signals includes at least: a first TNS, which represents the sum of the slack values ​​of the starting points of all timing paths of the group of signals; a first WNS, which represents the worst timing violation corresponding to the starting points of all timing paths of the group of signals; a first number of paths, which represents the number of paths corresponding to the starting points of all timing paths of the group of signals; and a first proportion, which represents the proportion of the number of paths corresponding to the starting points of all timing paths of the group of signals to the number of paths corresponding to the starting points of timing paths of different groups of signals included in the first timing report.

[0096] In an exemplary instance, the second timing report includes timing report information corresponding to the endpoints of timing paths of different groups of signals, and the timing report information corresponding to the endpoints of the timing paths of each group of signals includes at least: a second TNS, which represents the sum of the slack values ​​of the endpoints of all timing paths of the group of signals; a second WNS, which represents the worst timing violation corresponding to the endpoints of all timing paths of the group of signals; a second number of paths, which represents the number of paths corresponding to the endpoints of all timing paths of the group of signals; and a second proportion, which represents the proportion of the number of paths corresponding to the endpoints of all timing paths of the group of signals to the number of paths corresponding to the endpoints of the timing paths of different groups of signals included in the second timing report.

[0097] In an exemplary instance, the third timing report includes timing report information corresponding to different groups of signals from the start point of the timing path to the end point of the timing path, and the timing report information corresponding to each group of signals from the start point of the timing path to the end point of the timing path includes at least: a third TNS, which represents the sum of all slack values ​​of the group of signals from the start point of the timing path to the end point of the timing path; a third WNS, which represents the worst timing violation corresponding to all timing violations from the start point of the timing path to the end point of the timing path of the group of signals; a third number of paths, which represents the number of paths corresponding to all paths from the start point of the timing path to the end point of the timing path of the group of signals; and a third proportion, which represents the ratio of the number of paths corresponding to all paths from the start point of the timing path to the end point of the timing path of the group of signals to the number of paths corresponding to the start point of the timing path to the end point of the timing path of different groups of signals included in the third timing report.

[0098] In one exemplary embodiment, the positioning module may be used to:

[0099] The maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, and the maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, and it is determined that the third timing report is used to locate the timing violation;

[0100] Alternatively, the maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, but the maximum third proportion value in the third timing report is less than the maximum second proportion value in the second timing report, and it is determined that the third timing report and the second timing report are used to locate the timing violation;

[0101] Alternatively, the maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, but the maximum third proportion value in the third timing report is less than the maximum first proportion value in the first timing report, and it is determined that the third timing report and the first timing report are used to locate the timing violation;

[0102] Alternatively, the maximum third proportion value in the third timing report is smaller than the maximum second proportion value in the second timing report, and the maximum third proportion value in the third timing report is smaller than the maximum first proportion value in the first timing report, and it is determined that the third timing report, the first timing report and the second timing report are used to locate the timing violation.

[0103] In an exemplary instance, locating the timing violation in the positioning module based on the determined timing report may include: starting to check the timing violation from the report corresponding to the group of timing paths from the starting point to the end point of the timing path with the largest corresponding proportion in the third timing report; and then starting to check the timing violation from the report corresponding to the starting point and / or the end point of the timing path with the largest corresponding proportion in the first timing report and / or the second timing report.

[0104] In one embodiment, for a group of timing reports whose proportion value is less than a preset proportion threshold and whose TNS is less than a preset TNS threshold, the timing violation check may be abandoned.

[0105] In one embodiment, the registers with timing violations displayed in a timing report corresponding to a group with the largest proportion can be set in an inspection group, and a high weight for the tool to repair the timing can be set for the inspection group. In this way, the tool will give priority to repairing the timing violations in the inspection group with a high weight.

[0106] In one embodiment, the timing violation can be repaired by adding one beat to the registers with the largest corresponding proportion in the timing report, for example, changing the occupied cycle from one to two or more cycles, which can better ensure the successful repair of the timing violation.

[0107] The device for locating timing violations based on timing reports provided in the embodiments of the present application classifies and analyzes the timing violations in the Timing Report, clarifies the violation patterns, and effectively locates the timing violations, so that the Block Owner can effectively take corresponding actions to fix the timing problems based on the processing report, quickly realize the repair of the timing problems, save time in the iterative process of chip design, and speed up the iteration speed of the back-end.

[0108] Although the embodiments disclosed in this application are as described above, the contents described are merely embodiments adopted to facilitate understanding of this application and are not intended to limit this application. Any person skilled in the art to which this application belongs may make any modifications and changes in the form and details of the implementation without departing from the spirit and scope disclosed in this application. However, the scope of patent protection of this application shall still be based on the scope defined by the attached claims.

Claims

1. A method for locating timing violations based on timing reports, characterized in that: include: Divide the starting points and the end points of the timing paths according to different group signals, and divide the starting points of the timing paths of the same group of signals into one category, and divide the end points of the timing paths of the same group of signals into one category; Based on the start point of the divided timing path and the end point of the timing path, extract from the timing report a first timing report corresponding to the start point of the timing path, a second timing report corresponding to the end point of the timing path, and a third timing report corresponding to the start point of the timing path to the end point of the timing path; According to the proportion values ​​in the first timing report, the second timing report and the third timing report, it is determined to use one or more timing reports among the first timing report, the second timing report and the third timing report to locate the timing violation.

2. The method according to claim 1, wherein: The names of the starting points / end points of the timing paths in different groups of signals are distinguished by different identifiers, and the names of the starting points / end points of different timing paths in the same group of signals are distinguished by identifiers+numbers; The dividing the starting point and the end point of the timing path according to the group signal includes: The numerical part in the name of the same group of signals is replaced by one character, so that the starting point / end point of the timing path of the same group of signals are classified into one category.

3. The method according to claim 1, wherein: The first timing report includes timing report information corresponding to the starting points of timing paths of different groups of signals, and the timing report information corresponding to the starting point of the timing path of each group of signals includes: a first proportion value, indicating the proportion of the number of paths corresponding to the starting points of all timing paths of the group of signals to the number of paths corresponding to the starting points of the timing paths of different groups of signals included in the first timing report; The second timing report includes timing report information corresponding to the endpoints of the timing paths of different groups of signals, and the timing report information corresponding to the endpoints of the timing paths of each group of signals includes: a second proportion value, indicating the proportion of the number of paths corresponding to the endpoints of all timing paths of the group of signals to the number of paths corresponding to the endpoints of the timing paths of different groups of signals included in the second timing report; The third timing report includes the information from the starting point of the timing path to the timing path of different groups of signals. The timing report information corresponding to the end point of the path, the timing report information corresponding to the start point of the timing path to the end point of the timing path for each group of signals includes: a third proportion value, which represents the ratio of the number of paths corresponding to all the paths from the start point of the timing path to the end point of the timing path of the group of signals to the number of paths corresponding to the start point of the timing path to the end point of the timing path of different groups of signals included in the third timing report.

4. The method according to claim 1, wherein: The determining to locate the timing violation by using one or more timing reports among the first timing report, the second timing report and the third timing report comprises: The maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, and the maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, determining that the third timing report is used to locate the timing violation.

5. The method according to claim 1, wherein: The determining to locate the timing violation by using one or more timing reports among the first timing report, the second timing report and the third timing report comprises: The maximum third proportion value in the third timing report is greater than or equal to the maximum first proportion value in the first timing report, but the maximum third proportion value in the third timing report is less than the maximum second proportion value in the second timing report, and it is determined that the third timing report and the second timing report are used to locate the timing violation.

6. The method according to claim 1, wherein: The determining to locate the timing violation by using one or more timing reports among the first timing report, the second timing report and the third timing report comprises: The maximum third proportion value in the third timing report is greater than or equal to the maximum second proportion value in the second timing report, but the maximum third proportion value in the third timing report is less than the maximum first proportion value in the first timing report, and it is determined that the third timing report and the first timing report are used to locate the timing violation.

7. The method according to claim 1, wherein: The determining to locate the timing violation by using one or more timing reports among the first timing report, the second timing report and the third timing report comprises: The maximum third proportion value in the third timing report is smaller than the maximum second proportion value in the second timing report, and the maximum third proportion value in the third timing report is smaller than the maximum first proportion value in the first timing report, and the third timing report is determined to be adopted. The first timing report and the second timing report locate timing violations.

8. The method according to any one of claims 4 to 7, wherein: The locating the timing violation according to the determined timing report includes: Start checking timing violations from the report corresponding to the group of timing paths from the starting point to the end point of the timing path with the largest proportion in the third timing report; then start checking timing violations from the report corresponding to the starting point and / or the end point of the timing path with the largest proportion in the first timing report and / or the second timing report.

9. The method according to claim 8, further comprising: For a group of timing reports in which the third proportion value in the third timing report is less than the preset proportion threshold and the third TNS in the third timing report is less than the preset TNS threshold, abandon the timing violation check; Alternatively, for a group of timing reports in which the second proportion value in the second timing report is less than a preset proportion threshold and the second TNS in the second timing report is less than a preset TNS threshold, the timing violation check is abandoned; Alternatively, for a group of timing reports in which the first proportion value in the first timing report is less than a preset proportion threshold and the first TNS in the first timing report is less than a preset TNS threshold, the timing violation check is abandoned.

10. The method according to claim 8, further comprising: Performing a timing violation check on a corresponding register according to a third WNS in the third timing report; Alternatively, a timing violation check is performed on a corresponding register according to the second WNS in the second timing report; Alternatively, a timing violation check is performed on a corresponding register according to the first WNS in the first timing report.

11. A computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute the method for locating timing violations based on timing reports according to any one of claims 1 to 10.

12. A computer device comprising a memory and a processor, wherein: The memory stores the following instructions executable by the processor: used to execute the steps of the method for locating timing violations based on timing reports as described in any one of claims 1 to 10.

13. A device for locating timing violations based on timing reports, characterized in that: include: Division module, extraction module, positioning module; among them, A division module, used to divide the starting point and the end point of the timing path according to different group signals, and divide the starting point of the timing path of the same group of signals into one category, and divide the end point of the timing path of the same group of signals into one category; An extraction module, configured to extract, based on the divided starting point of the timing path and the end point of the timing path, a first timing report corresponding to the starting point of the timing path, a second timing report corresponding to the end point of the timing path, and a third timing report corresponding to the starting point of the timing path to the end point of the timing path from the timing path to the timing path from the timing path; The positioning module is used to determine whether to use one or more timing reports among the first timing report, the second timing report and the third timing report to locate the timing violation according to the proportion values ​​in the first timing report, the second timing report and the third timing report.

Citation Information

Patent Citations

  • Time sequence analysis method and device, electronic device and storage medium

    CN112270156A

  • Method and device for repairing hold time violation in circuit

    CN112597739A

  • Time sequence verification method and device and storage medium

    CN116401988A

  • Timing analysis method and device

    US20080034338A1