Professional Documents
Culture Documents
VLSI Design
(Subject Code- ECC602)
2
Sequencing
Combinational logic
output depends on current inputs
Sequential logic
output depends on current and previous inputs
Requires separating previous, current, future
Called state or tokens
Ex: FSM, pipeline
in out
CL CL CL
Latch
Flop
D Q D Q
Edge-trigger D
Q (latch)
Q (flop)
Transmission gate
+ No Vt drop
- Requires inverted clock (Extra H/W)
D Q
Transmission Gate Logic : The transmission gate logic is used to solve the voltage
drop problem of the pass transistor logic.
This technique uses the complementary properties of NMOS and PMOS transistors.
i.e. NMOS devices passes a strong '0' but a weak '1' while PMOS transistors pass a
strong '1' but a weak '0'.
12
Latch Design
Inverting buffer
Inverted output
X
D Q
D Q
• A tri-state inverter is similar to a inverter, but it adds an additional "enable" input that controls
whether the primary input is passed to its output or not.
• The output is actively driven from VDD or GND, so it is a restoring logic gate.
Buffered input
+ Noninverting
X
D Q
Buffered output Q
X
D
Datapath latch
Q
+ smaller
+ faster X
D
- unbuffered input
Q
X
D Q
Timing path: Timing paths can be divided as per the type of signals (e.g clock signal, data signal etc).
Data path
Start Point
Input port of the design (because the input data can be launched from some external source).
Clock pin of the flip-flop/latch/memory (sequential cell)
End Point
Data input pin of the flip-flop/latch/memory (sequential cell)
Output port of the design (because the output data can be captured by some external sink)
Example of Setup and Hold time Static
Data Paths: 4 types of data path
Input pin/port to Register(flip-flop).
Input pin/port to Output pin/port.
Register (flip-flop) to Register (flip-flop)
Register (flip-flop) to Output pin/port
PATH1- starts at an input port and ends at the data input of a sequential element. (Input port to Register)
PATH2- starts at the clock pin of a sequential element and ends at the data input of a sequential element.
(Register to Register)
PATH3- starts at the clock pin of a sequential element and ends at an output port.(Register to Output port).
PATH4- starts at an input port and ends at an output port. (Input port to Output port)
Clock Path
Clock path the starts from the input port/pin of the design which is specific for the Clock input
And the end point is the clock pin of a sequential element. In between the Start point and the
end point there may be lots of Buffers/Inverters/clock divider.
Example of Setup and Hold time Static
Register to register delay (Trrd) = Tc2q + Tgd + Twd + Tsu
Following points are recommended while fixing setup and hold violations.
Make modification to the data path only.
First try to fix setup violation as much as possible. Then later on start fixing hold
violation.
In general, hold time will be fixed during back-end work (during PNR) while
building clock tree. If u r a front-end designer, concentrate on fixing setup time
violations rather than hold violations.
Fix all the hold violation, if you have to choose between setup and hold.
Example of Setup and Hold time Static
Step1: Find out the maximum Register to register Delay.
Data arrival time is the time required for data to propagate through source flip flop,
travel through combinational logic and routing and arrive at the destination flip-flop
before the next clock edge occurs.
Register to register delay = Clk-to-Q delay + Cell/ gate delay + All wire delay + Setup
time
Note: Since for setup calculation we need maximum Data path delay, We have
choosen 2nd for our calculation.
Example of Setup and Hold time Static
Step 3: Find Out Hold Time:
A hold time = Hold time of Flipflop + max(Clock path Delay) - min( Data path delay)
=( Hold time of Flipflop + Clk path max delay) - (A2D min delay)
= Thd + Tpd U8 - (Tpd U7 + Tpd U4+wire delay)
= 4 + 2 - (1+7 ) = -2 ns
Note: For hold time we need minimum data path, so we have picked first Data path.
Step 4: Find out Clock to Out Time:
Clock to Out
= Cell delay of U8 + Clk-to-Q delay of FlipFlop+ Cell delay of U5+ Cell delay of U6 + (all
wire delay)
= Tpd U8+ U2 Tc2q + U5 Tpd + U6 Tpd
= 2 + 5 + 9 + 6 = 22 ns
Example of Setup and Hold time Static
Step 4: Find out Clock to Out Time:
Clock to Out
= Cell delay of U8 + Clk-to-Q delay of FlipFlop+ Cell delay of U5+ Cell delay of U6+ (all
wire delay)
= 2 + 5 + 9 + 6 = 22 ns
Note: Since in this case the clk –to-Q path for both Flipflop is same, we can consider any path. But
in some other circuit where the delay is different for both the paths, we should consider Max delay
path.
Example of Setup and Hold time Static
Step 5: Find Pin to Pin Combinational Delay (A to Y delay)
Pin to Pin Combinational Delay (A to Y)
= U7 Tpd + U5 Tpd + U6 Tpd
= 1 + 9 + 6 = 16 ns
Setup and hold slack is defined as the difference between data required
time and data arrival time.
Clock Skew
Clock skew (sometimes called timing skew) is a phenomenon in
synchronous digital systems in which the same sourced clock
signal arrives at different components at different times.
The instantaneous difference between the readings of any two clocks is
called their skew.
Clock Skew
We have assumed zero clock skew
Clocks really have uncertainty in arrival time
Decreases maximum propagation delay
Increases minimum contamination delay
The propagation delay: is the maximum time from when an input changes until the output or
outputs reach their final value.
The contamination delay: is the minimum time from when an input changes until any output
starts to change its value.
37
Example_2: Setup or Hold Violation?
In the following circuit, find out whether there is any Setup or Hold Violation?
38
Example_2: Setup or Hold Violation?
Hint:
Hold Analysis:
If the difference between the data path and clock path is negative, then a timing violation has occurred.
Setup Analysis:
If the difference between the data path and clock path is negative, then a timing violation has occurred.
39