Top Banner
Counters Computer Organization I 1 CS@VT ©2005-2012 McQuain Design: a mod-8 Counter A mod-8 counter stores a integer value, and increments that value (say) on each clock tick, and wraps around to 0 if the previous stored value was 7. So, the stored value follows a cycle: 000 001 010 011 100 101 110 111
17

Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

May 27, 2018

Download

Documents

lykhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

1

CS@VT ©2005-2012 McQuain

Design: a mod-8 Counter

A mod-8 counter stores a integer value, and increments that value (say) on each clock

tick, and wraps around to 0 if the previous stored value was 7.

So, the stored value follows a cycle:

000 001 010 011 100 101 110 111

Page 2: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

2

CS@VT ©2005-2012 McQuain

Design: State Machine

We need eight different states for our counter, one for each value from 0 to 7.

We can describe the operation by drawing a state machine. The nodes represent states

and the edges represent transitions and are labeled with the input (clock in this case) that

causes the transition to occur.

000 001 010 011

111 110 101 100

1 1 1

111

11

Page 3: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

3

CS@VT ©2005-2012 McQuain

Design: State Table

A state table summarizes the state machine and is useful in deriving equations later:

000 001 010 011

111 110 101 100

1 1 1

111

11

Current State Input Next State------------------------------------0 0 0 1 0 0 10 0 1 1 0 1 00 1 0 1 0 1 10 1 1 1 1 0 01 0 0 1 1 0 11 0 1 1 1 1 01 1 0 1 1 1 11 1 1 1 0 0 0

Page 4: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

4

CS@VT ©2005-2012 McQuain

Design: Deriving Equations

We will derive an equation for each of the next state functions:

Current State Input Next StateC2 C1 C0 N2 N1 N0------------------------------------0 0 0 1 0 0 10 0 1 1 0 1 00 1 0 1 0 1 10 1 1 1 1 0 01 0 0 1 1 0 11 0 1 1 1 1 01 1 0 1 1 1 11 1 1 1 0 0 0

0 2 1 0 2 1 0 2 1 0 2 1 0 0N C C C C C C C C C C C C C= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ =

1 2 1 0 2 1 0 2 1 0 2 1 0 1 0 1 0N C C C C C C C C C C C C C C C C= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⋅ + ⋅

2 2 1 0 2 1 0 2 1 0 2 1 0

2 1 0 2 1 2 0

N C C C C C C C C C C C C

C C C C C C C

= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅

= ⋅ ⋅ + ⋅ + ⋅

Page 5: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

5

CS@VT ©2005-2012 McQuain

Design: Mapping to D Flip-flops

Since each state is represented by a 3-bit integer, we can represent the states by using a

collection of three flip-flops (more-or-less a mini-register).

We will implement the circuit using D flip-flops, which make for a simple translation

from the state table because a D flip-flop simply accepts its input value.

D Q ~Q------------0 0 00 1 01 0 11 1 1

So, we just need to feed each of the flip-flops the value of the appropriate next-state

function equation derived earlier…

Page 6: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

6

CS@VT ©2005-2012 McQuain

D Flip-flop

The D flip-flop takes one data input and updates its state Q, on a clock tick, according to

the table:

D Q

~Q

CK

D Q ~Q------------0 0 11 1 1

In the following Logisim diagrams, the D flip-flops update state on the falling edge (when

the clock goes from high to low).

Page 7: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

7

CS@VT ©2005-2012 McQuain

JK Flip-flop

The JK flip-flop takes two data inputs and updates its state Q, on a clock tick, according

to the table:

J

K

Q

~Q

CK

J K Q ~Q----------------------0 0 no change0 1 0 11 0 1 01 1 opposite

In the following Logisim diagrams, the JK flip-flops update state on the falling edge

(when the clock goes from high to low).

Page 8: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

8

CS@VT ©2005-2012 McQuain

Implementation

0 0N C=

1 1 0 1 0N C C C C= ⋅ + ⋅

2 2 1 0 2 1 2 0N C C C C C C C= ⋅ ⋅ + ⋅ + ⋅

Page 9: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

9

CS@VT ©2005-2012 McQuain

Design: Mapping to JK Flip-flops

We could also implement the circuit using JK flip-flops.

J K Q ~Q----------------------0 0 no change0 1 0 11 0 1 01 1 opposite

This will require a little more effort, since the inputs to the JK flip-flops cannot merely be

set to equal the next state functions.

Page 10: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

10

