This application claims priority to Taiwan Application Serial Number 112116452 filed May 3, 2023, which is herein incorporated by reference.
This disclosure is related to static timing analysis of digital circuits, specifically a critical path analysis method that can improve speed.
Static Timing Analysis (STA) is a workflow for calculating the timing of digital circuits. Considering a logic circuit between two flip-flops, this logic circuit contains multiple logic gates, each with its own delay. There are multiple paths between the previous flip-flop and the subsequent flip-flop for data transmission, with the path having the maximum delay referred to as the critical path. If the data cannot be transmitted to the subsequent flip-flop in time due to the delay, it does not meet the specification requirements. STA can analyze whether the timing of data transmission between the two flip-flops meets the specification requirements without actually inputting signals to the digital circuit.
Embodiments of the present disclosure provide a critical path analysis method executed by a computer system. The critical path analysis method includes: obtaining multiple critical paths of a digital circuit; sorting the critical paths according to stage counts of the critical paths and dividing the critical paths into multiple batches; and using a simulation program with integrated circuit emphasis (SPICE) tool to analyze the batches sequentially to generate a static timing analysis (STA) report with respect to the critical paths.
From another aspect, embodiments of the present disclosure provide an electric device including a memory and a processor which is communicatively connected to the memory. The memory stores multiple instruction executed by the processor to perform the critical path analysis method.
In the aforementioned method and electric device, the analysis of the critical paths is accelerated.
The invention can be more fully understood by reading the following detailed description of the embodiment, with reference made to the accompanying drawings as follows.
Specific embodiments of the present invention are further described in detail below with reference to the accompanying drawings, however, the embodiments described are not intended to limit the present invention and it is not intended for the description of operation to limit the order of implementation. Moreover, any device with equivalent functions that is produced from a structure formed by a recombination of elements shall fall within the scope of the present invention. Additionally, the drawings are only illustrative and are not drawn to actual size.
The using of “first”, “second”, “third”, etc. in the specification should be understood for identifying units or data described by the same terminology, but are not referred to particular order or sequence.
The above calculation considers the level of logic gates; however, when considering the level of transistors, a simulation program with integrated circuit emphasis (SPICE) tool is needed to account for the delay variation of each logic gate under a specific process condition. For example, under certain process conditions, the delay of the logic gate 207 might be slightly greater than 5, while under another process condition, the delay of the logic gate 207 might be slightly less than 5. The process conditions include specific component sizes, masks, temperature, etc., and are not limited in this disclosure. Due to the numerous parameters involved in the process conditions, it is not feasible to exhaustively simulate all parameters. In some embodiments, the SPICE tool is combined with a Monte Carlo algorithm which generates multiple samples, and each example represents a process condition. If the number of the samples is large enough, the accuracy of the simulation will be high enough. For a particular critical path, multiple process conditions need to be simulated to determine whether the corresponding slack value remains greater than 0. The entire circuit includes multiple flip-flops, and there is a critical path between each pair of flip-flops. Analyzing such many critical paths requires a significant amount of time. The present disclosure proposes a critical path analysis method that can accelerate the above analysis process.
In the above-described embodiments, the SPICE tool is used in combination with the Monte Carlo algorithm, but this disclosure is not limited to this. In some embodiments, the process conditions can be set based on predefined probability distributions, templates, or test sets, and then the delay of each logic gate can be determined using the SPICE tool.
When the stage count of a critical path is larger (also referred to as a longer critical path), the time required for analysis is longer. If long paths and short paths are assigned to the same batch for analysis, short paths may finish analyzing while still waiting for long paths to complete before executing the next batch, resulting in increased overall time spent. Therefore, in this embodiment, critical paths with similar stage counts are assigned to the same batch for analysis to reduce waiting time. Specifically, in step 320, the critical paths are sorted based on their stage counts and divided into multiple batches. Next, in step 330, the SPICE tool is used to analyze these batches sequentially.
Herein, we demonstrate that after sorting, the execution time is minimized. Let's assume there are n critical paths, divided into m batches, where n and mare positive integers. After sorting, the stage counts of these n critical paths are represented as {α1, α2, . . . , αn}, where α1≤α2≤ . . . ≤αn-1≤αn. Each batch has n/m critical paths, and the stage counts are arranged in ascending order. The stage counts of the critical paths in the first batch are
in the second batch are
and in the m-th batch are {α_((m−1)n)/m+1), α_((m−1)n)/m+2), . . . , αn}. Therefore, the maximum stage count T1 in the first batch is calculated as the following equation 1. The maximum stage count T2 in the second batch is calculated as the following equation 2. The maximum stage count Tm in the m-th batch is calculated as the following equation 3.
If the critical paths are not sorted, the first batch must contain a stage count greater than
The maximum stage count T1′ for the first batch is shown in equation 4. Similarly, the maximum stage count T2′ for the second batch is shown in equation 5, and the maximum stage count Tm′ for the m-th batch is shown in equation 6.
Hence, the total time required after sorting is less than the total time required before sorting, as shown in equation 7. This proves that the total time required after sorting is the minimum.
In some embodiments, the SPICE tool and Monte Carlo algorithm are executed by a computer system 440. The computer system 440 can be a personal computer, server, distributed system, etc. The computer system 440 includes multiple cores 441-444, each core can be a thread, virtual machine, central processor, computing node, or a computing logic circuit, implemented in hardware or software, and is not limited to the present disclosure. In this system, the cores 441-444 are used to process the critical paths in parallel. Due to limited resources, the number of the cores 441-444 is less than the total number of the critical paths in the digital circuit. Therefore, these critical paths must be divided into multiple batches for processing. When executing a particular batch, these cores 441-444 process multiple critical paths in parallel within the batch. When the total number of the critical paths remains unchanged, the fewer the number of the batches 421-423, the more critical paths there are in a single batch, which means that more critical paths can be processed in parallel at once, reducing the total time required. The number of the batches is not limited in the disclosure.
In the above implementation, each critical path is located between two flip-flops. However, in other implementations, the critical paths can belong to other types. For example, a critical path can be located between an input port and a flip-flop, between a flip-flop and an output port, or between an input port and an output port, etc. This disclosure is not limited to these configurations.
Referring back to
In this embodiment, acceleration is achieved through the step 331. However, the step 331 can be omitted, and only the Monte Carlo algorithm is used to generate samples in some embodiments. In other embodiments, the step 330 can adopt any modified version of the Monte Carlo algorithm. Alternatively, as mentioned above, the step 330 may use any means instead of the Monte Carlo algorithm to determine the process conditions to be simulated in some embodiments.
Referring back to
The method in
Although the present invention has been described in considerable detail with reference to certain embodiments thereof, other embodiments are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the embodiments contained herein. It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the present invention cover modifications and variations of this invention provided they fall within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
112116452 | May 2023 | TW | national |