• No results found

CSCI 150. Introduction to Digital and Computer System Design Lecture 3: Combinational Logic Design III

N/A
N/A
Protected

Academic year: 2021

Share "CSCI 150. Introduction to Digital and Computer System Design Lecture 3: Combinational Logic Design III"

Copied!
47
0
0

Loading.... (view fulltext now)

Full text

(1)

10.02.21 12:00 CSCI 150

Introduction to Digital and Computer System Design

Lecture 3: Combinational Logic Design III

(2)

Overview

• Focus: Logic Functions

• Architecture: Combinatory Logical Circuits

• Textbook v4: Ch3 3.6; v5: Ch3 3.1, 3.4

• Core Ideas:

(3)

Systematic Design Procedures

1. Specification: Write a specification for the circuit

2. Formulation: Derive relationship between inputs and outputs of the system


e.g. using truth table or Boolean expressions

3. Optimisation: Apply optimisation, minimise the number of logic gates and

literals required

4. Technology Mapping: Transform design to new diagram using available

implementation technology

5. Verification: Verify the correctness of the final design in meeting the

specifications

Review

(4)

Systematic Design Procedures

• Hierarchical Design

• Divide complex designs into smaller functional blocks, then apply the same 5-step design procedures for each block

• Reusable, easier and more efficient Implementation

Review

(5)

Value-Fixing,

Transferring, Inverting,

Enabler

Summary P1 Elementary Func.

(6)

Value-Fixing, Transferring, and

Inverting

Concept

P1 Elementary Func.

① Value-Fixing: giving a constant value to a wire

• ; ;

② Transferring: giving a variable (wire) value from another variable (wire)

• ;

③ Inverting: inverting the value of a variable

F = 0 F = 1 F = X

(7)

Value-Fixing, Transferring, and

Inverting

Concept

P1 Elementary Func.

3-4 / Rudimentary Logic Functions 123

consequence, logic gates are not involved in the implementation of these operations. Inverting involves only one logic gate per variable, and enabling involves one or two logic gates per variable.

Value-Fixing, Transferring, and Inverting

If a single-bit function depends on a single variable X, four different functions are possible. Table 3-1 gives the truth tables for these functions. The first and last col-umns of the table assign either constant value 0 or constant value 1 to the function, thus performing value fixing. In the second column, the function is simply the input variable X, thus transferring X from input to output. In the third column, the func-tion is X, thus inverting input X to become output X.

The implementations for these four functions are given in Figure 3-7. Value fix-ing is implemented by connectfix-ing a constant 0 or constant 1 to output F, as shown in Figure 3-7(a). Figure 3-7(b) shows alternative representations used in logic schemat-ics. For the positive logic convention, constant 0 is represented by the electrical ground symbol and constant 1 by a power-supply voltage symbol. The latter symbol is labeled with either VCC or VDD. Transferring is implemented by a simple wire con-necting X to F as in Figure 3-7(c). Finally, inverting is represented by an inverter which forms F = X from input X, as shown in Figure 3-7(d).

Multiple-Bit Functions

The functions defined so far can be applied to multiple bits on a bitwise basis. We can think of these multiple-bit functions as vectors of single-bit functions. For example, suppose that we have four functions, F3, F2, F1, and F0, that make up a four-bit func-tion F. We can order the four funcfunc-tions with F3 as the most significant bit and F0 the

TABLE 3-1

Functions of One Variable

X F = 0 F = X F = X F = 1 0 0 0 1 1 1 0 1 0 1 0 1 (a) V F ! 1 F ! 0 F ! 1 F ! 0 F ! X F ! X CC or VDD (b) X (c) X (d) FIGURE 3-7

Implementation of Functions of a Single Variable X

M03_MANO0637_05_SE_C03.indd 123 23/01/15 1:51 PM

① Value-Fixing ① Value-Fixing

② Transferring

(8)

Vector Denotation

Concept

P1 Elementary Func.

④ Multiple-bit Function

• Functions we’ve seen so far has only one-bit output: 0/1

• Certain functions may have -bit output

• , each is a one-bit function

• Curtain Motor Control Circuit:

n

F(n − 1 : 0) = (Fn−1, Fn−2, . . . , F0) Fi

(9)

Vector Denotation

Concept

P1

Elementary Func.

124

CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

