0% found this document useful (0 votes)
8 views54 pages

Lecture 5

Uploaded by

sjsksjdjd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views54 pages

Lecture 5

Uploaded by

sjsksjdjd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

WEEK 4 REVIEW

Sequential Circuits

▪ How can same input 0


lead to different
outputs? 3 1
▪ Sequential logic 2
depends on the
sequence of inputs, not
just current input
▪ They have some
internal state
Creating sequential circuits
Key idea:
split the sequential circuit to
two parts.
▪ A bunch of flip-flops to Inputs
Combinational
Outputs

store state. Circuit


 This week
▪ A combinatorial circuit to Storage
handle the logic to Units
manage state and output.
 More next week.
Feedback for Storing State

▪ I want to store the output of an AND gate and


reuse it as input.
Q

Store Q…

▪ Does the following work?


Q
…and reuse it

▪ How do we reason about this circuit?


There is a Propagation Delay

A
B Y

Ideal Considering delays

B B

A A

Y Y

time time

T T+1
Feedback Circuit Example (AND)
▪ Let’s analyze it

A
Q

QT QT+1

QT and QT+1 A QT QT+1


represent the values 0 0 0
of Q at a time T, and
0 1 0
a point in time
immediately after 1 0 0
(T+1) 1 1 1
Feedback Circuit Examples
▪ Some gates don’t have useful results when
outputs are fed back on inputs.
A A
Q Q

A QT QT+1 A QT QT+1
Stuck
at 0 0 0 0 0 0 0
0 1 0 0 1 1 Stuck as 1
1 0 0 1 0 1
1 1 1 1 1 1
Feedback behaviour
▪ NAND behaviour ▪ NOR behaviour
A QT QT+1 A QT QT+1

0 0 1 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0

▪ Output QT+1 can be changed, based on A.


▪ They are unstable – oscillations.
A

Q
Latches

▪ We overcome oscillations by combining


multiple NAND or NOR gates.
A A
Q Q

Q Q
B B

▪ These circuits are called latches.


Question #3 R
Q
▪ Complete the truth table
 Don’t-care inputs allowed.
Q
▪ And name the 4 possible S

S,R input combinations


S R QT QT QT+1 QT+1

0 0 0 1 0 1
 Hold
0 0 1 0 1 0
0 1 X X 0 1  Reset
1 0 X X 1 0  Set
1 1 X X 0 0  Forbidden
Question #3 R
Q
▪ Complete the truth table
 Don’t-care inputs allowed.
Q
▪ And name the 4 possible S

S,R input combinations


S R QT QT QT+1 QT+1

0 0 0 1 0 1
 Hold
0 0 1 0 1 0
0 1 X X 0 1  Reset
1 0 X X 1 0  Set
1 1 X X 0 0  Forbidden
Summary: S’R’ and SR latches

S R QT QT QT+1 QT+1

0 0 X X 1 1 Forbidden state S Q
0 1 X X 1 0 Set Q to 1
SR-latch 1 0 X X 0 1 Reset Q to 0 R Q
1 1 0 1 0 1
1 1 1 0 1 0
Maintain Q
“set” and “reset”
S R QT QT QT+1 QT+1 cannot be both true!
0 0 0 1 0 1
SR-latch 0 0 1 0 1 0
Maintain Q
S Q
0 1 X X 0 1 Reset Q to 0
1 0 X X 1 0 Set Q to 1
1 1 X X 0 0 Forbidden state R Q

12
Question #4

▪ Given the input waveforms, sketch the output


Q of an SR latch. Assume Q was zero initially.

Q
Clocks

▪ A periodic signal that gives timing for our circuit


voltage

time

▪ Frequency = the number of pulses occur per


second.
5 Hz

1 second
Clocked/Gated latches

▪ Add a new input C that acts like a “gate” over


the inputs:

▪ If C=0 the latch ignores input


 Maintains state. S Q
C
▪ If C=1 the latch is “active”
R Q
 Responds to input
D latch
D
Q D Q
C C
Q
Q

