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 PDF

Info

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
Application number
US09/781,492
Other versions
US6952812B2 (en
Inventor
Magdy Abadir
Jing Zeng
Jayanta Bhadra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Assigned to MOTOROLA, INC. reassignment MOTOROLA, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ABADIR, MAGDY S., BHADRA, JAYANTA, Zeng, Jing
Priority to US09/781,492 priority Critical patent/US6952812B2/en
Application filed by Individual filed Critical Individual
Publication of US20020112213A1 publication Critical patent/US20020112213A1/en
Assigned to FREESCALE SEMICONDUCTOR, INC. reassignment FREESCALE SEMICONDUCTOR, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MOTOROLA, INC
Publication of US6952812B2 publication Critical patent/US6952812B2/en
Application granted granted Critical
Assigned to CITIBANK, N.A. AS COLLATERAL AGENT reassignment CITIBANK, N.A. AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: FREESCALE ACQUISITION CORPORATION, FREESCALE ACQUISITION HOLDINGS CORP., FREESCALE HOLDINGS (BERMUDA) III, LTD., FREESCALE SEMICONDUCTOR, INC.
Assigned to CITIBANK, N.A., AS COLLATERAL AGENT reassignment CITIBANK, N.A., AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: FREESCALE SEMICONDUCTOR, INC.
Assigned to ZOZO MANAGEMENT, LLC reassignment ZOZO MANAGEMENT, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FREESCALE SEMICONDUCTOR, INC.
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ZOZO MANAGEMENT, LLC
Assigned to FREESCALE SEMICONDUCTOR, INC. reassignment FREESCALE SEMICONDUCTOR, INC. PATENT RELEASE Assignors: CITIBANK, N.A., AS COLLATERAL AGENT
Assigned to FREESCALE SEMICONDUCTOR, INC. reassignment FREESCALE SEMICONDUCTOR, INC. PATENT RELEASE Assignors: CITIBANK, N.A., AS COLLATERAL AGENT
Assigned to FREESCALE SEMICONDUCTOR, INC. reassignment FREESCALE SEMICONDUCTOR, INC. PATENT RELEASE Assignors: CITIBANK, N.A., AS COLLATERAL AGENT
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318328Generation 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

A design analysis tool performs path extraction translation and false path identification functions. The design analysis tool is utilized with a conventional automated test pattern generator and timing analysis tools. By checking for four specific criteria, a fast and efficient way to detect whether a circuit path is false or active is accomplished. A final value condition is checked and, if that test is met, a side value propagation condition is checked. Assuming both tests result in the path still being active, the test is terminated. If the side value propagation conditions are not satisfied, then an initial value condition and a slower path condition is checked. The checks are made to determine whether or not conditions exist in the path that makes the path false. The information may be obtained quickly from the timing analysis information and the result of the ATPG tool.

Description

    TECHNICAL FIELD OF THE INVENTION
  • 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. [0001]
  • BACKGROUND OF THE INVENTION
  • 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.[0002]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Illustrated in FIG. 1, in block diagram form, is an exemplary path in a complex design; [0003]
  • Illustrated in FIG. 2, in partial logic diagram form, are examples of false paths; [0004]
  • 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; [0005]
  • Illustrated in FIG. 4, in block diagram form, is an example of path extraction and enumeration from a launch point to a capture point; [0006]
  • Illustrated in FIG. 5 is a flow chart of false path identification in accordance with one embodiment of the present invention; [0007]
  • 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 [0008]
  • Illustrated in FIG. 7, in logic diagram form, is an example of the slow path condition of the flow chart of FIG. 5.[0009]
  • DETAILED DESCRIPTION OF THE DRAWINGS
  • Illustrated in FIG. 1 is an [0010] 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.
  • In operation, [0011] 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 example [0012] 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, and 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. For example, the path that starts at [0013] 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. As a result, the Path P1 is false. The second path P2 in FIG. 2 that starts with latch circuit 26 and continues through AND gate 30, inverter 36, inverter 38 and ends with a capture point at the data input of latch 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 of latch circuits 22 and 26 are respectively constrained by the surrounding logic to be one-hot. The constraint “one-hot” means that only one of these two signals can be logic one at any given time. Hence the two signals cannot both be one at the same time. Assume that a high-to-low logic transition occurs at the first input of AND gate 30. The one-hot external constraint results in the output of AND gate 30 always being a low logic value. However, due to various factors which can modify when the signal edge transitions at the inputs of AND gate 30, 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 P2. 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.
  • Illustrated in FIG. 3 is a [0014] process flow 50 for performing timing analysis, path extraction, path translation and false path identification. 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. Upon performing path extraction, which will be described below, an output of step 56 is provided in the form of a false path identification step 58. After false paths are identified, if any, 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. 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 [0015] steps 58 and 59 is 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.
  • Illustrated in FIG. 4 is a detail of the path extraction and [0016] 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. In the illustrated form, 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. In the illustrated form, 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. 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 through blocks 62, 63 and 64 as a single component timing path. However, in order to determine whether this path is a true path or a false path, we have to first translate this path from the timing domain format into a format where it can be analyzed using commands from the ATPG tool. The format of paths extracted by the timing analysis tool is very different from the format of paths that can be analyzed using ATPG. In order to bridge this gap, we developed a translation process to map the net names, the hierarchical nets and port names from the domain of timing analysis to the domain of ATPG tools before performing false path identification. We also have to enumerate all the subpaths within block 63 and 64 and identify all the possible paths going through these two blocks and analyze the falseness of all these individual subpaths. If all the subpaths are found to be false, then path 60 is false. If one of the subpaths is found to be true, then path 60 can be a true path.
  • Illustrated in FIG. 5, in flow chart form, is a [0017] process 80 for false path identification. 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. 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. 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 at end 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 into step 88. In 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. In 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”. 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.
  • Illustrated in FIG. 6 is an [0018] example path 100 to further the understanding of the process 80 of FIG. 5. In example path 100, 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. 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. Reference now should be made back to FIG. 5 for an explanation of each of the calculations involved in the steps 86, 88 and 90. 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. These five signal conditions on the side inputs that need to be satisfied are checked in step 88 in conjunction with the previous conditions that were specified in step 86. So both sets of conditions have to be satisfied simultaneously for step 88 to produce a “yes” answer. In step 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 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.
  • Illustrated in FIG. 7 is an [0019] example path 140 which will illustrate the slower path conditions being satisfied step 92 of FIG. 5. In the illustrated form, 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.
  • In the illustrated form, a digital transition occurs from a [0020] 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. In this example, there are two paths that are being activated simultaneously. Let us assume that we are trying to identify the status of the top path going through gate 142, gate 146 and gate 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 AND gate 146, conductor 145, has to be at value 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 along conductor 145 is slower to arrive at gate 146 than the transition on conductor 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 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. On the other hand, consider 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. However, in that case, 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.
  • 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. [0021]
  • 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. [0022] Steps 86 and 88 are provided sequentially for optimization of the process. In particular, it should be noted that the information needed to perform each determination exists in the same time frame. In particular, by referring to 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. In contrast, step 90 requires a different time frame as the initial logic value of 1 exists previous to the value for steps 86 and 88. In one form, to implement 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 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. It should also be appreciated that 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.
  • 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. [0023]
  • 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. [0024]

Claims (31)

1. A method for performing path extraction within a design analysis tool, comprising:
providing a first set of paths corresponding to a circuit design, the first set of paths having single-path components and multiple-path components; and
extracting a second set of paths from the first set of paths, the second set of paths having no multiple-path components.
2. The method of claim 1, wherein the first set of paths extends from a launch point of the circuit design to a capture point of the circuit design.
3. The method of claim 2, wherein the launch point comprises a first latch and the capture point comprises a second latch.
4. The method of claim 1, wherein the single-path components and multiple-path components comprise combinational logic elements.
5. The method of claim 1, wherein the multiple-path components include single-path components.
6. The method of claim 1, wherein each of the multiple-path components comprises a plurality of component paths, and the second set of paths is extracted from the plurality of component paths.
7. The method of claim 6, wherein extracting the second set of paths comprises combining a first component path from one of the multiple-path components with a second component path from another one of the multiple-path components.
8. A method for identifying false paths, comprising:
providing a path corresponding to a circuit design;
determining whether a set of final value conditions are satisfied;
determining whether a set of side value propagation conditions are satisfied;
determining whether a set of initial value conditions are satisfied;
determining whether the path is false based on at least one of the set of final value conditions, the set of side value propagation conditions, and the set of initial value conditions.
9. The method of claim 8, further comprising:
determining whether a set of slower path conditions are satisfied, and wherein determining whether the path is false is based on at least one of the set of final value conditions, the set of side value propagation conditions, and the set of initial value conditions, and the set of slower path conditions.
10. The method of claim 8, wherein the set of final value conditions and the set of side value propagation conditions correspond to a first time frame and the set of initial value conditions corresponds to a second time frame, different from the first time frame.
11. The method of claim 8, further comprising:
providing a first set of paths corresponding to the circuit design, the first set of paths having single-path components and multiple-path components; and
extracting a second set of paths from the first set of paths, the second set of paths having no multiple-path components; and
selecting the path from the second set of paths.
12. The method of claim 8, wherein at least one of determining whether a set of final value conditions are satisfied, determining whether a set of side value propagation conditions are satisfied, and determining whether a set of initial value conditions are satisfied, is performed by an automatic test pattern generation (ATPG) tool.
13. A method for false path identification within a circuit design, comprising:
receiving a first set of paths corresponding to the circuit design;
providing a set of conditions corresponding to at least one path of the first set of paths to an automatic test pattern generation (ATPG) tool, the ATPG tool having an ATPG model corresponding to at least a portion of the circuit design;
the ATPG tool generating a response to the set of conditions using the ATPG model; and
identifying a false path within the first set of paths based on the response from the ATPG tool.
14. The method of claim 13, further comprising after receiving the first set of paths, translating the first set of paths.
15. The method of claim 13, further comprising:
after receiving the first set of paths, extracting a second set of paths from the first set of paths, wherein the set of conditions corresponds to at least one path of the second set of paths.
16. The method of claim 13, wherein the set of conditions comprises at least one of final value conditions, initial value conditions, side propagation value conditions, and slower path conditions.
17. The method of claim 16, wherein the response to the set of conditions from the ATPG tool indicates whether the set of conditions is satisfied.
18. The method of claim 13, wherein the false path is fed back to the static analysis tool.
19. The method of claim 13, wherein the ATPG tool is a commercially available ATPG tool.
20. The method of claim 13, wherein receiving the first set of paths comprises receiving the first set of paths from a static analysis tool.
21. A design analysis tool capable of identifying false paths, stored via a computer readable medium, said computer readable medium comprising:
a first plurality of instructions for receiving a path corresponding to a circuit design;
a second plurality of instructions for determining whether a set of final value conditions are satisfied;
a third plurality of instructions for determining whether a set of side value propagation conditions are satisfied;
a fourth plurality of instructions for determining whether a set of initial value conditions are satisfied; and
a fifth plurality of instructions for determining whether the path is false based on at least one of the set of final value conditions, the set of side value propagation conditions, and the set of initial value conditions.
22. The computer readable medium of claim 21, further comprising:
a sixth plurality of instructions for determining whether a set of slower path conditions are satisfied, and wherein the fifth plurality of instructions comprises instructions for determining whether the path is false is based on at least one of the set of final value conditions, the set of side value propagation conditions, and the set of initial value conditions, and the set of slower path conditions.
23. The computer readable medium of claim 21, further comprising:
a sixth plurality of instructions for providing a first set of paths corresponding to the circuit design, the first set of paths having single-path components and multiple-path components; and
a seventh plurality of instructions for extracting a second set of paths from the first set of paths, the second set of paths having no multiple-path components; and
a eighth plurality of instructions for selecting the path from the second set of paths.
24. A design analysis tool capable of interfacing between a static analysis tool and an automatic test pattern generation (ATPG) tool, capable of identifying false paths within a circuit design, and stored via a computer readable medium, said computer readable medium comprising:
a first plurality of instructions for receiving a first set of paths corresponding to the circuit design;
a second plurality of instructions for providing a set of conditions corresponding to at least one path of the first set of paths to the ATPG tool, the ATPG tool having an ATPG model corresponding to at least a portion of the circuit design;
a third plurality of instructions for receiving a response to the set of conditions generated by the ATPG tool using the ATPG model; and
a fourth plurality of instructions for identifying a false path within the first set of paths based on the response from the ATPG tool.
25. The computer readable medium of claim 24, further comprising a fifth plurality of instructions for translating the first set of paths after receiving the first set of paths.
26. The computer readable medium of claim 24, further comprising:
a fifth plurality of instructions for extracting a second set of paths from the first set of paths, wherein the set of conditions corresponds to at least one path of the second set of paths.
27. The computer readable medium of claim 24, wherein the set of conditions comprises at least one of final value conditions, initial value conditions, side propagation value conditions, and slower path conditions.
28. The computer readable medium of claim 27, wherein the response to the set of conditions from the ATPG tool indicates whether the set of conditions is satisfied.
29. The computer readable medium of claim 24, further comprising a fifth plurality of instructions for providing the false path to the static analysis tool.
30. The method of claim 24, wherein the ATPG tool is a commercially available ATPG tool.
31. The method of claim 24, wherein the first set of paths is received from a static analysis tool.
US09/781,492 2001-02-13 2001-02-13 Design analysis tool for path extraction and false path identification and method thereof Expired - Fee Related US6952812B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (64)

* Cited by examiner, † Cited by third party
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