least significant bit, providing the vector F = (F3, F2, F1, F0). Suppose that F consists

of rudimentary functions F3 = 0, F2 = 1, F1 = A, and F0 = A. Then we can write F as the vector (0, 1, A, A). For A = 0, F = (0, 1, 0, 1) and for A = 1, F = (0, 1, 1, 0). This multiple-bit function can be referred to as F(3:0) or simply as F and is imple-mented in Figure 3-8(a). For convenience in schematics, we often represent a set of multiple, related wires by using a single line of greater thickness with a slash, across the line. An integer giving the number of wires represented accompanies the slash as shown in Figure 3-8(b). In order to connect the values 0, 1, X, and X to the appropri-ate bits of F, we break F up into four wires, each labeled with the bit of F. Also, in the process of transferring, we may wish to use only a subset of the elements in F—for example, F2 and F1. The notation for the bits of F can be used for this purpose, as shown in Figure 3-8(c). In Figure 3-8(d), a more complex case illustrates the use of

F3, F1, F0 at a destination. Note that since F3, F1, and F0 are not all together, we cannot use the range notation F(3:0) to denote this subvector. Instead, we must use a combi-nation of two subvectors, F(3), F(1:0), denoted by subscripts 3, 1:0. The actual nota-tion used for vectors and subvectors varies among the schematic drawing tools or HDL tools available. Figure 3-8 illustrates just one approach. For a specific tool, the documentation should be consulted.

Value fixing, transferring, and inverting have a variety of applications in logic design. Value fixing involves replacing one or more variables with constant values 1 and 0. Value fixing may be permanent or temporary. In permanent value fixing, the value can never be changed. In temporary value fixing, the values can be changed, often by mechanisms somewhat different from those employed in ordi-nary logical operation. A major application of fixed and temporary value fixing is in programmable logic devices. Any logic function that is within the capacity of the programmable device can be implemented by fixing a set of values, as illustrated in the next example.

EXAMPLE 3-4 Lecture-Hall Lighting Control Using Value Fixing

The Problem: The design of a part of the control for the lighting of a lecture hall

specifies that the switches that control the normal lights be programmable. There are to be three different modes of operation for the two switches. Switch P is on the po-dium in the front of the hall and switch R is adjacent to a door at the rear of the

0 F3 1 F2 A F1 A F0 (a) 0 1 A A 1 2 3 4 F 0 (b) 4 2:1 2 F(2:1) F (c) 4 3,1:0 3 F(3), F(1:0) F (d) FIGURE 3-8

Implementation of Multibit Rudimentary Functions

(10)

Vector Denotation

Concept

P1 Elementary Func.

1. These two are equivalent

124

CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

least significant bit, providing the vector F = (F3, F2, F1, F0). Suppose that F consists

of rudimentary functions F3 = 0, F2 = 1, F1 = A, and F0 = A. Then we can write F as the vector (0, 1, A, A). For A = 0, F = (0, 1, 0, 1) and for A = 1, F = (0, 1, 1, 0). This multiple-bit function can be referred to as F(3:0) or simply as F and is imple-mented in Figure 3-8(a). For convenience in schematics, we often represent a set of multiple, related wires by using a single line of greater thickness with a slash, across the line. An integer giving the number of wires represented accompanies the slash as shown in Figure 3-8(b). In order to connect the values 0, 1, X, and X to the appropri-ate bits of F, we break F up into four wires, each labeled with the bit of F. Also, in the process of transferring, we may wish to use only a subset of the elements in F—for example, F2 and F1. The notation for the bits of F can be used for this purpose, as shown in Figure 3-8(c). In Figure 3-8(d), a more complex case illustrates the use of

F3, F1, F0 at a destination. Note that since F3, F1, and F0 are not all together, we cannot use the range notation F(3:0) to denote this subvector. Instead, we must use a combi-nation of two subvectors, F(3), F(1:0), denoted by subscripts 3, 1:0. The actual nota-tion used for vectors and subvectors varies among the schematic drawing tools or HDL tools available. Figure 3-8 illustrates just one approach. For a specific tool, the documentation should be consulted.