▪ This design is good!


 Easy to store a bit: just set D to what you want to store.
 Can maintain state as long as C is low
 No weird forbidden inputs.
D latch is transparent
▪ Any changes to its inputs
are visible to the output
when control signal D Q
C
(Clock) is 1.
Q
 Output keeps toggling
back and forth.
▪ We want output
C
to change exactly
once per cycle. Q
Flip-flops

▪ Positive edge: D Q
triggered on rising edge of the
C
clock Q

▪ Negative edge: D Q
triggered on falling edge of
C
the clock Q
Flip-flops
▪ For input to propagate to
output, it takes each of the CLK
latches to be active once.
▪ First latch changes on “flip”.
▪ Output can only change
upon “flop”, which is CLK
basically the falling edge of
the clock signal
▪ At most one change per
clock cycle
Flip-flops

▪ We have:
 D flip-flops (most common type!)
 SR flip-flops
 T flip-flops (for “toggle”)
 JK flip-flops
Week 5: Sequential
Circuit Design
Part A: registers
Assembly Language

Processors
Arithmetic Finite State
Logic Units Machines
Devices Flip-flops
Circuits
Gates

Transistors
We are here
Assembly Language

Processors
Arithmetic Finite State
Logic Units Machines
Devices Flip-flops
Circuits
Gates

Transistors
Circuits using flip-flops
▪ Now that we know Inputs
Combinational
Outputs

about flip-flops and Circuit


what they do, how do
we use them in circuit Storage
design? Units

▪ What’s the benefit in using


flip-flops in a circuit at all?
Example #1: Registers
Registers
▪ An n-bit register: a bank of n flip-flops that share a
common clock.
▪ Registers store a multi-bit value.

D0 Q D1 Q D2 Q D15 Q

Q Q Q Q

Clk

▪ All bits written at the same time.


▪ Key building block of sequential systems and CPUs.
Shift Registers
▪ A series of D flip-flops where output of flip-
flop i is connected to input of i+1
Sin D0 Q D1 Q D2 Q D15 Q

Q Q Q Q

Clk

▪ To set the value of an n-bit shift register, shift


data into it one bit at a time, over n clock
cycles.
Shift registers
▪ Illustration: shifting in 0101010101010101
0
1
SI D0 Q D1 Q D2 Q D15 Q

Q Q Q Q

Clk
Shift registers
▪ Illustration: shifting in 0101010101010101

1 0 1 0
SI D0 Q D1 Q D2 Q D15 Q

Q Q Q Q

Clk

▪ After 16 clock cycles….


Load registers
▪ One can also load a register’s values all at
once, by feeding signals into each flip-flop:
 In this example: a 4-bit load register.

D0 D1 D2 D3

D Q D Q D Q D Q

Q Q Q Q

Clk
Load registers
▪ D flip-flop with enable: controls when the
flip-flop is allowed to load D :
 When EN = 1, D2 is whatever D is → load D
 When EN = 0, D2 is whatever Q is → maintain Q

EN
D2 Q D Q
D EN
Clk Q Q
Load registers
▪ D flip-flop with enable: controls when the
flip-flop is allowed to load D :
 When EN = 1, D2 is whatever D is → load D
 When EN = 0, D2 is whatever Q is → maintain Q

EN

0 D Q D Q
D 1 EN
Clk Q Q
Load registers
D0 D1 D2 D3

D Q D Q D Q D Q
EN EN EN EN
Q Q Q Q
Write
Clk

▪ A register implemented with these new D


flip-flops will maintain the old value in the
register until overwritten by setting EN high.
Shift vs Load
▪ Shift registers are serial – load bits one at
a time
12-bit
▪ Load registers are parallel – load all bits load
immediately. register

▪ Load registers (a.k.a “registers”) seem


easier to work with… so why?
▪ Sometimes one wire is better than many. 12-bit
shift
 Lack of space on circuit for many wires. register
 Clock skew on long wires, fast clocks.
 Physics.
Serial vs Parallel

