34
Registers and Counters Adapted from slides by R. H. Katz

Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

  • Upload
    dokien

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Registers and Counters

Adapted from slides b y R. H. Katz

Page 2: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

RegistersStorage Register

Group of storage elements read/written as a unit

4-bit register constructed from 4 D FFsShared clock and clear lines

TTL 74171 Quad D-type FF with Clear(Small numbers represent pin #s on package)

Schematic Shape

Q1

CLR

D3D2D1D0

171

Q1

Q0Q0

CLK Q3Q3Q2Q2

11

109

5

67

43

2

14

13

151

12

\Clr

D3

D2

D1

D0

Clk

Q3

Q2

Q1

Q0

D

R

S

Q

Q

D

Q

Q

D

Q

Q

D

Q

Q

R

S

R

S

R

S

Page 3: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

RegistersInput/Output Variations

Selective Load CapabilityTri-state or Open Collector OutputsTrue and Complementary Outputs

74377 Octal D-type FFswith input enable

74374 Octal D-type FFswith output enable

EN enabled low andlo-to-hi clock transition

to load new data intoregister

OE asserted lowpresents FF state to

output pins; otherwisehigh impedence

D3

D6Q5

Q2

377

Q1Q0

Q3

EN CLK

Q6

Q4

Q7

D5

D2D1D0

D4

D7

1

3478

13141718

11

256912151619

HGFEDCBA

QHQGQFQEQDQCQBQA

OE

37411

1

3478

13141718

256912151619

CLK

Page 4: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Registers

Register FilesTwo dimensional array of flipflopsAddress used as index to a particular wordWord contents read or written

74670 4x4 Register File withTri-state Outputs

Separate Read and Write EnablesSeparate Read and Write AddressData Input, Q Outputs

Contains 16 D-ffs, organized asfour rows (words) of four elements (bits)

670

Q4

D1

D4D3D2

Q3Q2Q1

WE

WAWB

RE

RARB

54

11

1413

12

15123

10976

Page 5: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Shift RegistersShift Registers

Storage + ability to circulate data among storage elements

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

Master Slave FFs: sample inputs while clock is high; change outputs on falling edge

Shift Direction\Reset

\ResetShift

CLK CLK CLK CLK

Q 1 1 0 0 0

Q 2 0 1 0 0

Q 3 0 0 1 0

Q 4 0 0 0 1

Shift

Shift

Shift

+

SQ1 Q2 Q3S S

+

J

K

Q

QR

S J

K

Q

QR

J

K

Q

QR

J

K

Q

QR

Q4

Page 6: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Shift Registers

• Bidirectional Shift Registers

D

C

Q D

C

Q D

C

Q D

C

Q

CLK

Q1 Q2 Q3Q0

RIGHT/LEFT

Serial data in

Page 7: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Shift Registers

Universal Shift Register Serial vs. Parallel InputsSerial vs. Parallel OutputsShift Direction: Left vs. Right

74194 4-bit UniversalShift Register

Serial Inputs: LSI, RSIParallel Inputs: D, C, B, AParallel Outputs: QD, QC, QB, QAClear SignalPositive Edge Triggered Devices

S1,S0 determine the shift functionS1 = 1, S0 = 1: Load on rising clk edge synchronous loadS1 = 1, S0 = 0: shift left on rising clk edge LSI replaces element DS1 = 0, S0 = 1: shift right on rising clk edge RSI replaces element AS1 = 0, S0 = 0: hold state

Multiplexing logic on input to each FF!

Shifters well suited for serial-to-parallel conversions, such as terminal to computer communications

Page 8: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

QAQBQCQD

S1S0LSIDCBA

RSICLK

CLR

QAQBQCQD

S1S0LSIDCBA

RSICLK

CLR

D7D6D5D4

Sender

D3D2D1D0

QAQBQCQD

S1S0LSIDCBA

RSICLK

CLR

QAQBQCQD

S1S0LSIDCBA

RSICLK

CLR

Receiver

D7D6D5D4

D3D2D1D0

Clock

194 194

194194

ParallelInputs

Serialtransmission

ParallelOutputs

Shift Registers

• Shift Register Application:– Parallel-to-Serial/Serial-to-Parallel Conversion

Page 9: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Shift Registers

• Shift Register Application:– Parallel to Serial Conversion for asynchronous communication

8-bit register

8-bit shift register

counterdiv 8

one-shot

clkgen

Serialdata in

1

0

J

K

Q

0

parallel data out

load

CLR

D

Q

CLR

CLK

TC

D7 D6 D5 D4 D3 D2 D1 D0startbit

stopbit

stopbit

Page 10: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Shift Registers

• Shift Register Application:– Universal Asynchronous Receiver Transmitter (UART)

micro-processor

systemUART

externaldevice

paralleldata bus

serial data out

serial data in

buffers

xmitterdata

register

receiverdata

register

xmittershift

register

receivershift

register

paralleldatabus

serialdataout

serialdata

in

Page 11: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

CountersCounters

Proceed through a well-defined sequence of states in response to 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, ...

Binary vs. BCD vs. Gray Code Counters

A counter is a "degenerate" finite state machine/sequential circuitwhere the state is the only output

A counter is a "degenerate" finite state machine/sequential circuitwhere the state is the only output

Page 12: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counters

Johnson (Mobius) Counter

End-Around

8 possible states, single bit change per state, useful for avoiding glitches

J CLK K

S

R

Q

Q

+

+

+ +

0 1

Shift

Q 1 Q 2 Q 3 Q 4

\Reset

J

K

S

R

Q

Q

J

K

S

R

Q

Q

J

K

S

R

Q

Q CLK CLK CLK

1

0

0

0

1

1

0

0

1

1

1

0

1

1

1

1

0

1

1

1

0

0

1

1

0

0

0

1

0

0

0

0

Shift

Q 1

Q 2

Q 3

Q 4

100

Page 13: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counters

• Up counter

• Down counter

T

CLK

Q

Q

QAT

CLK

Q

Q

QBT

CLK

Q

Q

QC

Count

T

CLK

Q

Q

QAT

CLK

Q

Q

QBT

CLK

Q

Q

QC

Count

1

1

Page 14: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counters

• Uo/down counter

T

CLK

Q

Q

QA

T

CLK

Q

Q

QB

Count

1 T

CLK

Q

Q

QC

UP/DOWN

Page 15: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

CountersCatalog Counter

74163 Synchronous4-Bit Up 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"

74161: similar in function, asynchronous load and reset

QAQBQCQD

163RCO

PT

ABCD

LOAD

CLR

CLK2

710

15

9

1

3456

14

1211

13

Page 16: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counters74163 Detailed Timing Diagram

CLK

A

B

C

D

LOAD

CLR

P

T

Q A

Q B

Q C

Q D

RCO 12 13 14 15 0 1 2

Clear Load Count Inhibit

Page 17: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

PresentState

NextState

FlipflopInputs

Counter Design ProcedureIntroduction

This procedure can be generalized to implement ANY finite state machine

Counters are a very simple way to start: no decisions on what state to advance to next current state is the output

Example: 3-bit Binary Upcounter

State TransitionTable

FlipflopInput Table

Decide to implement withToggle Flipflops

What inputs must bepresented to the T FFsto get them to change

to the desired state bit?

This is called"Remapping the Next

State Function"

010

100

C+00011110

Page 18: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Count

\Reset

Q C

Q B

Q A

100

Counter Design ProcedureExample Continued

K-maps for Toggle Inputs:

Resulting Logic Circuit:

Timing Diagram:

T

CLK

\Reset

Q

Q

S

R

QAT

CLK

Q

Q

S

R

QBT

CLK

Q

Q

S

R

QC

Count

+

TB = A

TC = A • B

T A = 1

CB A

C

00 01 11 10

0

1

B

1 1 1 1

1 1 1 1

CB

A

C

00 01 11 10

0

1

B

0 0 0 0

1 1 1 1

CB A

C

B

00 01 11 10

0

1

0 0 0 0

0 1 1 0

Page 19: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counter Design ProcedureMore Complex Count Sequence

Step 1: Derive the State Transition Diagram000 110

101010

011

Count sequence: 000, 010, 011, 101, 110

Step 2: State Transition Table

PresentState

NextState

C00001111

B00110011

A01010101

C+0X01X10X

B+1X10X10X

A+0X11X00X

Page 20: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counter Design ProcedureMore Complex Counter Sequencing

Step 3: Choose flip-flop type for Implementation Use Excitation Table to Remap Next State Functions

Toggle ExcitationTable

Remapped Next StateFunctions

PresentState

ToggleInputs

NextState

Q0011

Q+0101

T0110

C00001111

B00110011

A01010101

C+0X01X10X

B+1X10X10X

A+0X11X00X

TC0X01X01X

TB1X01X11X

TA0X10X10X

Page 21: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counter Design ProcedureMore Complex Counter Sequencing

Step 4: Draw remapped K-Maps

TC

TA

TB

CB

0 0 1 X

X 1 X 0

00 01 11 10

0

1

ACB

1 0 1 X

X 1 X 1

00 01 11 10

0

1

A

CB

0 1 0 X

X 0 X 1

00 01 11 10

0

1

A

TC = A C + A C = A xor C

TB = A + B + C

TA = A B C + B C

Step 5: Obtain minimized logic expressions

Page 22: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Counter Design ProcedureMore Complex Counter Sequencing

Resulting Logic:

Timing Waveform:

TCT

CLK

Q

Q

S

RCount

T

CLK

Q

Q

S

R

TBC

\C

B A

\B \A

TAT

CLK

Q

Q

S

R

\Reset

0

0

0

0

0

0

0

1

0

0

1

1

1

0

1

1

1

0

0

0

0

100

Count

\Reset

C

B

A

5 Gates13 (Input Literals + Flip-flop connections)

Step 6: Implement

AC

A\BC

\AB\C

\B

C

TC

TB

TA

Page 23: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Self-Starting CountersStart-Up States

At power-up, counter may be in possible state

Designer must guarantee that it (eventually) enters a valid state

Especially a problem for counters that use a subset of states

Self-Starting Solution:Design counter so that even the invalid states eventually transition to valid state

Two Self-Starting State Transition Diagrams for the Example Counter

Implementationin Previous

Slide!000

010

111

110

101

001 011 100

000

010

111

110

101

001 011 100

Page 24: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Self-Starting Counters

Deriving State Transition Table from Don't Care Assignment

Present State

Next State

C+ 0 1 0 1 0 1 0 1

B+ 1 1 1 0 1 1 0 0

A+ 0 1 1 1 1 0 0 1

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1

Inputs to Toggle Flip-flops State Changes

State Transition Table

CB

0 0 1 X

X 1 X 0

00 01 11 10

0

1

A

CB

1 0 1 X

X 1 X 1

00 01 11 10

0

1

A

CB

0 1 0 X

X 0 X 1

00 01 11 10

0

1

A

TC

TB

TA

CB

0 1 0 1

1 1 1 0

00 01 11 10

0

1

A

CB

1 1 0 1

1 0 0 1

00 01 11 10

0

1

A

CB

0 0 0 0

1 1 1 1

00 01 11 10

0

1

A

Page 25: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Implementation with Different FF Types

J-K FFs

J-K Excitation Table

Remapped Next State Functions

PresentState

NextState

Remapped Next State

Q+ = J Q + K Q

Q0011

Q+0101

J01XX

KXX10

C00001111

B00110011

A01010101

C+0X01X10X

B+1X10X10X

A+0X11X00X

JC0X01XXXX

KCXXXXX01X

JB1XXXX1XX

KBXX01XX1X

JA0X1XXX0X

KAXXX0X1XX

Page 26: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Implementation with Different FF TypesJ-K FFs Continued

JC = A

KC = A

JB = 1

KB = A + C

JA = B C

KA = C

JC

JA

JB

KC

KA

KB

CB

0 0 X X

X 1 X X

00 01 11 10

0

1

ACB

X X 1 X

X X X 0

00 01 11 10

0

1

A

CB

1 X X X

X X X 1

00 01 11 10

0

1

ACB

X 0 1 X

X 1 X X

00 01 11 10

0

1

A

CB

0 1 0 X

X X X X

00 01 11 10

0

1

ACB

X X X X

X 0 X 1

00 01 11 10

0

1

A

Page 27: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Implementation with Different FF TypesJ-K FFs Continued

Resulting Logic Level Implementation: 2 Gates, 10 (Input Literals + Flip-flop Connections)

CLK CLK CLK J

K

Q

Q

A

\ A

C

\ C KB

J

K

Q

Q

B

\ B

+

J

K

Q

Q

JA

C

A

\ A

B \ C

Count

A C KB JA

Page 28: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Implementation with Different FF Types

• D FFs– Simplest Design Procedure: No remapping needed!

PresentState

NextState

DC

DA

DB

CB

0 0 0 X

X 1 X 1

00 01 11 10

0

1

A

CB

1 1 0 X

X 0 X 1

00 01 11 10

0

1

A

CB

0 1 0 X

X 1 X 0

00 01 11 10

0

1

ADC = A

DB = A C + B

DA = B C

C00001111

B00110011

A01010101

C+0X01X10X

B+1X10X10X

A+0X11X00X

Page 29: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Implementation with Different FF TypesD FFs Continued

DC = A

DB = A C + B

DA = B C

Resulting Logic Level Implementation: 3 Gates, 8 (Input Literals + Flipflop connections)

CLK CLK

D Q

Q

A

\ A

D Q

Q

DA DB B

\ B CLK

D Q

Q

A C

\ C Count

\ C \ A

\ B

B \ C DA DB

Page 30: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Implementation with Different FF Types

• Comparison– T FFs well suited for straightforward binary counters

» But yielded worst gate and literal count for this example!

– 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

Page 31: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Asynchronous vs . Synchronous CountersRipple Counters

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

Can lead to "spiked outputs" from combinational logic decoding the counter's state

T

Count

Q

QA

T Q

QB

T

CLK

Q

QC

CLK CLK

Page 32: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Asynchronous vs . Synchronous CountersCascaded Synchronous Counters with Ripple Carry Outputs

First stage RCOenables second stage

for counting

RCO assertedsoon after stageenters state 1111

also a functionof the T Enable

Downstream stageslag in their 1111 to

0000 transitions

Affects Count periodand decoding logic

(1) Low order 4-bits = 1111

(2) RCO goes high

(3) High order 4-bits are incremented

Page 33: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Clock

Load

D

C

B

A

100

Asynchronous vs . Synchronous CountersThe Power of Synchronous Clear and Load

Starting Offset Counters: e.g., 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1111, 0110, ...

Use RCO signal to trigger Load of a new state

Since 74163 Load is synchronous, state changes only on the next rising clock edge

0110is the state

to be loaded

D C B A

L O A D

C L R

C L K

R C O

P T

Q A

Q B

Q C

Q D1

6 3

Load

D C B A

0 1++

Page 34: Registers and Counters - SNU DALdal.snu.ac.kr/~kchoi/class/lc_intro/reg_count.pdf · Registers and Counters Adapted from slides by R. H. Katz. Registers Storage Register Group of

Asynchronous vs . Synchronous CountersOffset Counters Continued

Ending Offset Counter: e.g., 0000, 0001, 0010, ..., 1100, 1101, 0000

Decode state todetermine when to

reset to 0000

Clear signal takes effect on the rising count edge

Replace '163 with '161, Counter with Async ClearClear takes effect immediately!

D C B A

C L R

L O A D

C L KP T

1 6 3

R C O

Q Q Q Q D C B A

CLR

D C B A

1 0