Value fixing, transferring, and inverting have a variety of applications in logic design. Value fixing involves replacing one or more variables with constant values 1 and 0. Value fixing may be permanent or temporary. In permanent value fixing, the value can never be changed. In temporary value fixing, the values can be changed, often by mechanisms somewhat different from those employed in ordi-nary logical operation. A major application of fixed and temporary value fixing is in programmable logic devices. Any logic function that is within the capacity of the programmable device can be implemented by fixing a set of values, as illustrated in the next example.

EXAMPLE 3-4 Lecture-Hall Lighting Control Using Value Fixing

The Problem: The design of a part of the control for the lighting of a lecture hall

specifies that the switches that control the normal lights be programmable. There are to be three different modes of operation for the two switches. Switch P is on the po-dium in the front of the hall and switch R is adjacent to a door at the rear of the

0 F3 1 F2 A F1 A F0 (a) 0 1 A A 1 2 3 4 F 0 (b) 4 2:1 2 F(2:1) F (c) 4 3,1:0 3 F(3), F(1:0) F (d) FIGURE 3-8

Implementation of Multibit Rudimentary Functions

M03_MANO0637_05_SE_C03.indd 124 23/01/15 1:51 PM

124

CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

least significant bit, providing the vector F = (F3, F2, F1, F0). Suppose that F consists

of rudimentary functions F3 = 0, F2 = 1, F1 = A, and F0 = A. Then we can write F as the vector (0, 1, A, A). For A = 0, F = (0, 1, 0, 1) and for A = 1, F = (0, 1, 1, 0). This multiple-bit function can be referred to as F(3:0) or simply as F and is imple-mented in Figure 3-8(a). For convenience in schematics, we often represent a set of multiple, related wires by using a single line of greater thickness with a slash, across the line. An integer giving the number of wires represented accompanies the slash as shown in Figure 3-8(b). In order to connect the values 0, 1, X, and X to the appropri-ate bits of F, we break F up into four wires, each labeled with the bit of F. Also, in the process of transferring, we may wish to use only a subset of the elements in F—for example, F2 and F1. The notation for the bits of F can be used for this purpose, as shown in Figure 3-8(c). In Figure 3-8(d), a more complex case illustrates the use of

F3, F1, F0 at a destination. Note that since F3, F1, and F0 are not all together, we cannot use the range notation F(3:0) to denote this subvector. Instead, we must use a combi-nation of two subvectors, F(3), F(1:0), denoted by subscripts 3, 1:0. The actual nota-tion used for vectors and subvectors varies among the schematic drawing tools or HDL tools available. Figure 3-8 illustrates just one approach. For a specific tool, the documentation should be consulted.

Value fixing, transferring, and inverting have a variety of applications in logic design. Value fixing involves replacing one or more variables with constant values 1 and 0. Value fixing may be permanent or temporary. In permanent value fixing, the value can never be changed. In temporary value fixing, the values can be changed, often by mechanisms somewhat different from those employed in ordi-nary logical operation. A major application of fixed and temporary value fixing is in programmable logic devices. Any logic function that is within the capacity of the programmable device can be implemented by fixing a set of values, as illustrated in the next example.

EXAMPLE 3-4 Lecture-Hall Lighting Control Using Value Fixing

The Problem: The design of a part of the control for the lighting of a lecture hall

specifies that the switches that control the normal lights be programmable. There are to be three different modes of operation for the two switches. Switch P is on the po-dium in the front of the hall and switch R is adjacent to a door at the rear of the

0 F3 1 F2 A F1 A F0 (a) 0 1 A A 1 2 3 4 F 0 (b) 4 2:1 2 F(2:1) F (c) 4 3,1:0 3 F(3), F(1:0) F (d) FIGURE 3-8

Implementation of Multibit Rudimentary Functions

M03_MANO0637_05_SE_C03.indd 124 23/01/15 1:51 PM

④ Multiple-bit Function

(11)

Taking part of the Vector

Concept

P1 Elementary Func.

124

CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

least significant bit, providing the vector F = (F3, F2, F1, F0). Suppose that F consists

