Transcript Lecture 4 Delays and Timing
Lecture 6 Delays and Timing in Multilevel Logic Synthesis
Prith Banerjee ECE C03 Advanced Digital Design Spring 1998 ECE C03 Lecture 6 1
Outline
• Gate delays • Timing waveforms • Performance calculations • Static/dynamic hazards and glitches • Designs to avoid hazards • READING: Katz 3.3, 3.4, 3.5.2, Dewey 6.5.1, 6.5.2
ECE C03 Lecture 6 2
Time Response in Combinational Networks
• emphasis on timing behavior of circuits • waveforms to visualize what is happening • simulation to create these waveforms • momentary change of signals at the outputs: hazards can be useful — pulse shaping circuits can be a problem — glitches: incorrect circuit operation
Terms:
gate delay — time for change at input to cause change at output minimum delay vs. typical/nominal delay vs. maximum delay careful designers design for the worst case!
rise time — time for output to transition from low to high voltage fall time — time for output to transition from high to low voltage
ECE C03 Lecture 6 3
Concepts of Delays and Timing
• For a given gate, the gate delay refers to the time it takes the output signal to respond to in input transition output input ECE C03 Lecture 6 4
Gate Delays
• Why is there a gate delay?
• There are actual resistances and capacitances inside digital logic • If you apply a unit step voltage signal to an input, the output will not respond immediately, but after a delay proportional to R.C
T delay = R.C
Resistance of driver Input Output Capacitance of load ECE C03 Lecture 6 5
Delays in Combinational Logic
Input transition Output transition QUESTION: After the input goes from low to high how long does it take for the output to go from low to high (note depends on other inputs being 1 or 0) ANSWER: Use simple delay models for each gate and add up delays in a path from input to output ECE C03 Lecture 6 6
Delays in Combinational Logic
Low drive High drive Wire load Capacitance C ECE C03 Lecture 6 Load capacitance (pF) 7
Designing Logic With High Performance
Reduce high load due to fanout Higher drive gate Input transition QUESTION: Suppose the delay from input to output is 30 nsec and is unacceptable. How would you make a higher performance design?
ANSWER: Reduce capacitances at various loads, or use higher druve gates ECE C03 Lecture 6 8
Gate Delays for Typical TTL Families
Delays in nano-seconds TTL Family Maximum tpHL 7400 15 74H00 74L00 10 60 Maximum tpLH 22 10 60 Minimum tpHL 7 6.2
31 Minimum tpLH 11 5.9
35 ECE C03 Lecture 6 9
Gate Delay Specifications
Example gate delays in nanoseconds for LSI Logic 1.5 micron gate array 2 input AND gate.
STD LOAD 1 2 3 4 8 16 tpLH tpHL 0.7
0.8
1.0
1.2
1.8
3.2
0.9
1.0
1.0
1.1
1.3
1.8
tpLH = Propagation delay from low to high transition at output tpHL = Propagation delay from high to low transition at output ECE C03 Lecture 6 10
Specifying Delays
• Inertial Delay Model – reflects physical inertia of physical systems – glitches of very small duration not reflected in outputs • SIG_OUT <= not SIG_IN after 7 nsec • Logic gates exhibit lowpass filtering SIG_IN SIG_OUT 2ns 10ns 9 ns ECE C03 Lecture 6 3 ns 19 ns 11
Transport Delays
• Under this model, ALL input signal changes are reflected at the output • SIG_OUT <= transport not SIG_IN after 7 ns; SIG_IN SIG_OUT 2ns 10ns 9 ns 3 ns 19 ns 30 ns ECE C03 Lecture 6 12
A
Pulse Shaping Circuit
B C D F 100 A B C D F
D remains high for three gate delays after A changes from low to high F is not always 0, pulse width equals 3 gate delays
ECE C03 Lecture 6 13
Another Pulse Shaping Circuit
Resistor + Open Switch A C D
Close Switch
Initially undefined A B C D
Open Switch
ECE C03 Lecture 6 B 14
Hazards and Glitches
Unwanting switching at the outputs Occur because delay paths through the circuit experience different propagation delays Danger if logic "makes a decision" while output is unstable OR hazard output controls an asynchronous input (these respond immediately to changes rather than waiting for a synchronizing signal called a clock) Usual solutions: wait until signals are stable (by using a clock) never, never, never use circuits with asynchronous inputs design hazard-free circuits Suggest that first two approaches be used, but we'll tell you about hazard-free design anyway!
ECE C03 Lecture 6 15
Kinds of Hazards
1 0 1 0 1 Static 1-hazard 0 Static 0-hazard
Input change causes output to go from 1 to 0 to 1 Input change causes output to go from 0 to 1 to 0
1 1 0 1 0 0 1 Dynamic hazards
Input change causes a double change from 0 to 1 to 0 to 1 OR from 1 to 0 to 1 to 0
0
Kinds of Hazards
ECE C03 Lecture 6 16
Example of a Glitch
A \C \A D
1 1 0 0
G1 G2
1 0
G3
1
F A \C \A D
1 1 0
G1 G2
1 0 0 ABCD = 1100 ABCD = 1101 input change within product term
G3
1
F AB CD 00 00 0 01 11 C 10 1 1 0 01 0 11 A 10 1 1 1 1 0 1 0 0 1 0 0 D B
F = A' D + A C'
A \C
1
\A D
1 0 1
G1
1
G2
0 ABCD = 1101
G3
1
F A \C \A D
0
G1
0 1 0
G3 G2
1 0 ABCD = 0101 (A is still 0) 0
F A \C \A D
input change that spans product terms output changes from 1 to 0 to 1
ECE C03 Lecture 6
0
G1
0 1 1
G3 G2
1 1 ABCD = 0101 (A is 1) 1
F 17
Eliminating Glitches
General Strategy: add redundant terms F = A' D + A C' becomes A' D + A C' + C' D This eliminates 1-hazard? How about 0-hazard?
Re-express F in PoS form: F = (A' + C')(A + D)
AB CD 00 00 0 01 0 11 A 10 1 1 01 1
Glitch present! Add term: (C' + D) This expression is equivalent to the hazard-free SoP form of F
11 C 10 1 0 1 1 0 1 0 0 1 0 0 B D ECE C03 Lecture 6 18
How to design Circuits without Glitches
Start with expression that is free of static 1-hazards F = A C' + A' D + C' D Work with complement: F' = (A C' + A' D + C' D)' = (A' + D) (A + D') (C + D') = A C + A C D' + C D' + A' C D' + A' D' = A C + C D' + A' D' covers all the adjacent 0's in the K-map free of static-1 and static-0 hazards!
ECE C03 Lecture 6 19
Detecting Static Hazards in Multilevel Circuits
Calculate transient output function variables and complements are treated as independent variables cannot use X + X' = 1 or X • X' = 0 for simplifications Example: F = A B C + (A + D) (A' + C') 2-level form
AB CD 00 00 0 01 0 11 1 10 1 01 1 1 1 1 11 C 10 1 0 1 0 1 1 0 0 B D
ABCD: 1111 to 1110, covered by term ABC, so no 1-hazard present ABCD: 1110 to 1100, term ABC goes low while term AC' goes high some static hazards are present!
ECE C03 Lecture 6 20
Static 1 Hazards
A B C D F F 2
Solution: Add redundant terms to insure all adjacent transitions are covered by terms F2 = A C' + A' D + C' D + A B + B D
100 ECE C03 Lecture 6
1's hazards in F corrected in F2
21
Static 0 Hazards
Similar to previous case, but work with the complement of F If terms of the transient output function cover all 0 transitions, then no 0-hazards are present
A AB
F = [A B C + (A + D) (A' + C')]'
CD 00 01 11 10 00 0 0 1 1
= (A' + B' + C') (A' D' + A C)
01 1 1 1 1
= A' D' + A' B D' + A' C D' + A B' C
D
= A' D' + A B' C
11 1 1 1 0 C
+ B' C D'
10 0 0 1 0
F = (A + D) (A' + B + C') (B + C' + D) 0-hazard free equivalent to F2 on last slide
ECE C03 Lecture 6 B
0-hazard on transition from 1010 to 0010
22
A B C D F F 3
Static 0 Hazards
100 ECE C03 Lecture 6
0-Hazard Corrected in F3
23
Designing Networks for Hazard Free Operation
AB CD 00 00 0 01 0 11 A 10 1 1 01 1 1 1 1 11 C 10 1 0 1 0 1 1 0 0 B
Simply place transient output function in a form that guarantees that all adjacent ones are covered by a term no term of the transient output function contains both a variable and its complement F(A,B,C,D) =
D
F = A B + A' D + B D + A C' + C' D = (A' + B + C') D + A (B + C') (factored by distributive law, which does not introduce hazards since it does not depend on the complementarity laws for its validity)
ECE C03 Lecture 6 24
Dynamic Hazards
Example with Dynamic Hazard
\A 1 B 0 1 G1 0 1 Slow G3 \B \C 1 0 1 G2 1
0
A \B 0 G4 1 0 V ery slow 1 0 1 1
0
G5 1 0 1
0
F
Three different paths from B or B' to output ABC = 000, F = 1 to ABC = 010, F = 0 different delays along the paths: G1 slow, G4 very slow Handling dynamic hazards very complex Beyond our scope
ECE C03 Lecture 6 25
Summary
• Gate delays • Timing waveforms • Performance calculations • Static/dynamic hazards and glitches • Designs to avoid hazards • NEXT LECTURE: Multilevel Logic Synthesis • READING: Katz 3.1, 3.2
ECE C03 Lecture 6 26