CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7....

Post on 21-Aug-2020

4 views 0 download

transcript

27.07.20 13:09CSCI 150 Introduction to Digital and Computer

System Design Lecture 5: Registers IV

Jetic Gū2020 Summer Semester (S2)

Overview• Focus: Fundamentals of Complex Digital Circuit Design

• Architecture: von Neumann

• Textbook v4: Ch7 7.6, 7.7; v5: Ch6 6.6, 6.7

• Core Ideas:

1. Register-Cell Design

2. Counter

Example Datapath Architecture

Review

P0 Review

Register Array (Reg)

REG AXQ

DREG BX

QD

REG CXQ

DREG DX

QD

……

Dec

Functional Block A

Functional Block B

Functional Block C

Functional Block D

Control Unit (CU)

Register Cell Design

Summary

P1 Register Cell

One register for AND, OR, XOR

1. Specification• Input: -bit input , -bit output

• Mode: , , , only one of these can be 1. If all 0s preserve current value

• Output: -bit output back to input register ( )

• If ,

• If ,

• If ,

• If ,

n A n B

MAND MOR MXOR

n A DA

MAND = 1 DA = A ⋅ B

MOR = 1 DA = A + B

MXOR = 1 DA = A ⊕ B

MAND + MOR + MXOR = 0 DA = A

Example

P1 Register Cell

2. Formulation 3. State Assignment

Example

P1 Register Cell

Present A State

Next A State (DA)

AND=0XOR=0OR=0

OR=1B=0

OR=1B=1

AND=1B=0

AND=1B=1

XOR=1B=0

XOR=1B=1

0 0 0 1 0 0 0 1

1 1 1 1 0 1 1 0

• For every bit [0,n − 1]

4. Flip-Flop Input Equation 5. Output Equation

Example

P1 Register Cell

DA = MAND ⋅ (AB)+MOR ⋅ (A + B)+MXOR ⋅ (AB + AB)+MOR ⋅ MAND ⋅ MXOR ⋅ A

• For every bit [0,n − 1]

6. Optimisation

Example

P1 Register Cell

DA = MAND ⋅ (AB)+MOR ⋅ (A + B)+MXOR ⋅ (AB + AB)+MOR ⋅ MAND ⋅ MXOR ⋅ A

= MAND ⋅ Σm(3)+MOR ⋅ Σm(1,2,3)+MXOR ⋅ Σm(1,2)+MOR ⋅ MAND ⋅ MXOR ⋅ Σm(2,3)

• For every bit [0,n − 1]

6. Optimisation

Example

P1 Register Cell

= m3(MAND + MOR + MOR ⋅ MAMD ⋅ MXOR)+m2(MOR + MXOR + MOR ⋅ MAMD ⋅ MXOR)+m1(MOR + MXOR)

DA = MAND ⋅ (AB)+MOR ⋅ (A + B)+MXOR ⋅ (AB + AB)+MOR ⋅ MAND ⋅ MXOR ⋅ A

= MAND ⋅ Σm(3)+MOR ⋅ Σm(1,2,3)+MXOR ⋅ Σm(1,2)+MOR ⋅ MAND ⋅ MXOR ⋅ Σm(2,3)

• For every bit [0,n − 1]

6. Optimisation• For every bit [0,n − 1]

Example

P1 Register Cell

DA = MAND ⋅ (AB)+MOR ⋅ (A + B)+MXOR ⋅ (AB + AB)+MOR ⋅ MAND ⋅ MXOR ⋅ A

= MAND ⋅ Σm(3)+MOR ⋅ Σm(1,2,3)+MXOR ⋅ Σm(1,2)+MOR ⋅ MAND ⋅ MXOR ⋅ Σm(2,3)

= m3(MAND + MOR + MXOR)+m2(MOR + MXOR + MAND)+m1(MOR + MXOR)

7. Technology Mapping

Example

P1 Register Cell 356 CHAPTER 6 / REGISTERS AND REGISTER!TRANSFERS

Di = C1AiBi + C2AiBi + C2AiBi

LOAD = C1 + C2

Di,FF = LOAD # Di + LOAD # Ai