PCI PCIe
▪ Parallel ▪ Serial
▪ Many pins ▪ Fewer pins… yet faster
Memory Hierarchy
▪ In computer architecture, registers are
the first level in the memory hierarchy.
• registers
▪ The CPU’s most local, fastest storage
 30+ of them on-chip.
• cache
▪ They are the memory units that the
CPU interacts with directly for
• RAM
computation.
 Anything else is too far, and is mediated
by registers. • disk

▪ Higher levels: cache, RAM, disk, etc.

37
▪ What else can we build?
Week 5, part B: Counters
Idea for A Counter
▪ Load register + Ripple Carry Adder

n
n
adder register
n
…00001
Clk
Idea for A Counter
▪ Example: 4-bit counter
0 0 0 1

X3 Y3 X2 Y2 X1 Y1 X0 Y0
1
4-bit adder
S3 S2 S1 S0

D Q D Q D Q D Q
EN EN EN EN
Q Q Q Q

Write
Clk
Idea for A Counter
▪ Will this work?

n
n
adder register
n
…00001
Clk

▪ Yes, but lots of gates needed for the adder.


A better idea
T Q
▪ Consider the T flip-flop:
 Output is inverted when Q
input T is high.
▪ What happens when a
series of T flip-flops are
connected together in
sequence?
▪ More interesting: T D Q
Connect the output of Clk
one flip-flop to the clock Q
input of the next!
Counters
1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

Q Q Q Q
Counters
1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

Q Q Q Q

▪ This is a 4-bit ripple counter.


▪ Let’s see how it works
Counters 1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

C
▪ Timing diagram Q Q Q Q

Q0

Q1

Q2

Q3
Counters 1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

C
▪ Timing diagram Q Q Q Q

Q0 0 1 0 1 0 1 0 1 0

Q1 0 0 1 1 0 0 1 1 0

Q2 0 0 0 0 1 1 1 1 0

Q3 0 0 0 0 0 0 0 0 1
Counters 1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

C
▪ Timing diagram Q Q Q Q

Q= 0 1 2 3 4 5 6 7 8

Q0 0 1 0 1 0 1 0 1 0

Q1 0 0 1 1 0 0 1 1 0

Q2 0 0 0 0 1 1 1 1 0

Q3 0 0 0 0 0 0 0 0 1
Counters 1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

C
▪ Timing diagram Q Q Q Q

 Propagation delay increases for later Qs

Q0

Q1

Q2

Q3
Counters
1
Q0 Q1 Q2 Q3

T Q T Q T Q T Q

Q Q Q Q

▪ The ripple counter, is an example of an


asynchronous circuit:
outputs do not all change with the same clock signal.
▪ Timing isn’t quite synchronized with the rising clock
pulse → hard to know when output is ready.
 Cheap to implement, but unreliable for timing.
Synchronous Counter
Write

T Q T Q
T Q T Q Q2 Q3
Q0 Q1

Q Q
Q Q

Clk

▪ This is a synchronous counter, with a slight delay.


▪ Each AND gate combine outputs of all previous
flip-flops
▪ Each flip-flop only changes when all previous flip
flops are set
How it works
▪ The first FF Q3
Q0 Q1 Q2
toggles every
clock cycle.
▪ Every other FF “looks to the left”
 That’s what the AND gates do!
▪ If all FFs to the left are 1 on clock edge, toggle.
 Like a carry bit generated from adder!
▪ Otherwise, do not toggle.
▪ Result:
 1 1 1 0 → 0 0 0 1 → 1 0 0 1 → 0 1 0 1
 Read from right to left: 0111 → 1000 → 1001
How it works? Like this

https://www.youtube.com/watch?v=_0kGZhUE5D0
When load is high,
Counters with Load read from Ri instead
of toggling
Load
Write
R0 R1

1 1
D Q 0 D Q
0

Q Q

Clk
Clear

only advance when Counter with parallel load, write,


write is high
(like T in T flip-flop)
and clear (reset) inputs.
▪ Useful for countdowns and more.
What About Custom Designs?
▪ Registers and counters are simple.
▪ What about more sophisticate designs?

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy