Chapter 4 <latexit sha1_base64="G9+rEvjSfUsWSo6fmqkc1VFvCJ4=">AAAB+nicbVBNS8NAEN3Ur1q/oh69LBbBU0mkoHgq9OKxgrWFNpTNdtou3WzC7qRYQv+JFw8K4tVf4s1/47bNQVsfDDzem2FmXphIYdDzvp3CxubW9k5xt7S3f3B45B6fPJo41RyaPJaxbofMgBQKmihQQjvRwKJQQisc1+d+awLaiFg94DSBIGJDJQaCM7RSz3W7CE+Y1UcsQdC0Ouu5Za/iLUDXiZ+TMsnR6Llf3X7M0wgUcsmM6fhegkHGNAouYVbqpgYSxsdsCB1LFYvABNni8hm9sEqfDmJtSyFdqL8nMhYZM41C2xkxHJlVby7+53VSHNwEmVBJiqD4ctEglRRjOo+B9oUGjnJqCeNa2FspHzHNuE3BlGwI/urL66R1VfGrFd+/r5Zrt3keRXJGzskl8ck1qZE70iBNwsmEPJNX8uZkzovz7nwsWwtOPnNK/sD5/AEETJOw</latexit> 4.1 Introduction • Logic circuits for digital systems may be combinational or sequential. • A combinational circuit consists of logic gates whose outputs at any time are determined from only the present combination of inputs. • Sequential circuits employ storage elements in addition to logic gates. Their outputs are a function of the inputs and the state of the storage elements. • The outputs of a sequential circuit depend not only on present values of inputs, but also on past inputs. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 2 4.2 Combinational Circuits • A combinational circuit consists of input variables, logic gates, and output variables. • Each input and output variable exists physically as an analog signal whose values are interpreted to be a binary signal that represents logic 1 and logic 0. • In this chapter, we introduce standard combinational circuits, such as adders, subtractors, comparators, decoders, encoders, and multiplexers. Figure 4.1. Block diagram of combinational circuit. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 3 4.3 Analysis Procedure • The analysis of a combinational circuit requires that we determine the function that the circuit implements. • The first step in the analysis is to make sure that the given circuit is combinational and not sequential. • The diagram of a combinational circuit has logic gates with no feedback paths or memory elements. Figure 4.1. Block diagram of combinational circuit. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 4 4.3 Analysis of Combinational Circuits • To obtain the output Boolean functions from a logic diagram, proceed as follows: 1. Label all gate outputs that are a function of input variables with arbitrary symbols. Determine the Boolean functions for each gate output. 2. Label the gates that are a function of input variables and previously labeled gates with other arbitrary symbols. Find the Boolean functions for these gates. 3. Repeat the process outlined in step 2 until the outputs of the circuit are obtained. 4. By repeated substitution of previously defined functions, obtain the output Boolean functions in terms of input variables. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 5 4.3 Example • The Boolean function for the following circuit is as follows: F2 = T1 = T2 = T3 = F1 = Figure 4.2. Logic diagram for analysis example. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 6 4.3 Example • We can directly derive the truth table in Table 4-1 by using the circuit Table 4.1 Truth Table for the Logic Diagram of Fig. 4.2. Figure 4.2 Logic diagram for analysis example. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 7 4.4 Design Procedure • Design procedure involves the following steps: A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 8 4.4 Design Procedure – Example • Code Conversion • Input/Output ? Table 4.2 Truth Table for Code Conversion Example • Simplification ? A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 9 4.4 Design Procedure – Example • Code Conversion A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 10 4.4 Design Procedure – Example • Code Conversion A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 11 4.4 Design Procedure – Example • Code Conversion - Logic Diagram • Test Figure 4.4 Logic diagram for BCD-to-excess-3 code converter. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 12 4.5 Binary Adder/Subtractor − Half adder • A combinational circuit that performs the addition of two bits is called a half adder. • Table 4.3 shows the truth table that contains all four possible outcomes of the half adder • S: Sum, and C: Carry -C=xy - S = x′ y + x y ′ A. Behfarnia Table 4.3 Half Adder Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 13 4.5 Binary Adder/Subtractor − Half adder • Logic Diagram of half adder Figure 4.5 Implementation of half adder A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 14 4.5 Binary Adder/Subtractor − Full adder • A full adder is a combinational circuit that forms the arithmetic sum of three bits. It consists of three inputs and two outputs. • Two of the input variables, denoted by x and y, represent the two significant bits to be added. The third input, z, represents the carry from the previous lower significant position. • Two outputs are necessary because the arithmetic sum of three binary digits ranges in value from 0 to 3. • The two outputs are designated by the symbols S for sum and C for carry. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 15 4.5 Binary Adder/Subtractor − Full adder • The Truth Table of Full Adder is listed as follows: Table 4.4 Full Adder • Simplification: K-Map A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 16 4.5 Binary Adder/Subtractor − Full adder • Implementation with AND / OR gates: S = x′ y ′ z + x′ y z′ + x y′ z′ + x y z C=xy+xz+yz Figure 4.7 Implementation of full adder in sum-of-products form A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 17 4.5 Binary Adder/Subtractor − Full adder • Full-adder can be also implemented with two half adders and one OR gate. Figure 4.8 Implementation of full adder with two half adders and an OR gate A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 18 4.5 Binary Adder/Subtractor − Full adder • Test • Block Diagram A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 19 4.5 Binary Adder/Subtractor − Binary Adder • A binary adder is a digital circuit that produces the arithmetic sum of two binary numbers. • An n-bit adder requires n full adders, with each output carry connected to the input carry of the next higher order full adder. Example: A + B = ? A = (1011)2 , B = (0011)2 Figure 4.9 Four-bit adder A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 20 4.5 Binary Adder/Subtractor − Carry Propagation • In combinational circuits, the signal must propagate through the gates before the correct output sum is available in the output terminals. • The signal from Ci to the output carry Ci+1, propagates through an AND and OR gates, so, for an n-bit numbers, there are 2n gate levels for the carry to propagate from input to output. • Since each bit of the sum output depends on the value of the input carry, the value of Si at any given stage in the adder will be in its steady-state final value only after the input carry to that stage has been propagated. Figure 4.10 Full adder with P and G shown A. Behfarnia Figure 4.9 Four-bit adder Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 21 4.5 Binary Adder/Subtractor − Carry Propagation • In order to solve the problem, we can employ carry look-ahead technique which is one of the most widely used techniques to improve the speed of the full adder. - Pi = Ai ⊕ Bi - Gi = Ai Bi steady state value steady state value Output sum and carry - Si = Pi ⊕ Ci - Ci+1 = Gi + Pi Ci Gi : carry generate Pi : carry propagate - C0 = input carry - C1 = G0 + P0C0 - C2 = G1 + P1C1 = G1 + P1G0 + P1P0C0 - C3 = G2 + P2C2 = G2 + P2G1 + P2P1G0 + P2P1P0C0 • C3 does not have to wait for C2 and C1 to propagate A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 22 4.5 Binary Adder/Subtractor − Carry Propagation • C3 is propagated at the same time as C2 and C1. Figure 4.11 Logic diagram of carry lookahead generator A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 23 4.5 Binary Adder/Subtractor − Carry Propagation • Implementation of Carry Lookahead generator Figure 4.12 Four-bit adder with carry lookahead. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 24 4.5 Binary Adder/Subtractor − Binary Subtractor • The subtraction of unsigned binary numbers can be done most conveniently by means of complements, as discussed in Section 1.5 (Slide 17-20 Chapter 1). • Remember that the subtraction A - B can be done by taking the 2’s complement of B and adding it to A. • Reminder − Example: Given X = 1010100, and Y = 1000011 Q1) X – Y? A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 25 4.5 Binary Adder/Subtractor − Binary Subtractor • The operation of the 1’s complement can be implemented by XOR. How? i) x Å 1 = x′ ii) x Å 0 = x • We know that 2’s complement = 1’s complement + 1; In this regard, we assign 1 to C0. M = 1 → Subtractor M = 0 → Adder Figure 4.13 Four-bit adder–subtractor (with overflow detection) A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 26 4.5 Binary Adder/Subtractor − Binary Subtractor • Computers need only one common hardware circuit to handle both types of arithmetic, i.e., addition/subtraction. • When two unsigned numbers are added, an overflow is detected from the end carry out of the MSB position. • When two signed added, the sign bit part of the number carry does not overflow. numbers are is treated as and the end indicate an • An overflow may occur if the two numbers added are both positive or both negative. Figure 4.13 Four-bit adder–subtractor (with overflow detection) A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 27 4.6 Decimal Adder− BCD Adder • Consider the arithmetic addition of two decimal digits in BCD, together with an input carry from a previous stage. • Since each input digit does not exceed 9, the output sum cannot be greater than 19 i.e., 9 + 9 + 1. • The addition of binary 6 (0110) to the binary sum converts it to the correct BCD representation and also produces an output carry as required. • The problem is to find a rule by which the binary sum is converted to the correct BCD digit representation of the number in the BCD sum. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 28 4.6 Decimal Adder− BCD Adder • Let’s obtain the rule through the following Truth Table. In other words, How do I know when to add 6 to the Binary sum? Table 4.5 Derivation of BCD Adder • C = Z8 Z2 + Z8 Z4 + K A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 29 4.6 Decimal Adder− BCD Adder C = Z8Z2 + Z8Z4 + K Figure 4.14 Block diagram of a BCD adder A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 30 4.7 Binary Multiplier • Multiplication of binary numbers is performed in the same way as multiplication of decimal numbers. • Usually there are more bits in the partial products and it is necessary to use full adders to produce the sum of the partial products. Figure 4.15 Two-bit by two-bit binary multiplier A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 31 4.7 Binary Multiplier • For J multiplier bits and K multiplicand bits we need J × K AND gates and (J − 1) K-bit adders to produce a product of J+K bits. • K = 4 and J = 3, we need 12 AND gates and Two 4bit adders., that provides us with a product of 7 bits. Figure 4.16 Four-bit by three-bit binary multiplier A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 32 4.8 Magnitude Comparator • A magnitude comparator is a combinational circuit that compares two numbers A and B and determines their relative magnitudes. A = A3 A2 A1 A0 B = B3 B2 B1 B0 xi = Ai Bi + Ai′Bi′ i = 0, 1, 2, 3 (A = B) = x3x2x1x0 Figure 4.17 Four-bit magnitude comparator A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 33 4.8 Magnitude Comparator • In order to find A > B Or B > A, we inspect the relative magnitudes of pairs of MSB. If equal, we compare the next lower significant pair of digits until a pair of unequal digits is reached. • For example A = (1001)2, and B = (1010)2 (A > B) = A3B3′ + x3A2B2′ + x3x2A1B1′ + x3x2x1A0B0′ (A < B) = A3′B3 + x3A2′B2 + x3x2A1′B1 + x3x2x1A0′B0 Figure 4.17 Four-bit magnitude comparator A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 34 4.9 Decoders • A decoder is a combinational circuit that converts binary information from n input lines to a maximum of 2n unique output lines. • For example in 3×8 decoder, for each possible input combination, there are seven outputs that are equal to 0 and only one that is equal to 1. Figure 4.18 Three-to-eight-line decoder A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 35 4.9 Decoders Decoders using NAND Gates • Some decoders are only constructed with NAND gates, and it is more economical to generate the decoder Minterms in their complemented form. • As indicated by the truth table , only one output can be equal to 0 at any given time, all other outputs are equal to 1 • Enable can activate or deactivate the decoder. Figure 4.19 Two-to-four-line decoder with enable input. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 36 4.9 Decoders • Implementing 4-to-16 decoder using two 3-to-8 decoders. Figure 4.20 4 x 16 decoder constructed with two 3 x 8 decoders A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 37 4.9 Decoders – Example • Implementation of a Full Adder with a decoder • From Table 4-4, we obtain the functions for the combinational circuit in sum of Minterms: Table 4.4 Full Adder Figure 4.21 Implementation of a full adder with a decoder A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 38 4.10 Encoders • An encoder is a digital circuit that performs the inverse operation of a decoder. • An encoder has 2n (or fewer) input lines and n output lines. • We can derive the Boolean functions for the encoder by its Truth Table. z = D1 + D3 + D5 + D7 y = D2 + D3 + D6 + D7 Table 4.7 Truth Table of an Octal-to-Binary Encoder x = D4 + D5 + D6 + D7 A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 39 4.10 Encoders – Ambiguities There are two points regarding encoders: 1. If two inputs are active simultaneously, then the output produces an undefined combination. We can establish an input priority to ensure that only one input is encoded. 2. Another ambiguity in the octal-to-binary encoder is that an output with all 0’s is generated when all the inputs are 0; the output is the same as when D0 is equal to 1. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 40 4.10 Encoders – Priority Encoder • We solve aforementioned ambiguities by designing Priority Encoder and adding one more output. • The operation of the priority encoder is such that if two or more inputs are equal to 1 at the same time, then the input having the highest priority will take precedence. • The valid bit indicator is shown by V, and it will be set to 0 if all inputs are equal to 0. In other words: Table 4.8 Truth Table of a Priority Encoder V = 0 → No valid inputs V = 1 → Valid inputs • X’s 1. show don’t care condition 2. are useful for representing the truth table in condensed form. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 41 4.10 Encoders – Priority Encoder • In order to obtain the circuit diagram for the priority encoder, we first need to have x, y, and V. • Let’s use K-Map to achieve x, and y. Table 4.8 Truth Table of a Priority Encoder Figure 4.22 Maps for a priority encoder A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 42 4.10 Encoders – Priority Encoder • Implementation x = D2 + D3 y = D3 + D1D2′ V = D0 + D1 + D2 + D3 Figure 4.23 Four-input priority encoder. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 43 4.11 Multiplexers • A multiplexer is a combinational circuit that selects binary information from one of many input lines and directs it to a single output line. The selection of a particular input line is controlled by a set of selection lines. Figure 4.24 Two-to-one-line multiplexer A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 44 4.11 Multiplexers • Implementing a 4-to-1multiplexer. Figure 4.25 Four-to-one-line multiplexer. A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 45 4.11 Multiplexers • Multiplexer circuits can be combined with common selection inputs to provide multiple-bit selection logic. I0 I0 I1 Figure 4.26 Quadruple two-to-one-line multiplexer A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 46 4.11 Multiplexers – Boolean Function Implementation • To implement a function with n variables, the first n - 1 variables of the function are connected to the selection inputs of the multiplexer. The remaining single variable of the function is used for the data inputs. Example: Implement F(x, y, z) = ∑ (1,2,6,7) with Multiplexer. Figure 4.27 Implementing a Boolean function with a multiplexer A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 47 4.11 Multiplexers – Boolean Function Implementation • Example: Implement F(A, B, C, D) = ∑ (1, 3, 4, 11, 12, 13, 14, 15) with Multiplexer. Figure 4.28 Implementing a 4-input function with a MUX A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 48 4.11 Multiplexers – Three-State Gates • A multiplexer can be constructed with three-state gates digital circuits that exhibit three states. Two states are 0 and 1, and the other one is high impedance. Figure 4.30 Multiplexers with three-state gates A. Behfarnia Based on Textbook: Digital Design, by Morris Mano. Publisher: Pearson Education 49 Thank you 50