US20090064071A1 - Method and system for global coverage analysis - Google Patents

Method and system for global coverage analysis Download PDF

Info

Publication number
US20090064071A1
US20090064071A1 US12/267,779 US26777908A US2009064071A1 US 20090064071 A1 US20090064071 A1 US 20090064071A1 US 26777908 A US26777908 A US 26777908A US 2009064071 A1 US2009064071 A1 US 2009064071A1
Authority
US
United States
Prior art keywords
coverage
information
design data
constraints
analysis
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.)
Abandoned
Application number
US12/267,779
Inventor
Bret Siarkowski
Manish Pandey
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.)
Cadence Design Systems Inc
Original Assignee
Cadence Design Systems Inc
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
Priority claimed from US10/836,700 external-priority patent/US7216318B1/en
Application filed by Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Priority to US12/267,779 priority Critical patent/US20090064071A1/en
Publication of US20090064071A1 publication Critical patent/US20090064071A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Definitions

  • Static timing analysis can determine if there exist paths in an electrical circuit design with delays that exceed a given timing threshold. Such paths are commonly known as critical paths (CPs). When such a critical path is identified, the portion of the design associated with the critical path may need to be modified to satisfy the required timing thresholds. It is generally not preferred to make such design modifications if they can be avoided, since each such modification consumes time and system resources, as well as possibly introducing less optimal component configurations and sizes.
  • CPs critical paths
  • Modern designs generally consist of multiple sub-designs with varying functionality and may operate at different clock frequencies.
  • the timing threshold for critical paths varies according to the clock frequency of the sub-design under consideration.
  • STA generally considers all paths in an electrical circuit, a set of constraints (also called a mode or a design mode) may be applied to a design such that only sub-designs with a desired timing threshold or functionality are considered for analysis while other sub-designs are not considered or hidden from analysis.
  • the set of constraints for each sub-design are typically created manually and require an independent STA run for each mode or set of constraints to ensure that the entire design is “covered” by STA and all critical paths have been identified.
  • STA static timing analysis
  • Incremental design changes can imply that from one static timing run to the next, many of the same constraints still apply. However, design changes may cause some of the constraints to become invalid.
  • the constraints that are manually generated initially might not he re-verified when incremental changes are made to the design.
  • the constraints that are no longer valid (invalid constraints) can cause incomplete STA coverage and a bad design to be implemented.
  • Identification of global coverage is often managed manually and can require extensive communication between the engineer that performs the static timing analysis and designers that understand the architecture of the design.
  • the manual analysis of the global coverage analysis can be quite time consuming and error prone, adding weeks to months in the design process. Errors in the static timing analysis could lead to the manufacture of a bad design.
  • Embodiments of the present invention provide a method and system for performing automatic STA coverage analysis while existing constraints can be automatically verified and/or automatically regenerated to ensure complete STA coverage.
  • STA coverage can be automatically verified while existing constraints can be automatically verified and/or automatically regenerated, ensuring complete STA coverage as well as accurate and efficient design implementation.
  • FIGS. 1A and 1B illustrate flow diagrams of processes for performing coverage analysis, according to embodiments of the invention.
  • FIG. 2 illustrates a high-level framework of a formal static timing analysis coverage system.
  • FIG. 3 illustrates a flow diagram for identifying coverage in gate level designs with corresponding architectural design data according to one embodiment of the invention.
  • FIG. 4 illustrates the comparison of two designs which have identical state encoding.
  • FIG. 5 illustrates an example computing architecture with which the invention may be implemented.
  • Embodiments of the present invention provide a method and system for performing automatic STA coverage analysis while existing constraints can be automatically verified and/or automatically regenerated to ensure complete STA coverage.
  • Embodiments of the invention provide automatic methods and systems for coverage analysis of RTL or gate-level static timing analysis runs, identification of hidden logic, and constraint generation using architectural information. Accurate gate level timing data in conjunction with the architectural design date and formal methods can be used to identify false paths. The combination of formal techniques with static timing analysis to identify coverage using information from multiple STA runs as well as architectural information yields improved results in identifying global coverage. Some embodiments can use non-formal techniques such as simulation.
  • EC equivalence checking
  • Various embodiments include methods performing the technology described herein, code (at least partly hardware and/or at least partly software) performing the technology described herein, and one or more computers performing the technology described herein.
  • FIG. 1A shows a high-level flowchart of a process for performing coverage analysis according to an embodiment of the invention.
  • the process receives a list of constraint files for the circuit design.
  • the constraint files are the files that guide the static timing run. In the earlier described, example in which the timing analysis made a distinction between test mode and functional mode, the constraint file would contain information regarding the one bit that is either zero or one to indicate whether either test mode or functional mode is being analyzed.
  • the constraint files may be very complex, with many hundreds or thousands of lines of constraints.
  • the process identifies coverage based upon implementation-specific design information.
  • implementation-specific design information includes, but is not limited to, gate level design data resulting from synthesizing the circuit design.
  • non-implementation-specific design information includes architectural design data, which includes but is not limited to RTL code (e.g., VHDL and Verilog), behavioral code, synthesis pragmas, embedded assertions or constraints, side file assertions or constraints, macro cell information, and library information.
  • Architectural design data can also include gate level design data augmented with architectural information such as assertions, pragmas, side-files, constraints, macro cell information, and/or library information.
  • Architectural design data can also include any other source of data beyond bare netlists describing connections among library cells, that provides information which helps to identity false paths (e.g., helping to find: invalid constraints, inconsistent CPs, CPs that cannot be sensitized, assertion based FPs, don't care FPs, and architectural FPs).
  • false paths commonly arise from, but are not limited to, synthesis don't care optimizations and/or architecturally unreachable conditions. These conditions may result in gate-level sensitizable paths, which are not sensitizable in the architectural design data or when sensitized in the context of the architectural design data, generate a don't care condition.
  • False path information also known as constraints can be used in synthesis and place and route tools. These constraints can enable the tools to achieve desired design performance (e.g., power, area, and/or speed) and/or timing closure by focusing effort on real paths instead of false paths.
  • One advantage of this process is that, given the constraint information, it is able to look at the constraint files and analyze coverage in the context of both the high level and the low level abstractions of the design.
  • An example of coverage that is addressed by this process includes logic gates in the design. Therefore, coverage can be viewed by logic gates which are not addressed by the timing analysis.
  • Another example of coverage includes “paths” or “timing paths” in the design. For instance, if the design includes a signal A that goes through a particular path to an output B, then the timing path from A to B could comprise start, and end points as a way to look at coverage.
  • FIG. 1B shows a process for performing constraint analysis for specific types of implementation-specific and non-implementation-specific design information.
  • an initial list of one or more critical paths is received by the process ( 102 ).
  • implementation-specific design information in the form of gate-level information is used to identify coverage, and then the identified set of paths are pruned from the list of critical paths that must be addressed.
  • non-implementation-specific design information in the form of RTL-level architectural information is used to identify coverage, with these RTL-derived paths also pruned from the list of critical paths to must be addressed ( 106 ).
  • Various embodiments of the invention make use of equivalence checking, model checking.
  • Binary Decision Diagrams (BDDs). Satisfiability Solvers (SAT), and/or Automatic Test Pattern Generators (ATPG) to automatically identify and analyze gate level static timing results using architectural information.
  • Various embodiments can add, delete, combine, rearrange, and/or modify parts of this framework.
  • this process works by reading in the raw design. Assume that the design has one million gates in it. Then, what occurs is that the process applies the first constraint file. If the constraint file is set test mode on, then only the test mode logic is visible, e.g., maybe a half million gates are visible and the other half are logically turned off so they are not visible. The process starts off with a set of information for the coverage that would be all of the paths or all of the logic elements without any constraints, to which the process would then apply the first file of constraints, if this makes only a certain number visible, then those would be primed the list. Then the next constraint file is applied. However, the process does not have to do the work again on the group of data since they have already been covered. So we look at the next file and a certain number are also made visible which are also pruned from the list.
  • FIG. 2 illustrates a high-level framework/architecture for implementing an embodiment of the invention.
  • the following items are some example components of the framework shown in FIG. 2 ;
  • Design data 202 can include a gate level net-list and the function of the library cells that are instantiated in the gate level net-list.
  • Architectural design data can include RTL design data 204 , for example source code (e.g., Verilog or VHDL) that corresponds to the gate level design data, and/or gate level design data.
  • This RTL design data 204 can be augmented with information that can include assertions, pragmas, side-files, constraints, macro cell information, and/or library information.
  • Architectural design data can also include gate level design data 206 augmented with architectural information such as assertions, pragmas, side-files, constraints, macro cell information, and/or library information.
  • Architectural design data can also include any other source of data beyond bare netlists describing connections among library cells, that provides information which helps to identify coverage.
  • An example of an assertion is a constraint that “asserts” that two primary inputs are mutually exclusive. In some circumstances, such information cannot be derived independently from the gate level design data or the RTL design data.
  • Static timing analysis data 208 includes initial constraints as well as a coverage list 210 .
  • Formal engines 218 are used for solving the specific problem identified by the enhanced coverage analysis manager 220 .
  • conventional ATPG sensitization algorithms 212 equivalence checkers 214 , and model checkers 216 may be employed in conjunction with the enhanced coverage analysis manager 220 .
  • Some embodiments can use nonformal techniques such as simulation.
  • the system takes the gate level design and constraint information, and it performs conventional static timing analysis.
  • the coverage box 210 refers to the process action 104 of FIG. 1B . That information is passed into this middle section along with RTL design and any assertions, and the system then performs enhanced coverage analysis with RTL using the enhanced coverage analysis manager 220 .
  • the enhanced coverage analysis manager 220 corresponds to process action 106 of FIG. 1B .
  • the enhanced coverage analysis manager 220 accepts design data and static timing analysis data to generate coverage information with RTL. For an example of why RTL should be looked at, consider a path from A to B that is not covered by any of the static timing analysis. However, when the RTL is reviewed, it turns out that the path is a don't care path. So if the system only looks at gate level design, and coverage analysis is performed, then it may identify the path as being missed. Therefore, this present approach allows the system to automate the action of checking RTL information more effectively and realistically analyze coverage.
  • Global coverage 224 refers to the coverage at the end of the analysis process, after analyzing the independent static timing elements and analyzing the RTL information.
  • Coverage constraints 222 refers to information that would allow a designer or the system to identify how to obtain complete coverage. For example, assume that the analysis process missed some logic that was not timed, such as an AND component that is always constrained off. A coverage constraint would be generating the constraint to enable the process to cover that constraint or that AND gate. Also, assume that the process includes one file and the designer had configured a test bit to be “on” but that file was accidentally copied run again. The designer might think that he has one hundred percent coverage, when in fact, the analysis only covered half of the design. The constraint that needs to be changed in this example is the test enable constraint which should be toggled to get it to the other value to see the rest of the logic. So the coverage constraint 222 is if the analysis did not obtain 100% coverage, the constraint information will show how to get to this complete coverage.
  • this flowchart describes detailed implementation details according to an embodiment of the invention.
  • the circuit design is received for analysis, as well as other architectural information that maybe useful, including, for example, a list of initial constraints and assertions.
  • the “constraints” are so called because they restrict the analysis of the design. If there were no constraints, then the entire design, would undergo timing analysis. The gate level design and the RTL design including assertions would be taken in as inputs.
  • the process analyses the input data ( 304 ).
  • One type of analysis that is performed is to determine whether the data is valid ( 306 ). For example, the information is checked to determine whether there exists syntax errors or fundamental gate level design that does not correspond to the constraints. If the initial data is invalid, then error handling is performed ( 309 ) and the process ends.
  • the process makes an analysis to identify any data inconsistencies.
  • a data inconsistency is if the received information includes RTL data for first chip but gate level design data for second and entirely different chip.
  • An example of an inconsistent constraint is if the design has a reset signal set to zero and also somewhere else in ail those design files it also set to a one—causing an inconsistent constraints. If they exist, such inconsistencies and inconsistent constraints are reported and inconsistent constraints are pruned ( 312 ). By pruning such constraints, they will not be applied to the analysis.
  • the process map constraints onto the gate level or implementation level space. Then, the process checks the coverage ( 316 ). If coverage is 100% complete, then the process ends. An example is if there were no constraint files applied, and the static timing by default looked at every possible path, if however, there was not 100% coverage, then the coverage is reported and the covered object are pruned ( 318 ). The coverage could be based upon any coverage abstraction. For example, if the coverage objects are gate-based, then coverage is reported based upon gates. As another example, if the coverage is in terms of start points and end points, then it will also be reports in such terms.
  • the process maps the constraints to RTL design and consider assertions.
  • the process is now preparing to look at all the constraints with the RTL design. For example, equivalence checking techniques may be used to identify corresponding cones of logic between RTL and gate designs.
  • FSMs finite state machines
  • FIG. 4 illustrates the comparison of two designs.
  • Design 1 and Design 2 which have identical state encoding.
  • Design 1 primary inputs ⁇ In 1 , In 2 , In 3 , In 4 ⁇ correspond to primary inputs ⁇ P, Q, R, S ⁇ in Design 2.
  • the primary outputs ⁇ Out 1 , Out 2 ⁇ in Design 1 correspond to primary outputs ⁇ 02 , 01 ⁇ in Design 2.
  • the state elements, e.g. registers, of Design 1, ⁇ S 4 , S 1 , S 2 , S 3 ⁇ correspond to registers ⁇ FF 1 , FF 2 , FF 3 , FF 4 ⁇ in Design 2.
  • Logic cones are groups of combinational logic bordered by registers, and primary inputs and outputs.
  • Design 1 contains three logic cones, shown as logic cone 1 , logic cone 2 , and logic cone 3 , which are delineated by the primary inputs/outputs and the registers. Note that logic cone 2 is a multi-output logic cone.
  • the process will determine whether there is 100% coverage based upon the RTL information. If there is 100% coverage, then the process ends. Otherwise, the process reports the coverage and prunes the covered objects ( 326 ). At this point, the process will also consider don't care logic in the design.
  • the process then reviews again whether there is 100% coverage ( 328 ). If there is 100% coverage, then the process ends. Otherwise, the process reports the coverage and prunes the covered objects ( 330 ). At this point, the process will also consider unreachable objects in the design.
  • FIG. 5 is a block diagram of an illustrative computing system 1400 suitable for implementing an embodiment of the present invention.
  • Computer system 1400 includes a bus 1406 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 1407 , system memory 1408 (e.g., RAM), static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magnetic or optical), communication interface 1414 (e.g., modem or ethernet card), display 1411 (e.g., CRT or LCD), input device 1412 (e.g., keyboard), and cursor control.
  • processor 1407 system memory 1408 (e.g., RAM), static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magnetic or optical), communication interface 1414 (e.g., modem or ethernet card), display 1411 (e.g., CRT or LCD), input device 1412 (e.g., keyboard), and cursor control.
  • computer system 1400 performs specific operations by processor 1407 executing one or more sequences of one or more instructions contained in system memory 1408 .
  • Such instructions may be read into system memory 1408 from another computer readable/usable medium, such as static storage device 1409 or disk drive 1410 .
  • static storage device 1409 or disk drive 1410 may be used in place of or in combination with software instructions to implement the invention.
  • hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention.
  • embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software.
  • the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the invention.
  • Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1410 .
  • Volatile media includes dynamic memory, such as system memory 1408 .
  • Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 1406 . Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • Computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, carrier wave, or any other medium from which a computer can read.
  • execution of the sequences of instructions to practice the invention is performed by a single computer system 1400 .
  • two or more computer systems 1400 coupled by communication link 1415 may perform the sequence of instructions required to practice the invention in coordination with one another.
  • Computer system 1400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1415 and communication interface 1414 .
  • Received program code may be executed by processor 1407 as it is received, and/or stored in disk drive 1410 , or other non-volatile storage for later execution.

