Title: Flip-flops, Latches and State
1Flip-flops, Latches and State
- Prof. Sirer
- CS 316
- Cornell University
2Early Transistors
- The first transistor, on a workbench at ATT Bell
Laboratories in 1947
3Logic Gates
- One can buy gates separately
- ex. 74xxx series of integrated circuits
- cost 1 per chip, mostly for packaging and
testing - Cumbersome, but possible to build devices using
gates put together manually
4Integrated Circuits
- Or one can manufacture a complete design using a
custom mask - An Intel Pentium has approximately 125 million
transistors
5Special-Purpose Transistors
- A photo-sensitive transistor can be used to
detect the presence of light - Photo-sensitive material triggers the gate
6Recap
- We have enough tools in our arsenal to start
build interesting devices - Lets build a Scantron device
- Elections are coming up!
- Background
- A vote is recorded on a piece of paper,
- by punching out a whole,
- there are at most 7 choices
- we will not worry about hanging chads or
invalids - For now, lets just display the numerical
identifier to the ballot supervisor - we wont do counting yet, just decoding
- we can use four photo-sensitive transistors to
find out which hole is punched out
7Ballot Reading
- All we want to do is go from a paper with a hole
in it to a number the ballot supervisor can record
Ballots
The super-duper 316 vote decoding machine
8Demultiplexors/Encoders
a
1
- N sensors in a row
- We want to distinguish which sensor of the N
sensors has fired - Want to represent the firing sensor number in
compact form - N might be large, I want to sell this device to
Italy - Only one wire is on at any time
- Silly to route N wires everywhere, better to
encode in log N wires
o0
b
2
o1
c
3
o2
d
4
A 3-bit (7-to-3) encoder (4 inputs shown)
9Number Representations
37
- Decimal numbers are written in base 10
- 3 x 101 7 x 100 37
- Just as easily use other bases
- Base 2 - Binary
- Base 8 - Octal
- Base 16 Hexadecimal
- Base conversion via repetitive division
- Divide by base,write remainder,move left with
quotient - Sanity check with 37 and 10
101 100
10Binary Representation
0100101
26 25 24 23 22 21 20
64 32 16 8 4 2 1
11Hexadecimal Representation
- 37 decimal (25)16
- Convention
- Base 16 is written with a leading 0x
- 37 0x25
- Need extra digits!
- 0, 1, 2, 3, 4, 5, 6, 7,8, 9, A, B, C, D, E, F
- Binary to hexadecimal is easy
- Divide into groups of 4, translate groupwise into
hex digits
25
161 160
12Encoder Truth Table
a
1
a b c d o2 o1 o0
0 0 0 0 0 0 0
1 0 0 0 0 0 1
0 1 0 0 0 1 0
0 0 1 0 0 1 1
0 0 0 1 1 0 0
o0
b
2
o1
o1
c
3
o2
d
4
- o2 abcd
- o1 abcd abcd
- o0 abcd abcd
A 3-bit encoder with 4 inputsfor simplicity
13Ballot Reading
- Ok, we builtfirst half of the machine
- Need to display the result
Ballots
The super-duper 316 vote decoding machine
147-Segment LED Decoder
- 4 inputs encoded in binary
- 8 outputs, each driving an independent,
rectangular LED - Can display numbers
- Just a simple logic circuit
- Write the truth table
157-Segment LED Decoder
- 4 inputs encoded in binary
- 8 outputs, each driving an independent,
rectangular LED - Can display numbers
1
0
0
0
167-Segment LED Decoder
- 4 inputs encoded in binary
- 8 outputs, each driving an independent,
rectangular LED - Can display numbers
1
0
1
0
177-Segment Decoder Truth Table
i3 i2 i1 i0 o0 o1 o2 o3 o4 o5 o6
0 0 0 0 1 1 1 0 1 1 1
0 0 0 1 1 0 0 0 0 0 1
0 0 1 0 1 1 0 1 1 1 0
0 0 1 1 1 1 0 1 0 1 1
0 1 0 0 1 0 1 1 0 0 1
0 1 0 1 0 1 1 1 0 1 1
0 1 1 0 0 0 1 1 1 1 1
0 1 1 1 1 1 0 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1
o1
o0
o2
o3
o4
o6
o5
Exercise find the error(s) in this truth table
187-Segment Decoder Truth Table
i3 i2 i1 i0 o0 o1 o2 o3 o4 o5 o6
0 0 0 0 1 1 1 0 1 1 1
0 0 0 1 1 0 0 0 0 0 1
0 0 1 0 1 1 0 1 1 1 0
0 0 1 1 1 1 0 1 0 1 1
0 1 0 0 1 0 1 1 0 0 1
0 1 0 1 0 1 1 1 0 1 1
0 1 1 0 0 0 1 1 1 1 1
0 1 1 1 1 1 0 0 0 0 1
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1
o1
o0
o2
o3
o4
o6
o5
19Ballot Reading
- Done!
- Off to the patent office!
Ballots
The super-duper 316 vote decoding machine
20Keyboard
- Lets build a keyboard
- Lots of mechanical switches
- Need to convert to a compact form (binary)
- Well use a special mechanical switch that, when
pressed, connects two wires simultaneously
21Keyboard
- When a key is pressed, a 7-bit key identifier is
computed
3-bitencoder (4 to 3)
4-bitencoder (16 to 4) not all 16 wires are shown
22Stateful Components
- Everything we did until now is combinatorial
logic - Output is computed when inputs are present
- The system has no internal state
- Nothing computed in the present can depend on
what happened in the past! - Need a way to record data
- Need a way to build stateful circuits
- Need a state-holding device
23Bistable Devices
A
B
A Simple Device
- In stable state, A B
- How do we change the state?
1
0
0
1
A
B
A
B
24SR Latch
Q
R
S
Q
- Set-Reset (S-R) Latch
- Q Stored value and its complement
- S1 and R1 ?
S R Q Q
0 0 Q Q
0 1 0 1
1 0 1 0
1 1 ? ?
25D Latch
Q
R
D
S
Q
- Data Latch
- Easier to use than an SR latch
- No possibility of entering an undefined state
- When D changes, Q changes
- immediately
- Need to control when the output changes
26Clocks
- Clocks help with modifying the contents of
state-holding elements - A free running signal
- Generated by an oscillating crystal
- Clock signal has a fixed cycle time (aka cycle
period) - Clock frequency 1/cycle time
risingedge
fallingedge
1
0
clock period
clock high
clock low
27Edge-triggering
- Can design circuits to change on the rising or
falling edge - Trigger on rising edge positive edge-triggered
- Trigger on falling edge negative edge-triggered
- Inputs must be stable just before the triggering
edge
input
clock
28First Attempt
D
S
- How does the output behave?
Q
R
Q
clk
D
Q
D
Q
clk
Q
Q
29First Attempt
D
S
- How does the output behave?
Q
R
Q
clk
clk
D
Q
30First Attempt
D
S
- How does the output behave?
- Changes in D that occur when the clock is low are
deferred until clock high - Changes when clock is high are registered
immediately
Q
R
Q
clk
D
Q
D
Q
clk
Q
Q
31Master-Slave Flip-Flop
- Outputs change only on falling edges
- Data is captured on rising edges
- 1 cycle delay
- but works out perfectly data for the next stage
is ready 1 cycle ahead of time
D
Q
D
Q
X
Q
Q
clk
D
X
Q
32Keyboard
- When a key is pressed, a 7-bit key identifier is
computed - Lets store this keycode
- The computer may not be ready to read it right
away
3-bitencoder (4 to 3)
4-bitencoder (16 to 4) not all 16 wires are shown
33Registers
D0
D
Q
D
Q
- A register is simply a set of master-slave
flip-flops in parallel with a shared clock
D1
D
Q
D
Q
D2
D
Q
D
Q
4-bit reg
4
4
D3
D
Q
D
Q
clk
34Keyboard with Last Key Display
4-bit reg
7 seg deco
3-bitencoder (4 to 3)
4-bitencoder (16 to 4) not all 16 wires are shown
7 seg deco
4-bit reg
35Summary
- We can now build interesting devices with sensors
- Using combinatorial logic
- We can also store data values
- In state-holding elements
- Coupled with clocks