CHAPTER 5 Digital Combinational Logic
Contents Introduction  Decoders  Encoders  Demultiplexers  Multiplexers  Digital Combinational Logic 2
INTRODUCTION  Four common and useful MSI circuits:      Decoder Demultiplexer Encoder Multiplexer Block-level outlines of MSI circuits: code inpu t decode r mux selec t entit y data entit y data Digital Combinational Logic encode r demu x selec t code outp ut 3
DECODERS (1/5)  Codes are frequently used to represent entities, eg: your name is a code to denote yourself (an entity!).  These codes can be identified (or decoded) using a decoder. Given a code, identify the entity.  Convert binary information from n input lines to (maximum of) 2n output lines.  Known as n-to-m-line decoder, or simply n:m or n n m decoder (m 2 ).  May be used to generate 2n minterms of n input variables. 4
DECODERS (2/5)  Example: If codes 00, 01, 10, 11 are used to identify four light bulbs, we may use a 2-bit decoder. 2x4 F0 X Dec F 1 F2 Y F3 2-bit code   Bulb Bulb Bulb Bulb 0 1 2 3 This is a 2 4 decoder which selects an output line based on the 2-bit code supplied. Truth table: X Y F F F F 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 2 0 0 1 0 3 0 0 0 1 5
DECODERS (3/5)   X 0 0 1 1 From truth table, circuit for 2 4 decoder is: Note: Each output is a 2-variable minterm (X' Y', X' Y, X Y' or X Y) Y 0 1 0 1 F0 1 0 0 0 F1 0 1 0 0 F2 0 0 1 0 F3 0 0 0 1 F0 = X' Y' F1 = X' Y F2 = X Y' F3 = XY 6 X Y
DECODERS (4/5)  F0 = x' y' z' F1 = x' y' z F2 = x' y z' F3 = x' y z Design a 3 8 decoder. x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 F0 F1 F2 F3 F4 F5 F6 F7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 F4 = x y' z' F5 = x y' z F6 = x y z' F7 = xyz x y z 7
DECODERS (5/5)  In general, for an n-bit code, a decoder n could select up to 2 lines: n-bit code : n to 2n decoder : up to 2n output lines 8
DECODERS: IMPLEMENTING FUNCTIONS (1/5)  A Boolean function, in sum-of-minterms form a decoder to generate the minterms, and an OR gate to form the sum.  Any combinational circuit with n inputs and m outputs can be implemented with an n:2n decoder with m OR gates.  Good when circuit has many outputs, and each function is expressed with few minterms. 9
DECODERS: IMPLEMENTING FUNCTIONS (2/5) x  Example: Full adder S(x, y, z) = C(x, y, z) = m(1,2,4,7) m(3,5,6,7) 3x8 Dec x S2 y S1 z S0 0 1 2 3 4 5 6 7 y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 S C 10
DECODERS: IMPLEMENTING FUNCTIONS (3/5) 3x8 Dec 0 x 0 y S1 0 z  S2 S0 0 1 2 3 4 5 6 7 x S C y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 11
DECODERS: IMPLEMENTING FUNCTIONS (4/5) 3x8 Dec 0 x 0 y S1 1 z  S2 S0 0 1 2 3 4 5 6 7 x S C y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 12
DECODERS: IMPLEMENTING FUNCTIONS (5/5) 3x8 Dec 1 x 1 y S1 1 z  S2 S0 0 1 2 3 4 5 6 7 x S C y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 13
DECODERS WITH ENABLE (1/2)   Decoders often come with an enable control signal, so that the device is only activated when the enable, E = 1. Truth table: F E X Y F 0 1 1 1 1 0  0 0 1 1 X 0 1 0 1 X 1 0 0 0 0 F0 = E X' Y' 1 0 1 0 0 0 F2 F3 0 0 1 0 0 0 0 0 1 0 F1 = E X' Y F2 = E X Y' F3 = E X Y Circuit of a 2 4 decoder with enable: X Y E 14
DECODERS WITH ENABLE (2/2)  In the previous slide, the decoder has a oneenable control signal, i.e. the decoder is enabled with E=1.  In most MSI decoders, enable signal is zeroenable, usually denoted by E' or Ē. The decoder is enabled when the signal is zero (low). E X Y F0 F1 F2 F3 E' X Y F0 F1 F2 F3 1 1 1 1 0 0 0 1 1 X 0 1 0 1 X 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 X 0 1 0 1 X 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 Decoder with 1enable Decoder with 0enable 15
LARGER DECODERS (1/4)  Larger decoders can be constructed from smaller ones.  Example: A 3 8 decoder can be built from two 2 4 decoders (with oneenable) and an inverter. w x y w x y S2 S1 S0 3x8 Dec S1 S0 S1 S0 2x4 Dec E 2x4 Dec E F0 = w' x' y' F1 = w' x' y : : F7 = w x y 0 1 : : 7 0 1 2 3 F0 = w' x' y' F1 = w' x' y F2 = w' x y' F3 = w' x y 0 1 2 3 F4 = w x' y' F5 = w x' y F6 = w x y' F7 = w x y 16
LARGER DECODERS (2/4) w x y w x y S1 S0 S1 S0  2x4 Dec E 2x4 Dec E 0 1 2 3 S2 S1 S0 3x8 Dec 0 1 : : 7 F0 = w' x' y' F1 = w' x' y : : F7 = w x y F0 = w' x' y' F1 = w' x' y F2 = w' x y' F3 = w' x y F4 = w x' y' F5 = w x' y F6 = w x y' F7 = w x y 17
LARGER DECODERS (3/4)  Construct a 4 16 decoder from two 3 8 decoders with one-enable. w x y z 4x16 Dec w x y z S2 S1 S0 S2 S1 S0 3x8 Dec E 3x8 Dec E S3 S2 S1 S0 0 1 : 7 F0 F1 : : F15 F0 F1 : F7 0 1 : 7 0 1 : : 1 5 F8 F9 : F15 18
LARGER DECODERS (4/4)  Note: The input, w and its complement, w', are used to select either one of the two smaller decoders.  Decoders may also have zero-enable and/or negated outputs.   Normal outputs = active high Negated outputs = active low  Exercise: What modifications should be made to provide an ENABLE input for the 3 8 decoder and the 4 16 decoder created in the previous two slides?  Exercise: How to construct a 4 16 decoder using five 2 4 decoders with enable? 19
STANDARD MSI DECODER (1/2)  74138 (3-to-8 decoder) 74138 decoder module. (a) Logic circuit. (b) Package pin configuration. 20
STANDARD MSI DECODER (2/2) 74138 decoder module. (c) Function table. (c) 74138 decoder module. (d) Generic symbol. (e) IEEE standard logic symbol. Source:The Data Book Volume 2, Texas Instruments Inc.,1985 21
DECODERS: IMPLEMENTING FUNCTIONS REVISIT (1/2)  Example: Implement the following function using a 3 8 decoder and appropriate logic gate f(Q,X,P) = m(0,1,4,6,7) = M(2,3,5)  We may implement the function in several ways:  Using a decoder with active-high outputs with an OR gate: f(Q,X,P) = m0 + m1 + m4 + m6 + m7  Using a decoder with active-low outputs with a NAND gate: f(Q,X,P) = (m0' m1' m4' m6' m7' )'  Using a decoder with active-high outputs with a NOR gate: f(Q,X,P) = (m2 + m3 + m5 )' [ = M2 M3 M5 ]  Using a decoder with active-low outputs with an AND gate: f(Q,X,P) = m2' m3' m5' 22
DECODERS: IMPLEMENTING FUNCTIONS REVISIT (2/2) 3x8 Dec Q X P A B C 0 1 2 3 4 5 6 7 f(Q,X,P) = m(0,1,4,6,7) f(Q,X,P) (a) Active-high decoder with OR gate. 3x8 Dec Q X P A B C 0 1 2 3 4 5 6 7 f(Q,X,P) (c) Active-high decoder with NOR gate. Q X P 3x8 Dec A B C 0 1 2 3 4 5 6 7 f(Q,X,P) (b) Active-low decoder with NAND gate. 3x8 Dec Q X P A B C 0 1 2 3 4 5 6 7 f(Q,X,P) (d) Active-low decoder with AND gate. 23
ENCODERS (1/4)      Encoding is the converse of decoding. Given a set of input lines, of which exactly one is high, the encoder provides a code that corresponds to that input line. Contains 2n (or fewer) input lines and n output lines. Implemented with OR gates. Example: Select via switches F0 F1 F2 F3 D 4-to-2 Encode r 0 D 2-bits code 1 24
ENCODERS (2/4)   Truth table: With K-map, we obtain: D0 = F1 + F3 D1 = F2 + F3   Circuit: F0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 F1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 F2 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 F3 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 D1 0 0 1 1 X X X X X X X X X X X X D0 0 1 0 1 X X X X X X X X X X X X 25
ENCODERS (3/4)  Example: Octal-to-binary encoder.   At any one time, only one input line has a value of 1. Otherwise, we need priority encoder (to be discussed in tutorial). In p u ts O u tp u ts D0 D1 D2 D3 D4 D5 D6 D7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 x y z 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 26
ENCODERS (4/4)  Example: Octal-to-binary encoder. D0 D1 x = D4 + D5 + D6 + D7 D2 D3 y = D2 + D3 + D6 + D7 D4 D5 D6 z = D1 + D3 + D5 + D7 D7 An 8-to-3 encoder  Exercise: Can you design a 2n-to-n encoder without using K-map? 27
DEMULTIPLEXERS (1/2)   Given an input line and a set of selection lines, a demultiplexer directs data from the input to one selected output line. Example: 1-to-4 demultiplexer. Outputs Y0 = D∙S1'∙S0' Data D demu x S1 So Y0 Y1 Y2 Y3 Y1 = D∙S1'∙S0 0 0 1 1 0 1 0 1 D 0 0 0 Y2 = D∙S1∙S0' Y3 = D∙S1∙S0 0 D 0 0 0 0 D 0 0 0 0 D S1 S0 selec t 28
DEMULTIPLEXERS (2/2)  It turns out that the demultiplexer circuit is actually identical to a decoder with enable. S1 S0 2 4 0 Decode 1 A r B 2 Y0 = ? 3 Y3 = ? E Y1 = ? Y2 = ? D  ELC224C Digital Combinational Logic 29
MULTIPLEXERS (1/5)  A multiplexer is a device which has     A number of input lines A number of selection lines One output line It steers one of 2n inputs to a single output line, using n selection lines. Also known as a data selector. n input s : 2 :1 Multiplexe r outp ut .. . select ELC224C Digital Combinational Logic 30
MULTIPLEXERS (2/5)  Truth table for a 4-to-1 multiplexer: I0 0 I1 I2 I3 I2 I3 S1 S0 Y S1 S0 Y d0 d0 d0 d0 Input sI I1 d1 d1 d1 d1 d2 d2 d2 d2 d3 d3 d3 d3 0 0 1 1 d0 d1 d2 d3 0 0 1 1 I0 I1 I2 I3 0 1 0 1 Inputs 0 4:1 1 MUX Y 2 3 S1 S0 I0 I1 Outpu t I2 I3 4:1 mu x Y S1 S0 selec selec t ELC224C 0 1 0 1 t Digital Combinational Logic 31
MULTIPLEXERS (3/5)  Output of multiplexer is “sum of the (product of data lines and selection    S1 S0 Y 0 0 0 1 1 0 1 1 lines)” I0 I1 I2 I3 Example: Output of a 4-to-1 multiplexer is: Y=? A 2n-to-1-line multiplexer, or simply 2n:1 MUX, is made from an n:2n decoder by adding to it 2n input lines, one to each AND gate. ELC224C Digital Combinational Logic 32
MULTIPLEXERS (4/5)  A 4:1 multiplexer circuit: I0 I0 I1 I1 Y I2 I3 I3 0 3 1 2 2-to-4 Decoder S1 S1 S0 ELC224C Y I2 Digital Combinational Logic S0 33
MULTIPLEXERS (5/5)    An application: Helps share a single communication line among a number of devices. At any time, only one source and one destination can use the communication line. ELC224C Digital Combinational Logic 34
MULTIPLEXER IC PACKAGE  Some IC packages have a few multiplexers in each package (chip). The selection and enable inputs are common to all multiplexers within the package.A0 Y0 A1 Y1 A2 Y2 A3 Y3 B0 B1 E’ 1 0 0 B2 S B3 (select) E' ELC224C (enable ) S X 0 1 O u tp u t Y a ll 0 ’s s e le c t A s e le c t B Quadruple 2:1 multiplexer Digital Combinational Logic 35
LARGER MULTIPLEXERS (1/4)   Larger multiplexers can be constructed from smaller ones. An 8-to-1 multiplexer can be constructed from smaller multiplexers like this (note placement of selector lines): I0 S S S Y I1 I2 I3 2 4:1 MUX S1 S0 I4 I5 I6 I7 2:1 MUX 4:1 MUX S2 Y 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 I0 I1 I2 I3 I4 I5 I6 I7 S1 S0 ELC224C Digital Combinational Logic 36
LARGER MULTIPLEXERS (2/4) I0 I1 I2 I3 4:1 MUX I I I 2:1 MUX S 1 S0 I4 I5 I6 I7 4:1 MUX S2 S1 S0 0 1 2 Y I I I 0 1 6 I I I 4 5 6 S2 S 1 S0  I0 I1 I2 I3 I4 I5 I6 I7 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 When S2S1S0 = 001  0 0 0 0 1 1 1 1 When S2S1S0 = 000  Y When S2S1S0 = 110 ELC224C Digital Combinational Logic 37
LARGER MULTIPLEXERS (3/4)  Another implementation of an 8-to-1 multiplexer using smaller multiplexers: I0 I1 I2 I3 2:1 MUX I2 2:1 MUX I0 4:1 MUX 2:1 I4 MUX S 0 I6 I7 I0 Y Y 0 0 0 0 1 1 1 1 I0 I1 I2 I3 I4 I5 I6 I7 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 S2 S1 2:1 MUX S0 ELC224C S2 S1 S0 S0 S0 I4 I5 When S2S1S0 = 000 I6 Q: Can we use only 2:1 multiplexers? Digital Combinational Logic 38
LARGER MULTIPLEXERS (4/4)  A 16-to-1 multiplexer can be constructed from five 4-to-1 multiplexers: ELC224C Digital Combinational Logic 39
STANDARD MSI MULTIPLEXER (1/2) (b) 74151A 8-to-1 multiplexer. (a) Package configuration. (b) Function table. ELC224C Digital Combinational Logic 40
STANDARD MSI MULTIPLEXER (2/2) (c) 74151A 8-to-1 multiplexer. (c) Logic diagram. (d) Generic logic symbol. (e) IEEE standard logic symbol. Source: The TTL Data Book Volume 2. Texas Instruments Inc.,1985. ELC224C Digital Combinational Logic 41
IMPLEMENTING FUNCTIONS (1/3)   Boolean functions can be implemented using multiplexers. A 2n-to-1 multiplexer can implement a Boolean function of n input variables, as follows: 1. Express in sum-of-minterms form. Example: F(A,B,C) = A' B' C + A' B C + A B' C + A B C' = m(1,3,5,6) 2. Connect n variables to the n selection lines. 3. Put a „1‟ on a data line if it is a minterm of the function, or „0‟ otherwise. ELC224C Digital Combinational Logic 42
IMPLEMENTING FUNCTIONS (2/3)  F(A,B,C) = 0 1 0 1 0 1 1 0 0 1 2 3 mux 4 5 6 7 A B C m(1,3,5,6) This method works because: F Output = m0 I0 + m1 I1 + m2 I2 + m3 I3 + m4 I4 + m5 I5 + m6 I6 + m7 I7 Supplying „1‟ to I1,I3,I5,I6 , and „0‟ to the rest: Output = m1 + m3 + m5 + m6 ELC224C Digital Combinational Logic 43
IMPLEMENTING FUNCTIONS (3/3)  Example: Use a 74151A to implement f(x1,x2,x3) = m(0,2,3,5) Realization of f(x1,x2,x3) = m(0,2,3,5). (a) Truth table. (b) Implementation with 74151A. ELC224C Digital Combinational Logic 44
USING SMALLER MULTIPLEXERS (1/6)    Earlier, we saw how a 2n-to-1 multiplexer can be used to implement a Boolean function of n (input) variables. However, we can use a single smaller 2(n-1)-to-1 multiplexer to implement a Boolean function of n (input) variables. Example: The function F(A,B,C) = m(1,3,5,6) can be implemented using a 4-to-1 multiplexer (rather than an 8-to-1 multiplexer). ELC224C Digital Combinational Logic 45
USING SMALLER MULTIPLEXERS (2/6)  Let‟s look at this example: F(A,B,C) = A B C' 1 1 0 1 0 0 1 0 m(0,1,3,6) = A' B' C' + A' B' C + A' B C + 0 1 2 3 mux 4 5 6 7 F 1 C 0 C' A B C  0 1 2 mux F 3 A B Note: Two of the variables, A and B, are applied as selection lines of the multiplexer, while the inputs of the multiplexer contain 1, C, 0 and C'. ELC224C Digital Combinational Logic 46
USING SMALLER MULTIPLEXERS (3/6)  Procedure 1. Express Boolean function in sum-of-minterms form. Example: F(A,B,C) = m(0,1,3,6) 2. Reserve one variable (in our example, we take the least significant one) for input lines of multiplexer, and use the rest for selection lines. Example: C is for input lines; A and B for selection lines. ELC224C Digital Combinational Logic 47
USING SMALLER for function, by grouping inputs MULTIPLEXERS (4/6) 3. Draw the truth table by selection line values, then determine multiplexer inputs by comparing input line (C) and function (F) for corresponding selection line values. A F 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 MUX input 1 0 ELC224C C 0  B 0 ? ? ? ? 0 1 2 mux F 3 A B Digital Combinational Logic 48
USING SMALLER MULTIPLEXERS (5/6)  Alternative: What if we use A for input lines, and B, C for selector lines? A B C F 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 ? ? ? ? M ux In p u t A B C F 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 C 0 C’ 0 1 2 mux A' (when BC = 00) F 3 B C  ELC224C Digital Combinational Logic 49
USING SMALLER MULTIPLEXERS (6/6)  Example: Implement the function below with 74151A: f(x1,x2,x3,x4) = m(0,1,2,3,4,9,13,14,15) ELC224C Digital Combinational Logic 50

Logic Design - Chapter 5: Part1 Combinattional Logic

  • 1.
  • 2.
    Contents Introduction  Decoders  Encoders Demultiplexers  Multiplexers  Digital Combinational Logic 2
  • 3.
    INTRODUCTION  Four common anduseful MSI circuits:      Decoder Demultiplexer Encoder Multiplexer Block-level outlines of MSI circuits: code inpu t decode r mux selec t entit y data entit y data Digital Combinational Logic encode r demu x selec t code outp ut 3
  • 4.
    DECODERS (1/5)  Codes arefrequently used to represent entities, eg: your name is a code to denote yourself (an entity!).  These codes can be identified (or decoded) using a decoder. Given a code, identify the entity.  Convert binary information from n input lines to (maximum of) 2n output lines.  Known as n-to-m-line decoder, or simply n:m or n n m decoder (m 2 ).  May be used to generate 2n minterms of n input variables. 4
  • 5.
    DECODERS (2/5)  Example: Ifcodes 00, 01, 10, 11 are used to identify four light bulbs, we may use a 2-bit decoder. 2x4 F0 X Dec F 1 F2 Y F3 2-bit code   Bulb Bulb Bulb Bulb 0 1 2 3 This is a 2 4 decoder which selects an output line based on the 2-bit code supplied. Truth table: X Y F F F F 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 2 0 0 1 0 3 0 0 0 1 5
  • 6.
    DECODERS (3/5)   X 0 0 1 1 From truthtable, circuit for 2 4 decoder is: Note: Each output is a 2-variable minterm (X' Y', X' Y, X Y' or X Y) Y 0 1 0 1 F0 1 0 0 0 F1 0 1 0 0 F2 0 0 1 0 F3 0 0 0 1 F0 = X' Y' F1 = X' Y F2 = X Y' F3 = XY 6 X Y
  • 7.
    DECODERS (4/5)  F0 = x'y' z' F1 = x' y' z F2 = x' y z' F3 = x' y z Design a 3 8 decoder. x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 F0 F1 F2 F3 F4 F5 F6 F7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 F4 = x y' z' F5 = x y' z F6 = x y z' F7 = xyz x y z 7
  • 8.
    DECODERS (5/5)  In general,for an n-bit code, a decoder n could select up to 2 lines: n-bit code : n to 2n decoder : up to 2n output lines 8
  • 9.
    DECODERS: IMPLEMENTING FUNCTIONS (1/5)  ABoolean function, in sum-of-minterms form a decoder to generate the minterms, and an OR gate to form the sum.  Any combinational circuit with n inputs and m outputs can be implemented with an n:2n decoder with m OR gates.  Good when circuit has many outputs, and each function is expressed with few minterms. 9
  • 10.
    DECODERS: IMPLEMENTING FUNCTIONS (2/5) x  Example:Full adder S(x, y, z) = C(x, y, z) = m(1,2,4,7) m(3,5,6,7) 3x8 Dec x S2 y S1 z S0 0 1 2 3 4 5 6 7 y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 S C 10
  • 11.
    DECODERS: IMPLEMENTING FUNCTIONS (3/5) 3x8 Dec 0x 0 y S1 0 z  S2 S0 0 1 2 3 4 5 6 7 x S C y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 11
  • 12.
    DECODERS: IMPLEMENTING FUNCTIONS (4/5) 3x8 Dec 0x 0 y S1 1 z  S2 S0 0 1 2 3 4 5 6 7 x S C y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 12
  • 13.
    DECODERS: IMPLEMENTING FUNCTIONS (5/5) 3x8 Dec 1x 1 y S1 1 z  S2 S0 0 1 2 3 4 5 6 7 x S C y z C S 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 13
  • 14.
    DECODERS WITH ENABLE(1/2)   Decoders often come with an enable control signal, so that the device is only activated when the enable, E = 1. Truth table: F E X Y F 0 1 1 1 1 0  0 0 1 1 X 0 1 0 1 X 1 0 0 0 0 F0 = E X' Y' 1 0 1 0 0 0 F2 F3 0 0 1 0 0 0 0 0 1 0 F1 = E X' Y F2 = E X Y' F3 = E X Y Circuit of a 2 4 decoder with enable: X Y E 14
  • 15.
    DECODERS WITH ENABLE(2/2)  In the previous slide, the decoder has a oneenable control signal, i.e. the decoder is enabled with E=1.  In most MSI decoders, enable signal is zeroenable, usually denoted by E' or Ē. The decoder is enabled when the signal is zero (low). E X Y F0 F1 F2 F3 E' X Y F0 F1 F2 F3 1 1 1 1 0 0 0 1 1 X 0 1 0 1 X 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 X 0 1 0 1 X 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 Decoder with 1enable Decoder with 0enable 15
  • 16.
    LARGER DECODERS (1/4)  Largerdecoders can be constructed from smaller ones.  Example: A 3 8 decoder can be built from two 2 4 decoders (with oneenable) and an inverter. w x y w x y S2 S1 S0 3x8 Dec S1 S0 S1 S0 2x4 Dec E 2x4 Dec E F0 = w' x' y' F1 = w' x' y : : F7 = w x y 0 1 : : 7 0 1 2 3 F0 = w' x' y' F1 = w' x' y F2 = w' x y' F3 = w' x y 0 1 2 3 F4 = w x' y' F5 = w x' y F6 = w x y' F7 = w x y 16
  • 17.
    LARGER DECODERS (2/4) w x y w x y S1 S0 S1 S0  2x4 Dec E 2x4 Dec E 0 1 2 3 S2 S1 S0 3x8 Dec 0 1 : : 7 F0= w' x' y' F1 = w' x' y : : F7 = w x y F0 = w' x' y' F1 = w' x' y F2 = w' x y' F3 = w' x y F4 = w x' y' F5 = w x' y F6 = w x y' F7 = w x y 17
  • 18.
    LARGER DECODERS (3/4)  Constructa 4 16 decoder from two 3 8 decoders with one-enable. w x y z 4x16 Dec w x y z S2 S1 S0 S2 S1 S0 3x8 Dec E 3x8 Dec E S3 S2 S1 S0 0 1 : 7 F0 F1 : : F15 F0 F1 : F7 0 1 : 7 0 1 : : 1 5 F8 F9 : F15 18
  • 19.
    LARGER DECODERS (4/4)  Note:The input, w and its complement, w', are used to select either one of the two smaller decoders.  Decoders may also have zero-enable and/or negated outputs.   Normal outputs = active high Negated outputs = active low  Exercise: What modifications should be made to provide an ENABLE input for the 3 8 decoder and the 4 16 decoder created in the previous two slides?  Exercise: How to construct a 4 16 decoder using five 2 4 decoders with enable? 19
  • 20.
    STANDARD MSI DECODER(1/2)  74138 (3-to-8 decoder) 74138 decoder module. (a) Logic circuit. (b) Package pin configuration. 20
  • 21.
    STANDARD MSI DECODER(2/2) 74138 decoder module. (c) Function table. (c) 74138 decoder module. (d) Generic symbol. (e) IEEE standard logic symbol. Source:The Data Book Volume 2, Texas Instruments Inc.,1985 21
  • 22.
    DECODERS: IMPLEMENTING FUNCTIONS REVISIT(1/2)  Example: Implement the following function using a 3 8 decoder and appropriate logic gate f(Q,X,P) = m(0,1,4,6,7) = M(2,3,5)  We may implement the function in several ways:  Using a decoder with active-high outputs with an OR gate: f(Q,X,P) = m0 + m1 + m4 + m6 + m7  Using a decoder with active-low outputs with a NAND gate: f(Q,X,P) = (m0' m1' m4' m6' m7' )'  Using a decoder with active-high outputs with a NOR gate: f(Q,X,P) = (m2 + m3 + m5 )' [ = M2 M3 M5 ]  Using a decoder with active-low outputs with an AND gate: f(Q,X,P) = m2' m3' m5' 22
  • 23.
    DECODERS: IMPLEMENTING FUNCTIONS REVISIT(2/2) 3x8 Dec Q X P A B C 0 1 2 3 4 5 6 7 f(Q,X,P) = m(0,1,4,6,7) f(Q,X,P) (a) Active-high decoder with OR gate. 3x8 Dec Q X P A B C 0 1 2 3 4 5 6 7 f(Q,X,P) (c) Active-high decoder with NOR gate. Q X P 3x8 Dec A B C 0 1 2 3 4 5 6 7 f(Q,X,P) (b) Active-low decoder with NAND gate. 3x8 Dec Q X P A B C 0 1 2 3 4 5 6 7 f(Q,X,P) (d) Active-low decoder with AND gate. 23
  • 24.
    ENCODERS (1/4)      Encoding isthe converse of decoding. Given a set of input lines, of which exactly one is high, the encoder provides a code that corresponds to that input line. Contains 2n (or fewer) input lines and n output lines. Implemented with OR gates. Example: Select via switches F0 F1 F2 F3 D 4-to-2 Encode r 0 D 2-bits code 1 24
  • 25.
    ENCODERS (2/4)   Truth table: WithK-map, we obtain: D0 = F1 + F3 D1 = F2 + F3   Circuit: F0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 F1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 F2 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 F3 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 D1 0 0 1 1 X X X X X X X X X X X X D0 0 1 0 1 X X X X X X X X X X X X 25
  • 26.
    ENCODERS (3/4)  Example: Octal-to-binaryencoder.   At any one time, only one input line has a value of 1. Otherwise, we need priority encoder (to be discussed in tutorial). In p u ts O u tp u ts D0 D1 D2 D3 D4 D5 D6 D7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 x y z 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 26
  • 27.
    ENCODERS (4/4)  Example: Octal-to-binaryencoder. D0 D1 x = D4 + D5 + D6 + D7 D2 D3 y = D2 + D3 + D6 + D7 D4 D5 D6 z = D1 + D3 + D5 + D7 D7 An 8-to-3 encoder  Exercise: Can you design a 2n-to-n encoder without using K-map? 27
  • 28.
    DEMULTIPLEXERS (1/2)   Given aninput line and a set of selection lines, a demultiplexer directs data from the input to one selected output line. Example: 1-to-4 demultiplexer. Outputs Y0 = D∙S1'∙S0' Data D demu x S1 So Y0 Y1 Y2 Y3 Y1 = D∙S1'∙S0 0 0 1 1 0 1 0 1 D 0 0 0 Y2 = D∙S1∙S0' Y3 = D∙S1∙S0 0 D 0 0 0 0 D 0 0 0 0 D S1 S0 selec t 28
  • 29.
    DEMULTIPLEXERS (2/2)  It turnsout that the demultiplexer circuit is actually identical to a decoder with enable. S1 S0 2 4 0 Decode 1 A r B 2 Y0 = ? 3 Y3 = ? E Y1 = ? Y2 = ? D  ELC224C Digital Combinational Logic 29
  • 30.
    MULTIPLEXERS (1/5)  A multiplexeris a device which has     A number of input lines A number of selection lines One output line It steers one of 2n inputs to a single output line, using n selection lines. Also known as a data selector. n input s : 2 :1 Multiplexe r outp ut .. . select ELC224C Digital Combinational Logic 30
  • 31.
    MULTIPLEXERS (2/5)  Truth tablefor a 4-to-1 multiplexer: I0 0 I1 I2 I3 I2 I3 S1 S0 Y S1 S0 Y d0 d0 d0 d0 Input sI I1 d1 d1 d1 d1 d2 d2 d2 d2 d3 d3 d3 d3 0 0 1 1 d0 d1 d2 d3 0 0 1 1 I0 I1 I2 I3 0 1 0 1 Inputs 0 4:1 1 MUX Y 2 3 S1 S0 I0 I1 Outpu t I2 I3 4:1 mu x Y S1 S0 selec selec t ELC224C 0 1 0 1 t Digital Combinational Logic 31
  • 32.
    MULTIPLEXERS (3/5)  Output ofmultiplexer is “sum of the (product of data lines and selection    S1 S0 Y 0 0 0 1 1 0 1 1 lines)” I0 I1 I2 I3 Example: Output of a 4-to-1 multiplexer is: Y=? A 2n-to-1-line multiplexer, or simply 2n:1 MUX, is made from an n:2n decoder by adding to it 2n input lines, one to each AND gate. ELC224C Digital Combinational Logic 32
  • 33.
    MULTIPLEXERS (4/5)  A 4:1multiplexer circuit: I0 I0 I1 I1 Y I2 I3 I3 0 3 1 2 2-to-4 Decoder S1 S1 S0 ELC224C Y I2 Digital Combinational Logic S0 33
  • 34.
    MULTIPLEXERS (5/5)    An application: Helpsshare a single communication line among a number of devices. At any time, only one source and one destination can use the communication line. ELC224C Digital Combinational Logic 34
  • 35.
    MULTIPLEXER IC PACKAGE  SomeIC packages have a few multiplexers in each package (chip). The selection and enable inputs are common to all multiplexers within the package.A0 Y0 A1 Y1 A2 Y2 A3 Y3 B0 B1 E’ 1 0 0 B2 S B3 (select) E' ELC224C (enable ) S X 0 1 O u tp u t Y a ll 0 ’s s e le c t A s e le c t B Quadruple 2:1 multiplexer Digital Combinational Logic 35
  • 36.
    LARGER MULTIPLEXERS (1/4)   Larger multiplexerscan be constructed from smaller ones. An 8-to-1 multiplexer can be constructed from smaller multiplexers like this (note placement of selector lines): I0 S S S Y I1 I2 I3 2 4:1 MUX S1 S0 I4 I5 I6 I7 2:1 MUX 4:1 MUX S2 Y 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 I0 I1 I2 I3 I4 I5 I6 I7 S1 S0 ELC224C Digital Combinational Logic 36
  • 37.
    LARGER MULTIPLEXERS (2/4) I0 I1 I2 I3 4:1 MUX I II 2:1 MUX S 1 S0 I4 I5 I6 I7 4:1 MUX S2 S1 S0 0 1 2 Y I I I 0 1 6 I I I 4 5 6 S2 S 1 S0  I0 I1 I2 I3 I4 I5 I6 I7 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 When S2S1S0 = 001  0 0 0 0 1 1 1 1 When S2S1S0 = 000  Y When S2S1S0 = 110 ELC224C Digital Combinational Logic 37
  • 38.
    LARGER MULTIPLEXERS (3/4)  Another implementationof an 8-to-1 multiplexer using smaller multiplexers: I0 I1 I2 I3 2:1 MUX I2 2:1 MUX I0 4:1 MUX 2:1 I4 MUX S 0 I6 I7 I0 Y Y 0 0 0 0 1 1 1 1 I0 I1 I2 I3 I4 I5 I6 I7 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 S2 S1 2:1 MUX S0 ELC224C S2 S1 S0 S0 S0 I4 I5 When S2S1S0 = 000 I6 Q: Can we use only 2:1 multiplexers? Digital Combinational Logic 38
  • 39.
    LARGER MULTIPLEXERS (4/4)  A 16-to-1multiplexer can be constructed from five 4-to-1 multiplexers: ELC224C Digital Combinational Logic 39
  • 40.
    STANDARD MSI MULTIPLEXER (1/2) (b) 74151A8-to-1 multiplexer. (a) Package configuration. (b) Function table. ELC224C Digital Combinational Logic 40
  • 41.
    STANDARD MSI MULTIPLEXER (2/2) (c) 74151A8-to-1 multiplexer. (c) Logic diagram. (d) Generic logic symbol. (e) IEEE standard logic symbol. Source: The TTL Data Book Volume 2. Texas Instruments Inc.,1985. ELC224C Digital Combinational Logic 41
  • 42.
    IMPLEMENTING FUNCTIONS (1/3)   Boolean functionscan be implemented using multiplexers. A 2n-to-1 multiplexer can implement a Boolean function of n input variables, as follows: 1. Express in sum-of-minterms form. Example: F(A,B,C) = A' B' C + A' B C + A B' C + A B C' = m(1,3,5,6) 2. Connect n variables to the n selection lines. 3. Put a „1‟ on a data line if it is a minterm of the function, or „0‟ otherwise. ELC224C Digital Combinational Logic 42
  • 43.
    IMPLEMENTING FUNCTIONS (2/3)  F(A,B,C) = 0 1 0 1 0 1 1 0 0 1 2 3mux 4 5 6 7 A B C m(1,3,5,6) This method works because: F Output = m0 I0 + m1 I1 + m2 I2 + m3 I3 + m4 I4 + m5 I5 + m6 I6 + m7 I7 Supplying „1‟ to I1,I3,I5,I6 , and „0‟ to the rest: Output = m1 + m3 + m5 + m6 ELC224C Digital Combinational Logic 43
  • 44.
    IMPLEMENTING FUNCTIONS (3/3)  Example: Usea 74151A to implement f(x1,x2,x3) = m(0,2,3,5) Realization of f(x1,x2,x3) = m(0,2,3,5). (a) Truth table. (b) Implementation with 74151A. ELC224C Digital Combinational Logic 44
  • 45.
    USING SMALLER MULTIPLEXERS(1/6)    Earlier, we saw how a 2n-to-1 multiplexer can be used to implement a Boolean function of n (input) variables. However, we can use a single smaller 2(n-1)-to-1 multiplexer to implement a Boolean function of n (input) variables. Example: The function F(A,B,C) = m(1,3,5,6) can be implemented using a 4-to-1 multiplexer (rather than an 8-to-1 multiplexer). ELC224C Digital Combinational Logic 45
  • 46.
    USING SMALLER MULTIPLEXERS(2/6)  Let‟s look at this example: F(A,B,C) = A B C' 1 1 0 1 0 0 1 0 m(0,1,3,6) = A' B' C' + A' B' C + A' B C + 0 1 2 3 mux 4 5 6 7 F 1 C 0 C' A B C  0 1 2 mux F 3 A B Note: Two of the variables, A and B, are applied as selection lines of the multiplexer, while the inputs of the multiplexer contain 1, C, 0 and C'. ELC224C Digital Combinational Logic 46
  • 47.
    USING SMALLER MULTIPLEXERS(3/6)  Procedure 1. Express Boolean function in sum-of-minterms form. Example: F(A,B,C) = m(0,1,3,6) 2. Reserve one variable (in our example, we take the least significant one) for input lines of multiplexer, and use the rest for selection lines. Example: C is for input lines; A and B for selection lines. ELC224C Digital Combinational Logic 47
  • 48.
    USING SMALLER forfunction, by grouping inputs MULTIPLEXERS (4/6) 3. Draw the truth table by selection line values, then determine multiplexer inputs by comparing input line (C) and function (F) for corresponding selection line values. A F 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 MUX input 1 0 ELC224C C 0  B 0 ? ? ? ? 0 1 2 mux F 3 A B Digital Combinational Logic 48
  • 49.
    USING SMALLER MULTIPLEXERS(5/6)  Alternative: What if we use A for input lines, and B, C for selector lines? A B C F 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 ? ? ? ? M ux In p u t A B C F 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 C 0 C’ 0 1 2 mux A' (when BC = 00) F 3 B C  ELC224C Digital Combinational Logic 49
  • 50.
    USING SMALLER MULTIPLEXERS(6/6)  Example: Implement the function below with 74151A: f(x1,x2,x3,x4) = m(0,1,2,3,4,9,13,14,15) ELC224C Digital Combinational Logic 50