of rudimentary functions F3 = 0, F2 = 1, F1 = A, and F0 = A. Then we can write F as the vector (0, 1, A, A). For A = 0, F = (0, 1, 0, 1) and for A = 1, F = (0, 1, 1, 0). This multiple-bit function can be referred to as F(3:0) or simply as F and is imple-mented in Figure 3-8(a). For convenience in schematics, we often represent a set of multiple, related wires by using a single line of greater thickness with a slash, across the line. An integer giving the number of wires represented accompanies the slash as shown in Figure 3-8(b). In order to connect the values 0, 1, X, and X to the appropri-ate bits of F, we break F up into four wires, each labeled with the bit of F. Also, in the process of transferring, we may wish to use only a subset of the elements in F—for example, F2 and F1. The notation for the bits of F can be used for this purpose, as shown in Figure 3-8(c). In Figure 3-8(d), a more complex case illustrates the use of

F3, F1, F0 at a destination. Note that since F3, F1, and F0 are not all together, we cannot use the range notation F(3:0) to denote this subvector. Instead, we must use a combi-nation of two subvectors, F(3), F(1:0), denoted by subscripts 3, 1:0. The actual nota-tion used for vectors and subvectors varies among the schematic drawing tools or HDL tools available. Figure 3-8 illustrates just one approach. For a specific tool, the documentation should be consulted.

Value fixing, transferring, and inverting have a variety of applications in logic design. Value fixing involves replacing one or more variables with constant values 1 and 0. Value fixing may be permanent or temporary. In permanent value fixing, the value can never be changed. In temporary value fixing, the values can be changed, often by mechanisms somewhat different from those employed in ordi-nary logical operation. A major application of fixed and temporary value fixing is in programmable logic devices. Any logic function that is within the capacity of the programmable device can be implemented by fixing a set of values, as illustrated in the next example.

EXAMPLE 3-4 Lecture-Hall Lighting Control Using Value Fixing

The Problem: The design of a part of the control for the lighting of a lecture hall

specifies that the switches that control the normal lights be programmable. There are to be three different modes of operation for the two switches. Switch P is on the po-dium in the front of the hall and switch R is adjacent to a door at the rear of the

0 F3 1 F2 A F1 A F0 (a) 0 1 A A 1 2 3 4 F 0 (b) 4 2:1 2 F(2:1) F (c) 4 3,1:0 3 F(3), F(1:0) F (d) FIGURE 3-8

Implementation of Multibit Rudimentary Functions

M03_MANO0637_05_SE_C03.indd 124 23/01/15 1:51 PM

④ Multiple-bit Function

124

CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

least significant bit, providing the vector F = (F

3

, F

2

, F

1

, F

0

). Suppose that F consists

of rudimentary functions F

3

= 0, F

2

= 1, F

1

= A, and F

0

= A. Then we can write F

as the vector (0, 1, A, A). For A = 0, F = (0, 1, 0, 1) and for A = 1, F = (0, 1, 1, 0).

This multiple-bit function can be referred to as F(3:0) or simply as F and is

imple-mented in Figure 3-8(a). For convenience in schematics, we often represent a set of

multiple, related wires by using a single line of greater thickness with a slash, across

the line. An integer giving the number of wires represented accompanies the slash as

shown in Figure 3-8(b). In order to connect the values 0, 1, X, and X to the

appropri-ate bits of F, we break F up into four wires, each labeled with the bit of F. Also, in the

process of transferring, we may wish to use only a subset of the elements in F—for

example, F

2

and F

1

. The notation for the bits of F can be used for this purpose, as

shown in Figure 3-8(c). In Figure 3-8(d), a more complex case illustrates the use of

F

3

, F

1

, F

0

at a destination. Note that since F

3

, F

1

, and F

0

are not all together, we cannot

use the range notation F(3:0) to denote this subvector. Instead, we must use a

combi-nation of two subvectors, F(3), F(1:0), denoted by subscripts 3, 1:0. The actual

nota-tion used for vectors and subvectors varies among the schematic drawing tools or

HDL tools available. Figure 3-8 illustrates just one approach. For a specific tool, the

documentation should be consulted.

Value fixing, transferring, and inverting have a variety of applications in logic

design. Value fixing involves replacing one or more variables with constant values

1 and 0. Value fixing may be permanent or temporary. In permanent value fixing,

the value can never be changed. In temporary value fixing, the values can be

changed, often by mechanisms somewhat different from those employed in

ordi-nary logical operation. A major application of fixed and temporary value fixing is

in programmable logic devices. Any logic function that is within the capacity of the

programmable device can be implemented by fixing a set of values, as illustrated in

the next example.