CS@VT ©2005-2012 McQuain

Design: Deriving JK Inputs

Flip-flop InputsCurrent State Next State J2 K2 J1 K1 J0 K0------------------------------------------------------0 0 0 0 0 1 0 0 0 0 1 10 0 1 0 1 0 0 0 1 1 1 10 1 0 0 1 1 0 0 0 0 1 10 1 1 1 0 0 1 1 1 1 1 11 0 0 1 0 1 0 0 0 0 1 11 0 1 1 1 0 0 0 1 1 1 11 1 0 1 1 1 0 0 0 0 1 11 1 1 0 0 0 1 1 1 1 1 1

We must examine each current/next state pair and determine how/if the relevant flip-flop

needs to change state:

For this simple circuit, we either want the JK flip-flop to hold state (both inputs 0) or to

toggle state (both inputs 1).

Page 11: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

11

CS@VT ©2005-2012 McQuain

Design: Deriving JK Input Equations

Flip-flop InputsCurrent State J2 K2 J1 K1 J0 K0C2 C1 C0----------------------------------------

0 0 0 0 0 0 0 1 10 0 1 0 0 1 1 1 10 1 0 0 0 0 0 1 10 1 1 1 1 1 1 1 11 0 0 0 0 0 0 1 11 0 1 0 0 1 1 1 11 1 0 0 0 0 0 1 11 1 1 1 1 1 1 1 1

We can derive equations in the usual manner from the previous table:

0 0 1J K= =

2 2 2 1 0 2 1 0 1 0J K C C C C C C C C= = ⋅ ⋅ + ⋅ ⋅ = ⋅

1 1 2 1 0 2 1 0 2 1 0 2 1 0

0

J K C C C C C C C C C C C C

C

= = ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅

=

Page 12: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

12

CS@VT ©2005-2012 McQuain

Implementation

0 0 1J K= =

2 2 1 0J K C C= = ⋅

1 1 0J K C= =

Page 13: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

13

CS@VT ©2005-2012 McQuain

A mod-16 Counter

We can use JK flip-flops to implement a 4-bit counter:

Note that the J and K inputs are all set to the fixed value 1, so the flip-flops "toggle".

As the clock signal runs, the circuit will cycle its outputs through the values

0000, 0001, 0010, . . . , 1111

and then repeat the pattern.

So, it counts clock ticks, modulo 16.

Page 14: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

14

CS@VT ©2005-2012 McQuain

mod-16 Counter: first tick

Suppose the counter is in the initial state shown below (output is 0000).

When the clock cycles from high to low:

- the right-most sees its (inverted) clock signal go from

low to high, and so it toggles its state to 1

- the next flip-flop sees its clock signal go from high to

low, and so it doesn't toggle

- and so, neither do the other flip-flops…

So, the output is 0001:

Page 15: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

15

CS@VT ©2005-2012 McQuain

mod-16 Counter: second tick

Suppose the counter is now in the state shown below (output is 0001).

When the clock cycles from high to low (2nd cycle):

- the right-most sees its (inverted) clock signal go from low

to high, and so it toggles its state to 0

- the next flip-flop sees its clock signal go from low to

high, and so it toggles its state to 1

- the next flip-flop sees its clock signal go from high to

low, so it doesn't toggle

So the output is 0010.

Page 16: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

16

CS@VT ©2005-2012 McQuain

mod-16 Counter: third tick

Suppose the counter is now in the state shown below (output is 0010).

When the clock cycles from high to low (3rd cycle):

- the right-most sees its (inverted) clock signal go

from low to high, and so it toggles its state to 1

- the next flip-flop sees its clock signal go from high

to low, and so it doesn't toggle

So the output is 0011.

Page 17: Design: a mod-8 Counter 1 - Undergraduate Courses | …courses.cs.vt.edu/cs2505/spring2013/Notes/T36_Counte… ·  · 2013-01-14Design: a mod-8 Counter A mod-8 counter stores a integer

Counters

Computer Organization I

17

CS@VT ©2005-2012 McQuain

mod-16 Counter: fourth tick

Suppose the counter is now in the state shown below (output is 0011).

When the clock cycles from high to low (4th cycle):

- the right-most sees its (inverted) clock signal go

from low to high, and so it toggles its state to 0

- the next flip-flop sees its clock signal go from low to

high, and so it toggles its state to 0

- the next flip-flop sees its clock signal go from low to

high, and so it toggles its state to 1

So the output is 0100.