If these equations are used directly the cost of the simple approach for a 16-cell design is about 40% higher. So by designing a custom register cell using a D !ip-!op rather than "nding input logic for a D !ip-!op with enable, the cost can be reduced. Further, with the decrease in the number of levels of logic, the delay may also be reduced. !

In the preceding example, there are no lateral connections between adjacent cells. Among the operations requiring lateral connections are shifts, arithmetic operations, and comparisons. One approach to the design of these structures is to combine combinational designs given in Chapter 3 with selection logic and !ip-!ops. A generic approach for multifunctional registers using !ip-!ops with parallel load is shown in Figure 6-8. This simple approach bypasses register-cell design but, if directly implemented, can result in excessive logic and too many lateral connec-tions. The alternative is to do a custom register-cell design. In such designs, a critical factor is the de"nition of the lateral connection(s) needed. Also, different opera-tions can be de"ned by controlling input to the least signi"cant cell of the cell

OR

EXOR

ANDShared Logic

C1

C2

C3

Bi

AiD

CClock

Cell i

C1 C3 C2

FIGURE 6-17Logic Diagram—Register-Cell Design Example 6-1

M06_MANO0637_05_SE_C06.indd 356 21/01/15 9:50 AM

Register Cells

• Register Cells are specific register designed to perform certain computation

• What we just did was for AND, OR, XOR

• Register Cell for AND, OR, XOR, and NOT

• Register Cell for AND, OR, XOR, NOT, and Shifts

• etc.

Concep

t

P1 Register Cell

Counter Functional Blocks

Summary

P2 Counter

Ripple Counter; Synchronous Binary Counter;BCD Counter

Counter• Register Cells for counting

• Reset: set counter to 0

• Every CLK tick: add 1 to the register

1. Ripple Counter

2. Synchronous Counters

3. BCD Counter

Concep

t

P2 Counter

Ripple Counter

• 1-bit Counter

• What is the behaviour of the circuit on the right?

Concep

t

P2 Counter

0 1

R0D

CR

CLK

Reset

Ripple Counter

• 2-bit Counter

• What is the behaviour of the circuit on the right?

Concep

t

P2 Counter

R0D

CR

CLK

Reset

R1D

CR

C pin of R1 is turned onevery 2 ticks

0 1 0 10 100 01 10 11

Ripple Counter

• 3-bit Counter

• What is the behaviour of the circuit on the right?

Concep

t

P2 Counter

R0D

CR

CLK

Reset

R1D

CR

C pin of R1 is turned onevery 2 ticks

00 01 10 11R2D

CR

C pin of R2 is turned onevery 4 ticks

000 001 010 011

100101110111

Ripple Counter

• 4-bit Counter

• What is the behaviour of the circuit on the right?

Concep

t

P2 Counter

R0D

CR

CLK

Reset

R1D

CR

C pin of R1 is turned onevery 2 ticks

R2D

CR

C pin of R2 is turned onevery 4 ticks

R3D

CR

C pin of R3 is turned onevery 8 ticks

Synchronous Binary Counter

Concep

t

P2 Counter

6-6 / Microoperations on a Single Register 347

dependence and unreliable operation. This is particularly true for logic that provides feedback paths from counter outputs back to counter inputs. Also, due to the length of time required for the ripple to !nish, large ripple counters can be slow circuits. As a consequence, synchronous binary counters are favored in all but low-power designs, where ripple counters have an advantage. (See Problem 6-9.)

Synchronous Binary Counters

Synchronous counters, in contrast to ripple counters, have the clock applied to the C inputs of all "ip-"ops. Thus, the common clock pulse triggers all "ip-"ops simultane-ously rather than one at a time, as in a ripple counter. A synchronous binary counter that counts up by 1 can be constructed from the incrementer in Figure 3-52 and D "ip-"ops, as shown in Figure 6-13(a). The carry output CO is added by not placing an X value on the C4 output before the contraction of an adder to the incrementer in Figure 3-52. Output CO is used to extend the counter to more stages.

Note that the "ip-"ops trigger on the positive-edge transition of the clock. The polarity of the clock is not essential here, as it was for the ripple counter. The syn-chronous counter can be designed to trigger with either the positive or the negative clock transition.