EXAMPLE 3-4 Lecture-Hall Lighting Control Using Value Fixing

The Problem: The design of a part of the control for the lighting of a lecture hall

specifies that the switches that control the normal lights be programmable. There are

to be three different modes of operation for the two switches. Switch P is on the

po-dium in the front of the hall and switch R is adjacent to a door at the rear of the

0 F3 1 F2 A F1 A F0 (a) 0 1 A A 1 2 3 4 F 0 (b) 4 2:1 2 F(2:1) F (c) 4 3,1:0 3 F(3), F(1:0) F (d)

FIGURE 3-8

Implementation of Multibit Rudimentary Functions

M03_MANO0637_05_SE_C03.indd 124 23/01/15 1:51 PM

Output: (F2, F1)

Output: (F3, F1, F0)

124

CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

least significant bit, providing the vector F = (F3, F2, F1, F0). Suppose that F consists

of rudimentary functions F3 = 0, F2 = 1, F1 = A, and F0 = A. Then we can write F as the vector (0, 1, A, A). For A = 0, F = (0, 1, 0, 1) and for A = 1, F = (0, 1, 1, 0). This multiple-bit function can be referred to as F(3:0) or simply as F and is imple-mented in Figure 3-8(a). For convenience in schematics, we often represent a set of multiple, related wires by using a single line of greater thickness with a slash, across the line. An integer giving the number of wires represented accompanies the slash as shown in Figure 3-8(b). In order to connect the values 0, 1, X, and X to the appropri-ate bits of F, we break F up into four wires, each labeled with the bit of F. Also, in the process of transferring, we may wish to use only a subset of the elements in F—for example, F2 and F1. The notation for the bits of F can be used for this purpose, as shown in Figure 3-8(c). In Figure 3-8(d), a more complex case illustrates the use of

F3, F1, F0 at a destination. Note that since F3, F1, and F0 are not all together, we cannot

use the range notation F(3:0) to denote this subvector. Instead, we must use a combi-nation of two subvectors, F(3), F(1:0), denoted by subscripts 3, 1:0. The actual nota-tion used for vectors and subvectors varies among the schematic drawing tools or HDL tools available. Figure 3-8 illustrates just one approach. For a specific tool, the documentation should be consulted.

Value fixing, transferring, and inverting have a variety of applications in logic design. Value fixing involves replacing one or more variables with constant values 1 and 0. Value fixing may be permanent or temporary. In permanent value fixing, the value can never be changed. In temporary value fixing, the values can be changed, often by mechanisms somewhat different from those employed in ordi-nary logical operation. A major application of fixed and temporary value fixing is in programmable logic devices. Any logic function that is within the capacity of the programmable device can be implemented by fixing a set of values, as illustrated in the next example.

EXAMPLE 3-4 Lecture-Hall Lighting Control Using Value Fixing

The Problem: The design of a part of the control for the lighting of a lecture hall

specifies that the switches that control the normal lights be programmable. There are to be three different modes of operation for the two switches. Switch P is on the po-dium in the front of the hall and switch R is adjacent to a door at the rear of the

0 F3 1 F2 A F1 A F0 (a) 0 1 A A 1 2 3 4 F 0 (b) 4 2:1 2 F(2:1) F (c) 4 3,1:0 3 F(3), F(1:0) F (d) FIGURE 3-8

Implementation of Multibit Rudimentary Functions

M03_MANO0637_05_SE_C03.indd 124 23/01/15 1:51 PM

Dimension

(12)

Enabler

Concept

P1 Elementary Func.

⑤ Enabler

• Transferring function, but with an additional EN signal acting as switch

EN X F

0 X 0

1 0 0

(13)

Enabler

Concept

P1 Elementary Func.

⑤ Enabler

• Transferring function, but with an additional EN signal acting as switch

ENX F EN

X

(14)

Enabler

(15)

Enabler

(16)
(17)

Decoding

Summary

P2 Decoder

-bit input, -bit output

(18)

Decoder

• -bit input

• different combinations

• Decoder

• -bit input, - output


each unique input produces a unique output

(19)

1-to-2 Decoder

• 1bit input, 2bits output

(20)

2-to-4 Decoder

• 2bit input, 4bits output • Di = mi Concept P2 Decoder A1 A0 D0 D1 D2 D3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 3-5 / Decoding 129

