Lo’ai Tawalbeh Lecture #2 Standard combinational modules: decoders, encoders and Multiplexers 1/3/2005 cpe 252: Computer Organization 1 Decoders • General decoder structure • Typically n inputs, 2n outputs – 2-to-4, 3-to-8, 4-to-16, etc. cpe 252: Computer Organization 2 Binary 2-to-4 decoder Note: “x” = (don’t care) cases. cpe 252: Computer Organization 3 Decoder Use – Operation Decoding •Microprocessor instruction decoding opcode field instruction other fields 1 4-input binary En decoder 0 1 2 ………. 15 jump load store add decoded instructions cpe 252: Computer Organization 4 2-to-4-decoder logic diagram cpe 252: Computer Organization 5 3-input Binary Decoder E 1 1 1 1 1 1 1 1 0 x2 0 0 0 0 1 1 1 1 - x1 0 0 1 1 0 0 1 1 - x0 0 1 0 1 0 1 0 1 - x 0 1 2 3 4 5 6 7 - y7 0 0 0 0 0 0 0 1 0 y6 0 0 0 0 0 0 1 0 0 y5 0 0 0 0 0 1 0 0 0 y4 0 0 0 0 1 0 0 0 0 y3 0 0 0 1 0 0 0 0 0 y2 0 0 1 0 0 0 0 0 0 y1 0 1 0 0 0 0 0 0 0 y0 1 0 0 0 0 0 0 0 0 Inputs: x = (x2, x1, x0), with xi in {0,1} and E in {0,1} Outputs: y = (y7,y6,y5,…,y1,y0) with yi in {0,1} Function: yi = E. mi(x), i = 0,1,…,7 cpe 252: Computer Organization 6 Implementing functions using a Binary Decoder and OR Gates Function x1 0 0 1 1 0 0 1 1 x0 0 1 0 1 0 1 0 1 z2 0 1 0 0 0 1 0 1 z1 1 0 0 1 0 0 1 0 z0 0 0 1 0 1 1 0 0 x2 x1 x0 2 1 0 Binary Decoder x2 0 0 0 0 1 1 1 1 z2 0 1 2 3 4 5 6 7 z1 z0 E 1 Remember that any function can be represented as a sum of minterms cpe 252: Computer Organization 7 Binary Encoders • Only one input Ij has value 1 at any given time • Output Y corresponds to the binary code of j when Ij = 1 cpe 252: Computer Organization 8 8-to-3 Binary Encoders Y0 = I1 + I3 + I5 + I7 (odd input indices) Y1 = I2 + I3 + I6 + I7 Y2 = I4 + I5 + I6 + I7 (indices > 3) cpe 252: Computer Organization 9 Multiplexers data inputs 1 0 0 1 1 MUX 0 2 1 3 1 0 1 0 1 0 selection inputs cpe 252: Computer Organization 10 4-input Multiplexer cpe 252: Computer Organization 11 Typical Multiplexer use selection between multiple paths to a functional unit cpe 252: Computer Organization 12 Multiplexers as universal modules • Universal module: using only this module you are able to implement ANY logic function. • NAND and NOR gates for example are universal gates. • Question: how do you assign inputs for the multiplexer in order to implement a given function? cpe 252: Computer Organization 13 Exercise Implement the following function using: a) 8-input multiplexer. b) 4-input multiplexer. F=x,y,z(1,2,6,7) cpe 252: Computer Organization 14 Lo’ai Tawalbeh Lecture #2 Signed and Unsigned Numbers cpe 252: Computer Organization 15 4-bit Unsigned Numbers Range of values for n-bit vector is: 0 ≤ x ≤ (2^n-1) cpe 252: Computer Organization 16 Representation of Signed Integers and Basic Operations • Two common representations – Sign and Magnitude (SM) – True and Complement (TC) • In both cases there is a mapping from signed values to positive values. cpe 252: Computer Organization 17 Sign and Magnitude • x represented by a pair (s,m) where – s is the sign: 0 for positive and 1 for negative – m is the magnitude – example: (-23)10 = -(10111) = (1,10111) • Range of values for n-bit vector (n-1 bits for m) – - (2n-1 – 1) ≤ x ≤ (2n-1 – 1) cpe 252: Computer Organization • Two representations for zero 18 2’s complement • No separation between sign and magnitude • Signed integer x represented by positive integer xR such that: when x 0 x xR n 2 x otherwise Example: n=4, 2^4=16. To represent x = -7; xR = 9 • Range of values for n-bit vector ( 2’s comlement) – - (2n-1 ) ≤ x ≤ (2n-1 – 1) cpe 252: Computer Organization 19 4-bit Two’s Complement Numbers cpe 252: Computer Organization 20 Change of Sign 1. complement each bit of x 2. add 1 Example: n = 4 x = (0011)2= 3 x’ = 1100 +1 1101 representation of -3 cpe 252: Computer Organization 21 Positive integer addition/subtraction cpe 252: Computer Organization 22 Two’s complement addition/subtraction • Addition: same as positive integer addition – just discard carry out • Subtraction: x - y – step 1: change the sign of y to obtain -y – step 2: add x and -y • Example: x = 8, y = 5, 5-bit vectors y = 00101 -y = 11011 <<< change sign x - y = 01000 11011 + 00011 << carry out discarded cpe 252: Computer Organization 23