SeRial and PaRallel counteRS We will use the synchronous counter in Figure 6-13 to demonstrate two alternative designs for binary counters. In Figure 6-13(a), a chain of 2-input AND gates is used to provide information to each stage about the state of the prior stages in the counter. This is analogous to the carry logic in the ripple carry adder. A counter that uses such logic is said to have serial gating and is referred to

TABLE 6-8Counting Sequence of Binary Counter

Upward Counting Sequence Downward Counting Sequence

Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0

0 0 0 0 1 1 1 10 0 0 1 1 1 1 00 0 1 0 1 1 0 10 0 1 1 1 1 0 00 1 0 0 1 0 1 10 1 0 1 1 0 1 00 1 1 0 1 0 0 10 1 1 1 1 0 0 01 0 0 0 0 1 1 11 0 0 1 0 1 1 01 0 1 0 0 1 0 11 0 1 1 0 1 0 01 1 0 0 0 0 1 11 1 0 1 0 0 1 01 1 1 0 0 0 0 11 1 1 1 0 0 0 0

M06_MANO0637_05_SE_C06.indd 347 21/01/15 9:50 AM

Synchronous Binary Counter

Concep

t

P2 Counter

• Upward flips when is all 1; Downward equals inverted UpwardQi Q<i

6-6 / Microoperations on a Single Register 347

dependence and unreliable operation. This is particularly true for logic that provides feedback paths from counter outputs back to counter inputs. Also, due to the length of time required for the ripple to !nish, large ripple counters can be slow circuits. As a consequence, synchronous binary counters are favored in all but low-power designs, where ripple counters have an advantage. (See Problem 6-9.)

Synchronous Binary Counters

Synchronous counters, in contrast to ripple counters, have the clock applied to the C inputs of all "ip-"ops. Thus, the common clock pulse triggers all "ip-"ops simultane-ously rather than one at a time, as in a ripple counter. A synchronous binary counter that counts up by 1 can be constructed from the incrementer in Figure 3-52 and D "ip-"ops, as shown in Figure 6-13(a). The carry output CO is added by not placing an X value on the C4 output before the contraction of an adder to the incrementer in Figure 3-52. Output CO is used to extend the counter to more stages.

Note that the "ip-"ops trigger on the positive-edge transition of the clock. The polarity of the clock is not essential here, as it was for the ripple counter. The syn-chronous counter can be designed to trigger with either the positive or the negative clock transition.

SeRial and PaRallel counteRS We will use the synchronous counter in Figure 6-13 to demonstrate two alternative designs for binary counters. In Figure 6-13(a), a chain of 2-input AND gates is used to provide information to each stage about the state of the prior stages in the counter. This is analogous to the carry logic in the ripple carry adder. A counter that uses such logic is said to have serial gating and is referred to

TABLE 6-8Counting Sequence of Binary Counter

Upward Counting Sequence Downward Counting Sequence

Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0

0 0 0 0 1 1 1 10 0 0 1 1 1 1 00 0 1 0 1 1 0 10 0 1 1 1 1 0 00 1 0 0 1 0 1 10 1 0 1 1 0 1 00 1 1 0 1 0 0 10 1 1 1 1 0 0 01 0 0 0 0 1 1 11 0 0 1 0 1 1 01 0 1 0 0 1 0 11 0 1 1 0 1 0 01 1 0 0 0 0 1 11 1 0 1 0 0 1 01 1 1 0 0 0 0 11 1 1 1 0 0 0 0

M06_MANO0637_05_SE_C06.indd 347 21/01/15 9:50 AM

? ?

Synchronous Binary Counter

• Upward

• , for all

• Downward

• Take as output (using e.g. multiplexer), for all

DA0 = Q0

DAi = Qi ⊕ (Πj<iQj) i ∈ [1,n − 1]

Qi i ∈ [0,n − 1]

Concep

t

P2 Counter

Exercise

• Implement 4-bit Ripple Counter in LogicWorks

• Implement 4-bit Synchronous Counter in LogicWorks

• Design 3 digit BCD counter using 4-bit binary counters

Exerci

se

P2 Counter

Tutorial

Summary

P2 LogicWorks

Bus, Register Cells, Datapath