US20030188276A1 - Method and apparatus for identifying switching race conditions in a circuit design - Google Patents
Method and apparatus for identifying switching race conditions in a circuit design Download PDFInfo
- Publication number
- US20030188276A1 US20030188276A1 US10/114,545 US11454502A US2003188276A1 US 20030188276 A1 US20030188276 A1 US 20030188276A1 US 11454502 A US11454502 A US 11454502A US 2003188276 A1 US2003188276 A1 US 2003188276A1
- Authority
- US
- United States
- Prior art keywords
- switching elements
- identifying
- stacks
- logic
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Definitions
- the present invention generally relates to circuit design and specifically relates to software used to model timing of circuits or the minimum time delay through a static gate.
- PATHMILL® is a transistor-based analysis tool used to find critical paths and verify timing in semiconductor designs. Using static and mixed-level timing analysis, PATHMILL processes transistors, gates, and timing models. It also calculates timing delays, performs path searches, and checks timing requirements. PATHMILL® may analyze combinational designs containing gates, and sequential designs containing gates, latches, flip-flops, and clocks. Combinational designs are generally measured through the longest and shortest paths.
- PATHMILL® While tools such as these may be useful for the design verification process after layout, there are various shortcomings in the PATHMILL® product and other similar static timing analyzer products. For example, there is often a need to identify certain logic gates or particular combinations of logic gates. PATHMILL® may be configured to evaluate a netlist file and identify certain nodes but does not automatically identify certain configurations that may prove troublesome.
- the present invention is directed to a method for evaluating a circuit design to identify potential race conditions including the steps of identifying switching elements in a design; storing switched node pair and control node information for each of the switching elements; identifying stacks of the switching elements; storing information about the stacks of switching elements; identifying parallel connected ones of the switching elements; identifying parallel stacks; and calculating a combined switching current for the parallel switching elements and stacks.
- FIG. 1 is a block diagram of a static timing analyzer according to the prior art
- FIG. 2 is a schematic diagram of a two-input NAND gate that can be analyzed using the present invention
- FIG. 3 is a schematic diagram of a three-input NAND gate that can be analyzed using the present invention
- FIG. 4 is a schematic diagram of a two-input NOR gate that can be analyzed using the present invention
- FIG. 5 is a schematic diagram of a to AND/OR logic circuit that can be analyzed using the present invention.
- FIG. 6 is a flow diagram of a method for identifying parallel structures creating race conditions in a circuit according to an embodiment of the invention.
- the present invention may analyze circuits to determine areas where two or more inputs to a switching structure may cause the output of the structure to switch even faster than a timing tool normally assumes. That is, when two or more switching devices or elements are activated in unison, the effect is to provide a temporary increased current flow at their common outputs compared to sequential activation of the devices.
- Such switching elements or devices include, but are not limited to, Field Effect Transistors (FETs), Metal Oxide Semiconductor FETs (MOSFETs), Junction FETs (JFETs) and Metal-Semiconductor FETs (MESFETs), diodes, Bipolar Junction Transistors (BJTs including but not limited to Insulated Gate Bipolar Transistors (IGBTs)), static induction transistors, tryistors, and other switching devices and elements.
- FETs Field Effect Transistors
- MOSFETs Metal Oxide Semiconductor FETs
- JFETs Junction FETs
- MESFETs Metal-Semiconductor FETs
- IGBTs Insulated Gate Bipolar Transistors
- the invention recognizes this effect, identifies configurations of switching elements likely to produce the effect, and analyzes the configurations to identify a parameter, such as a current flow, associated with the configuration under predetermined conditions (e.g., simultaneous activation of the devices.)
- a set of configuration commands may be generated to simulate the condition and, together with the appropriate net list, may be provided to and used by a static timing analyzer to simulate the overall circuit in which the devices or elements are used.
- FIG. 1 is a block diagram of a prior art static timing analyzer program that illustrates the basic informational flow in such a system.
- PATHMILL® a system that illustrates the basic informational flow in such a system.
- Static Timing Analyzer 10 representing the static timing analyzer program.
- Surrounding block 10 are a number of other blocks that represent various input and output files and/or information.
- the static timing analyzer program may utilize configuration file 12 , a file of timing models 14 , one or more netlist files 16 , technology file 18 , and parasitics file 20 , for various input information.
- the static timing analyzer program may generate a number of different output files or other output information, including critical path report 22 , runtime log file 24 , error report 26 , software interface file 28 , and SPICE netlist 30 .
- the static timing analyzer program When started, the static timing analyzer program first processes the input netlist file(s) 16 , technology file 18 , and configuration files 12 . The information from these files is subsequently used for performing path analyses. Since the static timing analyzer programs are publicly available and marketed, their function and operation are well known and, therefore, need not be discussed in detail herein.
- static timing analyzer 10 is configured to identify the absolute worst-case delays based on any set of initial conditions as defined by configuration file 12 .
- Some configurations or conditions are not calculated as would it be cumbersome and time consuming to account for all possibilities of initial conditions.
- the invention addresses the case wherein two input signals switch at the same time and in the same direction. For example, if the inputs were both initially zero and both were switched to one, or if the inputs were both one and both were switched to zero, the total current would be different from the current produced if the switching occurred sequentially.
- a static timing analyzer is merely configured to find the worst-case delay between an input and the corresponding output. In doing so, it fixes the other input to different values when calculating the delay from the one input to the output, as is generally an acceptable technique for max time analysis, i.e., gives the longest delay.
- the circuit may display a “faster” or smaller delay through the circuit if both of the inputs switch at the same time; a static timing analyzer misses that condition.
- the invention includes a method to analyze the circuitry and to identify opportunities where, if two (or more) of the inputs switch at the same time, the coincident signal would likely result in a noticeable difference in the delay and would make switching substantially faster. Such opportunities are identified and quantified.
- a method according to the invention identifies and quantifies which inputs could be going faster and provides configuration commands to the static timing analyzer so that the circuit is analyzed appropriately.
- the configuration file provided to the static timing analyzer must specify that multiple inputs are switching at the same time.
- a gate is made up of one or more switching elements that are responsive to a control signal applied to a control node of the switching element to selectively complete and interrupt an electrical path or connection between a pair of switched nodes (i.e., a “switched node pair”) of the switching element.
- the switching element may take the form of a FET although other types and forms of switching elements (or devices) including but not limited to, BJTs and diodes, may be used and analyzed.
- the FETs act like little switches responsive to a gate control signal to turn the FET on and off.
- Different logic structures using switching elements such as FET switches occasionally have both (or multiple) switching elements turn on at the same time so as to switch the output faster than it was designed if only one of the switches operated; these configurations may be identified.
- the net list is searched to identify switches that have different gate control signal sources but have the same source and drain (or top and bottom) connections. If both switching elements turn on at the same instant (or within some propagation time prior to the output signal from one of the switching elements stabilizing), the multiple signal sourcing by the action of the pair (or triplet, etc.) of switching elements (e.g., FETs) act to enhance the signal so as to cause a driven stage to switch faster. That is, the current that is conducted through the switching elements will be initially twice as large if there are two switching elements switching at the same time, and it will be three times as large if there are three switching elements switching at the same time, and so on. Therefore, an initial step identifies switching elements (e.g., FETs) having different signals applied to their control nodes (e.g., gates in the case of FETs), but the same switched nodes (e.g., source and drain) connections.
- switching elements e.g., FETs
- the method identifies the node names that are on the gate source and the drain of each of these FETs in the circuits. If the sources and drains are the same and the gates are connected to different inputs, then the combination is identified such that, if both of the gates may be switched at the same time and the static timing analyzer would otherwise miss analyzing the combination, the configuration is flagged.
- the static timing analyzer is configured so that, when it goes through the circuit, it assumes that those gates will actually cause a faster transition then they would otherwise.
- FIG. 2 is a schematic diagram of a two-input NAND gate having an output 206 , an input signal “a” applied to “p” type FET 201 and “N” type FET 203 , and an input signal “b” applied to “P” type FET 202 and “N” type FET 204 .
- the series connection of FETs 203 and 204 require that both be “turned on” in response to signals applied at inputs a and b to pull output terminal 206 “down,” while simultaneously interrupting application of VDD to out terminal 206 by “turning off” FETs 201 and 202 .
- FET 201 and FET 202 are two “P” type FETs operational such that when a low level signal (e.g., ⁇ 0.5V) is applied to the gate, the PFET “turns on,” i.e., provides a low resistance path between source and drain electrodes. (Conversely, an “N” type or “NFET” turns on in response to a high level (e.g., 3.3V) signal applied to its gate terminal and gate structure to allow a current flow from source to drain.) Note that the “P” type FET (i.e., PFET) is depicted with a small circle on its gate indicating an inverted logic, i.e., this being a standard schematic notation.
- a low level signal e.g., ⁇ 0.5V
- FET 201 and FET 202 have the same “top” (e.g., drain) connected to VDD and the same “bottom” (i.e., sources) connected to out terminal 206 . However, the gates of FETs 201 and 202 are connected to b and a, respectively. If both “a” and “b” fall at the same time, both FET 201 and FET 202 will turn on at the same time, causing a current to flow from VDD that will cause out node to transition high from a low state.
- static timing analyzer 10 performs the analysis steps of switching “a” and “b” low separately, but it does not perform analysis of both of these switching events at the same time.
- the invention addresses this deficiency by looking at the three connections on each FET in the design; it looks at the gate (i.e., control node), source, and drain (i.e., the two switched nodes) or the “side,” the “top” and the “bottom” of each of the FETs in the design to identify if they have the same top and the same bottom, i.e., the same source and the same drain, but different gates such that there is an opportunity for enhanced switching speed resulting in a potential race condition.
- FETs must also be the same type to exhibit this speed-up effect.
- These potentially problematic configurations of switching elements e.g., FETs
- FETs are logged and maintained as a list of parallel FETs in the design.
- a set of configuration commands are then created to tell the static timing analyzer to “speed-up” this path even faster (i.e., reduce the propagation delay of switching time) when performing a minimum time analysis. Since the “drive strength” of these FETs is double, the current will be doubled of what it would be if it were just one FET, thereby decreasing a switching delay of a subsequent latch.
- FIG. 3 is a schematic diagram of three-input NAND gate.
- FETs 301 , 302 and 303 are responsive to signals at inputs a, b and c, respectively, to apply V DD to out terminal 309 when any of the signals are a logic low, while the series connection of FETs 304 , 305 and 306 interrupt a path to ground “pulling down” out terminal 309 when any (or all) of the signals are a logic high.
- FETs 301 , 302 , and 303 are connected in parallel. Thus, all three of these FET-type switching elements may turn on at the same time so that there would be three times the current at output 309 compared to the current output when only one of the FETs is turned on, assuming that the FETs are all the same size.
- the present method adds up the total switching current of the individual FETs that are identified to be in parallel and generates configuration commands to the static timing analyzer allotting the switching current of this total amount for each of the FETs. Upon identification of the parallelism in the configuration of those FETs, the method has the static timing analyzer treat that path as if there is increased current at output 309 .
- FIG. 4 is a two-input NOR circuit including parallel NFETs 401 and 402 .
- the NFETs turn “on.” So if a and b both rise at the same time, the signal at output 403 will be “pulled down” much faster than if just a switched and b stayed the same (or vice versa).
- This situation is addressed by the present method which identifies these two FETs in parallel because, as before, they have the same bottom node (ground), the same top node (output 406 ) and different gate nodes (a and b).
- the static timing analyzer can compensate for the possibility that the current may be increased if NFETs 401 and 402 are switched at the same time.
- FIG. 5 A somewhat more complex structure is shown in FIG. 5.
- FET 501 and 502 are in parallel, i.e., their common top node is V DD , their common bottom node is 509 , and the gates are “c” and “d”. If the signals applied to c and d switch at the same time, node 509 will be pulled up faster than if just “c” or “d” were switched alone. Further, if “a ” or “b” are low at the same time, output 512 will be pulled up with twice as much current as it normally would if only one of FET switched.
- the static timing analyzer is configured to calculate the delay from “c” or “d” to output 512 by performing the calculation using double the total current that would be produced by individual FETs.
- FETs 503 and 504 there are several pairs of parallelism. That is, not only are 501 and 502 parallel pairs, but so are FETs 503 and 504 . Further, there is a complex stacked arrangement in parallel at the “bottom” of the circuit as depicted in the schematic diagram. That is, the method not only addresses individual FETs in parallel, but also stacks (i.e., series connections) of FETs in parallel. Thus, FETs 505 and 507 form one stack connected to node 510 . This is a two-high stack formed by two serially connected NFETs (or PFETs).
- FETs 506 and 508 are also in a stack configuration and connected to node 511 in the middle. FETs 506 and 508 likewise form a two-high stack, the top of that stack connected to output 512 and the bottom of that stack connected to ground. Because these stacks are both two-high and have the same types of FETs and they have the same top and the same bottom, then we consider those in parallel. All the FETs in the present example are NFETs, although the invention is equally applicable to a combination of PFETs and other switching devices.
- FIG. 6 describes the overall flow of a software routine in accordance with an embodiment of the invention.
- the process moves to step 602 where all the switching elements (e.g., FETs) in the design are identified, i.e., the design is read by the software into memory.
- the design may be represented, for example, by a netlist file.
- a table is then generated at step 603 that lists the control and controlled or switched nodes (e.g., gate, source, and drain) for each switching element in the design.
- Stacks of FETs are identified in step 604 .
- the stacks may be any number of switching elements or FETs tall, e.g., two tall, three tall, etc.
- the stacks are designated by how tall they are (i.e., how many FETs are in them), what are the gates, and to what the top and the bottom of the stack is connected. So then, in step 605 , the stack information is stored in a table similar to the table used for the gates in step 602 .
- parallel sets are identified by comparing every FET in the design to every other FET.
- One way to perform the comparison is to represent all FETs in a hash based on their source and drain.
- the hash will distribute the FET listings so as to identify all the FETs that have the same source and drain.
- Each of the FETs that have the same source and drain are examined, and FETs that have different gates are identified to provide a list of parallel FETs.
- step 607 a similar process is performed with the stacks in that stacks that have the same top, bottom and the same type of FETs in them, and the same number of FETs are identified. Again this list (or hash if implemented) of stacked FETs is traversed to find those stacks in which the FETs have gates that are different from one another.
- step 608 all of the parallelisms that were stored in steps 606 and 607 are retrieved and the combined current of the parallel configuration of FETs and stacks is calculated.
- the appropriate configuration commands are then provided to the static timing analysis tool at step 609 to cause it to model the circuit or subcurrent based on the increased currents that result from parallel and/or stacked FETs.
- the routine ending at 610 .
- the configuration command to accommodate the increased current may be implemented in different ways.
- a current property of each the transistors may be altered to reflect the total current through the parallelism so that when one of the FETs (or other type of switching element) switches, that FET is represented as having more current going through it.
- an FET in a parallel combination may represent an increased current source value.
- the parallel grouping of FETs may be defined to switch at the same time. In either case, the current calculations are reflected as configuration commands that work with a static timing analyzer so that, when the static timing analysis is run, the analyzer will calculate the decreased delay (i.e., faster switching time) through the circuit.
- characteristics of that FET may be different than the standard characteristics so that when the FET switches, it is treated as if it has the combined current going through it instead of just the current for that one FET.
- FET 201 and FET 202 are the same size as one another, then they have the same normal switching current. So the static timing analyzer is configured to cause FET 201 to have two times the standard current than it would normally have. That way, when the analyzer calculates the current over the path from “b” to out 206 , out 206 would switch as if both FET 201 and FET 202 were on because it has twice the switching current.
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)
- Logic Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Description
- The present invention generally relates to circuit design and specifically relates to software used to model timing of circuits or the minimum time delay through a static gate.
- Systems are presently known that use the information provided in netlists to evaluate circuit timing and other related parameters. More specifically, systems are known that perform a timing analysis of circuits using netlist files. Although the operational specifics may vary from system to system, generally such systems operate by identifying certain critical timing paths, then evaluating the circuit to determine whether timing violations may occur through the critical paths. As is known, timing specifications may be provided to such systems by way of a configuration file.
- One existing system is marketed under the name PATHMILL®, by Synopsys, Inc. PATHMILL® is a transistor-based analysis tool used to find critical paths and verify timing in semiconductor designs. Using static and mixed-level timing analysis, PATHMILL processes transistors, gates, and timing models. It also calculates timing delays, performs path searches, and checks timing requirements. PATHMILL® may analyze combinational designs containing gates, and sequential designs containing gates, latches, flip-flops, and clocks. Combinational designs are generally measured through the longest and shortest paths.
- While tools such as these may be useful for the design verification process after layout, there are various shortcomings in the PATHMILL® product and other similar static timing analyzer products. For example, there is often a need to identify certain logic gates or particular combinations of logic gates. PATHMILL® may be configured to evaluate a netlist file and identify certain nodes but does not automatically identify certain configurations that may prove troublesome.
- The present invention is directed to a method for evaluating a circuit design to identify potential race conditions including the steps of identifying switching elements in a design; storing switched node pair and control node information for each of the switching elements; identifying stacks of the switching elements; storing information about the stacks of switching elements; identifying parallel connected ones of the switching elements; identifying parallel stacks; and calculating a combined switching current for the parallel switching elements and stacks.
- FIG. 1 is a block diagram of a static timing analyzer according to the prior art;
- FIG. 2 is a schematic diagram of a two-input NAND gate that can be analyzed using the present invention;
- FIG. 3 is a schematic diagram of a three-input NAND gate that can be analyzed using the present invention;
- FIG. 4 is a schematic diagram of a two-input NOR gate that can be analyzed using the present invention;
- FIG. 5 is a schematic diagram of a to AND/OR logic circuit that can be analyzed using the present invention; and
- FIG. 6 is a flow diagram of a method for identifying parallel structures creating race conditions in a circuit according to an embodiment of the invention.
- The present invention may analyze circuits to determine areas where two or more inputs to a switching structure may cause the output of the structure to switch even faster than a timing tool normally assumes. That is, when two or more switching devices or elements are activated in unison, the effect is to provide a temporary increased current flow at their common outputs compared to sequential activation of the devices. Such switching elements or devices include, but are not limited to, Field Effect Transistors (FETs), Metal Oxide Semiconductor FETs (MOSFETs), Junction FETs (JFETs) and Metal-Semiconductor FETs (MESFETs), diodes, Bipolar Junction Transistors (BJTs including but not limited to Insulated Gate Bipolar Transistors (IGBTs)), static induction transistors, tryistors, and other switching devices and elements. The invention recognizes this effect, identifies configurations of switching elements likely to produce the effect, and analyzes the configurations to identify a parameter, such as a current flow, associated with the configuration under predetermined conditions (e.g., simultaneous activation of the devices.) A set of configuration commands may be generated to simulate the condition and, together with the appropriate net list, may be provided to and used by a static timing analyzer to simulate the overall circuit in which the devices or elements are used.
- FIG. 1, is a block diagram of a prior art static timing analyzer program that illustrates the basic informational flow in such a system. Specifically, one such system is marketed under the name PATHMILL®. At the center of the diagram is
Static Timing Analyzer 10, representing the static timing analyzer program. Surroundingblock 10 are a number of other blocks that represent various input and output files and/or information. More particularly, the static timing analyzer program may utilizeconfiguration file 12, a file oftiming models 14, one or morenetlist files 16,technology file 18, andparasitics file 20, for various input information. - In addition, the static timing analyzer program may generate a number of different output files or other output information, including
critical path report 22,runtime log file 24,error report 26,software interface file 28, and SPICEnetlist 30. When started, the static timing analyzer program first processes the input netlist file(s) 16,technology file 18, andconfiguration files 12. The information from these files is subsequently used for performing path analyses. Since the static timing analyzer programs are publicly available and marketed, their function and operation are well known and, therefore, need not be discussed in detail herein. - Conventionally,
static timing analyzer 10 is configured to identify the absolute worst-case delays based on any set of initial conditions as defined byconfiguration file 12. Thus, some configurations or conditions are not calculated as would it be cumbersome and time consuming to account for all possibilities of initial conditions. The invention addresses the case wherein two input signals switch at the same time and in the same direction. For example, if the inputs were both initially zero and both were switched to one, or if the inputs were both one and both were switched to zero, the total current would be different from the current produced if the switching occurred sequentially. - The inventors have recognized that a static timing analyzer is merely configured to find the worst-case delay between an input and the corresponding output. In doing so, it fixes the other input to different values when calculating the delay from the one input to the output, as is generally an acceptable technique for max time analysis, i.e., gives the longest delay. However, the circuit may display a “faster” or smaller delay through the circuit if both of the inputs switch at the same time; a static timing analyzer misses that condition.
- When
static timing analyzer 10 calculates a total delay from the starting latch through to the subsequent receiving latch at each stage of a circuit, it may incorrectly assume that parallel structures switch at different times. Thus, the total minimum delay calculated may be larger than the possible minimum delay. - If the actual possible minimum delay could be smaller than the delay calculated by the static timing analyzers, then there may be a race condition. Such a race condition occurs when the delay is too small. To avoid the race, a fixed amount of delay must be provided between any given pairs of latches. If the delay is below some threshold value, the resultant race condition may cause the circuitry to improperly function. Thus, the invention includes a method to analyze the circuitry and to identify opportunities where, if two (or more) of the inputs switch at the same time, the coincident signal would likely result in a noticeable difference in the delay and would make switching substantially faster. Such opportunities are identified and quantified. A method according to the invention identifies and quantifies which inputs could be going faster and provides configuration commands to the static timing analyzer so that the circuit is analyzed appropriately. When calculating the minimum delay of a circuit, the configuration file provided to the static timing analyzer must specify that multiple inputs are switching at the same time.
- The logic between latches is broken down into gates. Thus, a path from an output of one latch to the input of the next latch includes the delay through all the intervening gates along the path. Typically, a gate is made up of one or more switching elements that are responsive to a control signal applied to a control node of the switching element to selectively complete and interrupt an electrical path or connection between a pair of switched nodes (i.e., a “switched node pair”) of the switching element. In the present example, the switching element may take the form of a FET although other types and forms of switching elements (or devices) including but not limited to, BJTs and diodes, may be used and analyzed. In the case of a FET implementation of such logic gates, the FETs act like little switches responsive to a gate control signal to turn the FET on and off. Different logic structures using switching elements such as FET switches occasionally have both (or multiple) switching elements turn on at the same time so as to switch the output faster than it was designed if only one of the switches operated; these configurations may be identified.
- In particular, the net list is searched to identify switches that have different gate control signal sources but have the same source and drain (or top and bottom) connections. If both switching elements turn on at the same instant (or within some propagation time prior to the output signal from one of the switching elements stabilizing), the multiple signal sourcing by the action of the pair (or triplet, etc.) of switching elements (e.g., FETs) act to enhance the signal so as to cause a driven stage to switch faster. That is, the current that is conducted through the switching elements will be initially twice as large if there are two switching elements switching at the same time, and it will be three times as large if there are three switching elements switching at the same time, and so on. Therefore, an initial step identifies switching elements (e.g., FETs) having different signals applied to their control nodes (e.g., gates in the case of FETs), but the same switched nodes (e.g., source and drain) connections.
- In the present example of FET-based logic, the method identifies the node names that are on the gate source and the drain of each of these FETs in the circuits. If the sources and drains are the same and the gates are connected to different inputs, then the combination is identified such that, if both of the gates may be switched at the same time and the static timing analyzer would otherwise miss analyzing the combination, the configuration is flagged. In effect, the static timing analyzer, is configured so that, when it goes through the circuit, it assumes that those gates will actually cause a faster transition then they would otherwise.
- FIG. 2 is a schematic diagram of a two-input NAND gate having an
output 206, an input signal “a” applied to “p”type FET 201 and “N”type FET 203, and an input signal “b” applied to “P”type FET 202 and “N”type FET 204. The series connection ofFETs output terminal 206 “down,” while simultaneously interrupting application of VDD to out terminal 206 by “turning off”FETs FET FET -
FET 201 andFET 202 are two “P” type FETs operational such that when a low level signal (e.g., <0.5V) is applied to the gate, the PFET “turns on,” i.e., provides a low resistance path between source and drain electrodes. (Conversely, an “N” type or “NFET” turns on in response to a high level (e.g., 3.3V) signal applied to its gate terminal and gate structure to allow a current flow from source to drain.) Note that the “P” type FET (i.e., PFET) is depicted with a small circle on its gate indicating an inverted logic, i.e., this being a standard schematic notation.FET 201 andFET 202 have the same “top” (e.g., drain) connected to VDD and the same “bottom” (i.e., sources) connected to out terminal 206. However, the gates ofFETs FET 201 andFET 202 will turn on at the same time, causing a current to flow from VDD that will cause out node to transition high from a low state. - Conventionally,
static timing analyzer 10 performs the analysis steps of switching “a” and “b” low separately, but it does not perform analysis of both of these switching events at the same time. The invention addresses this deficiency by looking at the three connections on each FET in the design; it looks at the gate (i.e., control node), source, and drain (i.e., the two switched nodes) or the “side,” the “top” and the “bottom” of each of the FETs in the design to identify if they have the same top and the same bottom, i.e., the same source and the same drain, but different gates such that there is an opportunity for enhanced switching speed resulting in a potential race condition. Note that the FETs must also be the same type to exhibit this speed-up effect. These potentially problematic configurations of switching elements (e.g., FETs) are logged and maintained as a list of parallel FETs in the design. A set of configuration commands are then created to tell the static timing analyzer to “speed-up” this path even faster (i.e., reduce the propagation delay of switching time) when performing a minimum time analysis. Since the “drive strength” of these FETs is double, the current will be doubled of what it would be if it were just one FET, thereby decreasing a switching delay of a subsequent latch. - FIG. 3 is a schematic diagram of three-input NAND gate.
FETs FETs terminal 309 when any (or all) of the signals are a logic high. - As shown,
FETs output 309 compared to the current output when only one of the FETs is turned on, assuming that the FETs are all the same size. The present method adds up the total switching current of the individual FETs that are identified to be in parallel and generates configuration commands to the static timing analyzer allotting the switching current of this total amount for each of the FETs. Upon identification of the parallelism in the configuration of those FETs, the method has the static timing analyzer treat that path as if there is increased current atoutput 309. - FIG. 4 is a two-input NOR circuit including
parallel NFETs output 403 will be “pulled down” much faster than if just a switched and b stayed the same (or vice versa). This situation is addressed by the present method which identifies these two FETs in parallel because, as before, they have the same bottom node (ground), the same top node (output 406) and different gate nodes (a and b). After identifyingparallel NFETs NFETs - A somewhat more complex structure is shown in FIG. 5. This gate array provides a complex AND/OR structure implementing the Boolean equation: Out=NOT((a AND b) or (c AND d)).
FET node 509 will be pulled up faster than if just “c” or “d” were switched alone. Further, if “a ” or “b” are low at the same time,output 512 will be pulled up with twice as much current as it normally would if only one of FET switched. In this example, the static timing analyzer is configured to calculate the delay from “c” or “d” tooutput 512 by performing the calculation using double the total current that would be produced by individual FETs. - In the present example, there are several pairs of parallelism. That is, not only are501 and 502 parallel pairs, but so are
FETs FETs node 510. This is a two-high stack formed by two serially connected NFETs (or PFETs). If there are two NFETs that are in a stack that have the same top and bottom as another two-high stack of NFETs (or PFETs), then this configuration is referred to as stacks in parallel.FETs node 511 in the middle.FETs output 512 and the bottom of that stack connected to ground. Because these stacks are both two-high and have the same types of FETs and they have the same top and the same bottom, then we consider those in parallel. All the FETs in the present example are NFETs, although the invention is equally applicable to a combination of PFETs and other switching devices. Note that if “b” and “d” are both high and an analysis is performed of the path from “a” to “out”, and “a” and “c” switch on at the same time, the increased current produced will make a signal atoutput 512 fall much faster than when just one stack is switched on. The calculation for the stacks will have a net result as ifFET FETs FETs - FIG. 6 describes the overall flow of a software routine in accordance with an embodiment of the invention. Although the method is presented in terms of FETs, it is equally applicable to other types and forms of switching elements as previously described. Beginning at601, the process moves to step 602 where all the switching elements (e.g., FETs) in the design are identified, i.e., the design is read by the software into memory. The design may be represented, for example, by a netlist file. A table is then generated at
step 603 that lists the control and controlled or switched nodes (e.g., gate, source, and drain) for each switching element in the design. Stacks of FETs are identified instep 604. This is done by finding two gates of the same type where one of them has the same source as the drain of another FET so that they look like a stack. The stacks may be any number of switching elements or FETs tall, e.g., two tall, three tall, etc. When identified, the stacks are designated by how tall they are (i.e., how many FETs are in them), what are the gates, and to what the top and the bottom of the stack is connected. So then, instep 605, the stack information is stored in a table similar to the table used for the gates instep 602. Atstep 606, parallel sets are identified by comparing every FET in the design to every other FET. One way to perform the comparison is to represent all FETs in a hash based on their source and drain. The hash will distribute the FET listings so as to identify all the FETs that have the same source and drain. Each of the FETs that have the same source and drain are examined, and FETs that have different gates are identified to provide a list of parallel FETs. Instep 607, a similar process is performed with the stacks in that stacks that have the same top, bottom and the same type of FETs in them, and the same number of FETs are identified. Again this list (or hash if implemented) of stacked FETs is traversed to find those stacks in which the FETs have gates that are different from one another. If the step identifies stacks that have the same number of FETs in each other, the same type of FETs, the same top and the same bottom, then those stacks are designated as being in parallel and stored as such. Instep 608, all of the parallelisms that were stored insteps step 609 to cause it to model the circuit or subcurrent based on the increased currents that result from parallel and/or stacked FETs. The routine ending at 610. - The configuration command to accommodate the increased current may be implemented in different ways. For example, a current property of each the transistors may be altered to reflect the total current through the parallelism so that when one of the FETs (or other type of switching element) switches, that FET is represented as having more current going through it. For example, an FET in a parallel combination may represent an increased current source value. Alternatively, the parallel grouping of FETs may be defined to switch at the same time. In either case, the current calculations are reflected as configuration commands that work with a static timing analyzer so that, when the static timing analysis is run, the analyzer will calculate the decreased delay (i.e., faster switching time) through the circuit.
- Note that characteristics of that FET may be different than the standard characteristics so that when the FET switches, it is treated as if it has the combined current going through it instead of just the current for that one FET. For example, referring to FIG. 2, if we assume that
FET 201 andFET 202 are the same size as one another, then they have the same normal switching current. So the static timing analyzer is configured to causeFET 201 to have two times the standard current than it would normally have. That way, when the analyzer calculates the current over the path from “b” to out 206, out 206 would switch as if bothFET 201 andFET 202 were on because it has twice the switching current.
Claims (25)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/114,545 US6631506B1 (en) | 2002-04-02 | 2002-04-02 | Method and apparatus for identifying switching race conditions in a circuit design |
FR0304000A FR2842001B1 (en) | 2002-04-02 | 2003-04-01 | METHOD AND DEVICE FOR IDENTIFYING CONFLICT SITUATIONS IN A CIRCUIT DESIGN |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/114,545 US6631506B1 (en) | 2002-04-02 | 2002-04-02 | Method and apparatus for identifying switching race conditions in a circuit design |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030188276A1 true US20030188276A1 (en) | 2003-10-02 |
US6631506B1 US6631506B1 (en) | 2003-10-07 |
Family
ID=28453803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/114,545 Expired - Lifetime US6631506B1 (en) | 2002-04-02 | 2002-04-02 | Method and apparatus for identifying switching race conditions in a circuit design |
Country Status (2)
Country | Link |
---|---|
US (1) | US6631506B1 (en) |
FR (1) | FR2842001B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060075367A1 (en) * | 2004-10-01 | 2006-04-06 | Chan Terence W | RaceCheck: A Race Logic Ana,yzer Program for Digital Integrated Circuits |
US20070234253A1 (en) * | 2006-03-29 | 2007-10-04 | International Business Machines Corporation | Multiple mode approach to building static timing models for digital transistor circuits |
US20120216158A1 (en) * | 2010-09-21 | 2012-08-23 | International Business Machines Corporation | Strained devices, methods of manufacture and design structures |
US10740522B1 (en) | 2019-01-25 | 2020-08-11 | Samsung Electronics Co., Ltd. | Apparatus and method of operating timing analysis considering multi-input switching |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315992B2 (en) * | 2004-07-29 | 2008-01-01 | Texas Instruments Incorporated | Electro-migration (EM) and voltage (IR) drop analysis of integrated circuit (IC) designs |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5801955A (en) * | 1996-05-31 | 1998-09-01 | Mentor Graphics Corporation | Method and apparatus for removing timing hazards in a circuit design |
US6378109B1 (en) * | 1999-07-15 | 2002-04-23 | Texas Instruments Incorporated | Method of simulation for gate oxide integrity check on an entire IC |
US20030023941A1 (en) * | 2001-03-30 | 2003-01-30 | Wang Laung-Terng (L.-T.) | Computer-aided design system to automate scan synthesis at register-transfer level |
US6536019B1 (en) * | 2000-09-28 | 2003-03-18 | Verisity Design, Inc. | Race condition detection and expression |
US20030079191A1 (en) * | 1999-07-15 | 2003-04-24 | Savithri Nagaraj N. | Cell-based noise characterization and evaluation |
US6581191B1 (en) * | 1999-11-30 | 2003-06-17 | Synplicity, Inc. | Hardware debugging in a hardware description language |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4544850A (en) * | 1983-12-05 | 1985-10-01 | Gte Automatic Electric Incorporated | Race condition mediator circuit |
EP0600608B1 (en) * | 1992-10-29 | 1999-12-22 | Altera Corporation | Design verification method for programmable logic design |
US5987237A (en) * | 1997-09-02 | 1999-11-16 | Hewlett-Packard Company | Framework for rules checking |
US6470021B1 (en) * | 1998-01-27 | 2002-10-22 | Alcatel Internetworking (Pe), Inc. | Computer network switch with parallel access shared memory architecture |
US6249899B1 (en) * | 1999-03-23 | 2001-06-19 | Hewlett Packard Company | System and method for detecting pass FETs |
US6305003B1 (en) | 1999-05-26 | 2001-10-16 | Hewlett-Packard Company | System and method for propagating clock nodes in a netlist of circuit design |
-
2002
- 2002-04-02 US US10/114,545 patent/US6631506B1/en not_active Expired - Lifetime
-
2003
- 2003-04-01 FR FR0304000A patent/FR2842001B1/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5801955A (en) * | 1996-05-31 | 1998-09-01 | Mentor Graphics Corporation | Method and apparatus for removing timing hazards in a circuit design |
US6378109B1 (en) * | 1999-07-15 | 2002-04-23 | Texas Instruments Incorporated | Method of simulation for gate oxide integrity check on an entire IC |
US20030079191A1 (en) * | 1999-07-15 | 2003-04-24 | Savithri Nagaraj N. | Cell-based noise characterization and evaluation |
US6581191B1 (en) * | 1999-11-30 | 2003-06-17 | Synplicity, Inc. | Hardware debugging in a hardware description language |
US6536019B1 (en) * | 2000-09-28 | 2003-03-18 | Verisity Design, Inc. | Race condition detection and expression |
US20030023941A1 (en) * | 2001-03-30 | 2003-01-30 | Wang Laung-Terng (L.-T.) | Computer-aided design system to automate scan synthesis at register-transfer level |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060075367A1 (en) * | 2004-10-01 | 2006-04-06 | Chan Terence W | RaceCheck: A Race Logic Ana,yzer Program for Digital Integrated Circuits |
WO2006039224A2 (en) * | 2004-10-01 | 2006-04-13 | Terence Chan | Racecheck: a race logic analyzer program for digital integrated circuits |
WO2006039224A3 (en) * | 2004-10-01 | 2007-08-09 | Terence Chan | Racecheck: a race logic analyzer program for digital integrated circuits |
GB2438327A (en) * | 2004-10-01 | 2007-11-21 | Dynetix Design Solutions Inc | Racecheck:a race logic analyzer program for digital integrated circuits |
US7334203B2 (en) * | 2004-10-01 | 2008-02-19 | Dynetix Design Solutions, Inc. | RaceCheck: a race logic analyzer program for digital integrated circuits |
US20080098339A1 (en) * | 2004-10-01 | 2008-04-24 | Chan Terence W | Racecheck: a race logic analyzer program for digital integrated circuits |
US7757191B2 (en) | 2004-10-01 | 2010-07-13 | Chan Terence Wai-Kwok | Racecheck: a race logic analyzer program for digital integrated circuits |
US20070234253A1 (en) * | 2006-03-29 | 2007-10-04 | International Business Machines Corporation | Multiple mode approach to building static timing models for digital transistor circuits |
US20120216158A1 (en) * | 2010-09-21 | 2012-08-23 | International Business Machines Corporation | Strained devices, methods of manufacture and design structures |
US10740522B1 (en) | 2019-01-25 | 2020-08-11 | Samsung Electronics Co., Ltd. | Apparatus and method of operating timing analysis considering multi-input switching |
Also Published As
Publication number | Publication date |
---|---|
FR2842001A1 (en) | 2004-01-09 |
FR2842001B1 (en) | 2005-10-28 |
US6631506B1 (en) | 2003-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8122404B2 (en) | Performing a statistical timing abstraction for a hierarchical timing analysis of VLSI circuits | |
Chen et al. | A new gate delay model for simultaneous switching and its applications | |
Possani et al. | Graph-based transistor network generation method for supergate design | |
US8484590B2 (en) | Method of predicting electronic circuit floating gates | |
US20060117282A1 (en) | Method that allows flexible evaluation of power-gated circuits | |
US20080040091A1 (en) | Method and apparatus of simulating a semiconductor integrated circuit at gate level | |
US8655634B2 (en) | Modeling loading effects of a transistor network | |
US6631506B1 (en) | Method and apparatus for identifying switching race conditions in a circuit design | |
Negulescu et al. | Verification of speed-dependences in single-rail handshake circuits | |
Amaricai et al. | Probabilistic gate level fault modeling for near and sub-threshold CMOS circuits | |
US8201120B2 (en) | Timing point selection for a static timing analysis in the presence of interconnect electrical elements | |
Callegaro et al. | SwitchCraft: a framework for transistor network design | |
US6854099B2 (en) | Balanced accuracy for extraction | |
Nadjarbashi et al. | Line oriented structural equivalence fault collapsing | |
Zwerger et al. | Detection of asymmetric aging-critical voltage conditions in analog power-down mode | |
da Rosa et al. | A comparative study of CMOS gates with minimum transistor stacks | |
da Rosa Junior et al. | Fast disjoint transistor networks from BDDs | |
US6606733B2 (en) | Method and system for finding static NAND and NOR gates within a circuit and identifying the constituent FETs each gate | |
JP4313288B2 (en) | Circuit simulation method, circuit simulation program, and circuit simulation apparatus for delay characteristic evaluation | |
Raja et al. | A reduced constraint set linear program for low-power design of digital circuits | |
US7134107B1 (en) | System and method for determining detail of analysis in a circuit design | |
Thakur et al. | CMOS design of area and power efficient multiplexer using tree topology | |
US7124393B1 (en) | System and method for processing configuration information | |
US20040019473A1 (en) | System and method of processing a circuit design via critical design paths | |
JP2007213456A (en) | Method for detecting high impedance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PIE, CHARLES COREY;FISCHER, TIMOTHY CHARLES;NAFFZIGER, SAMUEL DAVID;REEL/FRAME:013155/0454 Effective date: 20020327 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., COLORAD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:013776/0928 Effective date: 20030131 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.,COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:013776/0928 Effective date: 20030131 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;HEWLETT-PACKARD COMPANY;REEL/FRAME:026198/0139 Effective date: 20101019 |
|
FPAY | Fee payment |
Year of fee payment: 12 |