US20160292332A1 - System for verifying timing constraints of ic design - Google Patents
System for verifying timing constraints of ic design Download PDFInfo
- Publication number
- US20160292332A1 US20160292332A1 US14/675,752 US201514675752A US2016292332A1 US 20160292332 A1 US20160292332 A1 US 20160292332A1 US 201514675752 A US201514675752 A US 201514675752A US 2016292332 A1 US2016292332 A1 US 2016292332A1
- Authority
- US
- United States
- Prior art keywords
- delay
- clock
- design
- path
- cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G06F17/5031—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G06F17/505—
-
- G06F17/5081—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Definitions
- the present invention generally relates to electronic design automation (EDA) tools, and more particularly to an EDA tool for verifying timing constraints of an integrated circuit (IC) design.
- EDA electronic design automation
- Integrated circuits including system-on-chips (SoCs) integrate various digital and sometimes analog elements on a single chip.
- SoCs system-on-chips
- the operational speed of ICs is increasing and more and more functions are being added to the ICs by increasing the number of circuit elements. This has led to an increase in the complexity of the ICs, thereby leading to a decrease in the yield of the ICs.
- testing and verifying a design during the design stage has become increasingly important.
- HDL hardware description language
- VHSIC Verilog and very high speed integrated circuit
- VHDL register transfer level
- RTL register transfer level
- the RTL code is synthesized by the EDA tool to generate a corresponding gate level netlist that is indicative of the IC design and describes the operation of the IC design at the gate level using circuit elements such as logic cells, buffer cells, and clock delay cells from a technology library and interconnections among the circuit elements.
- Placement is the process of assigning non-overlapping areas of the netlist to the circuit elements to reduce the area and power requirements of the netlist.
- circuit elements that frequently communicate with each other are placed in close proximity in order to reduce the delay of signals and power required during signal transmission.
- Clock tree synthesis is the process of inserting clock delay cells in the netlist for meeting clock skew, area, and power constraints. Routing is the process of connecting the circuit elements of the netlist.
- a delay calculator calculates the delay of signal paths based on a timing library.
- the signal paths include both clock and data paths.
- the timing library includes information such as circuit element delay values, interconnecting wires delay values (net delays), and circuit element setup and hold times. Typically, the delay values of the circuit elements and the net delays are estimated delay values.
- the netlist also includes non-critical signal paths, which are signal paths that generally are well within timing parameters. Examples of such signal paths include false paths, multi-cycle paths, and signal paths that include circuit elements for receiving asynchronous clock signals, i.e., a signal path between asynchronous clock paths.
- An example of a false path is a signal path in which changes in an input signal to a source circuit element of the signal path do not affect an output signal of a destination circuit element of the signal path.
- a multi-cycle path is a signal path that requires more than one clock cycle for transmission of a signal therethrough.
- a signal path between asynchronous clock paths is a non-critical path because the netlist includes a synchronizer for synchronizing the operations of the circuit elements of the signal path. If data regarding the non-critical signal paths is not provided to the EDA tool for performing a static timing analysis (STA) of the netlist, the EDA tool analyzes the non-critical paths, which increases the time required for verifying the IC design.
- STA static timing analysis
- timing constraint file includes information indicative of the timing constraints such as asynchronous clock, false path, and multi-cycle path constraints.
- a standard delay format (SDF) file is generated based on a timing constraint file and the delay information using the EDA tool.
- the SDF file includes timing information such as the delay values of the circuit elements, the net delays, the timing constraints, the setup and hold times of the circuit elements, and the delay values of the signal paths.
- the SDF file also includes timing information that describes minimum, typical, and maximum delay values of the circuit elements and the interconnecting wires.
- Gate level simulation is performed by the EDA tool for determining whether the netlist meets the timing requirements based on the SDF file. Based on the GLS, the different steps of the IC design process may be re-performed to meet various requirements such as area, timing, and power requirements.
- the delay values of the signal paths calculated by the delay calculator also are estimated values. Only one delay value among minimum, typical, and maximum delay values for each circuit element and each interconnecting wire can be used for the GLS, which restricts the use of GLS to limited delay values or delay configurations.
- ICs experience on-chip variations, which are introduced due to process, voltage, and temperature variations.
- process variations include variation in doping level of a substrate, variation in the length and widths of the circuit elements and the interconnecting wires, and clock crosstalk.
- the delay values of the circuit elements and the interconnecting wires vary.
- the SDF file does not include timing margins in the delay values of the circuit elements and interconnecting wires. As timing constraints in the timing constraint file are provided by the IC designer, some of the timing constraints may not be valid.
- GLS is pattern dependent and hence, a transition in a signal may not lie within a setup and hold time margin (hereinafter referred to as “setup and hold time window”) around a clock edge of a clock signal.
- setup and hold time window a setup and hold time margin
- a critical signal path propagating the signal may not be verified correctly using the GLS and hence, the timing constraints in the timing constraint file may not be verified. Therefore, the GLS does not ensure that the IC will operate at its desired clock frequency.
- STA is performed by the EDA tool for a detailed timing analysis to determine whether the netlist meets the timing requirements based on the SDF.
- the STA is a topographical analysis of the netlist and does not consider the functionality of the circuit elements and hence depends on the SDF for timing constraints. Thus, in STA, signal paths corresponding to the timing constraints are not analyzed and hence, signal paths corresponding to invalid timing constraints are not verified. Further, STA considers on-chip variations by applying de-rating factors to the signal paths. Thus, a signal path that was validated during GLS may violate setup and hold times in STA and be identified as a critical path.
- the GLS One known technique to hasten the GLS is to generate a partial timing model of the IC design.
- the partial timing model includes timing information of the circuit elements of the IC design some, but not all, signal paths in the IC design, and the other circuit elements of the netlist are delay annotated with a zero delay value.
- the EDA tool performs the GLS using the partial timing model. Although this technique helps in reducing the time required for performing GLS, it fails to perform a complete verification of the timing constraints for the IC design.
- FIG. 1 is a schematic block diagram of an EDA tool for verifying timing constraints of a netlist that is indicative of an integrated circuit design in accordance with an embodiment of the present invention
- FIG. 2A is a schematic block diagram of a first two-stage AND gate in accordance with an embodiment of the present invention
- FIG. 2B is a schematic block diagram of a second two-stage AND gate in accordance with an embodiment of the present invention.
- FIGS. 3A, 3B, and 3C are schematic block diagrams of multiple signal paths in a gate level netlist in accordance with an embodiment of the present invention.
- FIG. 4 is a timing diagram illustrating an operation of a signal path of the multiple signal paths of FIG. 3C in accordance with an embodiment of the present invention.
- FIGS. 5A, 5B and 5C are a flow chart illustrating a method for verifying timing constraints of the netlist of FIG. 1 using the EDA tool of FIG. 1 in accordance with an embodiment of the present invention.
- multiplexer has been abbreviated as a mux and the term de-multiplexer has been abbreviated as a demux.
- an electronic design automation (EDA) tool for verifying timing constraints of a netlist that is indicative of an integrated circuit (IC) design.
- the EDA tool includes a memory and a processor in communication with the memory.
- the memory stores a register transfer level (RTL) code of the IC design and a timing constraint file.
- the timing constraint file includes asynchronous clock, false path, and multi-cycle path constraints.
- the processor generates the netlist based on the RTL code.
- the netlist includes a plurality of logic cells and a plurality of clock delay cells that form a plurality of clock paths, a plurality of false paths, and a plurality of multi-cycle paths.
- the processor receives the timing constraint file from the memory.
- the processor inserts a plurality of buffer cells in the netlist.
- the processor inserts at least one first buffer cell of the plurality of buffer cells for each logic cell of the plurality of logic cells in the netlist.
- the at least one first buffer cell and corresponding logic cell form a two-stage logic cell.
- the processor identifies at least one clock path of the plurality of clock paths based on the asynchronous clock constraints and inserts at least one second buffer cell into the at least one clock path.
- the processor identifies at least one false path of the plurality of false paths based on the false path constraints.
- the processor inserts at least one third buffer cell into the at least one false path.
- the processor identifies at least one multi-cycle path of the plurality of multi-cycle paths based on the multi-cycle path constraints.
- the processor inserts at least one fourth buffer cell into the at least one multi-cycle path.
- the processor delay annotates the plurality of logic cells and the plurality of clock delay cells with a zero delay value.
- the processor delay annotates the first, second, third, and fourth buffer cells with first, second, third, and fourth delay values, respectively.
- the processor generates a modeled SDF file.
- the processor stores the modeled standard delay format file in the memory.
- the processor performs a GLS using the modeled SDF file for verifying the asynchronous clock, false path, and multi-cycle path constraints.
- the present invention provides a method for verifying timing constraints of a netlist that is indicative of an IC design using an EDA tool.
- the EDA tool includes a memory and a processor in communication with the memory.
- the memory stores register transfer level (RTL) code of the IC design and a timing constraint file.
- the timing constraint file includes asynchronous clock, false path, and multi-cycle path constraints.
- the netlist is generated based on the RTL code.
- the netlist includes a plurality of logic cells and a plurality of clock delay cells that form a plurality of clock paths, a plurality of false paths, and a plurality of multi-cycle paths.
- the timing constraint file is received by the processor from the memory.
- a plurality of buffer cells is inserted in the netlist.
- At least one first buffer cell of the plurality of buffer cells is inserted into the netlist for each logic cell of the plurality of logic cells.
- the at least one first buffer cell and corresponding logic cell form a two-stage logic cell.
- At least one clock path of the plurality of clock paths is identified based on the asynchronous clock constraints and at least one second buffer cell is inserted into the at least one clock path.
- At least one false path of the plurality of false paths is identified based on the false path constraints and at least one third buffer cell is inserted into the at least one false path.
- At least one multi-cycle path of the plurality of multi-cycle paths is identified based on the multi-cycle path constraints and at least one fourth buffer cell is inserted into the at least one multi-cycle path.
- the logic cells and the clock delay cells are delay annotated with a zero delay value, while the first, second, third, and fourth buffer cells are delay annotated with respective first, second, third, and fourth delay values.
- a modeled SDF file is generated and stored in the memory. Then GLS is performed using the modeled SDF file for verifying the asynchronous clock, false path, and multi-cycle path constraints.
- Various embodiments of the present invention provide a system and method for verifying timing constraints of a netlist that is indicative of an IC design using an EDA tool.
- the EDA tool includes a memory for storing RTL code of the IC design and a timing constraint file.
- the EDA tool further includes a processor in communication with the memory.
- the processor generates a netlist based on the RTL code.
- the netlist includes a plurality of logic cells and a plurality of clock delay cells.
- the processor inserts a first buffer cell for each respective logic cell in the netlist.
- the processor identifies at least one clock path of a plurality of clock paths, at least one false path of a plurality of false paths, and at least one multi-cycle path of a plurality of multi-cycle paths based on the timing constraints and inserts at least one second, at least one third, and at least one fourth buffer cell into the at least one clock path, the at least one false path, and the at least one multi-cycle path, respectively.
- the processor delay annotates the clock delay cells and the logic cells with a zero delay value, and delay annotates the at least one first, the at least one second, the at least one third, and the at least one fourth buffer cells with respective first, second, third, and fourth delay values.
- the processor generates a modeled SDF file and performs GLS based on the modeled SDF file for verifying the timing constraints.
- the processor updates the modeled SDF file if the timing constraints are not valid and stores the updated SDF file.
- the processor generates the modeled SDF file such that delay information of circuit elements such as the logic cells, the clock delay cells, and buffer cells of the netlist include timing margins in the delay values of the circuit elements and interconnecting wires.
- the timing margins that account for on-chip variations.
- the delay information may include delay values of the circuit elements, delay values of the interconnecting wires (hereinafter referred to as “net delays”), and setup and hold times of the circuit elements.
- the delay information includes timing margins, the time required for designing an IC, i.e., the design cycle time is reduced. Further, during GLS, invalid timing constraints are identified and the modeled SDF file is updated.
- the EDA tool 100 includes a memory 102 and a processor 104 in communication with the memory 102 .
- the memory 102 receives and stores a RTL file or RTL code 106 of the IC design and a timing constraint file 108 .
- the RTL code 106 may include RTL code of an IC design that includes digital logic elements, digital memory elements, or a combination thereof. Examples of digital logic elements include an AND gate, an OR gate, a NOT gate, a NOR gate, a NAND gate, an XOR gate, an XNOR gate, and/or a combinational logic circuit that includes a combination of the above-mentioned gates.
- the timing constraint file 108 includes timing constraints such as asynchronous clock, false path, and multi-cycle path constraints.
- the timing constraints of the timing constraint file 108 may be provided by an IC designer.
- the memory 102 also is used to store a technology library 110 .
- the technology library 110 comprises instances of the digital memory elements and digital logic elements.
- the processor 104 and the memory 102 comprise a computer system that can range from a stand-alone personal computer to a network of processors and memories, to a mainframe system.
- the computer system must be able to run verification tools that can simulate digital and analog circuits, such as IncisiveTM Unified Simulator (IUS) by Cadence Design Systems, Inc.
- IUS IncisiveTM Unified Simulator
- Such tools and computer systems are known to those of skill in the art.
- Examples of the IC design include microprocessor, microcontroller unit (MCU), system-on-chip (SoC), and application specific IC (ASIC) designs.
- the processor 104 reads the RTL code 106 from the memory 102 and generates a corresponding gate level netlist 112 .
- the netlist 112 includes a plurality of logic cells, interconnecting wires, and a plurality of clock delay cells that form a plurality of clock paths, a plurality of false paths, and a plurality of multi-cycle paths. Examples of a logic cell include a flip-flop, a latch, an AND gate, an OR gate, a NOR gate, a NAND gate, an XOR gate, an XNOR gate, a NOT gate, or a combination thereof.
- the processor 104 identifies the logic cells and inserts a plurality of buffer cells into the netlist 112 . In one embodiment, the processor 104 inserts a buffer cell at each output terminal of each of the logic cells, thereby modifying the logic cells to generate corresponding two-stage logic cells. In another embodiment, the processor 104 inserts a buffer cell at each input terminal of each of the logic cells, which also forms two-stage logic cells.
- the processor 104 identifies one or more clock paths of the clock paths in the netlist 112 based on the corresponding asynchronous clock constraints. Subsequently, the processor 104 inserts a first buffer cell in at least one clock path of the identified clock paths. In one embodiment, the processor 104 inserts a first buffer cell in each identified clock path. However, the delay values for each of the first buffer cells may be different.
- the processor 104 identifies a false path of the false paths in the netlist 112 based on the corresponding false path constraint. Subsequently, the processor 104 inserts a second buffer cell in the identified false path. In one embodiment, the processor 104 inserts a second buffer cell into each identified false path. However, the delay values for each of the second buffer cells may be different.
- the processor 104 further identifies a multi-cycle path of the multi-cycle paths in the netlist 112 based on the corresponding asynchronous multi-cycle path constraint. Subsequently, the processor 104 inserts a third buffer cell into the identified multi-cycle path. In one embodiment, the processor 104 inserts a third buffer cell into each identified multi-cycle path. However, the delay values for each of the third buffer cell may be different.
- the processor 104 delay annotates the logic cells and the clock delay cells with a zero delay value.
- the logic cells of the two-stage logic cells only represent the functionality executed by the logic cells while transmitting signals.
- the buffer cells of the two-stage logic cells only represent the delay introduced by the logic cells in the signals while transmitting the signals through corresponding two-stage logic cells.
- the processor 104 may further delay annotate the interconnecting wires (not shown) of the netlist 112 with the zero delay value, thereby reducing net delays to zero.
- the processor 104 delay annotates the plurality of buffer cells with corresponding delay values.
- the delay values describe delays introduced by corresponding buffer cells in transmitting a signal therethrough. In one embodiment, the delay values are provided by the IC designer.
- the processor 104 delay annotates the first, second, and third buffer cells with first, second, and third delay values, respectively.
- the first, second, and third delay values are selected such that any invalid timing constraint in the timing constraint file 108 will be identified during a gate level simulation (GLS).
- the first delay value describes delay introduced in propagating a signal through a signal path between clock paths corresponding to the asynchronous clock path constraint.
- the second delay value represents delay introduced in propagating a signal through a signal path corresponding to the false path constraint.
- the third delay value represents the delay introduced in transmitting a signal thorough a signal path corresponding to the multi-cycle path constraint.
- the first, second, and third delay values are substantially equal to a time period corresponding to first, second, and third design frequencies, respectively, of the IC design.
- the first, second, and third design frequencies lie in an operating frequency range of the IC design.
- the second design frequency is the lowest design frequency of the operating frequency range for identifying the validity of the false path constraint.
- the second design frequency is swept over the operating frequency range from the maximum frequency to the lowest frequency of the operating frequency range to ensure the validity of the false path constraint.
- one or more buffer cells can be inserted in a signal path.
- the processor 104 delay annotates the one or more buffer cells such that the delay values of the one or more buffer cells inserted in the signal path equals the delay in transmitting a signal through the signal path.
- the processor 104 generates a modeled standard delay format (SDF) file 114 .
- the modeled SDF file 114 includes delay values of the logic cells, the delay values of the plurality of buffer cells, and the delay values of the first, second, and third buffer cells.
- the modeled SDF file 114 further includes information indicative of the timing constraints.
- the modeled SDF file 114 further includes delay values of the signal paths of the netlist 112 and setup and hold times of flip-flops of the netlist 112 .
- the signal path delay values are calculated by the processor 104 using a timing library (not shown) stored in the memory 102 .
- the processor 104 inserts the plurality of buffer cells, the first buffer cell, the second buffer cell, and the third buffer cell into the netlist 112 . It will be understood by those of skill in the art that the processor 104 modifies the netlist 112 for inserting the plurality of buffer cells, the first buffer cell, the second buffer cell, and the third buffer cell in the netlist 112 . It will be further understood by those of skill in the art that the processor 104 may store a modified netlist and perform operations on the modified netlist.
- the processor 104 performs GLS using the modeled SDF file 114 .
- the processor 104 applies input vectors to the netlist 112 .
- Frequencies of each clock signal in the netlist 112 are varied over the operating frequency range.
- the operating frequency range includes design frequencies over which the IC design is intended to operate and includes minimum and maximum design frequencies.
- the processor 104 identifies the asynchronous clock constraint as invalid. If the asynchronous clock constraint is valid, delay annotating the first buffer cell with the first delay value does not affect the functioning of the netlist 112 . Thus, the time spent in detecting the presence of a synchronizer to mitigate setup and hold violations due to asynchronous clock paths may be reduced, i.e., there is no necessity of detecting the presence of synchronizers in the RTL code 106 or the netlist 112 . Thus, the processor 104 correctly identifies the invalid asynchronous clock constraints.
- the processor 104 identifies the invalid false path constraints.
- the processor 104 identifies the invalid multi-cycle path constraints.
- FIG. 2A illustrates a first two-stage AND gate 200 a in accordance with one embodiment of the present invention.
- the first two-stage AND gate 200 a includes a first AND gate 202 and a fourth buffer cell 204 .
- the fourth buffer cell 204 is inserted by the processor 104 at an output terminal of the first AND gate 202 , i.e., the fourth buffer cell 204 is inserted by the processor 104 such that an input terminal of the fourth buffer cell 204 is connected to the output terminal of the first AND gate 202 .
- FIG. 2B illustrates a second two-stage AND gate 200 b in accordance with another embodiment of the present invention.
- the second two-stage AND gate 200 b includes the first AND gate 202 and fifth and sixth buffer cells 206 and 208 .
- the fifth buffer cell 206 is inserted by the processor 104 at a first input terminal of the first AND gate 202 , i.e., the fifth buffer cell 206 is inserted by the processor 104 such that an output terminal of the fifth buffer cell 206 is connected to the first input terminal of the first AND gate 202 .
- the sixth buffer cell 208 is inserted by the processor 104 at a second input terminal of the first AND gate 202 , i.e., the sixth buffer cell 208 is inserted by the processor 104 such that an output terminal of the sixth buffer cell 208 is connected to the second input terminal of the first AND gate 202 .
- the second two-stage AND gate 200 b is functionally similar to the first two-stage AND gate 200 a .
- the processor 104 inserts buffer cells at either input or output terminals of the logic cells, thereby modifying the logic cells to generate corresponding two-stage logic cells.
- FIGS. 3A, 3B, and 3C illustrate schematic block diagrams of multiple signal paths in a gate level netlist 300 in accordance with embodiments of the present invention.
- the netlist 300 includes first and second clock paths and a logic cell module 302 that receives first and second clock signals (V CLK _ 1 and V CLK _ 2 ).
- the logic module cell 302 may include one or more logic cells.
- the first and second clock paths are identified by the processor 104 based on an asynchronous clock constraint that is included in the timing constraint file 108 .
- the first and second clock signals are generated from the same source and hence, the logic module cell 302 does not include any synchronizer to synchronize operations of circuit elements of the signal path between the first and second clock paths.
- a seventh buffer cell 304 is inserted by the processor 104 in the second clock path. The seventh buffer cell 304 skews the second clock path with respect to the first clock path.
- the netlist 300 includes first and second muxes 306 and 308 and eighth and ninth buffer cells 310 and 312 .
- the first mux 306 has first and second input terminals for receiving first and second input signals (V IN 1 and V IN _ 2 ), respectively, a select terminal for receiving a select signal (V SELECT ) and an output terminal for outputting a first intermediate signal (V INT _ 1 ).
- the eighth buffer cell 310 has an input terminal connected to the output terminal for receiving the first intermediate signal (V INT _ 3 ) and an output terminal for outputting a buffered first intermediate signal (V BUF INT 1 ).
- the eighth buffer cell 310 is inserted by the processor 104 at the output terminal of the first mux 306 .
- the first mux 306 and the eighth buffer cell 310 form a two-stage first mux 314 .
- the second mux 308 has a first input terminal for receiving a third input signal (V IN _ 3 ) and a second input terminal connected to the output terminal of the eighth buffer cell 310 the for receiving the buffered first intermediate signal (V BCF _ INT _ 1 ).
- the second mux 308 has a select terminal for receiving the select signal (V SELECT ) and an output terminal for outputting a first output signal (V OUT _ 1 ).
- the ninth buffer cell 312 has an input terminal connected to the output terminal of the second mux 308 for receiving the first output signal (V OUT _ 1 ) and an output terminal for outputting a buffered first output signal (V BUF _ 1 ).
- the ninth buffer cell 312 is inserted by the processor 104 at the output terminal of the second mux 308 .
- the second mux 308 and the ninth buffer cell 312 form a two-stage second mux 316 .
- the first input signal (V IN _ 1 ) is generated by a source flip-flop (not shown) and the buffered first output signal (V BUF _ INT _ 1 ) is received by a destination flip-flop (not shown).
- the first mux 306 When the select signal (V SELECT ) is logic low, the first mux 306 outputs the first input signal (V IN 13 1 ) as the first intermediate signal (V INT _ 1 ).
- the eighth buffer cell 310 outputs the first input signal (V IN _ 1 ) as the buffered first intermediate signal (V BUF _ INT _ 1 ).
- the second mux 308 does not output the first input signal (V IN _ 1 ) as the first output signal (V OUT _ 1 ).
- the select signal (V SELECT ) has to be logic low for the second mux 308 to output the first input signal (V IN _ 1 ) as the first output signal (V OUR _ 1 ). This is a contradiction and hence, the signal path from the first input terminal of the first mux 306 to the output terminal of the second mux 308 is a false path.
- the netlist 300 includes a first clock delay cell 318 , a first flip-flop 320 , a tenth buffer cell 322 , a second AND gate 324 , a eleventh buffer cell 326 , an XOR gate 328 , a twelfth buffer cell 330 , a second clock delay cell 332 , a second flip-flop 334 , and a thirteenth buffer cell 336 .
- the first flip-flop 320 has an input terminal for receiving a fourth input signal (V IN _ 4 ), a clock terminal for receiving a third clock signal (V CLK _ 3 ) by way of the first clock delay cell 318 , and an output terminal for outputting a second intermediate signal (V INT _ 2 ).
- the tenth buffer cell 322 has an input terminal connected to the output terminal of the first flip-flop 320 for receiving the second intermediate signal (V INT _ 2 ) and an output terminal for outputting a buffered second intermediate signal (V RLF _ NT _ 2 ).
- the tenth buffer cell 322 is inserted by the processor 104 at the output terminal of the first flip-flop 320 .
- the first flip-flop 320 and the tenth buffer cell 322 form a two-stage first flip-flop 338 .
- the second AND gate 324 has a first input terminal connected to the output terminal of the tenth buffer cell 322 for receiving the buffered second intermediate signal ( BUF _ INT _ 2 ) and a second input terminal for receiving a fifth input signal (V IN 5 ).
- the second AND gate 324 has an output terminal for outputting a third intermediate signal (V INT _ 3 ).
- the eleventh buffer cell 326 has an input terminal connected to the output terminal of the second AND gate 324 for receiving the third intermediate signal (V INT _ 3 ) and an output terminal for outputting a buffered third intermediate signal (V BUF _ INT _ 3 ).
- the eleventh buffer cell 326 is inserted by the processor 104 at the output terminal of the second AND gate 324 .
- the second AND gate 324 and the eleventh buffer cell 326 form a third two-stage AND gate 340 .
- the XOR gate 328 has a first input terminal connected to the output terminal of the eleventh buffer cell 326 for receiving the buffered third intermediate signal V BUF _ INT _ 3 ) and a second input terminal for receiving a sixth input signal (V IN 6 ).
- the XOR gate 328 has an output terminal for outputting a fourth intermediate signal (V INT _ 4 ).
- the twelfth buffer cell 330 has an input terminal connected to the output terminal of the XOR gate 328 for receiving the fourth intermediate signal (V INT _ 4 ) and an output terminal for outputting a buffered fourth intermediate signal (V BUF _ INT _ 4 ).
- the twelfth buffer cell 330 is inserted by the processor 104 at the output terminal of the XOR gate 328 .
- the XOR gate 328 and the twelfth buffer cell 330 form a two-stage XOR gate 342 .
- the second flip-flop 334 has an input terminal connected to the output terminal of the twelfth buffer cell 330 for receiving the buffered fourth intermediate signal (V BUF _ INT _ 4 ) and a clock terminal for receiving the third clock signal (V CLK _ 3 ) by way of the second clock delay cell 332 .
- the second flip-flop 334 has an output terminal for outputting a second output signal (V OUT _ 2 ).
- the thirteenth buffer cell 336 has an input terminal connected to the output terminal of the second flip-flop 334 for receiving the second output signal (V INT _ 2 ) and an output terminal for outputting a buffered second output signal (V BUF _ OUT _ 2 ).
- the thirteenth buffer cell 336 is inserted by the processor 104 at the output terminal of the second flip-flop 334 .
- the second flip-flop 334 and the thirteenth buffer cell 336 form a two-stage second flip-flop 344 .
- the netlist 300 is operated at a design frequency of 3.2 Megahertz (MHz).
- the delay values of the first mux 306 , the second mux 308 , the first flip-flop 320 , the second AND gate 324 , the XOR gate 328 , and the second flip-flop 334 are 11 nanosecond (ns), 11 ns, 4 ns, 3 ns, 3 ns, and 4 ns, respectively.
- the setup and hold times of the second flip-flop 334 are 2 nanoseconds.
- the estimated variation in delay value of the signal path from the first input terminal of the first mux 306 to an output terminal of the ninth buffer cell 312 due to on chip variation is 290 ns.
- the estimated variation due to on chip variations in delay value of the signal path from the input terminal of the first flip-flop 320 to the output terminal of the twelfth buffer cell 330 is 300 ns.
- the processor 104 delay annotates the first and second clock delay cells 318 and 322 with the zero delay value.
- the processor 104 delay annotates the first mux 306 , the second mux 308 , the first flip-flop 320 , the second AND gate 324 , the XOR gate 328 , and the second flip-flop 334 each with the zero delay value.
- the processor 104 delay annotates the interconnecting wires in the netlist 300 with the zero delay value.
- the processor 104 delay annotates the seventh buffer cell 304 with a delay value of 10 ns.
- the processor 104 delay annotates the eighth buffer cell 310 , the ninth buffer cell 312 , the tenth buffer cell 322 , the eleventh buffer cell 326 , the twelfth buffer cell 330 , and the thirteenth buffer cell 336 with delay values of 156 ns, 156 ns, 104 ns, 104 ns, 104 ns, and 104 ns, respectively.
- timing margins in the delay values of the eighth buffer cell 310 , the ninth buffer cell 312 , the tenth buffer cell 322 , the eleventh buffer cell 326 , the twelfth buffer cell 330 , and the thirteenth buffer cell 336 are set by the processor 104 by considering the effects of on-chip variations on the operation of the netlist 300 .
- the delay value of the seventh buffer cell 304 is such that a transition in a signal in the signal path between the first and second clock signals (V CLK _ 1 and V CLK _ 2 ) lies in the setup and hold time window around a clock edge of the second clock signal (V CLK _ 2 ).
- the processor 104 identifies corresponding asynchronous clock constraint as invalid.
- the false path cannot be sensitized and hence, the first output signal (V OUT _ 1 ) is stable even when the first input signal (V IN _ 1 ) undergoes a transition. Thus, the false path does not cause any timing violation and the processor 104 identifies corresponding false path constraint as valid.
- FIG. 4 a timing diagram illustrating the operation of a signal path of the multiple signal paths of FIG. 3C in accordance with an embodiment of the present invention is shown.
- the signal path corresponds to the multi-cycle path constraint.
- the frequency of the third clock signal is 3.2 MHz.
- the third clock signal (V CLK _ 3 ) is at logic high.
- the fourth, fifth, and sixth input signals are at logic high, logic high, and logic low, respectively.
- the buffered second intermediate signal (V BUF _ INT _ 2 ) toggles from logic low to logic high.
- the third clock signal toggles from logic high state to logic low.
- the buffered third intermediate signal (V BUF _ INT _ 3 ) toggles from logic low to logic high.
- the buffered second output signal (V BUF _ OUT _ 2 ) toggles from logic low to logic high.
- the transition of the buffered second output signal (V BUF _ OUT _ 2 ) lies in a setup and hold time window around a clock edge of the third clock signal (V CLK _ 3 ), thereby resulting in timing violations.
- the processor 104 identifies corresponding multi-cycle path constraint as invalid.
- the netlist 112 generated by the processor 104 based on the RTL code 106 includes the first and second clock paths of FIG. 3A , the logic cell module 302 , first mux 306 , the second mux 308 , the first clock delay cell 318 , the first flip-flop 320 , the second AND gate 324 , the XOR gate 328 , the second clock delay cell 332 , and the second flip-flop 334 .
- the netlist 112 does not include the seventh buffer cell 304 , the eighth buffer cell 310 , the ninth buffer cell 312 , the tenth buffer cell 322 , the eleventh buffer cell 326 , the twelfth buffer cell 330 , and the thirteenth buffer cell 336 .
- the processor 104 modifies the netlist 112 by inserting the seventh buffer cell 304 , the eighth buffer cell 310 , the ninth buffer cell 312 , the tenth buffer cell 322 , the eleventh buffer cell 326 , the twelfth buffer cell 330 , and the thirteenth buffer cell 336 and generates the netlist 300 .
- the processor 104 receives the RTL code 106 from the memory 102 and generates corresponding netlist 112 .
- the processor 104 identifies the first and second clock paths in the netlist 112 based on corresponding asynchronous clock constraint and inserts the seventh buffer cell 304 in the second clock path.
- the processor 104 identifies the false path in the netlist 112 based on corresponding false path constraint and inserts the eighth buffer cell 310 at the output terminal of the first mux 306 .
- the processor 104 inserts the ninth buffer cell 312 at the output terminal of the second mux 308 .
- the processor 104 identifies the multi-cycle path in the netlist 112 based on corresponding multi-cycle path constraint.
- the processor 104 inserts the tenth buffer cell 322 at the output terminal of the first flip-flop 320 .
- the processor 104 inserts the eleventh buffer cell 326 at the output terminal of the second AND gate 324 .
- the processor 104 inserts the twelfth buffer cell 330 at the output terminal of the XOR gate 328 .
- the processor 104 inserts the thirteenth buffer cell 336 at the output terminal of the second flip-flop 334 .
- the processor 104 modifies the netlist 112 and generates the netlist 300 .
- the processor 104 delay annotates the first mux 306 , the second mux 308 , the first clock delay cell 318 , the first flip-flop 320 , the second AND gate 324 , the XOR gate 328 , the second clock delay cell 332 , and the second flip-flop 334 in the netlist 300 with the zero delay value.
- the processor 104 further delay annotates the interconnecting wires in the netlist 300 with the zero delay value.
- the processor 104 delay annotates the seventh buffer cell 304 , the eighth buffer cell 310 , the ninth buffer cell 312 , the tenth buffer cell 322 , the eleventh buffer cell 326 , the twelfth buffer cell 330 , and the thirteenth buffer cell 336 in the netlist 300 with corresponding delay values. Subsequently, the processor 104 generates the modeled SDF file 114 .
- the modeled SDF file 114 includes information indicative of the asynchronous clock constraint, the false path constraint, and the multi-cycle path constraint.
- the modeled SDF file 114 further includes the delay values of the first mux 306 , the second mux 308 , the first clock delay cell 318 , the first flip-flop 320 , the second AND gate 324 , the XOR gate 328 , the second clock delay cell 332 , the second flip-flop 334 , and the interconnecting wires of the netlist 300 .
- the modeled SDF file 114 further includes the delay values of the seventh buffer cell 304 , the eighth buffer cell 310 , the ninth buffer cell 312 , the tenth buffer cell 322 , the eleventh buffer cell 326 , the twelfth buffer cell 330 , and the thirteenth buffer cell 336 of the netlist 300 .
- the processor 104 stores the modeled SDF file 114 in the memory 102 .
- the processor 104 performs the GLS based on the modeled SDF file 114 .
- the processor 104 identifies the asynchronous clock constraint and the false path constraint as valid. If the processor 104 identifies the multi-cycle path constraint as invalid, the processor 104 updates the modeled SDF file 114 .
- the updated SDF file (not shown) is then stored in the memory 102 .
- the processor 104 identifies all false paths, all clock paths, and all multi-cycle paths based on the timing constraints in the timing constraint file 108 for verifying the timing constraints. It will be understood by those skilled in the art that the processor 104 identifies missing constraints along with invalid timing constraints in the timing constraint file 108 .
- the processor 104 generates the modeled SDF file 114 based on the timing constraints.
- the processor 104 generates the modeled SDF file 114 such that the delay information of circuit elements such as the logic cells, the clock delay cells, and buffer cells include timing margins in the delay values of the circuit elements and interconnecting wires.
- the timing margins are indicative of variations in the delay values that are introduced due to on-chip variations.
- the delay information includes timing margins, the time required for designing an IC based on the IC design is reduced, i.e., the design cycle time is reduced. Further, invalid and missing timing constraints are identified and the modeled SDF file 114 is updated.
- the processor 104 includes timing margins in the delay values of the buffer cells inserted in the netlist 112 based on the estimated delay values of the signal paths. Therefore, it is not necessary to perform on-chip variation analysis.
- the processor 104 identifies the invalid timing constraints and missing timing constraints in the timing constraint file 108 , thereby reducing the time required for verifying the IC design. As the processor 104 identifies invalid asynchronous clock constraints, identifying the presence of a synchronizer in the netlist 112 is not necessary, thereby further reducing the time of the IC design cycle.
- FIG. 5 a flow chart illustrating a method for verifying the timing constraints of the netlist 112 that is indicative of the IC design using the EDA tool 100 in accordance with an embodiment of the present invention is shown.
- the processor 104 generates the netlist 112 based on the RTL code 106 of the IC design.
- the processor 104 receives the timing constraint file 108 from the memory 102 .
- the processor 104 inserts the plurality of buffer cells in the netlist 112 .
- the processor 104 identifies one or more clock paths in the netlist 112 based on the asynchronous clock constraint.
- the processor 104 inserts the first buffer cell in the one or more clock paths.
- the processor 104 identifies the false path in the netlist 112 based to the false path constraint.
- the processor 104 inserts the second buffer cell in the false path.
- the processor 104 identifies the multi-cycle path in the netlist 112 based on the multi-cycle path constraint.
- the processor 104 inserts the third buffer cell in the multi-cycle path.
- the processor 104 delay annotates the plurality of logic cells and the plurality of clock delay cells with the zero delay value.
- the processor 104 delay annotates the plurality of buffer cells with corresponding delay values. The processor 104 further delay annotates the first, second, and third buffer cells with first, second, and third delay values.
- the processor 104 generates the modeled SDF file 114 .
- the processor 104 performs the GLS based on the modeled SDF file 114 .
- the processor 104 checks to determine whether the timing constraints are correct based on the GLS.
- the processor 104 executes step 530 .
- the processor 104 updates the modeled SDF file 114 .
- the processor 104 stores an updated SDF file in the memory 102 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
- The present invention generally relates to electronic design automation (EDA) tools, and more particularly to an EDA tool for verifying timing constraints of an integrated circuit (IC) design.
- Integrated circuits (ICs) including system-on-chips (SoCs) integrate various digital and sometimes analog elements on a single chip. With advancements in semiconductor technology, the operational speed of ICs is increasing and more and more functions are being added to the ICs by increasing the number of circuit elements. This has led to an increase in the complexity of the ICs, thereby leading to a decrease in the yield of the ICs. Thus, testing and verifying a design during the design stage has become increasingly important.
- Testing and verification are performed by an EDA tool. In the front-end design stage, the operation of the IC design is described using a hardware description language (HDL) such as Verilog and very high speed integrated circuit (VHSIC) hardware description language (VHDL), and a register transfer level (RTL) file or RTL code is generated that is representative of the IC design. The RTL code is synthesized by the EDA tool to generate a corresponding gate level netlist that is indicative of the IC design and describes the operation of the IC design at the gate level using circuit elements such as logic cells, buffer cells, and clock delay cells from a technology library and interconnections among the circuit elements.
- After generation of the netlist, placement, clock tree synthesis, and routing operations are performed. Placement is the process of assigning non-overlapping areas of the netlist to the circuit elements to reduce the area and power requirements of the netlist. Usually the circuit elements that frequently communicate with each other are placed in close proximity in order to reduce the delay of signals and power required during signal transmission.
- Clock tree synthesis is the process of inserting clock delay cells in the netlist for meeting clock skew, area, and power constraints. Routing is the process of connecting the circuit elements of the netlist. A delay calculator calculates the delay of signal paths based on a timing library. The signal paths include both clock and data paths. The timing library includes information such as circuit element delay values, interconnecting wires delay values (net delays), and circuit element setup and hold times. Typically, the delay values of the circuit elements and the net delays are estimated delay values.
- The netlist also includes non-critical signal paths, which are signal paths that generally are well within timing parameters. Examples of such signal paths include false paths, multi-cycle paths, and signal paths that include circuit elements for receiving asynchronous clock signals, i.e., a signal path between asynchronous clock paths. An example of a false path is a signal path in which changes in an input signal to a source circuit element of the signal path do not affect an output signal of a destination circuit element of the signal path. A multi-cycle path is a signal path that requires more than one clock cycle for transmission of a signal therethrough. A signal path between asynchronous clock paths is a non-critical path because the netlist includes a synchronizer for synchronizing the operations of the circuit elements of the signal path. If data regarding the non-critical signal paths is not provided to the EDA tool for performing a static timing analysis (STA) of the netlist, the EDA tool analyzes the non-critical paths, which increases the time required for verifying the IC design.
- During the design stage, designers provide timing constraints required to test the netlist by way of a timing constraint file. The timing constraints corresponding to false paths, multi-cycle paths, and signal paths between asynchronous clock paths are known as false path constraints, multi-cycle path constraints, and asynchronous clock path constraints, respectively. The timing constraint file includes information indicative of the timing constraints such as asynchronous clock, false path, and multi-cycle path constraints. A standard delay format (SDF) file is generated based on a timing constraint file and the delay information using the EDA tool. The SDF file includes timing information such as the delay values of the circuit elements, the net delays, the timing constraints, the setup and hold times of the circuit elements, and the delay values of the signal paths. The SDF file also includes timing information that describes minimum, typical, and maximum delay values of the circuit elements and the interconnecting wires.
- Gate level simulation (GLS) is performed by the EDA tool for determining whether the netlist meets the timing requirements based on the SDF file. Based on the GLS, the different steps of the IC design process may be re-performed to meet various requirements such as area, timing, and power requirements.
- As the delay values of the circuit elements and the net delays are estimated values, the delay values of the signal paths calculated by the delay calculator also are estimated values. Only one delay value among minimum, typical, and maximum delay values for each circuit element and each interconnecting wire can be used for the GLS, which restricts the use of GLS to limited delay values or delay configurations.
- Further, ICs experience on-chip variations, which are introduced due to process, voltage, and temperature variations. Examples of process variations include variation in doping level of a substrate, variation in the length and widths of the circuit elements and the interconnecting wires, and clock crosstalk. Due to the on-chip variations, the delay values of the circuit elements and the interconnecting wires vary. The SDF file does not include timing margins in the delay values of the circuit elements and interconnecting wires. As timing constraints in the timing constraint file are provided by the IC designer, some of the timing constraints may not be valid. Further, GLS is pattern dependent and hence, a transition in a signal may not lie within a setup and hold time margin (hereinafter referred to as “setup and hold time window”) around a clock edge of a clock signal. Thus, a critical signal path propagating the signal may not be verified correctly using the GLS and hence, the timing constraints in the timing constraint file may not be verified. Therefore, the GLS does not ensure that the IC will operate at its desired clock frequency.
- STA is performed by the EDA tool for a detailed timing analysis to determine whether the netlist meets the timing requirements based on the SDF. The STA is a topographical analysis of the netlist and does not consider the functionality of the circuit elements and hence depends on the SDF for timing constraints. Thus, in STA, signal paths corresponding to the timing constraints are not analyzed and hence, signal paths corresponding to invalid timing constraints are not verified. Further, STA considers on-chip variations by applying de-rating factors to the signal paths. Thus, a signal path that was validated during GLS may violate setup and hold times in STA and be identified as a critical path.
- Signal paths identified as critical paths during STA are analyzed to identify the validity of the identified critical paths, which is time consuming. If the netlist does not meet the timing requirements, the steps of the IC design process are re-performed. Thus, the whole process consumes many engineering hours. Thus, it is very beneficial to verify the timing constraint file at an early stage and also to generate an SDF file that includes on-chip violation delay information.
- One known technique to hasten the GLS is to generate a partial timing model of the IC design. The partial timing model includes timing information of the circuit elements of the IC design some, but not all, signal paths in the IC design, and the other circuit elements of the netlist are delay annotated with a zero delay value. The EDA tool performs the GLS using the partial timing model. Although this technique helps in reducing the time required for performing GLS, it fails to perform a complete verification of the timing constraints for the IC design.
- Therefore, it would be advantageous to have a system and method that verifies timing constraints of an IC design represented by a netlist at a very early stage of the IC design.
- The following detailed description of the preferred embodiments of the present invention will be better understood when read in conjunction with the appended drawings. The present invention is illustrated by way of example, and not limited by the accompanying figures, in which like references indicate similar elements.
-
FIG. 1 is a schematic block diagram of an EDA tool for verifying timing constraints of a netlist that is indicative of an integrated circuit design in accordance with an embodiment of the present invention; -
FIG. 2A is a schematic block diagram of a first two-stage AND gate in accordance with an embodiment of the present invention; -
FIG. 2B is a schematic block diagram of a second two-stage AND gate in accordance with an embodiment of the present invention; -
FIGS. 3A, 3B, and 3C are schematic block diagrams of multiple signal paths in a gate level netlist in accordance with an embodiment of the present invention; -
FIG. 4 is a timing diagram illustrating an operation of a signal path of the multiple signal paths ofFIG. 3C in accordance with an embodiment of the present invention; and -
FIGS. 5A, 5B and 5C are a flow chart illustrating a method for verifying timing constraints of the netlist of FIG. 1 using the EDA tool ofFIG. 1 in accordance with an embodiment of the present invention. - The detailed description of the appended drawings is intended as a description of the currently preferred embodiments of the present invention, and is not intended to represent the only form in which the present invention may be practiced. It is to be understood that the same or equivalent functions may be accomplished by different embodiments that are intended to be encompassed within the spirit and scope of the present invention. As used herein, the term multiplexer has been abbreviated as a mux and the term de-multiplexer has been abbreviated as a demux.
- In an embodiment of the present invention, an electronic design automation (EDA) tool for verifying timing constraints of a netlist that is indicative of an integrated circuit (IC) design is provided. The EDA tool includes a memory and a processor in communication with the memory. The memory stores a register transfer level (RTL) code of the IC design and a timing constraint file. The timing constraint file includes asynchronous clock, false path, and multi-cycle path constraints. The processor generates the netlist based on the RTL code. The netlist includes a plurality of logic cells and a plurality of clock delay cells that form a plurality of clock paths, a plurality of false paths, and a plurality of multi-cycle paths. The processor receives the timing constraint file from the memory. The processor inserts a plurality of buffer cells in the netlist. The processor inserts at least one first buffer cell of the plurality of buffer cells for each logic cell of the plurality of logic cells in the netlist. The at least one first buffer cell and corresponding logic cell form a two-stage logic cell. The processor identifies at least one clock path of the plurality of clock paths based on the asynchronous clock constraints and inserts at least one second buffer cell into the at least one clock path. The processor identifies at least one false path of the plurality of false paths based on the false path constraints. The processor inserts at least one third buffer cell into the at least one false path. The processor identifies at least one multi-cycle path of the plurality of multi-cycle paths based on the multi-cycle path constraints. The processor inserts at least one fourth buffer cell into the at least one multi-cycle path. The processor delay annotates the plurality of logic cells and the plurality of clock delay cells with a zero delay value. The processor delay annotates the first, second, third, and fourth buffer cells with first, second, third, and fourth delay values, respectively. The processor generates a modeled SDF file. The processor stores the modeled standard delay format file in the memory. The processor performs a GLS using the modeled SDF file for verifying the asynchronous clock, false path, and multi-cycle path constraints.
- In another embodiment, the present invention provides a method for verifying timing constraints of a netlist that is indicative of an IC design using an EDA tool. The EDA tool includes a memory and a processor in communication with the memory. The memory stores register transfer level (RTL) code of the IC design and a timing constraint file. The timing constraint file includes asynchronous clock, false path, and multi-cycle path constraints. The netlist is generated based on the RTL code. The netlist includes a plurality of logic cells and a plurality of clock delay cells that form a plurality of clock paths, a plurality of false paths, and a plurality of multi-cycle paths. The timing constraint file is received by the processor from the memory. A plurality of buffer cells is inserted in the netlist. At least one first buffer cell of the plurality of buffer cells is inserted into the netlist for each logic cell of the plurality of logic cells. The at least one first buffer cell and corresponding logic cell form a two-stage logic cell. At least one clock path of the plurality of clock paths is identified based on the asynchronous clock constraints and at least one second buffer cell is inserted into the at least one clock path. At least one false path of the plurality of false paths is identified based on the false path constraints and at least one third buffer cell is inserted into the at least one false path. At least one multi-cycle path of the plurality of multi-cycle paths is identified based on the multi-cycle path constraints and at least one fourth buffer cell is inserted into the at least one multi-cycle path. The logic cells and the clock delay cells are delay annotated with a zero delay value, while the first, second, third, and fourth buffer cells are delay annotated with respective first, second, third, and fourth delay values. A modeled SDF file is generated and stored in the memory. Then GLS is performed using the modeled SDF file for verifying the asynchronous clock, false path, and multi-cycle path constraints.
- Various embodiments of the present invention provide a system and method for verifying timing constraints of a netlist that is indicative of an IC design using an EDA tool. The EDA tool includes a memory for storing RTL code of the IC design and a timing constraint file. The EDA tool further includes a processor in communication with the memory. The processor generates a netlist based on the RTL code. The netlist includes a plurality of logic cells and a plurality of clock delay cells. The processor inserts a first buffer cell for each respective logic cell in the netlist. The processor identifies at least one clock path of a plurality of clock paths, at least one false path of a plurality of false paths, and at least one multi-cycle path of a plurality of multi-cycle paths based on the timing constraints and inserts at least one second, at least one third, and at least one fourth buffer cell into the at least one clock path, the at least one false path, and the at least one multi-cycle path, respectively. The processor delay annotates the clock delay cells and the logic cells with a zero delay value, and delay annotates the at least one first, the at least one second, the at least one third, and the at least one fourth buffer cells with respective first, second, third, and fourth delay values. The processor generates a modeled SDF file and performs GLS based on the modeled SDF file for verifying the timing constraints.
- Based on the GLS, the processor updates the modeled SDF file if the timing constraints are not valid and stores the updated SDF file. The processor generates the modeled SDF file such that delay information of circuit elements such as the logic cells, the clock delay cells, and buffer cells of the netlist include timing margins in the delay values of the circuit elements and interconnecting wires. The timing margins that account for on-chip variations. The delay information may include delay values of the circuit elements, delay values of the interconnecting wires (hereinafter referred to as “net delays”), and setup and hold times of the circuit elements. As the delay information includes timing margins, the time required for designing an IC, i.e., the design cycle time is reduced. Further, during GLS, invalid timing constraints are identified and the modeled SDF file is updated.
- Referring now to
FIG. 1 , an electronic design automation (EDA)tool 100 in accordance with an embodiment of the present invention is shown. TheEDA tool 100 includes amemory 102 and aprocessor 104 in communication with thememory 102. Thememory 102 receives and stores a RTL file orRTL code 106 of the IC design and atiming constraint file 108. TheRTL code 106 may include RTL code of an IC design that includes digital logic elements, digital memory elements, or a combination thereof. Examples of digital logic elements include an AND gate, an OR gate, a NOT gate, a NOR gate, a NAND gate, an XOR gate, an XNOR gate, and/or a combinational logic circuit that includes a combination of the above-mentioned gates. Examples of digital memory elements include a flip-flop, a latch, a shift-register, a multiplexer (hereinafter referred to as mux), and a demultiplexer (hereinafter referred to as demux). Thetiming constraint file 108 includes timing constraints such as asynchronous clock, false path, and multi-cycle path constraints. The timing constraints of thetiming constraint file 108 may be provided by an IC designer. - The
memory 102 also is used to store atechnology library 110. Thetechnology library 110 comprises instances of the digital memory elements and digital logic elements. - The
processor 104 and thememory 102 comprise a computer system that can range from a stand-alone personal computer to a network of processors and memories, to a mainframe system. The computer system must be able to run verification tools that can simulate digital and analog circuits, such as Incisive™ Unified Simulator (IUS) by Cadence Design Systems, Inc. Such tools and computer systems are known to those of skill in the art. Examples of the IC design include microprocessor, microcontroller unit (MCU), system-on-chip (SoC), and application specific IC (ASIC) designs. - The
processor 104 reads theRTL code 106 from thememory 102 and generates a correspondinggate level netlist 112. Thenetlist 112 includes a plurality of logic cells, interconnecting wires, and a plurality of clock delay cells that form a plurality of clock paths, a plurality of false paths, and a plurality of multi-cycle paths. Examples of a logic cell include a flip-flop, a latch, an AND gate, an OR gate, a NOR gate, a NAND gate, an XOR gate, an XNOR gate, a NOT gate, or a combination thereof. - The
processor 104 identifies the logic cells and inserts a plurality of buffer cells into thenetlist 112. In one embodiment, theprocessor 104 inserts a buffer cell at each output terminal of each of the logic cells, thereby modifying the logic cells to generate corresponding two-stage logic cells. In another embodiment, theprocessor 104 inserts a buffer cell at each input terminal of each of the logic cells, which also forms two-stage logic cells. - The
processor 104 identifies one or more clock paths of the clock paths in thenetlist 112 based on the corresponding asynchronous clock constraints. Subsequently, theprocessor 104 inserts a first buffer cell in at least one clock path of the identified clock paths. In one embodiment, theprocessor 104 inserts a first buffer cell in each identified clock path. However, the delay values for each of the first buffer cells may be different. - The
processor 104 identifies a false path of the false paths in thenetlist 112 based on the corresponding false path constraint. Subsequently, theprocessor 104 inserts a second buffer cell in the identified false path. In one embodiment, theprocessor 104 inserts a second buffer cell into each identified false path. However, the delay values for each of the second buffer cells may be different. - The
processor 104 further identifies a multi-cycle path of the multi-cycle paths in thenetlist 112 based on the corresponding asynchronous multi-cycle path constraint. Subsequently, theprocessor 104 inserts a third buffer cell into the identified multi-cycle path. In one embodiment, theprocessor 104 inserts a third buffer cell into each identified multi-cycle path. However, the delay values for each of the third buffer cell may be different. - The
processor 104 delay annotates the logic cells and the clock delay cells with a zero delay value. Thus, the logic cells of the two-stage logic cells only represent the functionality executed by the logic cells while transmitting signals. The buffer cells of the two-stage logic cells only represent the delay introduced by the logic cells in the signals while transmitting the signals through corresponding two-stage logic cells. Theprocessor 104 may further delay annotate the interconnecting wires (not shown) of thenetlist 112 with the zero delay value, thereby reducing net delays to zero. Theprocessor 104 delay annotates the plurality of buffer cells with corresponding delay values. The delay values describe delays introduced by corresponding buffer cells in transmitting a signal therethrough. In one embodiment, the delay values are provided by the IC designer. - The
processor 104 delay annotates the first, second, and third buffer cells with first, second, and third delay values, respectively. The first, second, and third delay values are selected such that any invalid timing constraint in thetiming constraint file 108 will be identified during a gate level simulation (GLS). In one embodiment, the first delay value describes delay introduced in propagating a signal through a signal path between clock paths corresponding to the asynchronous clock path constraint. The second delay value represents delay introduced in propagating a signal through a signal path corresponding to the false path constraint. The third delay value represents the delay introduced in transmitting a signal thorough a signal path corresponding to the multi-cycle path constraint. In another embodiment, the first, second, and third delay values are substantially equal to a time period corresponding to first, second, and third design frequencies, respectively, of the IC design. The first, second, and third design frequencies lie in an operating frequency range of the IC design. In one embodiment, the second design frequency is the lowest design frequency of the operating frequency range for identifying the validity of the false path constraint. In another embodiment, the second design frequency is swept over the operating frequency range from the maximum frequency to the lowest frequency of the operating frequency range to ensure the validity of the false path constraint. - It will be understood by those of skill in the art that one or more buffer cells can be inserted in a signal path. The
processor 104 delay annotates the one or more buffer cells such that the delay values of the one or more buffer cells inserted in the signal path equals the delay in transmitting a signal through the signal path. - Subsequent to insertion of the buffer cells and delay annotation, the
processor 104 generates a modeled standard delay format (SDF)file 114. The modeled SDF file 114 includes delay values of the logic cells, the delay values of the plurality of buffer cells, and the delay values of the first, second, and third buffer cells. The modeled SDF file 114 further includes information indicative of the timing constraints. The modeled SDF file 114 further includes delay values of the signal paths of thenetlist 112 and setup and hold times of flip-flops of thenetlist 112. In one embodiment, the signal path delay values are calculated by theprocessor 104 using a timing library (not shown) stored in thememory 102. - The
processor 104 inserts the plurality of buffer cells, the first buffer cell, the second buffer cell, and the third buffer cell into thenetlist 112. It will be understood by those of skill in the art that theprocessor 104 modifies thenetlist 112 for inserting the plurality of buffer cells, the first buffer cell, the second buffer cell, and the third buffer cell in thenetlist 112. It will be further understood by those of skill in the art that theprocessor 104 may store a modified netlist and perform operations on the modified netlist. - Subsequently, the
processor 104 performs GLS using the modeledSDF file 114. Theprocessor 104 applies input vectors to thenetlist 112. Frequencies of each clock signal in thenetlist 112 are varied over the operating frequency range. The operating frequency range includes design frequencies over which the IC design is intended to operate and includes minimum and maximum design frequencies. - If the asynchronous clock constraint is invalid, a transition of a signal in a signal path between corresponding clock paths lies in a setup and hold time window around a clock edge and hence, the
processor 104 identifies the asynchronous clock constraint as invalid. If the asynchronous clock constraint is valid, delay annotating the first buffer cell with the first delay value does not affect the functioning of thenetlist 112. Thus, the time spent in detecting the presence of a synchronizer to mitigate setup and hold violations due to asynchronous clock paths may be reduced, i.e., there is no necessity of detecting the presence of synchronizers in theRTL code 106 or thenetlist 112. Thus, theprocessor 104 correctly identifies the invalid asynchronous clock constraints. - If the false path constraint is invalid, a transition in a signal in corresponding false path, i.e., the false path corresponding to the invalid false path constraint lies in a setup and hold time window around a clock edge, thereby resulting in timing violations. If the false path constraint is valid, delay annotating the second buffer cell with the second delay value does not have any effect on the functioning of the
netlist 112. Thus, theprocessor 104 identifies the invalid false path constraints. - If the multi-cycle path constraint is invalid, a transition in an output signal of corresponding multi-cycle path occurs in a time period that is substantially equal to a time period of a clock signal and lies in a setup and hold time window around a clock edge. The clock signal has a frequency in the operating frequency range. If the multi-cycle path constraint is invalid, delay annotating the third buffer cell with the third delay value does not have any effect on the functioning of the
netlist 112. Thus, theprocessor 104 identifies the invalid multi-cycle path constraints. -
FIG. 2A illustrates a first two-stage ANDgate 200 a in accordance with one embodiment of the present invention. The first two-stage ANDgate 200 a includes a first ANDgate 202 and afourth buffer cell 204. Thefourth buffer cell 204 is inserted by theprocessor 104 at an output terminal of the first ANDgate 202, i.e., thefourth buffer cell 204 is inserted by theprocessor 104 such that an input terminal of thefourth buffer cell 204 is connected to the output terminal of the first ANDgate 202. -
FIG. 2B illustrates a second two-stage ANDgate 200 b in accordance with another embodiment of the present invention. The second two-stage ANDgate 200 b includes the first ANDgate 202 and fifth and 206 and 208. Thesixth buffer cells fifth buffer cell 206 is inserted by theprocessor 104 at a first input terminal of the first ANDgate 202, i.e., thefifth buffer cell 206 is inserted by theprocessor 104 such that an output terminal of thefifth buffer cell 206 is connected to the first input terminal of the first ANDgate 202. Thesixth buffer cell 208 is inserted by theprocessor 104 at a second input terminal of the first ANDgate 202, i.e., thesixth buffer cell 208 is inserted by theprocessor 104 such that an output terminal of thesixth buffer cell 208 is connected to the second input terminal of the first ANDgate 202. The second two-stage ANDgate 200 b is functionally similar to the first two-stage ANDgate 200 a. Thus, theprocessor 104 inserts buffer cells at either input or output terminals of the logic cells, thereby modifying the logic cells to generate corresponding two-stage logic cells. -
FIGS. 3A, 3B, and 3C illustrate schematic block diagrams of multiple signal paths in agate level netlist 300 in accordance with embodiments of the present invention. - In
FIG. 3A , thenetlist 300 includes first and second clock paths and alogic cell module 302 that receives first and second clock signals (VCLK _ 1 and VCLK _ 2). Thelogic module cell 302 may include one or more logic cells. The first and second clock paths are identified by theprocessor 104 based on an asynchronous clock constraint that is included in thetiming constraint file 108. The first and second clock signals are generated from the same source and hence, thelogic module cell 302 does not include any synchronizer to synchronize operations of circuit elements of the signal path between the first and second clock paths. Aseventh buffer cell 304 is inserted by theprocessor 104 in the second clock path. Theseventh buffer cell 304 skews the second clock path with respect to the first clock path. - In
FIG. 3B , thenetlist 300 includes first and 306 and 308 and eighth andsecond muxes 310 and 312. Theninth buffer cells first mux 306 has first and second input terminals for receiving first and second input signals (VIN 1 and VIN _ 2), respectively, a select terminal for receiving a select signal (VSELECT) and an output terminal for outputting a first intermediate signal (VINT _ 1). - The
eighth buffer cell 310 has an input terminal connected to the output terminal for receiving the first intermediate signal (VINT _ 3) and an output terminal for outputting a buffered first intermediate signal (VBUF INT 1). Theeighth buffer cell 310 is inserted by theprocessor 104 at the output terminal of thefirst mux 306. Thefirst mux 306 and theeighth buffer cell 310 form a two-stagefirst mux 314. - The
second mux 308 has a first input terminal for receiving a third input signal (VIN _ 3) and a second input terminal connected to the output terminal of theeighth buffer cell 310 the for receiving the buffered first intermediate signal (VBCF _ INT _ 1). Thesecond mux 308 has a select terminal for receiving the select signal (VSELECT) and an output terminal for outputting a first output signal (VOUT _ 1). - The
ninth buffer cell 312 has an input terminal connected to the output terminal of thesecond mux 308 for receiving the first output signal (VOUT _ 1) and an output terminal for outputting a buffered first output signal (VBUF _ 1). Theninth buffer cell 312 is inserted by theprocessor 104 at the output terminal of thesecond mux 308. Thesecond mux 308 and theninth buffer cell 312 form a two-stagesecond mux 316. - In one embodiment, the first input signal (VIN _ 1) is generated by a source flip-flop (not shown) and the buffered first output signal (VBUF _ INT _ 1) is received by a destination flip-flop (not shown).
- When the select signal (VSELECT) is logic low, the
first mux 306 outputs the first input signal (VIN13 1) as the first intermediate signal (VINT _ 1). Theeighth buffer cell 310 outputs the first input signal (VIN _ 1) as the buffered first intermediate signal (VBUF _ INT _ 1). However, thesecond mux 308 does not output the first input signal (VIN _ 1) as the first output signal (VOUT _ 1). The select signal (VSELECT) has to be logic low for thesecond mux 308 to output the first input signal (VIN _ 1) as the first output signal (VOUR _ 1). This is a contradiction and hence, the signal path from the first input terminal of thefirst mux 306 to the output terminal of thesecond mux 308 is a false path. - In
FIG. 3C , thenetlist 300 includes a firstclock delay cell 318, a first flip-flop 320, atenth buffer cell 322, a second ANDgate 324, aeleventh buffer cell 326, anXOR gate 328, atwelfth buffer cell 330, a secondclock delay cell 332, a second flip-flop 334, and athirteenth buffer cell 336. - The first flip-
flop 320 has an input terminal for receiving a fourth input signal (VIN _ 4), a clock terminal for receiving a third clock signal (VCLK _ 3) by way of the firstclock delay cell 318, and an output terminal for outputting a second intermediate signal (VINT _ 2). - The
tenth buffer cell 322 has an input terminal connected to the output terminal of the first flip-flop 320 for receiving the second intermediate signal (VINT _ 2) and an output terminal for outputting a buffered second intermediate signal (VRLF _ NT _ 2). Thetenth buffer cell 322 is inserted by theprocessor 104 at the output terminal of the first flip-flop 320. The first flip-flop 320 and thetenth buffer cell 322 form a two-stage first flip-flop 338. - The second AND
gate 324 has a first input terminal connected to the output terminal of thetenth buffer cell 322 for receiving the buffered second intermediate signal (BUF _ INT _ 2) and a second input terminal for receiving a fifth input signal (VIN 5). The second ANDgate 324 has an output terminal for outputting a third intermediate signal (VINT _ 3). - The
eleventh buffer cell 326 has an input terminal connected to the output terminal of the second ANDgate 324 for receiving the third intermediate signal (VINT _ 3) and an output terminal for outputting a buffered third intermediate signal (VBUF _ INT _ 3). Theeleventh buffer cell 326 is inserted by theprocessor 104 at the output terminal of the second ANDgate 324. The second ANDgate 324 and theeleventh buffer cell 326 form a third two-stage ANDgate 340. - The
XOR gate 328 has a first input terminal connected to the output terminal of theeleventh buffer cell 326 for receiving the buffered third intermediate signal VBUF _ INT _ 3) and a second input terminal for receiving a sixth input signal (VIN 6). TheXOR gate 328 has an output terminal for outputting a fourth intermediate signal (VINT _ 4). - The
twelfth buffer cell 330 has an input terminal connected to the output terminal of theXOR gate 328 for receiving the fourth intermediate signal (VINT _ 4) and an output terminal for outputting a buffered fourth intermediate signal (VBUF _ INT _ 4). Thetwelfth buffer cell 330 is inserted by theprocessor 104 at the output terminal of theXOR gate 328. TheXOR gate 328 and thetwelfth buffer cell 330 form a two-stage XOR gate 342. - The second flip-
flop 334 has an input terminal connected to the output terminal of thetwelfth buffer cell 330 for receiving the buffered fourth intermediate signal (VBUF _ INT _ 4) and a clock terminal for receiving the third clock signal (VCLK _ 3) by way of the secondclock delay cell 332. The second flip-flop 334 has an output terminal for outputting a second output signal (VOUT _ 2). - The
thirteenth buffer cell 336 has an input terminal connected to the output terminal of the second flip-flop 334 for receiving the second output signal (VINT _ 2) and an output terminal for outputting a buffered second output signal (VBUF _ OUT _ 2). Thethirteenth buffer cell 336 is inserted by theprocessor 104 at the output terminal of the second flip-flop 334. The second flip-flop 334 and thethirteenth buffer cell 336 form a two-stage second flip-flop 344. - In the example, the
netlist 300 is operated at a design frequency of 3.2 Megahertz (MHz). The delay values of thefirst mux 306, thesecond mux 308, the first flip-flop 320, the second ANDgate 324, theXOR gate 328, and the second flip-flop 334 are 11 nanosecond (ns), 11 ns, 4 ns, 3 ns, 3 ns, and 4 ns, respectively. The setup and hold times of the second flip-flop 334 are 2 nanoseconds. The estimated variation in delay value of the signal path from the first input terminal of thefirst mux 306 to an output terminal of theninth buffer cell 312 due to on chip variation is 290 ns. The estimated variation due to on chip variations in delay value of the signal path from the input terminal of the first flip-flop 320 to the output terminal of thetwelfth buffer cell 330 is 300 ns. - In one embodiment, the
processor 104 delay annotates the first and second 318 and 322 with the zero delay value. Theclock delay cells processor 104 delay annotates thefirst mux 306, thesecond mux 308, the first flip-flop 320, the second ANDgate 324, theXOR gate 328, and the second flip-flop 334 each with the zero delay value. Theprocessor 104 delay annotates the interconnecting wires in thenetlist 300 with the zero delay value. - The
processor 104 delay annotates theseventh buffer cell 304 with a delay value of 10 ns. Theprocessor 104 delay annotates theeighth buffer cell 310, theninth buffer cell 312, thetenth buffer cell 322, theeleventh buffer cell 326, thetwelfth buffer cell 330, and thethirteenth buffer cell 336 with delay values of 156 ns, 156 ns, 104 ns, 104 ns, 104 ns, and 104 ns, respectively. Hence, timing margins in the delay values of theeighth buffer cell 310, theninth buffer cell 312, thetenth buffer cell 322, theeleventh buffer cell 326, thetwelfth buffer cell 330, and thethirteenth buffer cell 336 are set by theprocessor 104 by considering the effects of on-chip variations on the operation of thenetlist 300. - The delay value of the
seventh buffer cell 304 is such that a transition in a signal in the signal path between the first and second clock signals (VCLK _ 1 and VCLK _ 2) lies in the setup and hold time window around a clock edge of the second clock signal (VCLK _ 2). Thus, theprocessor 104 identifies corresponding asynchronous clock constraint as invalid. - As the
netlist 300 ofFIG. 3B includes a valid false path, the false path cannot be sensitized and hence, the first output signal (VOUT _ 1) is stable even when the first input signal (VIN _ 1) undergoes a transition. Thus, the false path does not cause any timing violation and theprocessor 104 identifies corresponding false path constraint as valid. - Referring now to
FIG. 4 , a timing diagram illustrating the operation of a signal path of the multiple signal paths ofFIG. 3C in accordance with an embodiment of the present invention is shown. The signal path corresponds to the multi-cycle path constraint. In an example, the frequency of the third clock signal is 3.2 MHz. At time T1, the third clock signal (VCLK _ 3) is at logic high. The fourth, fifth, and sixth input signals are at logic high, logic high, and logic low, respectively. At time T2, the buffered second intermediate signal (VBUF _ INT _ 2) toggles from logic low to logic high. At time instance T3, the third clock signal (VCLK _ 3) toggles from logic high state to logic low. At time T4, the buffered third intermediate signal (VBUF _ INT _ 3) toggles from logic low to logic high. At time T5, the buffered second output signal (VBUF _ OUT _ 2) toggles from logic low to logic high. The transition of the buffered second output signal (VBUF _ OUT _ 2) lies in a setup and hold time window around a clock edge of the third clock signal (VCLK _ 3), thereby resulting in timing violations. Thus, theprocessor 104 identifies corresponding multi-cycle path constraint as invalid. - The
netlist 112 generated by theprocessor 104 based on theRTL code 106 includes the first and second clock paths ofFIG. 3A , thelogic cell module 302,first mux 306, thesecond mux 308, the firstclock delay cell 318, the first flip-flop 320, the second ANDgate 324, theXOR gate 328, the secondclock delay cell 332, and the second flip-flop 334. Thenetlist 112 does not include theseventh buffer cell 304, theeighth buffer cell 310, theninth buffer cell 312, thetenth buffer cell 322, theeleventh buffer cell 326, thetwelfth buffer cell 330, and thethirteenth buffer cell 336. Theprocessor 104 modifies thenetlist 112 by inserting theseventh buffer cell 304, theeighth buffer cell 310, theninth buffer cell 312, thetenth buffer cell 322, theeleventh buffer cell 326, thetwelfth buffer cell 330, and thethirteenth buffer cell 336 and generates thenetlist 300. - In operation, the
processor 104 receives theRTL code 106 from thememory 102 and generates correspondingnetlist 112. Theprocessor 104 identifies the first and second clock paths in thenetlist 112 based on corresponding asynchronous clock constraint and inserts theseventh buffer cell 304 in the second clock path. Theprocessor 104 identifies the false path in thenetlist 112 based on corresponding false path constraint and inserts theeighth buffer cell 310 at the output terminal of thefirst mux 306. Theprocessor 104 inserts theninth buffer cell 312 at the output terminal of thesecond mux 308. Theprocessor 104 identifies the multi-cycle path in thenetlist 112 based on corresponding multi-cycle path constraint. Theprocessor 104 inserts thetenth buffer cell 322 at the output terminal of the first flip-flop 320. Theprocessor 104 inserts theeleventh buffer cell 326 at the output terminal of the second ANDgate 324. Theprocessor 104 inserts thetwelfth buffer cell 330 at the output terminal of theXOR gate 328. Theprocessor 104 inserts thethirteenth buffer cell 336 at the output terminal of the second flip-flop 334. Thus, theprocessor 104 modifies thenetlist 112 and generates thenetlist 300. - The
processor 104 delay annotates thefirst mux 306, thesecond mux 308, the firstclock delay cell 318, the first flip-flop 320, the second ANDgate 324, theXOR gate 328, the secondclock delay cell 332, and the second flip-flop 334 in thenetlist 300 with the zero delay value. Theprocessor 104 further delay annotates the interconnecting wires in thenetlist 300 with the zero delay value. Theprocessor 104 delay annotates theseventh buffer cell 304, theeighth buffer cell 310, theninth buffer cell 312, thetenth buffer cell 322, theeleventh buffer cell 326, thetwelfth buffer cell 330, and thethirteenth buffer cell 336 in thenetlist 300 with corresponding delay values. Subsequently, theprocessor 104 generates the modeledSDF file 114. The modeled SDF file 114 includes information indicative of the asynchronous clock constraint, the false path constraint, and the multi-cycle path constraint. The modeled SDF file 114 further includes the delay values of thefirst mux 306, thesecond mux 308, the firstclock delay cell 318, the first flip-flop 320, the second ANDgate 324, theXOR gate 328, the secondclock delay cell 332, the second flip-flop 334, and the interconnecting wires of thenetlist 300. The modeled SDF file 114 further includes the delay values of theseventh buffer cell 304, theeighth buffer cell 310, theninth buffer cell 312, thetenth buffer cell 322, theeleventh buffer cell 326, thetwelfth buffer cell 330, and thethirteenth buffer cell 336 of thenetlist 300. Theprocessor 104 stores the modeled SDF file 114 in thememory 102. - The
processor 104 performs the GLS based on the modeledSDF file 114. Theprocessor 104 identifies the asynchronous clock constraint and the false path constraint as valid. If theprocessor 104 identifies the multi-cycle path constraint as invalid, theprocessor 104 updates the modeledSDF file 114. The updated SDF file (not shown) is then stored in thememory 102. - It will be understood by those skilled in the art that the
processor 104 identifies all false paths, all clock paths, and all multi-cycle paths based on the timing constraints in thetiming constraint file 108 for verifying the timing constraints. It will be understood by those skilled in the art that theprocessor 104 identifies missing constraints along with invalid timing constraints in thetiming constraint file 108. - Thus, the
processor 104 generates the modeled SDF file 114 based on the timing constraints. Theprocessor 104 generates the modeled SDF file 114 such that the delay information of circuit elements such as the logic cells, the clock delay cells, and buffer cells include timing margins in the delay values of the circuit elements and interconnecting wires. The timing margins are indicative of variations in the delay values that are introduced due to on-chip variations. As the delay information includes timing margins, the time required for designing an IC based on the IC design is reduced, i.e., the design cycle time is reduced. Further, invalid and missing timing constraints are identified and the modeled SDF file 114 is updated. - The
processor 104 includes timing margins in the delay values of the buffer cells inserted in thenetlist 112 based on the estimated delay values of the signal paths. Therefore, it is not necessary to perform on-chip variation analysis. Theprocessor 104 identifies the invalid timing constraints and missing timing constraints in thetiming constraint file 108, thereby reducing the time required for verifying the IC design. As theprocessor 104 identifies invalid asynchronous clock constraints, identifying the presence of a synchronizer in thenetlist 112 is not necessary, thereby further reducing the time of the IC design cycle. - Referring now to
FIG. 5 , a flow chart illustrating a method for verifying the timing constraints of thenetlist 112 that is indicative of the IC design using theEDA tool 100 in accordance with an embodiment of the present invention is shown. Atstep 502, theprocessor 104 generates thenetlist 112 based on theRTL code 106 of the IC design. Atstep 504, theprocessor 104 receives the timing constraint file 108 from thememory 102. Atstep 506, theprocessor 104 inserts the plurality of buffer cells in thenetlist 112. Atstep 508, theprocessor 104 identifies one or more clock paths in thenetlist 112 based on the asynchronous clock constraint. Atstep 510, theprocessor 104 inserts the first buffer cell in the one or more clock paths. Atstep 512, theprocessor 104 identifies the false path in thenetlist 112 based to the false path constraint. Atstep 514, theprocessor 104 inserts the second buffer cell in the false path. Atstep 516, theprocessor 104 identifies the multi-cycle path in thenetlist 112 based on the multi-cycle path constraint. Atstep 518, theprocessor 104 inserts the third buffer cell in the multi-cycle path. Atstep 520, theprocessor 104 delay annotates the plurality of logic cells and the plurality of clock delay cells with the zero delay value. Atstep 522, theprocessor 104 delay annotates the plurality of buffer cells with corresponding delay values. Theprocessor 104 further delay annotates the first, second, and third buffer cells with first, second, and third delay values. Atstep 524, theprocessor 104 generates the modeledSDF file 114. Atstep 526, theprocessor 104 performs the GLS based on the modeledSDF file 114. Atstep 528, theprocessor 104 checks to determine whether the timing constraints are correct based on the GLS. Atstep 528, if theprocessor 104 determines that the timing constraints are not correct, theprocessor 104 executesstep 530. Atstep 530, theprocessor 104 updates the modeledSDF file 114. Atstep 532, theprocessor 104 stores an updated SDF file in thememory 102. - It will be understood by those of skill in the art that the same logical function may be performed by different arrangements of logic gates, or that logic circuits operate using either positive or negative logic signals. Therefore, variations in the arrangement of some of the logic gates described above should not be considered to depart from the scope of the present invention.
- No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments of the invention. As used herein, the singular forms “a,” “an,” and “the,” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including,” when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. It should be understood that, although the terms first, second, etc. and horizontal and vertical are used to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of example embodiments of the present invention. As used herein, the term “and/or,” includes any and all combinations of one or more of the associated listed items.
- While various embodiments of the present invention have been illustrated and described, it will be clear that the present invention is not limited to these embodiments only. Numerous modifications, changes, variations, substitutions, and equivalents will be apparent to those skilled in the art, without departing from the spirit and scope of the present invention, as described in the claims.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/675,752 US9449127B1 (en) | 2015-04-01 | 2015-04-01 | System for verifying timing constraints of IC design |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/675,752 US9449127B1 (en) | 2015-04-01 | 2015-04-01 | System for verifying timing constraints of IC design |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US9449127B1 US9449127B1 (en) | 2016-09-20 |
| US20160292332A1 true US20160292332A1 (en) | 2016-10-06 |
Family
ID=56896100
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/675,752 Expired - Fee Related US9449127B1 (en) | 2015-04-01 | 2015-04-01 | System for verifying timing constraints of IC design |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US9449127B1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11176299B1 (en) * | 2020-07-15 | 2021-11-16 | International Business Machines Corporation | Analysis of signal transitions in feedback circuits |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10168731B2 (en) * | 2016-07-13 | 2019-01-01 | Advanced Micro Devices, Inc. | Managing frequency changes of clock signals across different clock domains |
| US10599804B1 (en) * | 2018-11-01 | 2020-03-24 | International Business Machines Corporation | Pin cloning and subway creation on automatically generated design physical hierarchy |
| US20220180033A1 (en) * | 2020-12-04 | 2022-06-09 | Synopsys, Inc. | Identifying potential improvement opportunities for simulation performance of an integrated circuit design |
| CN112651207B (en) * | 2020-12-23 | 2023-06-02 | 中山大学 | A physical realization method and system of an asynchronous circuit |
| WO2024243770A1 (en) * | 2023-05-29 | 2024-12-05 | 华为技术有限公司 | Asynchronous circuit and implementation method therefor, chip, medium, product, and electronic device |
| CN120706332B (en) * | 2025-08-21 | 2025-11-25 | 兰州大学 | An automated integrated system from asynchronous pipeline to asynchronous circuit |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7650581B2 (en) | 2007-05-15 | 2010-01-19 | Atrenta, Inc. | Method for modeling and verifying timing exceptions |
| US7941774B2 (en) | 2008-08-04 | 2011-05-10 | Texas Instruments Incorporated | Partial timing modeling for gate level simulation |
| US8127258B2 (en) * | 2008-08-22 | 2012-02-28 | Freescale Semiconductor, Inc. | Data processing device design tool and methods |
-
2015
- 2015-04-01 US US14/675,752 patent/US9449127B1/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11176299B1 (en) * | 2020-07-15 | 2021-11-16 | International Business Machines Corporation | Analysis of signal transitions in feedback circuits |
Also Published As
| Publication number | Publication date |
|---|---|
| US9449127B1 (en) | 2016-09-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9449127B1 (en) | System for verifying timing constraints of IC design | |
| US20130179142A1 (en) | Distributed parallel simulation method and recording medium for storing the method | |
| US7506292B2 (en) | Method for clock synchronization validation in integrated circuit design | |
| US6651230B2 (en) | Method for reducing design effect of wearout mechanisms on signal skew in integrated circuit design | |
| US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
| CN104620242A (en) | Related Timing Architecture | |
| US10423742B2 (en) | Method to perform full accuracy hierarchical block level timing analysis with parameterized chip level contexts | |
| US8238190B2 (en) | Clock-gated model transformation for asynchronous testing of logic targeted for free-running, data-gated logic | |
| CN107784185B (en) | Method and device for extracting pseudo path in gate-level netlist and terminal equipment | |
| US7210109B2 (en) | Equivalence checking of scan path flush operations | |
| US7885801B2 (en) | Modeling asynchronous behavior from primary inputs and latches | |
| US12073159B2 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
| WO2023245719A1 (en) | Performance check method for timing logic element, and device | |
| CN114764555A (en) | Generation method | |
| US9305125B2 (en) | Integrated circuit design timing path verification tool | |
| US8453090B2 (en) | System and method for optimizing logic timing | |
| US9489478B2 (en) | Simplifying modes of an electronic circuit by reducing constraints | |
| US7254793B2 (en) | Latch modeling technique for formal verification | |
| US20110185335A1 (en) | Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations | |
| US7979262B1 (en) | Method for verifying connectivity of electrical circuit components | |
| US20130174107A1 (en) | Design tool for glitch removal | |
| US11270052B2 (en) | System and method of timing characterization for semiconductor circuit | |
| US9710579B1 (en) | Using smart timing models for gate level timing simulation | |
| Plassan et al. | Improving the efficiency of formal verification: the case of clock-domain crossings | |
| Sinha et al. | Advancetechnique to accompolish power aware cdc verification |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR,INC, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MISHRA, ATEET;BELWAL, SHIVA;MAHAJAN, DEEPAK;SIGNING DATES FROM 20150323 TO 20150324;REEL/FRAME:035316/0153 |
|
| AS | Assignment |
Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YORK Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0339 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YORK Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0363 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YORK Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0105 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0105 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0339 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0363 Effective date: 20150724 |
|
| AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037357/0859 Effective date: 20151207 |
|
| AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:037565/0527 Effective date: 20151207 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:037565/0510 Effective date: 20151207 |
|
| AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SUPPLEMENT TO THE SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:039138/0001 Effective date: 20160525 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040925/0001 Effective date: 20160912 Owner name: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC., NE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040925/0001 Effective date: 20160912 |
|
| AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040928/0001 Effective date: 20160622 |
|
| AS | Assignment |
Owner name: NXP USA, INC., TEXAS Free format text: MERGER;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:041144/0363 Effective date: 20161107 |
|
| AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:050744/0097 Effective date: 20190903 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVEAPPLICATION 11759915 AND REPLACE IT WITH APPLICATION11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITYINTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052915/0001 Effective date: 20160622 Owner name: NXP B.V., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052915/0001 Effective date: 20160622 |
|
| AS | Assignment |
Owner name: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVEAPPLICATION 11759915 AND REPLACE IT WITH APPLICATION11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITYINTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052917/0001 Effective date: 20160912 Owner name: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052917/0001 Effective date: 20160912 |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20240920 |