each output. In the logic diagram in Figure 3-13(b), each minterm is implemented by a 2-input AND gate. These AND gates are connected to two 1–to–2-line decoders, one for each of the lines driving the AND gate inputs.

Large decoders can be constructed by simply implementing each minterm function using a single AND gate with more inputs. Unfortunately, as decoders become larger, this approach gives a high gate-input cost. In this section, we give a  procedure that uses design hierarchy and collections of AND gates to con-struct  any decoder with n inputs and 2n outputs. The resulting decoder has the

same or a lower gate-input cost than the one constructed by simply enlarging each AND gate.

To construct a 3–to–8-line decoder (n = 3), we can use a 2–to–4-line decoder and a 1–to–2-line decoder feeding eight 2-input AND gates to form the minterms. Hierarchically, the 2–to–4-line decoder can be implemented using two 1–to–2-line decoders feeding four 2-input AND gates, as observed in Figure 3-13. The resulting structure is shown in Figure 3-14.

The general procedure is as follows:

1. Let k = n.

2. If k is even, divide k by 2 to obtain k/2. Use 2k AND gates driven by two

decod-ers of output size 2k/2. If k is odd, obtain (k + 1)/2 and (k - 1)/2. Use 2k AND

A D0 ! A D0 D1 ! A D1 0 1 0 1 0 1 (a) (b) A FIGURE 3-12 A 1–to–2-Line Decoder A1 0 0 1 1 A0 0 1 0 1 D0 1 0 0 0 D1 0 1 0 0 D2 0 0 1 0 D3 0 0 0 1 (a) (b) A D A1A0 A1A0 A1A0 A1A0 D D D 1 A0 FIGURE 3-13 A 2–to–4-Line Decoder M03_MANO0637_05_SE_C03.indd 129 23/01/15 1:51 PM Technology • 2 x NOT Gate

(21)

2-to-4 Decoder

• 2bit input, 4bits output • Di = mi Concept P2 Decoder A1 A0 D0 D1 D2 D3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 3-5 / Decoding 129

each output. In the logic diagram in Figure 3-13(b), each minterm is implemented by a 2-input AND gate. These AND gates are connected to two 1–to–2-line decoders, one for each of the lines driving the AND gate inputs.

Large decoders can be constructed by simply implementing each minterm function using a single AND gate with more inputs. Unfortunately, as decoders become larger, this approach gives a high gate-input cost. In this section, we give a  procedure that uses design hierarchy and collections of AND gates to con-struct  any decoder with n inputs and 2n outputs. The resulting decoder has the

same or a lower gate-input cost than the one constructed by simply enlarging each AND gate.

To construct a 3–to–8-line decoder (n = 3), we can use a 2–to–4-line decoder and a 1–to–2-line decoder feeding eight 2-input AND gates to form the minterms. Hierarchically, the 2–to–4-line decoder can be implemented using two 1–to–2-line decoders feeding four 2-input AND gates, as observed in Figure 3-13. The resulting structure is shown in Figure 3-14.

The general procedure is as follows:

1. Let k = n.

2. If k is even, divide k by 2 to obtain k/2. Use 2k AND gates driven by two

decod-ers of output size 2k/2. If k is odd, obtain (k + 1)/2 and (k - 1)/2. Use 2k AND

A D0 ! A D0 D1 ! A D1 0 1 0 1 0 1 (a) (b) A FIGURE 3-12 A 1–to–2-Line Decoder A1 0 0 1 1 A0 0 1 0 1 D0 1 0 0 0 D1 0 1 0 0 D2 0 0 1 0 D3 0 0 0 1 (a) (b) A D A1A0 A1A0 A1A0 A1A0 D D D 1 A0 FIGURE 3-13 A 2–to–4-Line Decoder M03_MANO0637_05_SE_C03.indd 129 23/01/15 1:51 PM Technology • 2 x NOT Gate

(22)

2-to-4 Decoder

• 2bit input, 4bits output • Di = mi Concept P2 Decoder A1 A0 D0 D1 D2 D3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 A0 A1 D0 = A1A0 D1 = A1A0 D2 = A1A0 D3 = A1A0 Technology • 2 x 1-to-2 Decoder

(23)

3-to-8 Decoder

