23
27.07.20 13:09 CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers IV Jetic Gū 2020 Summer Semester (S2)

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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

27.07.20 13:09CSCI 150 Introduction to Digital and Computer

System Design Lecture 5: Registers IV

Jetic Gū2020 Summer Semester (S2)

Page 2: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 3: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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)

Page 4: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

Register Cell Design

Summary

P1 Register Cell

One register for AND, OR, XOR

Page 5: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 6: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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]

Page 7: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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]

Page 8: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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]

Page 9: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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]

Page 10: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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)

Page 11: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 12: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 13: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

Counter Functional Blocks

Summary

P2 Counter

Ripple Counter; Synchronous Binary Counter;BCD Counter

Page 14: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 15: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 16: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 17: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 18: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 19: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 20: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

? ?

Page 21: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 22: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

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

Page 23: CSCI 150 Introduction to Digital and Computer System Design Lecture 5: Registers … · 2020. 7. 27. · CSCI 150 27.07.20 13:09 Introduction to Digital and Computer System Design

Tutorial

Summary

P2 LogicWorks

Bus, Register Cells, Datapath