680 likes | 681 Vues
Computer Architecture I: Digital Design Dr. Robert D. Kent. Logic Design Decoders and Multiplexers. Review. We have begun to study logic design in the contexts of Medium Scale Integration (MSI) of gate devices and programmable logic devices (PLD).
E N D
Computer Architecture I: Digital Design Dr. Robert D. Kent Logic Design Decoders and Multiplexers
Review • We have begun to study logic design in the contexts of Medium Scale Integration (MSI) of gate devices and programmable logic devices (PLD). • We have studied the design of a number of specific, practical functional circuits, expressed in terms of Boolean expressions and their equivalent logic gates (SSI: Small Scale Integration) with a view to re-using those circuits as components in MSI design. • 1-bit Half-Adder 1-bit Full-Adder • Multi-bit Ripple Adder Subtractor • Decade Adder Comparator
Goals • We continue our study of simple, but functional Combinational circuits, namely Decoders/Encoders, Multiplexers, and PLD/PLA circuits: • we continue constructing a small library of useful components • through study of the solution process using Boolean algebra and Boolean calculus (simplification, etc.) we better understand the meaning of SSI design • we seek to identify these components for their re-use potential • through our study we will better understand how MSI increases the level of abstraction in solving problems - SSI design is relatively concrete.
Circuit # 9 : Decoders • Decoders are most often used to transform one type of coding to another. • Change data representations • Design of address bus networks (specify an address to obtain data)
Circuit # 9 : Decoders • Decoders are most often used to transform one type of coding to another. • Change data representations • Design of address bus networks • A decoder is a multi-input, multi-output logic network.
Circuit # 9 : Decoders N-to-2N0 DEC 01 12 2. .. .. .N-1 2N-1 • Decoders are most often used to transform one type of coding to another. • Change data representations • Design of address bus networks • A decoder is a multi-input, multi-output logic network. • Typically with N inputs and 2N outputs.
Circuit # 9 : Decoders N-to-2N0 DEC 01 12 2. .. .. .N-1 2N-1 • Decoders are most often used to transform one type of coding to another. • Change data representations • Design of address bus networks • A decoder is a multi-input, multi-output logic network. • Typically with N inputs and 2N outputs. • Other types of N-to-M decoders are alsoused, where M < 2N.
Circuit # 9a : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0.
Circuit # 9a : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • Example: a 2-line input to 4-line output decoder
Circuit # 9a : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • Example: a 2-line input to 4-line output decoderTruth table: Label the outputs DK, noting that the subscript value, K, is just the (unsigned) binary value Kradix-2 = [x1 x0]. Only one output line = 1 at a time.x1 x0 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
Circuit # 9a : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • Example: a 2-line input to 4-line output decoderTruth table: Label the outputs DK, noting that the subscript value, K, is just the (unsigned) binary value Kradix-2 = [x1 x0]. Only one output line = 1 at a time.x1 x0 D0 D1 D2 D3 0 0 1 0 0 0 D0 = x1’ x0’ 0 1 0 1 0 0 D1 = x1’ x01 0 0 0 1 0 D2 = x1 x0’ 1 1 0 0 0 1 D3 = x1 x0
Circuit # 9a : Simple Decoder 2-to-4 DEC D0 D1 D2 D3 X0X1 • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • Example: a 2-line input to 4-line output decoderD0 = x1’ x0’D1 = x1’ x0D2 = x1 x0’ D3 = x1 x0
Circuit # 9a : Simple Decoder Note: Buffer-Inverter= 2-to-4 DEC D0 D1 D2 D3 X0X1 • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • Example: a 2-line input to 4-line output decoderD0 = x1’ x0’D1 = x1’ x0D2 = x1 x0’ D3 = x1 x0
Circuit # 9b : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • We consider the example of a 3-input, 8-output decoder.
Circuit # 9b : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • We consider the example of a 3-input, 8-output decoder.x2 x1 x0 z0 z1 z2 z3 z4 z5 z6 z70 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
Circuit # 9b : Simple Decoder • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • We consider the example of a 3-input, 8-output decoder.x2 x1 x0 z0 z1 z2 z3 z4 z5 z6 z70 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 Note that each output, ZJ, is characterized by a single 1-value that can be immediately represented as a single minterm.
Circuit # 9b : Simple Decoder 3-to-8DEC 00 1 21 3 42 5 6 7 Z0 = X2 X1 X0Z1 = X2 X1 X0 Z2 = X2 X1 X0 Z3 = X2 X1 X0 Z4 = X2 X1 X0 Z5 = X2 X1 X0 Z6 = X2 X1 X0 Z7 = X2 X1 X0 X0X1 X2 • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • We consider the example of a 3-input, 8-output decoder.x2 x1 x0 z0 z1 z2 z3 z4 z5 z6 z70 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
Circuit # 9b : Simple Decoder 3-to-8DEC 00 1 21 3 42 5 6 7 Z0 = X2 X1 X0Z1 = X2 X1 X0 Z2 = X2 X1 X0 Z3 = X2 X1 X0 Z4 = X2 X1 X0 Z5 = X2 X1 X0 Z6 = X2 X1 X0 Z7 = X2 X1 X0 X0X1 X2 • The simplest decoder has N inputs and 2N outputs. • The set of all N inputs is interpreted as an unsigned binary number that, in turn, selects a particular output line to output a value 1 with all other output lines having value 0. • We consider the example of a 3-input, 8-output decoder.x2 x1 x0 z0 z1 z2 z3 z4 z5 z6 z70 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 minterms
Circuit # 9b : Simple Decoder • The decoder that we have developed is called a minterm generator decoder.
Circuit # 9b : Simple Decoder • The decoder that we have developed is called a minterm generator decoder. • This type of MSI circuit is particularly valuable for constructing other types of circuits, based on the use of minterm expressions:
Circuit # 9b : Simple Decoder • The decoder that we have developed is called a minterm generator decoder. • This type of MSI circuit is particularly valuable for constructing other types of circuits, based on the use of minterm expressions: • Example: Consider two functionsF(X2 X1 X0) = Sum m(1,2,4,5)G(X2 X1 X0) = Sum m(1,5,7)
Circuit # 9b : Simple Decoder • The decoder that we have developed is called a minterm generator decoder. • This type of MSI circuit is particularly valuable for constructing other types of circuits, based on the use of minterm expressions: • Example: Consider two functionsF(X2 X1 X0) = Sum m(1,2,4,5)G(X2 X1 X0) = Sum m(1,5,7) • These can be constructed immediately using the decoderand or gates.
Circuit # 9b : Simple Decoder 3-to-8DEC 00 1 21 3 42 5 6 7 X0X1 X2 F G • The decoder that we have developed is called a minterm generator decoder. • This type of MSI circuit is particularly valuable for constructing other types of circuits, based on the use of minterm expressions: • Example: Consider two functionsF(X2 X1 X0) = Sum m(1,2,4,5)G(X2 X1 X0) = Sum m(1,5,7) • These can be constructed immediately using the decoderand or gates.
Circuit # 9c : Simple Decoder • We note that various functions can be transformed from one form to another.
Circuit # 9c : Simple Decoder • We note that various functions can be transformed from one form to another. • For example: H(X2 X1 X0) = Sum m(0,3,6,7)
Circuit # 9c : Simple Decoder • We note that various functions can be transformed from one form to another. • For example: H(X2 X1 X0) = S m(0,3,6,7) = S m(0,3,6,7) double complement
Circuit # 9c : Simple Decoder • We note that various functions can be transformed from one form to another. • For example: H(X2 X1 X0) = S m(0,3,6,7) = S m(0,3,6,7) double complement = S m(1,2,4,5) complement canonical minterm
Circuit # 9c : Simple Decoder • We note that various functions can be transformed from one form to another. • For example: H(X2 X1 X0) = S m(0,3,6,7) = S m(0,3,6,7) double complement = S m(1,2,4,5) complement canonical minterm = F(X2 X1 X0)
Circuit # 9c : Simple Decoder 3-to-8DEC 00 1 21 3 42 5 6 7 X0X1 X2 H G • We note that various functions can be transformed from one form to another. • For example: H(X2 X1 X0) = S m(0,3,6,7) = G m(0,3,6,7) double complement = S m(1,2,4,5) complement canonical minterm = F(X2 X1 X0)
Circuit # 9c : Simple Decoder 3-to-8DEC 00 1 21 3 42 5 6 7 X0X1 X2 H G • We note that various functions can be transformed from one form to another. • For example: H(X2 X1 X0) = S m(0,3,6,7) = G m(0,3,6,7) double complement = S m(1,2,4,5) complement canonical minterm = F(X2 X1 X0) Note the inverter on the output H, equivalent to using a nor gate.
Circuit # 9d : Decoders with Enable Input • Normally, decoders have one or more additional input lines referred to as enable inputs. • These line values determine whether the circuit is operational or not.
Circuit # 9d : Decoders with Enable Input • Normally, decoders have one or more additional input lines referred to as enable inputs. • These line values determine whether the circuit is operational or not. • Example: a 2-to-4 decoder with enable inputTruth table: Outputs DK can only have value 1 if enabled, E = 1.E x1 x0 D0 D1 D2 D3 0 - - 0 0 0 0 Note: x1 x0 don’t matter1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1
Circuit # 9d : Decoders with Enable Input • Normally, decoders have one or more additional input lines referred to as enable inputs. • These line values determine whether the circuit is operational or not. • Example: a 2-to-4 decoder with enable inputTruth table: Outputs DK can only have value 1 if enabled, E = 1.E x1 x0 D0 D1 D2 D3 0 - - 0 0 0 0 Note: x1 x0 don’t matter1 0 0 1 0 0 0 D0 = E x1’ x0’ 1 0 1 0 1 0 0 D1 = E x1’ x01 1 0 0 0 1 0 D2 = E x1 x0’ 1 1 1 0 0 0 1 D3 = E x1 x0
Circuit # 9d : Decoders with Enable Input 2-to-4 DEC D0 D1 D2 D3 X0X1 On(1)Off(0) E • Example: a 2-to-4 decoder with enable inputD0 = E x1’ x0’D1 = E x1’ x0D2 = E x1 x0’ D3 = E x1 x0
Circuit # 9d : Decoders with Enable Input 2-to-4 DEC D0 D1 D2 D3 X0X1 D0 D1 D2 D3 2-to-4DEC X0X1 On(1)Off(0) E E • Example: a 2-to-4 decoder with enable inputD0 = E x1’ x0’D1 = E x1’ x0D2 = E x1 x0’ D3 = E x1 x0
Circuit # 9e : Decoder as LED Controller • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. LEDdigit
Circuit # 9e : Decoder as LED Controller • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF) LEDdigit 0 1 2 3 4 5 6
Circuit # 9e : Decoder as LED Controller 0 1 2 3 4 5 6 • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF)E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 LEDdigit
Circuit # 9e : Decoder as LED Controller 0 1 2 3 4 5 6 • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF)E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 LEDdigit
Circuit # 9e : Decoder as LED Controller 0 1 2 3 4 5 6 • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF)E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 LEDdigit
Circuit # 9e : Decoder as LED Controller 0 1 2 3 4 5 6 • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF)E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 11 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 LEDdigit
Circuit # 9e : Decoder as LED Controller 0 1 2 3 4 5 6 • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF)E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 11 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 11 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 01 1 0 0 0 1 1 1 1 1 1 1 LEDdigit
Circuit # 9e : Decoder as LED Controller 0 1 2 3 4 5 6 • We now consider using a decoder to control the output of a set of light emitting diodes (LED’s) that display a decimal digit. • We use a 4-to-7 decoder with enable input (E = 1 ON, E = 0 OFF)E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 11 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 11 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 01 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 LEDdigit
Circuit # 9e : Decoder as LED Controller • We obtain the canonical minterm expressions:E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 11 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 11 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 01 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0
Circuit # 9e : Decoder as LED Controller Z0 = S m(0,2,3,5,7,8,9) Z1 = S m(0,4,5,6,8,9) Z2 = S m(0,1,2,3,4,7,8,9) Z3 = S m(2,3,4,5,6,8,9) Z4 = S m(0,2,6,8) Z5 = S m(0,1,2,4,5,6,7,8,9) Z6 = S m(0,2,3,5,6,8) • We obtain the canonical minterm expressions:E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 11 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 11 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 01 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0
Circuit # 9e : Decoder as LED Controller Z0 = S m(0,2,3,5,7,8,9) Z1 = G m(0,4,5,6,8,9) Z2 = G m(0,1,2,3,4,7,8,9) Z3 = G m(2,3,4,5,6,8,9) Z4 = G m(0,2,6,8) Z5 = G m(0,1,2,4,5,6,7,8,9) Z6 = G m(0,2,3,5,6,8) Z0’ = S m(1,4,6) Z1’ = S m(1,2,3,7) Z2’ = S m(5,6) Z3’ = S m(0,1,7) Z4’ = S m(1,3,4,5,7,9) Z5’ = S m(3) Z6’ = S m(1,4,7,9) • And simplify, if possible (e.g. using complementation):E x3 x2 x1 x0 z0 z1 z2 z3 z4 z5 z60 - - - - 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 11 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 11 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 01 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0
Circuit # 9e : Decoder as LED Controller 4-to-10DEC 00 11 22 33 4 5 6 7 8 9 Z0’Z1’Z2’Z3’Z4’Z5’Z6’ X0X1X2X3E Z0’ = S m(1,4,6) Z1’ = S m(1,2,3,7) Z2’ = S m(5,6) Z3’ = S m(0,1,7) Z4’ = S m(1,3,4,5,7,9) Z5’ = S m(3) Z6’ = S m(1,4,7,9) 0 1 2 3 4 5 6
Circuit # 10 : Encoders 2N-to-N0 ENC 01 12 2. .. .. .2N-1 N-1 N-to-2N0 DEC 01 12 2. .. .. .N-1 2N-1 • Encoders are essentially the inverse of decoders. • Typical encoders are represented as 2N input lines to N output lines. • In general, encoders are N-to-M decoders, where N > M.