Abstract

Disclosed are methods and systems for performing coverage analysis. In one approach, the methods and systems perform coverage analysis based upon both implementation-specific design data and non-implementation-specific design data. In an approach, both gate level and RTL level information are considered to perform coverage analysis.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application is a divisional of U.S. patent application Ser. No. 11/454,075, filed on May 31, 2006, which is a continuation-in-part of U.S. Pat. No. 7,216,318, filed on Apr. 29, 2004, entitled “A METHOD AND SYSTEM FOR FALSE PATH ANALYSIS” which claims priority to U.S. Provisional Application Ser. No. 60/466,698, filed on Apr. 29, 2003, all of which are hereby incorporated by reference in their entirety.
  • BACKGROUND AND SUMMARY
  • Static timing analysis (STA) can determine if there exist paths in an electrical circuit design with delays that exceed a given timing threshold. Such paths are commonly known as critical paths (CPs). When such a critical path is identified, the portion of the design associated with the critical path may need to be modified to satisfy the required timing thresholds. It is generally not preferred to make such design modifications if they can be avoided, since each such modification consumes time and system resources, as well as possibly introducing less optimal component configurations and sizes.
  • Modern designs generally consist of multiple sub-designs with varying functionality and may operate at different clock frequencies. The timing threshold for critical paths varies according to the clock frequency of the sub-design under consideration. Since STA generally considers all paths in an electrical circuit, a set of constraints (also called a mode or a design mode) may be applied to a design such that only sub-designs with a desired timing threshold or functionality are considered for analysis while other sub-designs are not considered or hidden from analysis. The set of constraints for each sub-design are typically created manually and require an independent STA run for each mode or set of constraints to ensure that the entire design is “covered” by STA and all critical paths have been identified.
  • However, mismanagement of the sets of constraints and corresponding STA runs could cause less than 100% STA coverage resulting in undetected critical paths. Since the number design modes or sets of constraints can exceed, for example, 32 in a modern design, a significant amount of time and system resources may need to be expended to ensure 100% STA coverage such that all critical paths have been identified.
  • Therefore, it is important to verify complete STA coverage by accurately identifying that all sub-designs have been considered by STA such that all critical paths have been considered.
  • Most approaches have focused on manual STA coverage analysis of the sets of constraints and corresponding STA runs to ensure that no critical paths have been missed. The typical design flow can involve a large number of static timing analysis (STA) runs in an iterative process. Each time the design is optimized via synthesis, floor planning, place and route, in-place optimization, and/or back annotated post layout, static timing analysts can be performed. The number of STA runs increase for each mode that is considered and increases the effort to verify complete STA coverage.
  • In a modern design there may be several modes, for example, one or more test modes and multiple functional modes. Typically, the constraints for each mode are created and analyzed manually Generation of constraints for each mode and subsequent STA analysis for a typical design can take several weeks to several months and is very error prone and complete coverage is not easy to determine.
  • For example, very often, incremental changes can be made to a design. Incremental design changes can imply that from one static timing run to the next, many of the same constraints still apply. However, design changes may cause some of the constraints to become invalid. The constraints that are manually generated initially might not he re-verified when incremental changes are made to the design. The constraints that are no longer valid (invalid constraints) can cause incomplete STA coverage and a bad design to be implemented.
  • Coverage analysis has been investigated within the context of individual STA runs or for localized design regions. For example, some static timing tools detect paths that are logically never used, with Automated test Pattern Generation (ATPG) techniques; however, these techniques have been limited to a single set of constraints or single mode of operation without consideration, of additional constraints or modes that can be imposed by independent STA runs. Moreover, current tools do not provide an automated mechanism to analyze global coverage across several independent STA runs. The problems of identifying global coverage can often involve human intervention. This human intervention can be required because the coverage reported for each STA run can be reported without consideration of multiple STA runs that are required to implement a modem design. Identification of global coverage is often managed manually and can require extensive communication between the engineer that performs the static timing analysis and designers that understand the architecture of the design. The manual analysis of the global coverage analysis can be quite time consuming and error prone, adding weeks to months in the design process. Errors in the static timing analysis could lead to the manufacture of a bad design.
  • To illustrate this, consider an example coverage analysis problem when static timing is used to analyze a circuit and when it is desired to determine if the analysis has actually covered the whole design. In this example, assume that a design is considered which operates in two modes, test mode and functional mode. When analyzing the timing for the functional mode, the test logic will be turned off so that the test enable will be “off” or “disabled” and the static timing tool will only see the logic or the path in which the circuit path corresponds to the functional mode. When a designer finishes performing a set of timing, the designer is satisfied that he has performed functional mode coverage. Next, the designer will run another static timing run and will turn on the test mode and disable the functional mode to look at all the path and circuit connections in test mode. Now, if this is the only constraint that has changed, then the designer has performed two completely separate static timing analysis runs and if the designer has in fact switched the “test bit” from a zero to a one, then it can be assumed that the whole design has been covered.
  • However, in practice, designers today are running a large number of different modes. After running many different static timing runs, a designer could have made a mistake in determining whether any portion of the design has or has not been covered, e.g., that when the designer copied and modified files for the timing analysis runs, designers could have mistakenly cut and pasted exactly the same thing and run two static timing run on exactly the same circuit and missed the timing of another part of the circuit.
  • Today, there are no known approaches for addressing this problem, which can for example, go through and consider all the independent static timing analysis runs, grab all the setup files and then perform analysis to make sure that the entire chip properly undergoes timing analysis. If it cannot be ensured that entire chip design has undergone timing analysis, then there might exist a slow path that was not discovered, which could result in an IC chip that is not functional.
  • Embodiments of the present invention provide a method and system for performing automatic STA coverage analysis while existing constraints can be automatically verified and/or automatically regenerated to ensure complete STA coverage. Using some embodiments of the present invention, STA coverage can be automatically verified while existing constraints can be automatically verified and/or automatically regenerated, ensuring complete STA coverage as well as accurate and efficient design implementation.
  • Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.
  • BRIEF DESCRIPTION OF THE FIGURES
  • The accompanying drawings are included to provide a further understanding of the invention and, together with the Detailed Description, serve to explain the principles of the invention.
  • FIGS. 1A and 1B illustrate flow diagrams of processes for performing coverage analysis, according to embodiments of the invention.
  • FIG. 2 illustrates a high-level framework of a formal static timing analysis coverage system.
  • FIG. 3 illustrates a flow diagram for identifying coverage in gate level designs with corresponding architectural design data according to one embodiment of the invention.
  • FIG. 4 illustrates the comparison of two designs which have identical state encoding.
  • FIG. 5 illustrates an example computing architecture with which the invention may be implemented.
  • DETAILED DESCRIPTION
  • Embodiments of the present invention provide a method and system for performing automatic STA coverage analysis while existing constraints can be automatically verified and/or automatically regenerated to ensure complete STA coverage.
  • In one embodiment, several sets of constraints for independent STA rims are analyzed. Embodiments of the invention provide automatic methods and systems for coverage analysis of RTL or gate-level static timing analysis runs, identification of hidden logic, and constraint generation using architectural information. Accurate gate level timing data in conjunction with the architectural design date and formal methods can be used to identify false paths. The combination of formal techniques with static timing analysis to identify coverage using information from multiple STA runs as well as architectural information yields improved results in identifying global coverage. Some embodiments can use non-formal techniques such as simulation.
  • In some present embodiments, by combining static timing analysis with formal techniques such as equivalence checking (EC) for mapping gate level information to architectural information, model checking to identify unreachable states, and/or automated false path analysis for use in identifying global coverage analysis, the amount of manual effort can be minimized. Some embodiments can use non-formal techniques such as simulation.
  • In one or more embodiments of the invention, static timing paths at the gate-level can be linked to the architectural information via techniques such as logic cone and/or state point correspondence, such as commonly used in equivalence checking (EC). The gate-level static timing paths can be analyzed in the context of the architectural information to identify false paths. The analysis of gate-level paths in the context of the architectural information can enable identification of global coverage that cannot be identified in the context of gate-level information alone. Furthermore this automated approach can be less error prone and/or much more efficient than existing techniques which are commonly manual techniques.
  • Various embodiments include methods performing the technology described herein, code (at least partly hardware and/or at least partly software) performing the technology described herein, and one or more computers performing the technology described herein.
  • FIG. 1A shows a high-level flowchart of a process for performing coverage analysis according to an embodiment of the invention. At 103, the process receives a list of constraint files for the circuit design. The constraint files are the files that guide the static timing run. In the earlier described, example in which the timing analysis made a distinction between test mode and functional mode, the constraint file would contain information regarding the one bit that is either zero or one to indicate whether either test mode or functional mode is being analyzed. The constraint files may be very complex, with many hundreds or thousands of lines of constraints.
  • At 105, the process identifies coverage based upon implementation-specific design information. Such implementation-specific design information includes, but is not limited to, gate level design data resulting from synthesizing the circuit design.
  • At 107, the process identifies coverage based upon non-implementation-specific design information about the circuit design. Such non-implementation-specific design information includes architectural design data, which includes but is not limited to RTL code (e.g., VHDL and Verilog), behavioral code, synthesis pragmas, embedded assertions or constraints, side file assertions or constraints, macro cell information, and library information. Architectural design data can also include gate level design data augmented with architectural information such as assertions, pragmas, side-files, constraints, macro cell information, and/or library information.
  • Architectural design data can also include any other source of data beyond bare netlists describing connections among library cells, that provides information which helps to identity false paths (e.g., helping to find: invalid constraints, inconsistent CPs, CPs that cannot be sensitized, assertion based FPs, don't care FPs, and architectural FPs). Such false paths commonly arise from, but are not limited to, synthesis don't care optimizations and/or architecturally unreachable conditions. These conditions may result in gate-level sensitizable paths, which are not sensitizable in the architectural design data or when sensitized in the context of the architectural design data, generate a don't care condition. False path information also known as constraints can be used in synthesis and place and route tools. These constraints can enable the tools to achieve desired design performance (e.g., power, area, and/or speed) and/or timing closure by focusing effort on real paths instead of false paths.
  • One advantage of this process is that, given the constraint information, it is able to look at the constraint files and analyze coverage in the context of both the high level and the low level abstractions of the design. An example of coverage that is addressed by this process includes logic gates in the design. Therefore, coverage can be viewed by logic gates which are not addressed by the timing analysis. Another example of coverage includes “paths” or “timing paths” in the design. For instance, if the design includes a signal A that goes through a particular path to an output B, then the timing path from A to B could comprise start, and end points as a way to look at coverage.
  • FIG. 1B shows a process for performing constraint analysis for specific types of implementation-specific and non-implementation-specific design information. As before, an initial list of one or more critical paths is received by the process (102). At 104, implementation-specific design information in the form of gate-level information is used to identify coverage, and then the identified set of paths are pruned from the list of critical paths that must be addressed.
  • In addition, non-implementation-specific design information in the form of RTL-level architectural information is used to identify coverage, with these RTL-derived paths also pruned from the list of critical paths to must be addressed (106). Various embodiments of the invention make use of equivalence checking, model checking. Binary Decision Diagrams (BDDs). Satisfiability Solvers (SAT), and/or Automatic Test Pattern Generators (ATPG) to automatically identify and analyze gate level static timing results using architectural information. Various embodiments can add, delete, combine, rearrange, and/or modify parts of this framework.
  • In an example implementation, this process works by reading in the raw design. Assume that the design has one million gates in it. Then, what occurs is that the process applies the first constraint file. If the constraint file is set test mode on, then only the test mode logic is visible, e.g., maybe a half million gates are visible and the other half are logically turned off so they are not visible. The process starts off with a set of information for the coverage that would be all of the paths or all of the logic elements without any constraints, to which the process would then apply the first file of constraints, if this makes only a certain number visible, then those would be primed the list. Then the next constraint file is applied. However, the process does not have to do the work again on the group of data since they have already been covered. So we look at the next file and a certain number are also made visible which are also pruned from the list.
  • FIG. 2 illustrates a high-level framework/architecture for implementing an embodiment of the invention. The following items are some example components of the framework shown in FIG. 2;
      • Design data
        • Gate level design including libraries
        • Architectural information e.g., RTL design, assertions and side files
      • Static timing analysis data
        • Initial static timing constraints
        • Critical paths
      • Formal engines
        • Equivalence checker
        • Model checker
        • Logic sensitization algorithms
        • Solvers
      • False path constraint identification and analysis manager (FP-CIA) which can accept design data and static timing analysis data and uses formal engines to analyze and identify false paths (i.e., architectural, logical, don't care, multi-cycle, clock-domain crossing, delay based, etc)
  • Design data 202 can include a gate level net-list and the function of the library cells that are instantiated in the gate level net-list. Architectural design data can include RTL design data 204, for example source code (e.g., Verilog or VHDL) that corresponds to the gate level design data, and/or gate level design data. This RTL design data 204 can be augmented with information that can include assertions, pragmas, side-files, constraints, macro cell information, and/or library information. Architectural design data can also include gate level design data 206 augmented with architectural information such as assertions, pragmas, side-files, constraints, macro cell information, and/or library information. Architectural design data can also include any other source of data beyond bare netlists describing connections among library cells, that provides information which helps to identify coverage. An example of an assertion is a constraint that “asserts” that two primary inputs are mutually exclusive. In some circumstances, such information cannot be derived independently from the gate level design data or the RTL design data.
  • Static timing analysis data 208 includes initial constraints as well as a coverage list 210. Formal engines 218 are used for solving the specific problem identified by the enhanced coverage analysis manager 220. For example conventional ATPG sensitization algorithms 212, equivalence checkers 214, and model checkers 216 may be employed in conjunction with the enhanced coverage analysis manager 220. Some embodiments can use nonformal techniques such as simulation.
  • Essentially, the system takes the gate level design and constraint information, and it performs conventional static timing analysis. In one embodiment, the coverage box 210 refers to the process action 104 of FIG. 1B. That information is passed into this middle section along with RTL design and any assertions, and the system then performs enhanced coverage analysis with RTL using the enhanced coverage analysis manager 220. In one embodiment, the enhanced coverage analysis manager 220 corresponds to process action 106 of FIG. 1B.
  • The enhanced coverage analysis manager 220 accepts design data and static timing analysis data to generate coverage information with RTL. For an example of why RTL should be looked at, consider a path from A to B that is not covered by any of the static timing analysis. However, when the RTL is reviewed, it turns out that the path is a don't care path. So if the system only looks at gate level design, and coverage analysis is performed, then it may identify the path as being missed. Therefore, this present approach allows the system to automate the action of checking RTL information more effectively and realistically analyze coverage.
  • An output of the enhanced coverage analysis manager 220 is global coverage 224. Global coverage 224 refers to the coverage at the end of the analysis process, after analyzing the independent static timing elements and analyzing the RTL information.
  • Coverage constraints 222 refers to information that would allow a designer or the system to identify how to obtain complete coverage. For example, assume that the analysis process missed some logic that was not timed, such as an AND component that is always constrained off. A coverage constraint would be generating the constraint to enable the process to cover that constraint or that AND gate. Also, assume that the process includes one file and the designer had configured a test bit to be “on” but that file was accidentally copied run again. The designer might think that he has one hundred percent coverage, when in fact, the analysis only covered half of the design. The constraint that needs to be changed in this example is the test enable constraint which should be toggled to get it to the other value to see the rest of the logic. So the coverage constraint 222 is if the analysis did not obtain 100% coverage, the constraint information will show how to get to this complete coverage.
  • Referring to FIG. 3, this flowchart describes detailed implementation details according to an embodiment of the invention. At 302, the circuit design is received for analysis, as well as other architectural information that maybe useful, including, for example, a list of initial constraints and assertions. As noted above, the “constraints” are so called because they restrict the analysis of the design. If there were no constraints, then the entire design, would undergo timing analysis. The gate level design and the RTL design including assertions would be taken in as inputs.
  • Then, the process analyses the input data (304). One type of analysis that is performed is to determine whether the data is valid (306). For example, the information is checked to determine whether there exists syntax errors or fundamental gate level design that does not correspond to the constraints. If the initial data is invalid, then error handling is performed (309) and the process ends.
  • At 310, the process makes an analysis to identify any data inconsistencies. An example of a data inconsistency is if the received information includes RTL data for first chip but gate level design data for second and entirely different chip. An example of an inconsistent constraint is if the design has a reset signal set to zero and also somewhere else in ail those design files it also set to a one—causing an inconsistent constraints. If they exist, such inconsistencies and inconsistent constraints are reported and inconsistent constraints are pruned (312). By pruning such constraints, they will not be applied to the analysis.
  • At 308, the process map constraints onto the gate level or implementation level space. Then, the process checks the coverage (316). If coverage is 100% complete, then the process ends. An example is if there were no constraint files applied, and the static timing by default looked at every possible path, if however, there was not 100% coverage, then the coverage is reported and the covered object are pruned (318). The coverage could be based upon any coverage abstraction. For example, if the coverage objects are gate-based, then coverage is reported based upon gates. As another example, if the coverage is in terms of start points and end points, then it will also be reports in such terms.
  • At 320, the process maps the constraints to RTL design and consider assertions. The process is now preparing to look at all the constraints with the RTL design. For example, equivalence checking techniques may be used to identify corresponding cones of logic between RTL and gate designs.
  • Determining that two designs (i.e., RTL and gate level) implement equivalent finite state machines (FSMs) is a fundamental step in the design and verification of digital circuit systems. This task can be performed by logic equivalence checkers, which verify the equivalence of two designs, which have identical state encoding. Equivalent or equivalence in the context of designs refers to equivalent FSMs. In the context of logic cones (described, below), these terms refer to combinational equivalence.
  • FIG. 4 illustrates the comparison of two designs. Design 1 and Design 2, which have identical state encoding. Design 1 primary inputs {In1, In2, In3, In4} correspond to primary inputs {P, Q, R, S} in Design 2. The primary outputs {Out1, Out2} in Design 1 correspond to primary outputs {02, 01} in Design 2. The state elements, e.g. registers, of Design 1, {S4, S1, S2, S3} correspond to registers {FF1, FF2, FF3, FF4} in Design 2.
  • The state elements, and the primary inputs and outputs partition a design into logic cones. Logic cones are groups of combinational logic bordered by registers, and primary inputs and outputs. Design 1 contains three logic cones, shown as logic cone 1, logic cone 2, and logic cone 3, which are delineated by the primary inputs/outputs and the registers. Note that logic cone 2 is a multi-output logic cone.
  • Showing that two designs with identical state encoding are equivalent can be done by showing the corresponding logic cones of the two designs to be combinationally equivalent. Identifying the corresponding logic cones can be done via a process known as mapping. Mapping logic cones in RTL designs to logic cones in gate level designs typically uses heuristics that consider design characteristics (i.e., fanin, fanout, hierarchy, signal names, logic signatures, etc.). Verifying the equivalence of Design 1 and Design 2 requires proving the 3 pairs of logic cones between Design 1 and Design 2, i.e. (logic cone 1, logic cone A), {logic cone 2, logic cone C} and {logic cone 3, logic cone B}, are equivalent, as illustrated in FIG. 5.
  • Returning back to FIG. 3, at 322, the process will determine whether there is 100% coverage based upon the RTL information. If there is 100% coverage, then the process ends. Otherwise, the process reports the coverage and prunes the covered objects (326). At this point, the process will also consider don't care logic in the design.
  • The process then reviews again whether there is 100% coverage (328). If there is 100% coverage, then the process ends. Otherwise, the process reports the coverage and prunes the covered objects (330). At this point, the process will also consider unreachable objects in the design.
  • The process then reviews again whether there is 100% coverage (331), If there is 100% coverage, then the process ends. Otherwise, the process reports the coverage and prunes the covered objects (332). At this point, the process generates constraints for 100% coverage of the design (334). Many of the actions from 322 to 332 could be implemented as common steps, depending upon the specific implementation to which the invention is applied. The specific order shown in FIG. 3 is not necessarily, and could be based upon implementation choice.
  • System Architecture Overview
  • FIG. 5 is a block diagram of an illustrative computing system 1400 suitable for implementing an embodiment of the present invention. Computer system 1400 includes a bus 1406 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 1407, system memory 1408 (e.g., RAM), static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magnetic or optical), communication interface 1414 (e.g., modem or ethernet card), display 1411 (e.g., CRT or LCD), input device 1412 (e.g., keyboard), and cursor control.
  • According to one embodiment of the invention, computer system 1400 performs specific operations by processor 1407 executing one or more sequences of one or more instructions contained in system memory 1408. Such instructions may be read into system memory 1408 from another computer readable/usable medium, such as static storage device 1409 or disk drive 1410. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software. In one embodiment, the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the invention.
  • The term “computer readable medium” or “computer usable medium” as used herein refers to any medium that participates in providing instructions to processor 1407 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1410. Volatile media includes dynamic memory, such as system memory 1408. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 1406. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, carrier wave, or any other medium from which a computer can read.
  • In an embodiment of the invention, execution of the sequences of instructions to practice the invention is performed by a single computer system 1400. According to other embodiments of the invention, two or more computer systems 1400 coupled by communication link 1415 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions required to practice the invention in coordination with one another.
  • Computer system 1400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1415 and communication interface 1414. Received program code may be executed by processor 1407 as it is received, and/or stored in disk drive 1410, or other non-volatile storage for later execution.
  • In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. For example, the above-described process flows are described with reference to a particular ordering of process actions. However, the ordering of many of the described process actions may be changed without affecting the scope or operation of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.

Claims (24)

1. A method of performing automated coverage analysis, comprising:
receiving a list of one or more constraint information for a circuit design; and
using both implementation-specific design data and non-implementation-specific design data about the circuit design to identify coverage for the circuit design.
2. The method of claim 1 in which the non-implementation-specific design data comprises architectural information.
3. The method of claim 2 in which the architectural information is selected from the group consisting of RTL code, VHDL code, Verilog code, behavioral code, synthesis pragmas, embedded assertions or constraints, side file assertions or constraints, macro cell information, library information, gate level design data, gate level design data augmented with information such as assertions, pragmas, side-files, constraints, macro cell information, and/or library information.
4. The method of claim 1 in which static timing analysis is employed to identify coverage.
5. The method of claim 1 in which gate-level, architectural information is used to perform the act of identifying coverage.
6. The method of claim 1 in which RTL-level architectural information is used to perform the act of identifying coverage.
7. The method of claim 6 comprising the act of mapping the constraint information onto RTL design data.
8. The method of claim 7 in which an equivalence checker is used to map onto the RTL design data.
9. A system for performing coverage analysis, comprising a enhanced coverage analysis manager, the enhanced coverage analysis manager receiving design data and an initial list constraints, wherein the enhanced, coverage analysis manager is capable of identifying coverage based upon both implementation-specific and non-implementation-specific design data.
10. The system of claim 9 in which the design data comprises source code, Verilog code, VHDL code, gate level design data, RTL design data, assertion information, pragmas, side-files, constraints, macro cell information, library information, and/or architectural information.
11. The system of claim 9 in which the enhanced coverage analysis manager receives static timing analysis data.
12. The system of claim 11 in which the static timing analysis data includes the initial list of coverage and initial constraints.
13. The system of claims 9 in which the enhanced coverage analysis manager accesses one or more formal engines to identify the set of false paths
14. The system of claim 13 in which the one or more formal engines comprises an equivalence checker engine, a model checker engine, a logic sensitization engine or any engine using Boolean analysis techniques such as ATPG, Binary Decision Diagrams (BDDs) or Boolean Satisfiability (SAT) solvers.
15. The system of claim 9 in which the enhanced coverage analysis manager generates coverage constraints to provide information to provide complete coverage.
16. The system of claim 9 in which the enhanced coverage analysis manager generates global coverage information.
17. A computer program product comprising a computer usable medium having executable code for executing a process for performing automated coverage analysis, the process comprising:
receiving a list of one or more constraint information for a circuit design; and
using both implementation-specific design data and non-implementation-specific design data about the circuit design to identify coverage for the circuit design.
18. The product of claim 17 in which the non-implementation-specific design data comprises architectural information.
19. The product of claim 18 in which the architectural information is selected from the group consisting of RTL code, VHDL code, Verilog code, behavioral code, synthesis pragmas, embedded assertions or constraints, side file assertions or constraints, macro cell information, library information, gate level design data, gate level design data augmented with information such as assertions, pragmas, side-files, constraints, macro ceil information, and/or library information.
20. The product of claim 17 in which static timing analysis is employed to identify coverage.
21. The product of claim 17 in which gate-level architectural information is used to perform the act of identifying coverage.
22. The product of claim 17 in which RTL-level architectural information is used to perform the act of identifying coverage.
23. The product of claim 22 comprising the act of mapping the constraint information onto RTL design data.
24. The product of claim 23 in which an equivalence checker is used to map onto the RTL design data.
US12/267,779 2003-04-29 2008-11-10 Method and system for global coverage analysis Abandoned US20090064071A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/267,779 US20090064071A1 (en) 2003-04-29 2008-11-10 Method and system for global coverage analysis

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US46669803P 2003-04-29 2003-04-29
US10/836,700 US7216318B1 (en) 2003-04-29 2004-04-29 Method and system for false path analysis
US11/454,075 US7587690B1 (en) 2003-04-29 2006-06-14 Method and system for global coverage analysis
US12/267,779 US20090064071A1 (en) 2003-04-29 2008-11-10 Method and system for global coverage analysis

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/454,075 Division US7587690B1 (en) 2003-04-29 2006-06-14 Method and system for global coverage analysis

Publications (1)

Publication Number Publication Date
US20090064071A1 true US20090064071A1 (en) 2009-03-05

Family

ID=41037123

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/454,075 Active 2025-06-15 US7587690B1 (en) 2003-04-29 2006-06-14 Method and system for global coverage analysis
US12/267,779 Abandoned US20090064071A1 (en) 2003-04-29 2008-11-10 Method and system for global coverage analysis

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/454,075 Active 2025-06-15 US7587690B1 (en) 2003-04-29 2006-06-14 Method and system for global coverage analysis

Country Status (1)

Country Link
US (2) US7587690B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239368A1 (en) * 2011-03-17 2012-09-20 Nimrod Agmon Identifying Initial Don't Care Memory Elements for Simulation
US8448122B1 (en) * 2009-04-01 2013-05-21 Xilinx, Inc. Implementing sub-circuits with predictable behavior within a circuit design
US9158874B1 (en) 2013-11-06 2015-10-13 Cadence Design Systems, Inc. Formal verification coverage metrics of covered events for circuit design properties
US9177089B2 (en) 2013-03-14 2015-11-03 Cadence Design Systems, Inc. Formal verification coverage metrics for circuit design properties
US10204201B1 (en) * 2016-06-30 2019-02-12 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for verifying an electronic design using hierarchical clock domain crossing verification techniques
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
US7890902B1 (en) * 2007-06-07 2011-02-15 Cadence Design Systems, Inc. Methods and apparatus for merging coverage for multiple verification and design scenarios
US8413088B1 (en) 2007-06-07 2013-04-02 Cadence Design Systems, Inc. Verification plans to merging design verification metrics
US8042078B2 (en) * 2009-04-01 2011-10-18 International Business Machines Corporation Enhancing formal design verification by reusing previous results
US8281274B1 (en) 2010-01-08 2012-10-02 Altera Corporation Method and apparatus for performing efficient incremental compilation
US8316332B1 (en) * 2010-07-07 2012-11-20 Cadence Design Systems, Inc. Constraint minimization method for formal verification
US8607173B2 (en) 2012-03-09 2013-12-10 Atrenta, Inc. Hierarchical bottom-up clock domain crossing verification
CN105701266B (en) 2014-11-28 2019-05-07 国际商业机器公司 Method and system for the static timing analysis in circuit design

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754454A (en) * 1997-03-03 1998-05-19 Motorola, Inc. Method for determining functional equivalence between design models
US5907698A (en) * 1997-02-24 1999-05-25 Motorola, Inc. Method and apparatus for characterizing static and dynamic operation of an architectural system
US6237127B1 (en) * 1998-06-08 2001-05-22 Synopsys, Inc. Static timing analysis of digital electronic circuits using non-default constraints known as exceptions
US20020016952A1 (en) * 1998-09-30 2002-02-07 Cadence Design Systems, Inc. Block based design methodology
US6408121B1 (en) * 1999-02-26 2002-06-18 Nec Corporation Optical communication module
US6408424B1 (en) * 1999-06-04 2002-06-18 Fujitsu Limited Verification of sequential circuits with same state encoding
US6457162B1 (en) * 1999-10-25 2002-09-24 Synopsys, Inc. Method and apparatus for implicit verification of digital circuits
US6463560B1 (en) * 1999-06-23 2002-10-08 Agere Systems Guardian Corp. Method for implementing a bist scheme into integrated circuits for testing RTL controller-data paths in the integrated circuits
US6473884B1 (en) * 2000-03-14 2002-10-29 International Business Machines Corporation Method and system for equivalence-checking combinatorial circuits using interative binary-decision-diagram sweeping and structural satisfiability analysis
US20020162086A1 (en) * 2001-04-30 2002-10-31 Morgan David A. RTL annotation tool for layout induced netlist changes
US20020174407A1 (en) * 2001-05-16 2002-11-21 Nec Corporation False path detecting apparatus and a false path detecting method in which a usage amount of memories is smaller and a process is carried out at a higher speed, and that program
US20030101399A1 (en) * 2001-11-26 2003-05-29 Fujitsu Limited Hold time error correction method and correction program for integrated circuits
US20030145297A1 (en) * 2002-01-25 2003-07-31 Jean-Francois Cote Method and program product for completing a circuit design having embedded test structures
US20030149945A1 (en) * 2002-02-01 2003-08-07 Motorola, Inc. Method and system of data processor design
US6611947B1 (en) * 2000-08-23 2003-08-26 Jasper Design Automation, Inc. Method for determining the functional equivalence between two circuit models in a distributed computing environment
US20030225559A1 (en) * 2002-05-29 2003-12-04 Sharma Anup K. Verification of multi-cycle paths
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6714902B1 (en) * 2000-03-02 2004-03-30 Cadence Design Systems, Inc. Method and apparatus for critical and false path verification
US20040128641A1 (en) * 2002-12-31 2004-07-01 Lsi Logic Corporation Simplified process to design integrated circuits
US20040268279A1 (en) * 2003-06-24 2004-12-30 Lsi Logic Corporation Timing constraint generator
US6934921B1 (en) * 2002-01-04 2005-08-23 Cisco Technology, Inc. Resolving LBIST timing violations
US6952812B2 (en) * 2001-02-13 2005-10-04 Freescale Semiconductor, Inc. Design analysis tool for path extraction and false path identification and method thereof
US6996515B1 (en) * 2001-08-10 2006-02-07 Hewlett-Packard Development Company, L.P. Enabling verification of a minimal level sensitive timing abstraction model
US7010774B1 (en) * 1999-12-29 2006-03-07 Advanced Micro Devices, Inc. Bottom-up approach for synthesis of register transfer level (RTL) based design
US20070168903A1 (en) * 2003-02-25 2007-07-19 Kahng Andrew B Method for correcting a mask design layout

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907698A (en) * 1997-02-24 1999-05-25 Motorola, Inc. Method and apparatus for characterizing static and dynamic operation of an architectural system
US5754454A (en) * 1997-03-03 1998-05-19 Motorola, Inc. Method for determining functional equivalence between design models
US6237127B1 (en) * 1998-06-08 2001-05-22 Synopsys, Inc. Static timing analysis of digital electronic circuits using non-default constraints known as exceptions
US20020016952A1 (en) * 1998-09-30 2002-02-07 Cadence Design Systems, Inc. Block based design methodology
US6408121B1 (en) * 1999-02-26 2002-06-18 Nec Corporation Optical communication module
US6408424B1 (en) * 1999-06-04 2002-06-18 Fujitsu Limited Verification of sequential circuits with same state encoding
US6463560B1 (en) * 1999-06-23 2002-10-08 Agere Systems Guardian Corp. Method for implementing a bist scheme into integrated circuits for testing RTL controller-data paths in the integrated circuits
US6457162B1 (en) * 1999-10-25 2002-09-24 Synopsys, Inc. Method and apparatus for implicit verification of digital circuits
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US7010774B1 (en) * 1999-12-29 2006-03-07 Advanced Micro Devices, Inc. Bottom-up approach for synthesis of register transfer level (RTL) based design
US6714902B1 (en) * 2000-03-02 2004-03-30 Cadence Design Systems, Inc. Method and apparatus for critical and false path verification
US6473884B1 (en) * 2000-03-14 2002-10-29 International Business Machines Corporation Method and system for equivalence-checking combinatorial circuits using interative binary-decision-diagram sweeping and structural satisfiability analysis
US6611947B1 (en) * 2000-08-23 2003-08-26 Jasper Design Automation, Inc. Method for determining the functional equivalence between two circuit models in a distributed computing environment
US6952812B2 (en) * 2001-02-13 2005-10-04 Freescale Semiconductor, Inc. Design analysis tool for path extraction and false path identification and method thereof
US20020162086A1 (en) * 2001-04-30 2002-10-31 Morgan David A. RTL annotation tool for layout induced netlist changes
US20020174407A1 (en) * 2001-05-16 2002-11-21 Nec Corporation False path detecting apparatus and a false path detecting method in which a usage amount of memories is smaller and a process is carried out at a higher speed, and that program
US6996515B1 (en) * 2001-08-10 2006-02-07 Hewlett-Packard Development Company, L.P. Enabling verification of a minimal level sensitive timing abstraction model
US20030101399A1 (en) * 2001-11-26 2003-05-29 Fujitsu Limited Hold time error correction method and correction program for integrated circuits
US6934921B1 (en) * 2002-01-04 2005-08-23 Cisco Technology, Inc. Resolving LBIST timing violations
US20030145297A1 (en) * 2002-01-25 2003-07-31 Jean-Francois Cote Method and program product for completing a circuit design having embedded test structures
US20030149945A1 (en) * 2002-02-01 2003-08-07 Motorola, Inc. Method and system of data processor design
US20030225559A1 (en) * 2002-05-29 2003-12-04 Sharma Anup K. Verification of multi-cycle paths
US20040128641A1 (en) * 2002-12-31 2004-07-01 Lsi Logic Corporation Simplified process to design integrated circuits
US20070168903A1 (en) * 2003-02-25 2007-07-19 Kahng Andrew B Method for correcting a mask design layout
US20040268279A1 (en) * 2003-06-24 2004-12-30 Lsi Logic Corporation Timing constraint generator

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8448122B1 (en) * 2009-04-01 2013-05-21 Xilinx, Inc. Implementing sub-circuits with predictable behavior within a circuit design
US20120239368A1 (en) * 2011-03-17 2012-09-20 Nimrod Agmon Identifying Initial Don't Care Memory Elements for Simulation
US8718998B2 (en) * 2011-03-17 2014-05-06 Apple Inc. Identifying initial don't care memory elements for simulation
US9177089B2 (en) 2013-03-14 2015-11-03 Cadence Design Systems, Inc. Formal verification coverage metrics for circuit design properties
US9158874B1 (en) 2013-11-06 2015-10-13 Cadence Design Systems, Inc. Formal verification coverage metrics of covered events for circuit design properties
US10204201B1 (en) * 2016-06-30 2019-02-12 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for verifying an electronic design using hierarchical clock domain crossing verification techniques
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
US7587690B1 (en) 2009-09-08

Similar Documents

Publication Publication Date Title
US7587690B1 (en) Method and system for global coverage analysis
US7958470B1 (en) Method and system for false path analysis
US7020856B2 (en) Method for verifying properties of a circuit model
US8627249B1 (en) Method and system for generating design constraints
US7383166B2 (en) Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
US5980092A (en) Method and apparatus for optimizing a gated clock structure using a standard optimization tool
US5864487A (en) Method and apparatus for identifying gated clocks within a circuit design using a standard optimization tool
US8181131B2 (en) Enhanced analysis of array-based netlists via reparameterization
JP4806529B2 (en) Debugging methods and systems that use replicated logic
US20030192018A1 (en) Apparatus and method for automated use of phase abstraction for enhanced verification of circuit designs
US7856609B2 (en) Using constraints in design verification
JPH11328251A (en) Method for automatically generating operation environment for model inspection
US20080288903A1 (en) Generating testcases based on numbers of testcases previously generated
US8271914B2 (en) Method and apparatus for simulating behavioral constructs using indeterminate values
US6493852B1 (en) Modeling and verifying the intended flow of logical signals in a hardware design
US7210109B2 (en) Equivalence checking of scan path flush operations
WO2009051871A1 (en) Enhancing speed of simulation of an ic design while testing scan circuitry
US7454726B2 (en) Technique for generating input stimulus to cover properties not covered in random simulation
US6748573B2 (en) Apparatus and method for removing effects of phase abstraction from a phase abstracted trace
Bombieri et al. Incremental ABV for functional validation of TL-to-RTL design refinement
US8245166B2 (en) Optimal correlated array abstraction
US6745377B2 (en) Apparatus and method for representing gated-clock latches for phase abstraction
Cohen et al. SystemVerilog Assertions Handbook:--for Formal and Dynamic Verification
Bombieri et al. Hybrid, incremental assertion-based verification for TLM design flows
Plassan et al. Improving the efficiency of formal verification: the case of clock-domain crossings

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION