US20020112213A1 - Design analysis tool for path extraction and false path identification and method thereof - Google Patents
Design analysis tool for path extraction and false path identification and method thereof Download PDFInfo
- Publication number
- US20020112213A1 US20020112213A1 US09/781,492 US78149201A US2002112213A1 US 20020112213 A1 US20020112213 A1 US 20020112213A1 US 78149201 A US78149201 A US 78149201A US 2002112213 A1 US2002112213 A1 US 2002112213A1
- Authority
- US
- United States
- Prior art keywords
- path
- paths
- conditions
- false
- atpg
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/318357—Simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318328—Generation of test inputs, e.g. test vectors, patterns or sequences for delay tests
Definitions
- This invention generally relates to design analysis tools and more particularly to design analysis tools for performing timing analysis and identification of critical paths in electronic circuits.
- Static timing analysis plays an important role in defining circuit performance for today's high-speed integrated circuits.
- Static timing analysis tools identify all the structural paths in the design and the calculated delay along each one of these paths.
- the term ‘path’ refers to two nodes in a circuit design coupled by one or more circuit devices. Typically, these paths start at a latch point and end at another latch point in the design. These paths are sorted according to their delay and the slowest (critical) paths in the design are identified. The designer then would have to work on these paths and try to optimize them to reduce the delay along these long paths in order to meet target performance frequency goals.
- the static timing analysis tools are “true paths” because these paths cannot be activated in the design with various constraints.
- FIG. 1 Illustrated in FIG. 1, in block diagram form, is an exemplary path in a complex design
- FIG. 3 Illustrated in FIG. 3 is a process flow for performing timing analysis and false path identification in conjunction with an automated test pattern generation tool
- FIG. 4 Illustrated in FIG. 4, in block diagram form, is an example of path extraction and enumeration from a launch point to a capture point;
- FIG. 5 Illustrated in FIG. 5 is a flow chart of false path identification in accordance with one embodiment of the present invention.
- FIG. 6 Illustrated in FIG. 6, in partial logic diagram form, is an example of false path identification between a launch point and a capture point in accordance with the present invention.
- FIG. 7 Illustrated in FIG. 7, in logic diagram form, is an example of the slow path condition of the flow chart of FIG. 5.
- FIG. 1 Illustrated in FIG. 1 is an integrated circuit portion 10 of a circuit design having a signal point represented as a launch point connected to an input of a block of custom logic 12 .
- Custom logic 12 is formed of a plurality of transistors.
- An output of custom logic 12 is connected to an input of synthesized logic gates block 14 .
- An output of synthesized logic gate block 14 is coupled to an input of custom logic block 16 which is formed of a plurality of transistors.
- Intervening circuitry may or may not be present between synthesized logic gates block 14 and custom logic block 16 as indicated by the broken line.
- An output of custom logic block 16 provides an output capture point.
- integrated circuit portion 10 illustrates a path corresponding to a circuit design in an integrated circuit in which a signal transition at the launch point results in an output transition at the output capture point.
- the timing analysis tool will identify such paths in the design and will estimate the delay from when the transition occurs at the launch point and when it will appear at the output capture point.
- the purpose of timing analysis is to make sure that the delay of all the paths in the design fall below a certain timing budget which determines the speed of the circuit. If one of these paths exceeds the budget, then the designer will have to try and reduce the delay along that path in order to meet the timing budget.
- the paths may go through various different types of blocks.
- FIG. 2 Illustrated in FIG. 2 is an example 20 of a portion of an integrated circuit.
- the integrated circuit has a plurality of latch circuits 22 , 24 , 26 and 28 .
- Each of the latch circuits 22 , 24 , 26 and 28 has an input and an output for data. It should be well understood that the latch circuits described herein have both clock and data inputs.
- An output of latch circuit 22 is connected to a first input of an AND gate 30 and to a first input of an AND gate 32 .
- An output of latch circuit 24 is connected to a second input of an AND gate 32
- an output of latch circuit 26 is connected to a first input of an AND gate 34 .
- An output of latch circuit 28 is connected to a second input of AND gate 34 .
- the output of latch circuit 26 is also connected to a second input of AND gate 30 .
- the output of AND gate 30 is connected to an input of an inverter 36 .
- the output of AND gate 32 is connected to a first input of an OR gate 40 .
- the output of AND gate 34 is connected to a second input of OR gate 40 and the output of latch circuit 28 is connected to a third input of OR gate 40 .
- the output of inverter 36 is connected to an input of inverter 38 having an output connected to an input of a latch circuit 42 .
- the output of OR gate 40 is connected to an input of a latch circuit 44 .
- Latch circuits 42 and 44 each have an output connected to surrounding logic 46 .
- the inputs of latch circuits 22 , 24 , 26 and 28 are connected to surrounding logic 48 .
- the paths contained within the block can be false due to local constraints of the blocks themselves or due to external environmental constraints imposed by the surrounding logic.
- the path that starts at latch circuit 26 going into AND gate 34 on through OR gate 40 and going out to latch element 44 is a false path because, in order to activate this path, the second input to AND gate 34 will have to be at the value 1 and the side input of the OR gate 40 will have to be at the value 0.
- This signal condition is impossible because both signals are driven from the output of latch circuit 28 as shown in FIG. 2.
- the Path P 1 is false.
- the output of AND gate 30 may possibly assume a logic one value should both inputs momentarily in the second time frame become a logic one as a result of such factors. Therefore, for a high-to-low signal transition at the output of latch 26 , the final value condition and the side value condition are both satisfied for path P 2 . But when a low-to-high logic transition is present at the output of latch 26 , the final value condition of the timing path going through AND gate 30 is violated because during the second time frame the second input of AND gate 30 is a controlling value (0) due to the one-hot constraint. This is an example of an external constraint from the surrounding logic that will make the path false. The following discussion is restricted to an analysis of local constraints imposed by the combinational blocks that contain the path and will not consider external constraints.
- a timing characterization step 52 is initially performed on all the building blocks of the integrated circuit. It should be understood that the term “building blocks” encompasses both library cells and custom designed blocks.
- the output of the timing characterization is provided to a timing analyzer for a timing analysis step 54 .
- the timing analysis step 54 may be performed by any one of a variety of commercially existing or customized timing analysis tools.
- Information from the timing analysis step 54 is provided to a path extraction and translation step 56 .
- an output of step 56 is provided in the form of a false path identification step 58 .
- a false path report is provided as an output of step 58 .
- the false path report is provided back to the timing analysis tool and can be used in consecutive timing analysis step 54 .
- Intermediate results from the false path identification step 58 are provided to an automated test pattern generation (ATPG) tool to check the satisfiability of logic values of nodes in the path or paths under consideration.
- the ATPG tool uses the intermediate results from false path identification step 58 and provides circuit and path information that is used to generate the false path report.
- ATPGs are well known in the art and are commercially available for performing specific test pattern generation on integrated circuits in an automated fashion to test their functionality.
- ATPG tools perform a justifiability analysis by determining whether certain conditions can be satisfied or not. For example, ATPG tools may assign logic values to internal nets (circuit nodes) and analyze whether certain input value assignments can satisfy the assigned values.
- the justifiability function of ATPG tools may be implemented by various algorithms, including but not limited to the standard backtracking algorithm.
- steps 58 and 59 are bidirectional.
- the bi-directionality indicates that the false path identification process utilizes specific information from the ATPG and frequently calls for information or results created by the ATPG in order to perform the false path identification. Details of the interaction between the false path identification step 58 and an ATPG will be provided below.
- FIG. 4 Illustrated in FIG. 4 is a detail of the path extraction and translation step 56 of FIG. 3.
- FIG. 4 is an example of a complex path 60 that is identified by the timing analysis step 54 .
- the complex path is identified as starting with a launch point having an input to a single path logic block 62 .
- An output of single path logic block 62 is connected to an input of a multiple-path component logic block 63 .
- An output of multiple-path component logic block 63 is connected to an input of a multiple-path component logic block 64 .
- An output of the multiple-path component logic block 64 provides a capture point for the complex path.
- the timing analysis of step 54 in FIG. 3 recognized only the inputs and outputs of single path component logic block 62 and multiple-path component logic blocks 63 and 64 .
- multiple-path component logic block 63 comprises a plurality of component paths in the form of three separate paths.
- a first path is connected to the input of multiple-path component logic block 63 and contains single path component logic block 66 .
- a second path of multiple-path component logic block 63 contains a single path component logic block 67 and a single path component logic block 68 .
- Yet a third path of multiple-path component logic block 63 contains a single path component logic block 69 and a single path component logic block 70 .
- multiple-path component logic block 64 has two paths.
- a first path contains a single path component logic block 72 and a single path component logic block 73 .
- a second path of multiple-path component logic block 64 contains a single path component logic block 74 .
- the single-path components and multiple-path components are formed using conventional combinational logic elements.
- the timing analysis tool identifies the complex path going through blocks 62 , 63 and 64 as a single component timing path.
- the format of paths extracted by the timing analysis tool is very different from the format of paths that can be analyzed using ATPG.
- a start step 82 transitions to receiving a selected path in step 84 .
- the selected path is the result of the timing analysis step 54 and path extraction and translation step 56 of FIG. 3.
- Path P is characterized by the set of nodes along the path. Each one of these nodes will assume a certain transition that will require going from a previous value or initial value to a final value.
- condition 86 In the next step of the process, we examine condition 86 .
- the condition is a determination as to whether a set of final value conditions along all the nodes of the path can be satisfied within the combinational block or not.
- step 88 we determine or evaluate whether a set of side value propagation conditions are satisfied. That condition states that all the side inputs of all the gates along the path have to assume non-controlling values.
- a non-controlling value for AND gates and NAND gates is 1.
- a non-controlling value for OR gates and NOR gates is 0.
- a non-controlling value for XOR gates can be either 0 or 1.
- Step 88 calls the ATPG tool to check whether these side-value propagation conditions can be satisfied by the circuit or not. If that is found to be true, then the path is determined to be an active path and we exit again at step 98 . If it is false, then we proceed to step 90 .
- the ATPG is called to check whether a set of initial value conditions of all the nodes along the paths is satisfied. If that is true, then we continue to step 92 where we determine whether a set of slower path conditions are satisfied. If so, the path is then characterized as being active in step 96 .
- An active characterization means that the path could be true, but it could also be false for other reasons not being analyzed. Therefore, the term “active” is used rather than “true” or “false”.
- step 92 If the result of step 92 is negative, then we determine that the path must be false in step 94 and we again exit at step 98 . If the initial value condition is true, we go to step 92 where we check for whether there are slower path conditions and whether any slower path conditions can be satisfied or not. A slower path condition requires that a slower path must exist at each side input where the side input propagation condition is violated. This condition will be explained below in FIG. 7. If the condition of step 92 is found to be false, then the path is also determined to be false and we exit. Otherwise, if the condition is true, the path is determined to be an active path and we also exit. That terminates the process 80 for false path identification.
- FIG. 6 Illustrated in FIG. 6 is an example path 100 to further the understanding of the process 80 of FIG. 5.
- a latch 102 stores a digital value for the launch point.
- An output of latch 102 is connected to a first input of an AND gate 104 .
- a second input 118 of AND gate 104 is provided by combinational logic 114 .
- a third input 120 of AND gate 104 is also provided by combinational logic 114 .
- An output of AND gate 104 is connected to a first input of OR gate 106 .
- Combinational logic 114 provides a second input 124 to OR gate 106 .
- An output of OR gate 106 is connected to a first input of NAND gate 108 .
- Combinational logic 114 provides a second input 128 to NAND gate 108 .
- An output of NAND gate 108 is connected to a first input of exclusive OR (XOR) gate 110 .
- Combinational logic 114 provides a second input 132 to XOR gate 110 .
- An output 134 of XOR gate 110 is connected to a latch 112 that captures the digital value of the signal path example 100 .
- Also illustrated in FIG. 6 is a sample signal transition from a digital 1 value to a digital 0 value at the output of latch 102 . The transition occurs after a first time period or time frame and transitions to a logic 0 value during a second time period or time frame.
- AND gate 104 The transition at the input of AND gate 104 is propagated through AND gate 104 , OR gate 106 , NAND gate 108 and XOR gate 110 .
- the same signal transition occurs at the output of AND gate 104 , OR gate 106 but changes at the output of NAND gate 108 and XOR gate 110 as will be described below.
- the path in FIG. 6 goes through gates 104 , 106 , 108 and 110 .
- the set of the final value condition for the path consist of the following condition: having a 0 on input 116 , a 0 on input 122 , a 0 on input 126 , a 1 on input 130 , and a 1 on input 134 . These five signal conditions together define the final value condition for the path. This is the condition that will be checked during step 86 in FIG. 5. In step 88 , the side value propagation condition will be checked.
- the side value condition has the following: signal 118 at value 1, signal 120 at value 1, signal 124 at value 0, signal 128 at value 1, and signal 132 at value 0. Note here that since the signal transition at the input of XOR gate 110 is the same as the signal transition at its output, the side input value is required to be at value 0.
- step 88 we check the initial value condition. That check is performed in a second time frame different from a first time frame during which steps 86 and 88 are performed.
- the initial value condition for the path in FIG. 6 has the following: a 1 on signal 116 , a 1 on signal 122 , a 1 on signal 126 , a 0 on 130 , and a 0 on signal 134 . These five values have to be simultaneously satisfied.
- FIG. 7 Illustrated in FIG. 7 is an example path 140 which will illustrate the slower path conditions being satisfied step 92 of FIG. 5.
- a launch occurs at a first input of an AND gate 142 and an AND gate 144 .
- the first input of AND gate 142 receives a digital signal transitioning from a 1 to a 0.
- An output of AND gate 142 is provided via conductor 143 to a first input of AND gate 146 .
- a second input of AND gate 144 is provided as a side input.
- An output of AND gate of 144 is connected to a first input of an OR gate 148 .
- a second input of OR gate 148 is provided as a side input.
- An output of OR gate 148 is connected via a conductor 145 to a second input of AND gate 146 .
- An output of AND gate 146 is connected to a first input of AND gate 150 .
- a second input of AND gate 150 is provided as a side input.
- An output of AND gate 150 provides a capture signal for the path 140 .
- a digital transition occurs from a logic 1 value to a logic 0 value at the first input of AND gate 144 .
- This digital transition causes the output of AND gates 142 and 144 to both go to a logic 0 value.
- the output of OR gate 148 concurrently goes from a logic 1 to a logic 0 as does the output of AND gate 146 and 150 .
- the side input to AND gate 146 conductor 145
- conductor 145 has to be at value 1 for the path to be active.
- conductor 145 will be transitioning from 1 to 0.
- the side value condition is not satisfied for that side input.
- the slower path condition is defined as follows: if a slower path exists which converges at each side input where the side value propagation condition is violated, then the path being analyzed can still be considered active. In that particular example, in FIG.
- the top path going through AND gate 142 , AND gate 146 and AND gate 150 is an active path assuming that the side input transition along conductor 145 is slower to arrive than the one arriving at conductor 143 .
- the second path going through AND gate 144 , OR gate 148 , AND gate 146 and AND gate 150 In that case, the side value condition will also be violated at the input of the AND gate 146 .
- the slow value condition will not be satisfied since, obviously, the arrival of the transition on conductor 143 is faster than the arrival of the transition of the signal on conductor 145 .
- the slow path condition is determined by examining the ordered list of paths produced by the timing analyzer.
- ATPG techniques are utilized to identify conflicts of logic assignments within a large complex design very rapidly. As a result, the present invention is also extremely fast and effective. No circuit modification or special purpose ATPG is required.
- the present invention works for all types of designs as there is no restriction on whether the design is synthesized or custom, large or small. Engineering resources are preserved by minimizing wasteful efforts spent on optimizing false timing paths as a result of the present invention.
- the present invention eliminates the creation of unnecessary circuit area, the dissipation of additional power, and reduction in performance which is typically associated with the optimization of false paths.
- the present invention utilizes a translation function to enable the timing analysis tool and the ATPG tool to be utilized for path delay testing in a way in which previously neither tool was effectively utilized in combination.
- Steps 86 and 88 are provided sequentially for optimization of the process.
- the information needed to perform each determination exists in the same time frame.
- FIG. 6 it may be noted that the checking of a set of final value conditions and a set of side value conditions at the input of AND gate 104 when it transitions from a logic 1 to a logic 0 value involves steps 86 and 88 . By taking each of steps 86 and 88 sequentially, they can optimize the use and presence of the value during the same time.
- step 90 requires a different time frame as the initial logic value of 1 exists previous to the value for steps 86 and 88 .
- a reset of the relevant circuitry under test may be implemented so that the initial value condition is a known condition.
- the known condition was a logic 1 value in FIG. 6. That being said, the process of FIG. 5 may be altered so that step 90 could be performed previous to step 86 and 88 . In such an event, the same criteria and process would be utilized to determine whether or not a path is false or active.
- steps 86 and 88 may be reversed in order or that steps 86 and 88 may be combined. However, it should be noted that additional steps may be required if modifications of FIG. 5 are implemented.
Abstract
Description
- This invention generally relates to design analysis tools and more particularly to design analysis tools for performing timing analysis and identification of critical paths in electronic circuits.
- Static timing analysis plays an important role in defining circuit performance for today's high-speed integrated circuits. Static timing analysis tools identify all the structural paths in the design and the calculated delay along each one of these paths. As commonly used, the term ‘path’ refers to two nodes in a circuit design coupled by one or more circuit devices. Typically, these paths start at a latch point and end at another latch point in the design. These paths are sorted according to their delay and the slowest (critical) paths in the design are identified. The designer then would have to work on these paths and try to optimize them to reduce the delay along these long paths in order to meet target performance frequency goals. Unfortunately, not all the paths identified by the static timing analysis tools are “true paths” because these paths cannot be activated in the design with various constraints. In other words, structural paths in a design that cannot be logically manipulated by signals or activated are called “false paths”. This leads to a pessimistic estimation of the speed of the design and can also lead to wasted effort in trying to optimize or reduce the delay along these so called false paths. In industry today the problem of dealing with false paths is handled manually by the designers. Typically, false path analysis and any following corrective action just result in wasted engineering effort and underestimation of the performance of the design. Researchers have addressed this problem of identifying false paths and there are two broad classes of techniques based on how to evaluate the constraints associated with the various paths. One of these major techniques uses symbolic methods based on Binary Decision Diagrams (BDDs). These techniques suffer from memory and run time complexities. The other class of techniques models the problem as an instance of Boolean satisfiability (SAT) and use SAT solvers. Again, these techniques cannot handle the size and complexities of today's industrial circuits. Others have proposed modeling techniques to improve the timing analyzers themselves so that the timing analyzers avoid identifying false paths to start with. However, none of these techniques are commercially practical, as they require making extensive modifications to the design model and only work for circuits that are made out of simple gates and under the unit gate delay assumptions. A unit gate delay assumption is the assumption that each gate has associated with it an equal unit of delay. These techniques are generally not practical in commercial circuits. Previous research has indicated that for most circuits only a small percentage of the paths in the circuit are actually true paths or synthesizable paths. There are two reasons why paths are found to be false paths. One reason has to do with combinational constraints associated with the paths within the combinational logic surrounding the path. The second reason is a result of sequential constraints associated with the state values required to activate the paths. Sequential constraints may prevent certain paths from ever assuming state values that would enable such paths to be true paths. Known techniques used to analyze complex circuit designs for the detection of and correction of false paths are expensive, slow and sometimes inaccurate.
- Illustrated in FIG. 1, in block diagram form, is an exemplary path in a complex design;
- Illustrated in FIG. 2, in partial logic diagram form, are examples of false paths;
- Illustrated in FIG. 3 is a process flow for performing timing analysis and false path identification in conjunction with an automated test pattern generation tool;
- Illustrated in FIG. 4, in block diagram form, is an example of path extraction and enumeration from a launch point to a capture point;
- Illustrated in FIG. 5 is a flow chart of false path identification in accordance with one embodiment of the present invention;
- Illustrated in FIG. 6, in partial logic diagram form, is an example of false path identification between a launch point and a capture point in accordance with the present invention; and
- Illustrated in FIG. 7, in logic diagram form, is an example of the slow path condition of the flow chart of FIG. 5.
- Illustrated in FIG. 1 is an
integrated circuit portion 10 of a circuit design having a signal point represented as a launch point connected to an input of a block ofcustom logic 12.Custom logic 12 is formed of a plurality of transistors. An output ofcustom logic 12 is connected to an input of synthesizedlogic gates block 14. An output of synthesizedlogic gate block 14 is coupled to an input ofcustom logic block 16 which is formed of a plurality of transistors. Intervening circuitry may or may not be present between synthesizedlogic gates block 14 andcustom logic block 16 as indicated by the broken line. An output ofcustom logic block 16 provides an output capture point. - In operation,
integrated circuit portion 10 illustrates a path corresponding to a circuit design in an integrated circuit in which a signal transition at the launch point results in an output transition at the output capture point. The timing analysis tool will identify such paths in the design and will estimate the delay from when the transition occurs at the launch point and when it will appear at the output capture point. The purpose of timing analysis is to make sure that the delay of all the paths in the design fall below a certain timing budget which determines the speed of the circuit. If one of these paths exceeds the budget, then the designer will have to try and reduce the delay along that path in order to meet the timing budget. In a typical design, as illustrated in FIG. 1, the paths may go through various different types of blocks. Some of these blocks might be designed at the transistor level in a custom design fashion or they could be synthesized blocks at the gate level. Hence, the tool that needs to do timing analysis and optimization has to be able to deal with the different types of logic encountered, whether they are gates or transistors, and have to deal with the complexity of these designs. - Illustrated in FIG. 2 is an example20 of a portion of an integrated circuit. The integrated circuit has a plurality of
latch circuits latch circuits latch circuit 22 is connected to a first input of anAND gate 30 and to a first input of anAND gate 32. An output oflatch circuit 24 is connected to a second input of anAND gate 32, and an output oflatch circuit 26 is connected to a first input of anAND gate 34. An output oflatch circuit 28 is connected to a second input ofAND gate 34. The output oflatch circuit 26 is also connected to a second input ofAND gate 30. The output ofAND gate 30 is connected to an input of aninverter 36. The output ofAND gate 32 is connected to a first input of anOR gate 40. The output ofAND gate 34 is connected to a second input ofOR gate 40 and the output oflatch circuit 28 is connected to a third input ofOR gate 40. The output ofinverter 36 is connected to an input ofinverter 38 having an output connected to an input of alatch circuit 42. The output of ORgate 40 is connected to an input of alatch circuit 44.Latch circuits logic 46. The inputs oflatch circuits logic 48. - The paths contained within the block can be false due to local constraints of the blocks themselves or due to external environmental constraints imposed by the surrounding logic. For example, the path that starts at
latch circuit 26 going into ANDgate 34 on throughOR gate 40 and going out to latchelement 44 is a false path because, in order to activate this path, the second input to ANDgate 34 will have to be at thevalue 1 and the side input of theOR gate 40 will have to be at thevalue 0. This signal condition is impossible because both signals are driven from the output oflatch circuit 28 as shown in FIG. 2. As a result, the Path P1 is false. The second path P2 in FIG. 2 that starts withlatch circuit 26 and continues through ANDgate 30,inverter 36,inverter 38 and ends with a capture point at the data input oflatch circuit 42 is a true path satisfying the combinational constraints of that block. However, because of external sequential constraints that path can be false as well. For example, assume the two values at the inputs oflatch circuits gate 30. The one-hot external constraint results in the output of ANDgate 30 always being a low logic value. However, due to various factors which can modify when the signal edge transitions at the inputs of ANDgate 30, the output of ANDgate 30 may possibly assume a logic one value should both inputs momentarily in the second time frame become a logic one as a result of such factors. Therefore, for a high-to-low signal transition at the output oflatch 26, the final value condition and the side value condition are both satisfied for path P2. But when a low-to-high logic transition is present at the output oflatch 26, the final value condition of the timing path going through ANDgate 30 is violated because during the second time frame the second input of ANDgate 30 is a controlling value (0) due to the one-hot constraint. This is an example of an external constraint from the surrounding logic that will make the path false. The following discussion is restricted to an analysis of local constraints imposed by the combinational blocks that contain the path and will not consider external constraints. - Illustrated in FIG. 3 is a
process flow 50 for performing timing analysis, path extraction, path translation and false path identification. Atiming characterization step 52 is initially performed on all the building blocks of the integrated circuit. It should be understood that the term “building blocks” encompasses both library cells and custom designed blocks. The output of the timing characterization is provided to a timing analyzer for atiming analysis step 54. Thetiming analysis step 54 may be performed by any one of a variety of commercially existing or customized timing analysis tools. Information from thetiming analysis step 54 is provided to a path extraction andtranslation step 56. Upon performing path extraction, which will be described below, an output ofstep 56 is provided in the form of a falsepath identification step 58. After false paths are identified, if any, a false path report is provided as an output ofstep 58. The false path report is provided back to the timing analysis tool and can be used in consecutivetiming analysis step 54. Intermediate results from the falsepath identification step 58 are provided to an automated test pattern generation (ATPG) tool to check the satisfiability of logic values of nodes in the path or paths under consideration. The ATPG tool uses the intermediate results from falsepath identification step 58 and provides circuit and path information that is used to generate the false path report. ATPGs are well known in the art and are commercially available for performing specific test pattern generation on integrated circuits in an automated fashion to test their functionality. In general, ATPG tools perform a justifiability analysis by determining whether certain conditions can be satisfied or not. For example, ATPG tools may assign logic values to internal nets (circuit nodes) and analyze whether certain input value assignments can satisfy the assigned values. The justifiability function of ATPG tools may be implemented by various algorithms, including but not limited to the standard backtracking algorithm. - It should be noted that the process used between
steps path identification step 58 and an ATPG will be provided below. - Illustrated in FIG. 4 is a detail of the path extraction and
translation step 56 of FIG. 3. FIG. 4 is an example of acomplex path 60 that is identified by thetiming analysis step 54. The complex path is identified as starting with a launch point having an input to a singlepath logic block 62. An output of singlepath logic block 62 is connected to an input of a multiple-pathcomponent logic block 63. An output of multiple-pathcomponent logic block 63 is connected to an input of a multiple-pathcomponent logic block 64. An output of the multiple-pathcomponent logic block 64 provides a capture point for the complex path. The timing analysis ofstep 54 in FIG. 3 recognized only the inputs and outputs of single pathcomponent logic block 62 and multiple-path component logic blocks 63 and 64. In the illustrated form, multiple-pathcomponent logic block 63 comprises a plurality of component paths in the form of three separate paths. A first path is connected to the input of multiple-pathcomponent logic block 63 and contains single pathcomponent logic block 66. A second path of multiple-pathcomponent logic block 63 contains a single pathcomponent logic block 67 and a single pathcomponent logic block 68. Yet a third path of multiple-pathcomponent logic block 63 contains a single pathcomponent logic block 69 and a single pathcomponent logic block 70. In the illustrated form, multiple-pathcomponent logic block 64 has two paths. A first path contains a single pathcomponent logic block 72 and a single pathcomponent logic block 73. A second path of multiple-pathcomponent logic block 64 contains a single pathcomponent logic block 74. As described herein, the single-path components and multiple-path components are formed using conventional combinational logic elements. In this example, the timing analysis tool identifies the complex path going throughblocks block path 60 is false. If one of the subpaths is found to be true, thenpath 60 can be a true path. - Illustrated in FIG. 5, in flow chart form, is a
process 80 for false path identification. Astart step 82 transitions to receiving a selected path instep 84. The selected path is the result of thetiming analysis step 54 and path extraction andtranslation step 56 of FIG. 3. Path P is characterized by the set of nodes along the path. Each one of these nodes will assume a certain transition that will require going from a previous value or initial value to a final value. In the next step of the process, we examinecondition 86. The condition is a determination as to whether a set of final value conditions along all the nodes of the path can be satisfied within the combinational block or not. The answer to this question is determined by the ATPG tool that analyzes the constraints of the circuit and whether the final value conditions can be met or not. If the answer is no, then the path is declared false and we exit this process atend step 98. Otherwise, if the answer is found to be “yes,” meaning all the final values of the signals can be satisfied simultaneously, then we go intostep 88. Instep 88, we determine or evaluate whether a set of side value propagation conditions are satisfied. That condition states that all the side inputs of all the gates along the path have to assume non-controlling values. A non-controlling value for AND gates and NAND gates is 1. A non-controlling value for OR gates and NOR gates is 0. A non-controlling value for XOR gates can be either 0 or 1.Step 88 calls the ATPG tool to check whether these side-value propagation conditions can be satisfied by the circuit or not. If that is found to be true, then the path is determined to be an active path and we exit again atstep 98. If it is false, then we proceed to step 90. Instep 90, the ATPG is called to check whether a set of initial value conditions of all the nodes along the paths is satisfied. If that is true, then we continue to step 92 where we determine whether a set of slower path conditions are satisfied. If so, the path is then characterized as being active instep 96. An active characterization means that the path could be true, but it could also be false for other reasons not being analyzed. Therefore, the term “active” is used rather than “true” or “false”. If the result ofstep 92 is negative, then we determine that the path must be false instep 94 and we again exit atstep 98. If the initial value condition is true, we go to step 92 where we check for whether there are slower path conditions and whether any slower path conditions can be satisfied or not. A slower path condition requires that a slower path must exist at each side input where the side input propagation condition is violated. This condition will be explained below in FIG. 7. If the condition ofstep 92 is found to be false, then the path is also determined to be false and we exit. Otherwise, if the condition is true, the path is determined to be an active path and we also exit. That terminates theprocess 80 for false path identification. - Illustrated in FIG. 6 is an
example path 100 to further the understanding of theprocess 80 of FIG. 5. Inexample path 100, alatch 102 stores a digital value for the launch point. An output oflatch 102 is connected to a first input of an ANDgate 104. Asecond input 118 of ANDgate 104 is provided bycombinational logic 114. Athird input 120 of ANDgate 104 is also provided bycombinational logic 114. An output of ANDgate 104 is connected to a first input of ORgate 106.Combinational logic 114 provides asecond input 124 to ORgate 106. An output of ORgate 106 is connected to a first input ofNAND gate 108.Combinational logic 114 provides asecond input 128 toNAND gate 108. An output ofNAND gate 108 is connected to a first input of exclusive OR (XOR)gate 110.Combinational logic 114 provides asecond input 132 toXOR gate 110. Anoutput 134 ofXOR gate 110 is connected to alatch 112 that captures the digital value of the signal path example 100. Also illustrated in FIG. 6 is a sample signal transition from a digital 1 value to a digital 0 value at the output oflatch 102. The transition occurs after a first time period or time frame and transitions to alogic 0 value during a second time period or time frame. The transition at the input of ANDgate 104 is propagated through ANDgate 104, ORgate 106,NAND gate 108 andXOR gate 110. The same signal transition occurs at the output of ANDgate 104, ORgate 106 but changes at the output ofNAND gate 108 andXOR gate 110 as will be described below. Reference now should be made back to FIG. 5 for an explanation of each of the calculations involved in thesteps gates input 116, a 0 oninput 122, a 0 oninput 126, a 1 oninput 130, and a 1 oninput 134. These five signal conditions together define the final value condition for the path. This is the condition that will be checked duringstep 86 in FIG. 5. Instep 88, the side value propagation condition will be checked. The side value condition has the following: signal 118 atvalue 1, signal 120 atvalue 1, signal 124 atvalue 0, signal 128 atvalue 1, and signal 132 atvalue 0. Note here that since the signal transition at the input ofXOR gate 110 is the same as the signal transition at its output, the side input value is required to be atvalue 0. These five signal conditions on the side inputs that need to be satisfied are checked instep 88 in conjunction with the previous conditions that were specified instep 86. So both sets of conditions have to be satisfied simultaneously forstep 88 to produce a “yes” answer. Instep 90, we check the initial value condition. That check is performed in a second time frame different from a first time frame during which steps 86 and 88 are performed. The initial value condition for the path in FIG. 6 has the following: a 1 onsignal 116, a 1 onsignal 122, a 1 onsignal 126, a 0 on 130, and a 0 onsignal 134. These five values have to be simultaneously satisfied. - Illustrated in FIG. 7 is an
example path 140 which will illustrate the slower path conditions beingsatisfied step 92 of FIG. 5. In the illustrated form, a launch occurs at a first input of an ANDgate 142 and an ANDgate 144. The first input of ANDgate 142 receives a digital signal transitioning from a 1 to a 0. An output of ANDgate 142 is provided viaconductor 143 to a first input of ANDgate 146. A second input of ANDgate 144 is provided as a side input. An output of AND gate of 144 is connected to a first input of anOR gate 148. A second input of ORgate 148 is provided as a side input. An output of ORgate 148 is connected via aconductor 145 to a second input of ANDgate 146. An output of ANDgate 146 is connected to a first input of ANDgate 150. A second input of ANDgate 150 is provided as a side input. An output of ANDgate 150 provides a capture signal for thepath 140. - In the illustrated form, a digital transition occurs from a
logic 1 value to alogic 0 value at the first input of ANDgate 144. This digital transition causes the output of ANDgates logic 0 value. The output of ORgate 148 concurrently goes from alogic 1 to alogic 0 as does the output of ANDgate gate 142,gate 146 andgate 150. In order for that path to be activated, the side inputs have to be assigned to non-controlling values. Hence, the side input to ANDgate 146,conductor 145, has to be atvalue 1 for the path to be active. However, as indicated,conductor 145 will be transitioning from 1 to 0. Hence, the side value condition is not satisfied for that side input. However, if the 1-to-0 transition alongconductor 145 is slower to arrive atgate 146 than the transition onconductor 143, then the path in question is still a valid path. Hence, the slower path condition is defined as follows: if a slower path exists which converges at each side input where the side value propagation condition is violated, then the path being analyzed can still be considered active. In that particular example, in FIG. 7, the top path going through ANDgate 142, ANDgate 146 and ANDgate 150 is an active path assuming that the side input transition alongconductor 145 is slower to arrive than the one arriving atconductor 143. On the other hand, consider the second path going through ANDgate 144, ORgate 148, ANDgate 146 and ANDgate 150. In that case, the side value condition will also be violated at the input of the ANDgate 146. However, in that case, the slow value condition will not be satisfied since, obviously, the arrival of the transition onconductor 143 is faster than the arrival of the transition of the signal onconductor 145. The slow path condition is determined by examining the ordered list of paths produced by the timing analyzer. - By now it should be appreciated that there has been provided a design analysis tool and method of use for false timing path identification for industrial circuits, both on the integrated circuit (IC) scale as well as a board level. Both static and dynamic path sensitization criteria are taken into consideration during the false path identification process of FIG. 5. The false path identification process of FIG. 5 is static in the sense that both final values and initial values are checked to see if they can be satisfied. However, the criteria are dynamic in the checking for slower path conditions to be satisfied. The process of FIG. 7 illustrates how dynamic the test is in connection with determining whether delay affects on a particular path affect the delay of the circuit in general. It should be noted that commercially available ATPG software may be used to practice the present invention without any modification of the ATPG tool itself. ATPG techniques are utilized to identify conflicts of logic assignments within a large complex design very rapidly. As a result, the present invention is also extremely fast and effective. No circuit modification or special purpose ATPG is required. The present invention works for all types of designs as there is no restriction on whether the design is synthesized or custom, large or small. Engineering resources are preserved by minimizing wasteful efforts spent on optimizing false timing paths as a result of the present invention. The present invention eliminates the creation of unnecessary circuit area, the dissipation of additional power, and reduction in performance which is typically associated with the optimization of false paths. The present invention utilizes a translation function to enable the timing analysis tool and the ATPG tool to be utilized for path delay testing in a way in which previously neither tool was effectively utilized in combination.
- It should be appreciated that the process flow of FIG. 5 may be modified by those of ordinary skill in the testing and timing analysis art.
Steps gate 104 when it transitions from alogic 1 to alogic 0 value involvessteps steps step 90 requires a different time frame as the initial logic value of 1 exists previous to the value forsteps step 90, a reset of the relevant circuitry under test may be implemented so that the initial value condition is a known condition. In this case the known condition was alogic 1 value in FIG. 6. That being said, the process of FIG. 5 may be altered so thatstep 90 could be performed previous to step 86 and 88. In such an event, the same criteria and process would be utilized to determine whether or not a path is false or active. It should also be appreciated thatsteps steps - In the foregoing specification, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. Skilled artisans appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve the understanding of the embodiments of the present invention.
- Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms “comprises”, “comprising” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
Claims (31)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/781,492 US6952812B2 (en) | 2001-02-13 | 2001-02-13 | Design analysis tool for path extraction and false path identification and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/781,492 US6952812B2 (en) | 2001-02-13 | 2001-02-13 | Design analysis tool for path extraction and false path identification and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
US20020112213A1 true US20020112213A1 (en) | 2002-08-15 |
US6952812B2 US6952812B2 (en) | 2005-10-04 |
Family
ID=25122916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/781,492 Expired - Fee Related US6952812B2 (en) | 2001-02-13 | 2001-02-13 | Design analysis tool for path extraction and false path identification and method thereof |
Country Status (1)
Country | Link |
---|---|
US (1) | US6952812B2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020116674A1 (en) * | 2001-02-19 | 2002-08-22 | Josef Schmid | Boundary scan delay chain for cross-chip delay measurement |
US20030188246A1 (en) * | 2002-03-28 | 2003-10-02 | Jeff Rearick | Method and apparatus for deriving a bounded set of path delay test patterns covering all transition faults |
US20040181500A1 (en) * | 2002-03-20 | 2004-09-16 | Huelsman David L. | Method and system for capturing business rules for automated decision procession |
US20050080798A1 (en) * | 2003-09-29 | 2005-04-14 | Huelsman David L. | Batch validation method, apparatus, and computer-readable medium for rule processing |
US20050080648A1 (en) * | 2003-09-29 | 2005-04-14 | Huelsman David L. | Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection |
US20050108183A1 (en) * | 2003-09-29 | 2005-05-19 | Huelsman David L. | Rule processing method, apparatus, and computer-readable medium to provide improved selection advice |
US20050120271A1 (en) * | 2003-11-19 | 2005-06-02 | Fujitsu Limited | False path detection program |
US20060031800A1 (en) * | 2004-07-22 | 2006-02-09 | Matsushita Electric Industrial Co., Ltd. | Design method for semiconductor integrated circuit device |
WO2006084280A2 (en) * | 2005-02-03 | 2006-08-10 | Sage Software, Inc. | Static timing analysis and dynamic simulation for custom and asic designs |
US20070094203A1 (en) * | 2004-09-28 | 2007-04-26 | Huelsman David L | Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice |
US20070150429A1 (en) * | 2001-03-21 | 2007-06-28 | Huelsman David L | Rule processing system |
US20070204247A1 (en) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program |
US20070220457A1 (en) * | 2006-03-02 | 2007-09-20 | Fujitsu Limited | Method and apparatus for creating simplified false-path description on false path, and computer product |
US20080104561A1 (en) * | 2006-10-13 | 2008-05-01 | Carpenter Gary D | Circuit for Dynamic Circuit Timing Synthesis and Monitoring of Critical Paths and Environmental Conditions of an Integrated Circuit |
US20080115019A1 (en) * | 2006-11-14 | 2008-05-15 | Ngo Hung C | Circuit Timing Monitor Having A Selectable-Path Ring Oscillator |
US7418684B1 (en) * | 2004-05-07 | 2008-08-26 | Cadence Design Systems, Inc. | Systems, methods, and apparatus to perform static timing analysis and optimization for multi-mode clock circuit networks |
US20100031376A1 (en) * | 2008-07-29 | 2010-02-04 | International Business Machines Corporation | Continuity Check Monitoring for Microchip Exploitation Detection |
US7761397B2 (en) | 2001-03-21 | 2010-07-20 | Huelsman David L | Rule processing method and apparatus providing automatic user input selections |
US20110307852A1 (en) * | 2008-05-07 | 2011-12-15 | Agere Systems, Inc. | Systematic benchmarking system and method for standardized data creation, analysis and comparison of semiconductor technology node characteristics |
US8405413B2 (en) | 2010-08-23 | 2013-03-26 | International Business Machines Corporation | Critical path monitor having selectable operating modes and single edge detection |
US8683407B2 (en) | 2009-07-27 | 2014-03-25 | Lsi Corporation | Hierarchical design flow generator |
US9568548B1 (en) | 2015-10-14 | 2017-02-14 | International Business Machines Corporation | Measurement of signal delays in microprocessor integrated circuits with sub-picosecond accuracy using frequency stepping |
US10331826B2 (en) * | 2017-04-20 | 2019-06-25 | Texas Instruments Incorporated | False path timing exception handler circuit |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587690B1 (en) * | 2003-04-29 | 2009-09-08 | Cadence Design Systems, Inc. | Method and system for global coverage analysis |
US7216318B1 (en) * | 2003-04-29 | 2007-05-08 | Cadence Design Systems, Inc. | Method and system for false path analysis |
US7325207B1 (en) * | 2004-12-09 | 2008-01-29 | Sun Microsystems, Inc. | Automatic device strength based sensitization generation for sequential elements |
KR100736679B1 (en) * | 2006-08-09 | 2007-07-06 | 주식회사 유니테스트 | Device and method of generating pattern for testing semiconductor |
US20080086176A1 (en) * | 2006-10-09 | 2008-04-10 | Physical Logic Ag | Method and Apparatus for Control of Pacemakers |
US7650581B2 (en) * | 2007-05-15 | 2010-01-19 | Atrenta, Inc. | Method for modeling and verifying timing exceptions |
US7971169B1 (en) * | 2008-08-13 | 2011-06-28 | Lsi Corporation | System and method for reducing the generation of inconsequential violations resulting from timing analyses |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5648909A (en) | 1992-06-12 | 1997-07-15 | Digital Equipment Corporation | Static timing verification in the presence of logically false paths |
JPH06309296A (en) | 1993-04-19 | 1994-11-04 | Fujitsu Ltd | Network analyzing method |
EP0697668B1 (en) * | 1994-08-09 | 2004-09-29 | Sun Microsystems, Inc. | Apparatus and method for identifying false timing paths in digital circuits |
US6684375B2 (en) * | 2000-11-22 | 2004-01-27 | Matsushita Electric Industrial Co., Ltd. | Delay distribution calculation method, circuit evaluation method and false path extraction method |
-
2001
- 2001-02-13 US US09/781,492 patent/US6952812B2/en not_active Expired - Fee Related
Cited By (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020116674A1 (en) * | 2001-02-19 | 2002-08-22 | Josef Schmid | Boundary scan delay chain for cross-chip delay measurement |
US20070150429A1 (en) * | 2001-03-21 | 2007-06-28 | Huelsman David L | Rule processing system |
US20080270337A1 (en) * | 2001-03-21 | 2008-10-30 | Verde Sabor Assets, L.L.C. | Rule processing system |
US7430548B2 (en) * | 2001-03-21 | 2008-09-30 | Verde Sabor Assets, L.L.C. | Rule processing system |
US7761397B2 (en) | 2001-03-21 | 2010-07-20 | Huelsman David L | Rule processing method and apparatus providing automatic user input selections |
US7809669B2 (en) | 2001-03-21 | 2010-10-05 | Huelsman David L | Rule processing system for determining a result response |
US20100318476A1 (en) * | 2001-03-21 | 2010-12-16 | Huelsman David L | Rule processing method and apparatus providing automatic user input selection |
US8732107B2 (en) | 2002-03-20 | 2014-05-20 | Verde Sabor Assets, L.L.C. | Method and system for capturing business rules for automated decision procession |
US20040181500A1 (en) * | 2002-03-20 | 2004-09-16 | Huelsman David L. | Method and system for capturing business rules for automated decision procession |
US7587379B2 (en) | 2002-03-20 | 2009-09-08 | Huelsman David L | Method and system for capturing business rules for automated decision procession |
US20030188246A1 (en) * | 2002-03-28 | 2003-10-02 | Jeff Rearick | Method and apparatus for deriving a bounded set of path delay test patterns covering all transition faults |
US7039845B2 (en) * | 2002-03-28 | 2006-05-02 | Jeff Rearick | Method and apparatus for deriving a bounded set of path delay test patterns covering all transition faults |
US7565337B2 (en) | 2003-09-29 | 2009-07-21 | Huelsman David L | Batch validation method, apparatus, and computer-readable medium for rule processing |
US8055604B2 (en) | 2003-09-29 | 2011-11-08 | Verde Sabor Assets, L.L.C. | Rule processing method, apparatus and computer-readable medium to provide improved selection advice |
US20050108183A1 (en) * | 2003-09-29 | 2005-05-19 | Huelsman David L. | Rule processing method, apparatus, and computer-readable medium to provide improved selection advice |
US7587380B2 (en) | 2003-09-29 | 2009-09-08 | Huelsman David L | Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection |
US20050080648A1 (en) * | 2003-09-29 | 2005-04-14 | Huelsman David L. | Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection |
US20090228420A1 (en) * | 2003-09-29 | 2009-09-10 | Verde Sabor Assets, L.L.C. | Rule processing method, apparatus and computer-readable medium to provide improved selection advice |
US20050080798A1 (en) * | 2003-09-29 | 2005-04-14 | Huelsman David L. | Batch validation method, apparatus, and computer-readable medium for rule processing |
US7552102B2 (en) | 2003-09-29 | 2009-06-23 | Huelsman David L | Rule processing method, apparatus, and computer-readable medium to provide improved selection advice |
US20050120271A1 (en) * | 2003-11-19 | 2005-06-02 | Fujitsu Limited | False path detection program |
US7398424B2 (en) * | 2003-11-19 | 2008-07-08 | Fujitsu Limited | False path detection program |
US7418684B1 (en) * | 2004-05-07 | 2008-08-26 | Cadence Design Systems, Inc. | Systems, methods, and apparatus to perform static timing analysis and optimization for multi-mode clock circuit networks |
US20060031800A1 (en) * | 2004-07-22 | 2006-02-09 | Matsushita Electric Industrial Co., Ltd. | Design method for semiconductor integrated circuit device |
US7320117B2 (en) * | 2004-07-22 | 2008-01-15 | Matsushita Electric Industrial Co., Ltd. | Design method for semiconductor integrated circuit device using path isolation |
US20070094203A1 (en) * | 2004-09-28 | 2007-04-26 | Huelsman David L | Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice |
US7734559B2 (en) | 2004-09-28 | 2010-06-08 | Huelsman David L | Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice |
US7992116B2 (en) | 2005-02-03 | 2011-08-02 | Sage Software, Inc. | Method for verifying timing of a circuit |
US7895543B2 (en) | 2005-02-03 | 2011-02-22 | Sage Software, Inc. | Method for verifying timing of a circuit with RLC inputs and outputs |
WO2006084280A2 (en) * | 2005-02-03 | 2006-08-10 | Sage Software, Inc. | Static timing analysis and dynamic simulation for custom and asic designs |
US20090055786A1 (en) * | 2005-02-03 | 2009-02-26 | Sage Software, Inc. | Method for Verifying Timing of a Circuit |
US20080320425A1 (en) * | 2005-02-03 | 2008-12-25 | Sage Software, Inc. | Method for Verifying Timing of a Circuit with RLC Inputs and Outputs |
US20080307375A1 (en) * | 2005-02-03 | 2008-12-11 | Sage Software, Inc. | Method for Performing Timing Analysis of a Circuit |
TWI406143B (en) * | 2005-02-03 | 2013-08-21 | Sage Software Inc | Static timing analysis and dynamic simulation for custom and asic designs |
US20080307376A1 (en) * | 2005-02-03 | 2008-12-11 | Sage Software, Inc. | Method for Verifying Timing of a Multi-Phase, Multi-Frequency and Multi-Cycle Circuit |
US20080307377A1 (en) * | 2005-02-03 | 2008-12-11 | Sage Software, Inc. | Method for Determining Maximum Operating Frequency of a Filtered Circuit |
US20060200786A1 (en) * | 2005-02-03 | 2006-09-07 | Mau-Chung Chang | Static timing analysis and dynamic simulation for custom and ASIC designs |
US7590953B2 (en) | 2005-02-03 | 2009-09-15 | Sage Software, Inc. | Static timing analysis and dynamic simulation for custom and ASIC designs |
US7650583B2 (en) | 2005-02-03 | 2010-01-19 | Sage Software, Inc. | Method for determining maximum operating frequency of a filtered circuit |
US8001502B2 (en) | 2005-02-03 | 2011-08-16 | Sage Software, Inc. | Method for performing timing analysis of a circuit |
WO2006084280A3 (en) * | 2005-02-03 | 2006-11-30 | Sage Software Inc | Static timing analysis and dynamic simulation for custom and asic designs |
US7900175B2 (en) | 2005-02-03 | 2011-03-01 | Sage Software, Inc. | Method for verifying timing of a multi-phase, multi-frequency and multi-cycle circuit |
US20080320426A1 (en) * | 2005-02-03 | 2008-12-25 | Sage Software, Inc. | Method for Verifying Timing of a Circuit with Crosstalk Victim and Aggressor |
US7861201B2 (en) | 2005-02-03 | 2010-12-28 | Sage Software, Inc. | Method for verifying timing of a circuit with crosstalk victim and aggressor |
US20070204247A1 (en) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program |
US7493580B2 (en) * | 2006-02-24 | 2009-02-17 | Fujitsu Microelectronics Limited | Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program |
US20070220457A1 (en) * | 2006-03-02 | 2007-09-20 | Fujitsu Limited | Method and apparatus for creating simplified false-path description on false path, and computer product |
US7441217B2 (en) * | 2006-03-02 | 2008-10-21 | Fujitsu Limited | Method and apparatus for creating simplified false-path description on false path, and computer product |
US20080104561A1 (en) * | 2006-10-13 | 2008-05-01 | Carpenter Gary D | Circuit for Dynamic Circuit Timing Synthesis and Monitoring of Critical Paths and Environmental Conditions of an Integrated Circuit |
US7576569B2 (en) * | 2006-10-13 | 2009-08-18 | International Business Machines Corporation | Circuit for dynamic circuit timing synthesis and monitoring of critical paths and environmental conditions of an integrated circuit |
US7810000B2 (en) | 2006-11-14 | 2010-10-05 | International Business Machines Corporation | Circuit timing monitor having a selectable-path ring oscillator |
US20080115019A1 (en) * | 2006-11-14 | 2008-05-15 | Ngo Hung C | Circuit Timing Monitor Having A Selectable-Path Ring Oscillator |
US8539423B2 (en) * | 2008-05-07 | 2013-09-17 | Agere Systems, LLC | Systematic benchmarking system and method for standardized data creation, analysis and comparison of semiconductor technology node characteristics |
US20110307852A1 (en) * | 2008-05-07 | 2011-12-15 | Agere Systems, Inc. | Systematic benchmarking system and method for standardized data creation, analysis and comparison of semiconductor technology node characteristics |
US8307324B2 (en) * | 2008-05-07 | 2012-11-06 | Agere Systems Llc | Systematic benchmarking system and method for standardized data creation, analysis and comparison of semiconductor technology node characteristics |
US20100031376A1 (en) * | 2008-07-29 | 2010-02-04 | International Business Machines Corporation | Continuity Check Monitoring for Microchip Exploitation Detection |
US9003559B2 (en) * | 2008-07-29 | 2015-04-07 | International Business Machines Corporation | Continuity check monitoring for microchip exploitation detection |
US8683407B2 (en) | 2009-07-27 | 2014-03-25 | Lsi Corporation | Hierarchical design flow generator |
US8405413B2 (en) | 2010-08-23 | 2013-03-26 | International Business Machines Corporation | Critical path monitor having selectable operating modes and single edge detection |
US9568548B1 (en) | 2015-10-14 | 2017-02-14 | International Business Machines Corporation | Measurement of signal delays in microprocessor integrated circuits with sub-picosecond accuracy using frequency stepping |
US9575119B1 (en) | 2015-10-14 | 2017-02-21 | International Business Machines Corporation | Measurement of signal delays in microprocessor integrated circuits with sub-picosecond accuracy using frequency stepping |
US10331826B2 (en) * | 2017-04-20 | 2019-06-25 | Texas Instruments Incorporated | False path timing exception handler circuit |
US10776546B2 (en) | 2017-04-20 | 2020-09-15 | Texas Instruments Incorporated | False path timing exception handler circuit |
US11194944B2 (en) | 2017-04-20 | 2021-12-07 | Texas Instruments Incorporated | False path timing exception handler circuit |
Also Published As
Publication number | Publication date |
---|---|
US6952812B2 (en) | 2005-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6952812B2 (en) | Design analysis tool for path extraction and false path identification and method thereof | |
US7086023B2 (en) | System and method for probabilistic criticality prediction of digital circuits | |
US7117466B2 (en) | System and method for correlated process pessimism removal for static timing analysis | |
US7076748B2 (en) | Identification and implementation of clock gating in the design of integrated circuits | |
US7698674B2 (en) | System and method for efficient analysis of point-to-point delay constraints in static timing | |
US7895552B1 (en) | Extracting, visualizing, and acting on inconsistencies between a circuit design and its abstraction | |
US7454727B1 (en) | Method and Apparatus for Solving Sequential Constraints | |
US6658635B1 (en) | Static-dynamic timing analysis method and storage medium | |
US20080008021A1 (en) | Method for recognizing and verifying fifo structures in integrated circuit designs | |
US20070094626A1 (en) | Methods for measurement and prediction of hold-time and exceeding hold time limits due to cells with tied input pins | |
US8020123B2 (en) | Transaction-based system and method for abstraction of hardware designs | |
US20040073876A1 (en) | Method and apparatus for enhancing the performance of event driven dynamic simulation of digital circuits based on netlist partitioning techniques | |
US7418678B1 (en) | Managing formal verification complexity of designs with counters | |
US20030221173A1 (en) | Method and apparatus for detecting connectivity conditions in a netlist database | |
US7774730B2 (en) | Method of and system for designing semiconductor integrated circuit | |
US7148135B2 (en) | Method of designing low-power semiconductor integrated circuit | |
US7073141B2 (en) | Device, system and method for VLSI design analysis | |
US6725187B1 (en) | Latch inference using dataflow analysis | |
US7131099B2 (en) | Method, apparatus, and computer program product for RTL power sequencing simulation of voltage islands | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
US6141631A (en) | Pulse rejection circuit model program and technique in VHDL | |
US7103859B2 (en) | System and method for improving testability independent of architecture | |
US6378113B1 (en) | Black box transparency in a circuit timing model | |
US8959467B2 (en) | Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools | |
US11531803B1 (en) | IPBA-driven full-depth EPBA of operational timing for circuit design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MOTOROLA, INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ABADIR, MAGDY S.;ZENG, JING;BHADRA, JAYANTA;REEL/FRAME:011573/0234 Effective date: 20010208 |
|
AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC;REEL/FRAME:015360/0718 Effective date: 20040404 Owner name: FREESCALE SEMICONDUCTOR, INC.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC;REEL/FRAME:015360/0718 Effective date: 20040404 |
|
AS | Assignment |
Owner name: CITIBANK, N.A. AS COLLATERAL AGENT, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNORS:FREESCALE SEMICONDUCTOR, INC.;FREESCALE ACQUISITION CORPORATION;FREESCALE ACQUISITION HOLDINGS CORP.;AND OTHERS;REEL/FRAME:018855/0129 Effective date: 20061201 Owner name: CITIBANK, N.A. AS COLLATERAL AGENT,NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNORS:FREESCALE SEMICONDUCTOR, INC.;FREESCALE ACQUISITION CORPORATION;FREESCALE ACQUISITION HOLDINGS CORP.;AND OTHERS;REEL/FRAME:018855/0129 Effective date: 20061201 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: CITIBANK, N.A., AS COLLATERAL AGENT,NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:024397/0001 Effective date: 20100413 Owner name: CITIBANK, N.A., AS COLLATERAL AGENT, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:024397/0001 Effective date: 20100413 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: ZOZO MANAGEMENT, LLC, DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:034038/0946 Effective date: 20120629 |
|
AS | Assignment |
Owner name: APPLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZOZO MANAGEMENT, LLC;REEL/FRAME:034732/0019 Effective date: 20141219 |
|
AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037356/0143 Effective date: 20151207 Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037354/0225 Effective date: 20151207 Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037356/0553 Effective date: 20151207 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.) |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Expired due to failure to pay maintenance fee |
Effective date: 20171004 |