Title: Registers%20and%20Counters
1Registers and Counters
2What is a Register?
- A Register is a collection of n flip-flops with
some common function or characteristic - Control signals - common clock, clear, load, etc.
- Function - part of multi-bit storage, counter, or
shift register - At a minimum, we must be able to
- Observe the stored binary value
- Change the stored binary value
3What is a Register?
4What is a Register?
Load
Clear Clock
A
Load input controls the transfer of data(input)
to A. Load is controlled either by the clock or
FF inputs.
5Parallel Load Register with clock gating
Load is controlled by clock input-may cause
clock skew Clock arrives at different times to
different FFs
CLoadClock
6Kinds of Registers
Storage Register
Group of storage elements read/written as a unit
4-bit register constructed from 4 D FFs Shared
clock and clear lines
Schematic Shape
TTL 74171 Quad D-type FF with Clear (Small
numbers represent pin s on package)
7Kinds of Registers and Counters
Input/Output Variations
Selective Load Capability Tri-state or Open
Collector Outputs True and Complementary Outputs
74377 Octal D-type FFs with input enable
74374 Octal D-type FFs with output enable
EN enabled low and lo-to-hi clock transition to
load new data into register
OE asserted low presents FF state to output pins
otherwise high impedence
8FF input controlled loadThis Register will not
cause a clock skew
9Register Files
- A Register File is a collection of m registers,
like a very small memory. - All CPUs have register files of varying sizes
- A typical one is 32 registers of 32 bits each
- Consider a small, 4 register file
- Each register is specified by a 2 bit code.
- An input might be loaded to a register with a
given code(select) - An output might be picked up from a register with
a given code
10Register Files
Load
R1 R2 R3 R4
Register Select
2x4 decoder
n-bit output
Read/Write
EN
n-bit input
11Kinds of Registers
Register Files
Two dimensional array of flip-flops Address used
as index to a particular word Word contents read
or written
Separate Read and Write Enables Separate Read and
Write Address Data Input, Q Outputs
Contains 16 D-ffs, organized as four rows (words)
of four elements (bits)
74670 4x4 Register File with Tri-state Outputs
12Microoperations
- Registers and transfers may be represented by
standard symbols - A microoperation an operation on registers or in
other parts of a computer performed in one clock
cycle. - Transfer, Arithmetic-Logic, Shift microoperations
13Data Transfer
- Information is moved from register to register
by - Parallel data transfer
- Serial data transfer
- For example
- Older printers use parallel data transfer
- USB devices use serial data transfer
14Parallel Data Transfer
Parallel data transfer moves data from one
register to another at one time
Reg. A
Reg. B
clock
When clock occurs, all bits of A are copied to B
15Register Transfer Microperations
- R1 R2 means Transfer the contents of
- Register R2 to register R1 at the edge of the
clock in parallel. - We might also have
- K1 R1 R2 which means The transfer
occurs only when the control condition T1 - is 1.
16Register Transfer Microperations
Register transfer- one to one
17Register Transfer-2 to one K1 R0 R1 K1K2
R0 R2 Assume K1 and K2 never becomes 1 at
the same time We maY extend the idea to many to
one
18(No Transcript)
19Arithmetic Microoperations
20Implementation of add-subtract
Microoperations X.K1 R1 R1 R2 X .K1 R1
R1R2 1
21Logic Microoperations
22Logic Microoperations
- Uses of Logic microoperations
- Usually used to change the desired bits of a
register - Use a mask as the contents of the second
operand for the logic operation - AND masks and clears, OR sets, XOR complements
desired bits(remember - 1 EXOR XX, 0 EXOR X X
23Logic Microoperations
- Examples
- R1 0010 1101
- R2 0000 1111(mask
register) - R1 AND R2 0000 1101(clears left bits)
- R1 OR R2 0010 1111(sets right bits)
- R1 EXOR R2 0010 0010(left bits
complemented)
24Shift Microoperations
25Shift Registers
Storage ability to circulate data among storage
elements
Q1
Q2
Q3
Q4
Shift from left storage element to right
neighbor on every lo-to-hi transition
on shift signal Wrap around from rightmost
element to leftmost element
26Serial Data Transfer
Serial transfer moves data bits from A to B one
bit per clock Rx and Tx have single wire
between the two. For n bit registers, it
takes n clocks for data move
1 bit signal
Reg. R2
clock
Usual implementation is with a shift register.
27Serial Data Transfer
- Typical serial transfer is a multi-step process
- Load transmit shift register with data to send
- Shift data bit by bit from transmit to receive SR
- Transfer received data to other registers
- The transmit SR must have parallel load
- AKA parallel to serial shift register
- The receive SR must have parallel outputs
- AKA serial to parallel shift register
- Other control/timing signals usually needed
28Serial Data Transfer
Parallel Transmit Data
n bits
1 bit signal (serial data)
load
Reg. A (P to S)
n bits
clock
Parallel Receive Data
29Serial Data Transfer
- Serial data transfer used where data rate is
relatively slow and/or parallel bit transfer
channels are expensive - PC serial port and USB interfaces
- wireless/fiber optic data transmissions
- Cell phones
- Wireless networks
- Satellite telephone/TV
- Mars rover/orbiter communications
30Typical Multi-Function Shift Register
Shift Register I/O
Serial vs. Parallel Inputs Serial vs. Parallel
Outputs Shift Direction Left vs. Right
Serial Inputs LSI, RSI Parallel Inputs D, C, B,
A Parallel Outputs QD, QC, QB, QA Clear
Signal Positive Edge Triggered Devices S1,S0
determine the shift function S1 1, S0 1
Load on rising clk edge
synchronous load S1 1, S0 0 shift left on
rising clk edge LSI
replaces element D S1 0, S0 1 shift right
on rising clk edge RSI
replaces element A S1 0, S0 0 hold
state Multiplexing logic on input to each FF!
74194 4-bit Universal Shift Register
Shifters well suited for serial-to-parallel
conversions, such as terminal to computer
communications
31Shift Register with Parallel Load
Right shift only
32Shift Register with Parallel Load
33Serial Transfer with Shift Registers
Shift Register Application Parallel to Serial
Conversion
Parallel Inputs
Parallel Outputs
Serial transmission
34Counters
Counters
Proceed through a well-defined sequence of states
in response to the count signal. 3 Bit
Up-counter 000, 001, 010, 011, 100, 101, 110,
111, 000, ... 3 Bit Down-counter 111, 110,
101, 100, 011, 010, 001, 000, 111, ... The count
sequence can be Binary or BCD or Gray Code or any
other sequence you want. Usually there will be a
set of control inputs (enable, load, reset) in
addition to the clock.
The basic counter is a sequential circuit where
the state (the count value) is the output.
The counter circuit may have no other input other
than the clock. This is known as an autonomous
sequential circuit.
35 Counters
A common 4-bit counter
Synchronous Load and Clear Inputs Positive Edge
Triggered FFs Parallel Load Data from D, C, B,
A P, T Enable Inputs both must be asserted to
enable counting RCO asserted when counter
enters its highest state 1111, used for
cascading counters "Ripple Carry Output"
74163 Synchronous 4-Bit Upcounter
74161 similar in function, asynchronous load and
reset
36Counters
Ring Counter
V
V
V
End-Around
\Reset
1
4 possible states, single bit change per state,
useful for avoiding glitches Must be initialized
0
S
S
S
S
J
J
J
J
Q
Q
Q
Q
CLK
CLK
CLK
CLK
K
Q
K
Q
K
Q
K
Q
R
R
R
R
Shift
V
37Counters
Twisted Ring (Johnson, Mobius) Counter
Inverted End-Around
8 possible states, single bit change per state,
useful for avoiding glitches
V
38Counter Design Synchronous Counters
Introduction
The process is a special case of the general
sequential circuit design procedure. no
decisions on state assignment or transitions
current state is the output
Example
3-bit Binary Upcounter
Decide to implement with Toggle Flipflops What
inputs must be presented to the T FFs to get them
to change to the desired state bit? We need to
use the T FF excitation table to translate the
present/next state values to FF inputs
Present state
Next state
000
111
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 0 0 1 1 1 1 0
0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
001
110
010
101
011
100
39Self-Starting Counters
Start-Up States
At power-up, counter may be in any possible
state Designer must guarantee that it
(eventually) enters a valid state Especially a
problem for counters that validly use a subset of
states
Self-Starting Solution
Design counter so that even the invalid states
eventually transition to valid state
S5
S6
S0
S4
S0
S4
S3
S1
S3
S1
S2
S2
S6
S7
S5
S7
Two Self-Starting State Transition Diagrams
40Implementation with Different Kinds of FFs
- D FFs are easiest to use for implementation no
translation is needed from state transitions to
FF inputs - FF next state value IS the FF input value
- T, SR, JK FFs need an extra step in the design
procedure - We start with the transition pairs of present
state, next state values - What we need to find is what FF input values are
needed that result in the defined transitions - This information is the FF EXCITATION TABLE
- Derived from the FF characteristic table
- Defines inputs needed for all four possible PS/NS
combinations
41Implementation with Different Kinds of FFs
Derivation of JK Excitation Table
Characteristic Table
Excitation Table
Q(t) 0 0 1 1
Q(t) 0 1 0 1
J
K
Look for rows in the characteristic table that
have the same Q(t), Q(t) values observe what
the J,K inputs are for those cases
42Implementation with Different Kinds of FFs
Derivation of JK Excitation Table
Characteristic Table
Excitation Table
Q(t) 0 0 1 1
Q(t) 0 1 0 1
J
K
For the two 0,0 cases, J is constant 0, K is 0 in
one case, 1 in the other. Therefore for the 0,0
transition, J must be 0, K is a dont care.
43Implementation with Different Kinds of FFs
Derivation of JK Excitation Table
Characteristic Table
Excitation Table
Q(t) 0 0 1 1
Q(t) 0 1 0 1
J 0
K X
The necessary J,K values are then entered in the
excitation table
44Implementation with Different Kinds of FFs
Derivation of JK Excitation Table
Characteristic Table
Excitation Table
Q(t) 0 0 1 1
Q(t) 0 1 0 1
J 0 1 X X
K X X 1 0
45Implementation with Different Kinds of FFs
Exication tables for D, T, SR, JK flip-flops
Excitation Tables
Q(t) 0 0 1 1
Q(t) 0 1 0 1
D 0 1 0 1
T 0 1 1 0
J 0 1 X X
K X X 1 0
S 0 1 0 X
R X 0 1 0
46Implementation with Different Kinds of FFs
Translation from State Transition to FF Inputs
The determination of the FF input values now
becomes 1. For each present state/next state
transition value pair 2. Look up the FF
inputs needed in the excitation table 3.
Enter the values in the FF input true table
Well use a T FF for Qa, an SR FF for Qb, and a
JK FF for QC
Qa 0 0 0 0 1 1 1 1
Qb 0 0 1 1 0 0 1 1
Qc 0 1 0 1 0 1 0 1
Qa 0 0 0 1 1 1 1 0
Qb 0 1 1 0 0 1 1 0
Qc 1 0 1 0 1 0 1 0
Ta 0 0 0 0 1 1 1 1
Sb 0 0 0 0 1 1 1 1
Jc 0 0 0 0 1 1 1 1
Kc 0 0 0 0 1 1 1 1
Rb 0 0 0 0 1 1 1 1
47Implementation with Different Kinds of FFs
FF Inputs for T, SR, JK FFs 3 bit binary counter
Q(t) 0 0 1 1
Q(t) 0 1 0 1
D 0 1 0 1
T 0 1 1 0
J 0 1 X X
K X X 1 0
S 0 1 0 X
R X 0 1 0
Qa 0 0 0 0 1 1 1 1
Qb 0 0 1 1 0 0 1 1
Qc 0 1 0 1 0 1 0 1
Qa 0 0 0 1 1 1 1 0
Qb 0 1 1 0 0 1 1 0
Qc 1 0 1 0 1 0 1 0
Ta 0 1 0 0 1 0 1 1
Sb 0 1 X 0 1 1 X 0
Jc 1 X 1 X 1 X 1 X
Kc X 1 X 1 X 1 X 1
Rb X 0 0 1 X 0 0 1
48Implementation with Different FF Types
Comparison
T FFs well suited for straightforward binary
counters But yielded worst gate and literal
count for this example! No reason to choose
R-S over J-K FFs it is a proper subset of J-K
R-S FFs don't really exist anyway J-K FFs
yielded lowest gate count Tend to yield best
choice for packaged logic where gate count is
key D FFs yield simplest design procedure
Best literal count D storage devices very
transistor efficient in VLSI Best choice where
area/literal count is the key
494 bit syncronous binary counter
50Up-down counter with parallel load
51Asynchronous vs. Synchronous Counters
Ripple Counters Asynchronous
Deceptively attractive alternative to synchronous
design style
Count signal ripples from left to right
State transitions are not sharp!
Can lead to "spiked outputs" from combinational
logic decoding the counter's state
52Ripple Counters (Up or Down)
- Three characteristics determine if a ripple
counter counts up or down - FF clock input polarity
- FF output to clock polarity
- Counter output polarity
- A ripple counter with negative clock polarity, Q
to next FF clock, and Q counter outputs counts UP - Change an odd number of characteristics and the
counter counts DOWN
53Cascaded Counters
Cascaded Synchronous Counters with Ripple Carry
Outputs
First stage RCO enables second stage for counting
RCO asserted soon after stage enters state
1111 also a function of the T Enable Downstream
stages lag in their 1111 to 0000
transitions Affects Count period and decoding
logic
54Other Counter Sequences
The Power of Synchronous Clear and Load
Starting Offset Counters e.g., 0110,
0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110,
1111, 0110, ...
D C B A
R
Q
Q
Q
Q
1
C
A
B
C
D
L
6
C
O
O
C
3
L
A
L
K
D C B A
P
T
D
R
0
1
Load
0110 is the state to be loaded
Use RCO signal to trigger Load of a new
state Since 74163 Load is synchronous, state
changes only on the next rising clock edge
55Other Counter Sequences
Offset Counters Continued
Ending Offset Counter e.g., 0000, 0001,
0010, ..., 1100, 1101, 0000
Decode state to determine when to reset to 0000
Clear signal takes effect on the rising count edge
Replace '163 with '161, Counter with Async
Clear Clear takes effect immediately!