• 3bit input, 8bits output • Di = mi Concept P2 Decoder A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 Technology • 1 x 1-to-2 Decoder • 1 x 2-to-4 Decoder

(24)

3-to-8 Decoder

• 3bit input, 8bits output • Di = mi Concept P2 Decoder A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 Technology • 1 x 1-to-2 Decoder • 1 x 2-to-4 Decoder

(25)

3-to-8 Decoder

• 3bit input, 8bits output • Di = mi Concept P2 Decoder A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 Technology • 1 x 1-to-2 Decoder • 1 x 2-to-4 Decoder

• 8 x 2-input AND Gate

(26)

3-to-8 Decoder

• 3bit input, 8bits output • Di = mi Concept P2 Decoder A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 Technology • 1 x 1-to-2 Decoder • 1 x 2-to-4 Decoder

• 8 x 2-input AND Gate

(27)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi

Concept

P2 Decoder

1. Incomplete Truth table

A3 A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 Technology • 1 x 1-to-2 Decoder • 1 x 3-to-8 Decoder

• 16 x 2-input AND Gate

(28)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 1 x 1-to-2 Decoder • 1 x 3-to-8 Decoder

• 16 x 2-input AND Gate

Incremental Design A0 A1 A2 3-to-8 Decoder A3 1-to-2 Decoder

16 x 2-input AND Gates

D

4

0:7 = A3D0:73

(29)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi

Concept

P2 Decoder

1. Incomplete Truth table

A3 A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

(30)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi

Concept

P2 Decoder

1. Incomplete Truth table

Technology

• 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

Recursive Design D0:74 = A3D0:73 D8:154 = A3D0:73 2-to-4 Decoder 2-to-4 Decoder

16 x 2-input AND Gates

(31)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

Recursive Design

(32)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

Recursive Design

D 4 = D0:154 = [A3D0:73 ; A3D0:73 ] = [A3D3; A3D3]

(33)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

Recursive Design

(34)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

(35)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

Recursive Design

D4 = [A3D 3; A3D 3]

(36)

4-to-16 Decoder

• 4bit input, 16bits output • Di = mi Concept P2 Decoder Technology • 2 x 2-to-4 Decoder

• 16 x 2-input AND Gate

(37)

Summary

• What is a decoder

• Truth table of a decoder

• Implementation of 1-to-2, 2-to-4, -to- decoder

(38)

1-bit Binary Adder

Summary

P3 Example 3d

(39)
(40)

1-bit Binary Adder

• Binary Adder

• Logical functional block that performs addition

• 1-Bit Binary Adder: smallest building block of a multi-bit adder

• Inputs


Augend: ; Addend: ; Previous Carry:

• Outputs


Sum bit: ; next carry:

X Y Z

S C

Concept

(41)
(42)
(43)
(44)
(45)

3. Optimisation

P3 Example 3d

Z

X

+Y

Augend Carries Addend Sum

S

C

+

Input Output X Y Z C S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Example Sum of Minterms C = Σm(3,5,6,7) S = Σm(1,2,4,7)

(46)

3. Optimisation

P3 Example 3d

Z

X

+Y

Augend Carries Addend Sum

S

C

+

Input Output X Y Z C S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Example Sum of Minterms C = Σm(3,5,6,7) S = Σm(1,2,4,7)

(47)

References

Related documents

 Use negative skew to eliminate race conditions (at the cost of performance):. • Add up the components that result in the time budget - the period must be greater than

What are the driving factors leading companies to request sales tax outsourcing services:. • Complexity of returns at the local level of tax (County

Stacking of my friend send yourself a backup in a text message from chat window for the links sent txt send a text message content of the anonymous texts.. Up your information

To summarize, clinical features in ELST include SNHL, female gender preponderance, retropetrous le⁃ sion easily separated from the dura, destruction of mid⁃ dle and posterior portion

So far, we have discussed the role of genes in behavioural development in terms of genetic determinism and what individual genes do at a biochemical or cellular level to

New ability: to accomplish the logic design task with the aid of computer-aided design tools and map a problem description into an implementation with programmable logic devices

System engineering and logic design lecture ppt engineering class handwritten notes exam notes for computer engineering drawing note offline notes exam notes are intended to draw

When the value of the base r is substituted in the names, the two types are referred to as the 2s and 1s complements for binary numbers and the 10s and 9s complements for decimal