This preview shows page 1. Sign up to view the full content.
Unformatted text preview: 163 Chapter 9
Exercise 9.1 a Implement a 10 output decimal decoder for 2outof5 code using NAND gates. The 2outof5 code represents decimal digits as shown in the following table: 0 1 2 3 4 5 6 7 8 9 i x4 x3 x2 x1 x0
00011 11000 10100 01100 10010 01010 00110 10001 01001 00101 Each output zi of the decoder is activated when the input has the 2outof5 code that represents the value i in decimal and the enable input E = 1. The expressions for the outputs are: z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 = = = = = = = = = = x04 x03x02 x1 x0 E x4 x3x02 x01 x00 E x4 x03x2 x01 x00 E x04 x3x2 x01 x00 E x4 x03x02 x1 x00 E x04 x3x02 x1 x00 E x04 x03x2 x1 x00 E x4 x03x02 x01 x0 E x04 x3x02 x01 x0 E x04 x03x2 x01 x0 E Part of the gate network for the circuit is shown in Figure 9.1.
x4 x3 x2 x1 x0 x4’ x3’ x2’ x1’ x0’ x4’ x3’ x2’ x1 x0 E x4 x3 x2’ x1’ x0’ E z0 z1 Figure 9.1: Network for Exercise 9.1 a 164 Solutions Manual  Introduction to Digital Design  March 22, 1999 b Implement a 10 output decimal decoder using NAND gates for a 4bit Gray code. The code table is shown next. 0 1 2 3 4 5 6 7 8 9 i g3 g2 g1 g0
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 The expressions for the ten outputs z0 to z9 are: z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 = = = = = = = = = = 000 g2 g1 g0 E 00 g2 g1 g0 E 0 g2 g1 g0 E 00 g2 g1 g0 E 0 g2 g1 g0 E g2 g1 g0 E 00 g3 g2 g1 g0 E 0 00 g3 g2 g1 g0 E 0 g3 g0 E g3 g0 E The implementation, shown in Figure 9.2, consists of six 4input NAND gates, two 5input NAND gates, two 3input NAND gates, and 14 NOT gates. c Implement a 10 output decimal decoder using NAND gates for a 2421 code. The code table is shown next. 0 0000 1 0001 2 0010 3 0011 4 0100 5 1011 6 1100 7 1101 8 1110 9 1111 The switching expressions for the decoder outputs are: i c3 c2 c1c0 z0 = c03 c02 c01 c00 E Solutions Manual  Introduction to Digital Design  March 22, 1999 165 g2’ g1’ g0’ g2’ g1’ g0 z0 z1 g2’ g1 g0 g3 g2 g1 g0 g3’ g2’ g2’
g1 z2 g1’ g0’ g2 g0’
g1 g0’ g2 g1 g0 g3’ g2 g1’ g0 g3’ g2 g1’ g0 g3 g0’ g3 g0 z3 z4 z5 z6 z7 z8 z9 E Figure 9.2: Network for Exercise 9.1 b z1 z2 z3 z4 z5 z6 z7 z8 z9 = = = = = = = = = c03 c02 c01 c0 E c03 c02 c1 c00 E c03 c02 c1 c0 E c03 c2 c01 c00 E c3 c02 c1 c0 E c3 c2 c01 c00 E c3 c2 c01 c0 E c3 c2 c1 c00 E c3 c2 c1 c0 E Part of the gate network that implements these expressions is shown in Figure 9.3. 166
c3 c2 c1 c0 Solutions Manual  Introduction to Digital Design  March 22, 1999 c3’ c2’ c1’ c0’ c3’ c2’ c1’ c0’ E c3’ c2’ c1’ c0 E z0 z1 Figure 9.3: Gate network for Exercise 9.1 c
Exercise 9.2: Implement a BCD decoder using an Excess3 decoder, a 2input binary decoder and a NOR gate. The relation between BCD code and the Excess3 code is: x 0 1 2 3 4 5 6 7 8 9 10 11 12 z Ex3    0 1 2 3 4 5 6 7 8 9 y BCD 0 1 2 3 4 5 6 7 8 9   where x is the radix2 representation of the input vector and z and y are the indices of the outputs of the decoders with value 1. From the table we see that for x between 3 and 9, the output of the Excess3 decoder can be relabeled to give some of the outputs of the BCD decoder. Since for x between 0 and 2, no output of the Excess3 decoder has value 1, it is necessary to decode these values separately. It's possible to do this using a 2input binary decoder that has as inputs the bits x1 and x0 the least signi cant bits and making the enable input active when x 3. The corresponding network is shown in Figure 9.4, on page 167. The 4bit Odd Even parity functions have value 1 when the number of 1s in the input vector is odd even. The implementation of these functions using a 4input decoder and OR gates is shown in Figure 9.5. The even parity is produced by output EP and the odd parity by output OP .
Exercise 9.3 Exercise 9.4: For a coincident decoder using n = 12 and k = 4, we use r = n=k = 3 4input decoders and 212 3input AND gates. The circuit is shown in Figure 9.6. In the gure only some of the AND gates are shown, with the corresponding output numbers. In general, if we partition the input into groups of 4 bits, we get: u = 8x11 + 4x10 + 2x9 + x8 s = 8x7 + 4x6 + 2x5 + x4 t = 8x3 + 4x2 + 2x1 + x0
and the output zi = 1 if i = u28 + s24 + t. Solutions Manual  Introduction to Digital Design  March 22, 1999 167 x0 x1 x2 x3 0 1 2 3 0 4 1 Excess3 dec 5 2 6 3 7 8 E9 y4 y5 y6 y7 y8 y9 BCD: (x3,x2,x1,x0) decoded outputs: yi E 0 Binary 0 1 dec 2 1 3 y0 y1 y2 y3 Figure 9.4: BCD decoder  Exercise 9.2
Exercise 9.5 Part a number of levels in the tree of decoders = 20=4 = 5 levels. the number of decoders in this tree = 1 + 16 + 162 + 163 + 164 = 69905 decoders. Part b using coincident decoding we need ve 4input decoders to receive the 20 inputs. We would need 220 AND gates. Let us call x = x9 ; x8 ; x7 ; x6 ; x5 ; x4 ; x3 ; x2 ; x1 ; x0 the input vector of the 10input decoder. The output vector will depend on the code to be generated.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 Exercise 9.6 x3 x2 x1 x0 3 2 Dec. 1 0 E 1 I1 I2 I4 I8 I7 I11 I13 I14 I0 I3 I5 I6 I9 I10 I12 I15 OP EP Figure 9.5: Parity functions  Exercise 9.3 168 Solutions Manual  Introduction to Digital Design  March 22, 1999 x11 x10 x9 x8 3210 E Decoder 15 14 210 x7 x6 x5 x4 3210 E Decoder 15 14 210 x3 x2 x1 x0 3210 E Decoder 15 14 210 E E E z4095 z4094 z31 z1 z0 Figure 9.6: Coincident decoder for Exercise 9.4 a For the 2outof5 code consider the table presented in exercise 9.1 the expressions are: z4 z3 z2 z1 z0 = = = = = x1 + x2 + x4 + x7 E x1 + x3 + x5 + x8 E x2 + x3 + x6 + x9 E x0 + x4 + x5 + x6 E x0 + x7 + x8 + x9 E b For the 4bit Gray code the output vector is z3 ; z2 ; z1 ; z0 see table in Exercise 9.1.. The expressions are: z3 z2 z1 z0 = = = = x8 + x9 E x4 + x5 + x6 + x7 + x8 + x9 E x2 + x3 + x4 + x5 E x1 + x2 + x5 + x6 + x9 E c For Excess3 code the output vector is z3 ; z2 ; z1 ; z0 . The Excess3 code is shown in the next table: 0 1 2 3 4 5 6 7 8 9 i z3 z2 z1z0
0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Solutions Manual  Introduction to Digital Design  March 22, 1999 169 The expressions for the outputs are: z3 = x5 + x6 + x7 + x8 + x9 E z2 = x1 + x2 + x3 + x4 + x9 E z1 = x0 + x3 + x4 + x7 + x8 E z0 = x0 + x2 + x4 + x6 + x8 E
The networks of gates are easily obtained from these expressions.
Exercise 9.7 From the gure, we get the following expressions for the circuit outputs:
0 0 D = I8 + I9 0 = I8I9 0 0 0 0 0 0 C = I8 + I9 0 :I4 + I5 + I6 + I7 0 0 0 0 0 = I8 I9 :I4 + I5 + I6 + I7 0 0 0 0 0 B = I8I9 :I2 I4 I5 + I3 I4I5 + I6 + I7 0 0 0 0 0 = I8 I9 I6 + I7 + I9 I8 I7 I6 I5 I4 I3 + I2 0 0 0 0 0 0 A = I8 I9:I1 I2 I4I6 + I3 I4 I6 + I5 I6 + I7 + I90 0 0 0 0 0 = I9 + I9 I8 I7 + I9 I8 I7 I6 I5 + I9 I8 I7 I6 I5 I4 I3 + I9 I8 I7 I6 I5 I4 I3 I2 I1 0 From these expression we get the following table: 000000000 I9 I8 I7 I6 I5 I4 I3 I2 I1 D' C' B' A' Outputdecimal 11001 9 011000 8 0010111 7 00010110 6 000010101 5 0000010100 4 00000010011 3 000000010010 2 0000000010001 1 0000000000000 0 Consequently, if Z = D0 ; C 0 ; B 0 ; A0 represents a decimal digit z in BCD, we get
0 i if Ii0 = z = 0 otherwise1 for some i 0 and Ij = 0 for all j i; which corresponds to a priority encoder function. 170
Exercise 9.8 Solutions Manual  Introduction to Digital Design  March 22, 1999 : a From Figure 9.34 of the textbook we get the following table: BCD 7segment display 0000 0000001 1001111 0001 0010 0010010 0011 0000110 0100 1001100 0100100 0101 0110 0100000 0111 0001111 1000 0000000 1001 0001100 The implementation of this code converter using a decoder and OR gates is shown in Figure 9.7. The implementation using a decoder and an encoder is not e cient, and for this reason it is not shown. Two 4bit encoders or a large 7bit encoder should be used, and since there is only a small set of 7segment codes, many of the encoder inputs would not be used, or would require OR gates to combine two or more decoder outputs.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a b c d b3 b2 b1 b0 abcdefg b0 b1 b2 b3 0 1 2 3 Binary decoder e f g E 1 Figure 9.7: Network of Exercise 9.8 a Solutions Manual  Introduction to Digital Design  March 22, 1999 171 b Fourbit binary to 4bit Gray code. The function table is: binary Gray 0000 0000 0001 0001 0010 0011 0011 0010 0100 0110 0111 0101 0110 0101 0111 0100 1000 1100 1001 1101 1010 1111 1011 1110 1010 1100 1101 1011 1001 1110 1111 1000 Although the implementation by a gate network is quite simple, we show two di erent implementations in Figure 9.8. One uses a decoder and OR gates, and the other uses a decoder and encoder.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 g0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b3 b2 b1 b0 g3 g2 g1 g0 g1 b0 b1 b2 b3 0 1 2 3 b0 b1 b2 b3 0 1 2 3 Binary decoder Binary decoder Binary encoder g2 0 1 2 3 g0 g1 g2 g3 g3 E E 1 E 1 1 Figure 9.8: Binary to Graycode converter  Exercise 9.8 b 172 Solutions Manual  Introduction to Digital Design  March 22, 1999 c BCD to 2outof5 code converter. The function table of the system follows: BCD 2outof5 0000 00011 11000 0001 0010 10100 01100 0011 0100 10010 01010 0101 0110 00110 10001 0111 1000 01001 00101 1001 Two implementations of this code converter, one using a decoder and OR gates, and another using a decoder and encoder are shown in Figure 9.9.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Binary 15 encoder 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 E 31 1 b3 b2 b1 b0 c4 c3c2 c1 c0 c1 b0 b1 b2 b3 0 1 2 3 b0 b1 b2 b3 0 1 2 3 Binary decoder c2 Binary decoder c3 c4 E E 1 1 0 1 2 3 4 c0 c1 c2 c3 c4 0 Figure 9.9: Network of Exercise 9.8 c The implementation is shown in Figure 9.10, on page 173. The outputs of the decoder are labeled according to the Gray code and connected to the corresponding inputs of the encoder.
Exercise 9.9: Exercise 9.10 A speci cation of the cyclic priority encoder is z = i if xi = 1 and xi+jmod 8 = 0 for j c , i mod 8 Solutions Manual  Introduction to Digital Design  March 22, 1999 173 g2 g1 g0 0 1 2 Binary 1 decoder 3 4 5 0 6 E 7 2 0 1 2 2 Binary 3 Encoder 1 4 5 0 6 7E 1 b2 b1 b0 1 Figure 9.10: Code converter BinaryGray, Exercise 9.9 where c is the value of the control input. In one implementation, a left 7shifter is used to move the highestpriority input xc to the highest input of the priority encoder w7 . The amount of shift is therefore 7 , c to the left this is obtained by complementing each bit of the binary representation of c. This produces wi+7,cmod 8 = xi , so that if xi is the highestpriority input, the output of the priority encoder would be i + 7 , c mod 8. Consequently, to obtain the correct result, the output of the encoder y has to be decremented by 7 , c mod 8. That is, z = y , 7 , c mod 8 = y + c + 1 mod 8
The corresponding network is shown in Figure 9.11a. To avoid the complementation of c, we can use a right shift of c instead of the left shift. This would put xc in w0 instead of w7 . Therefore, the connections between the output of the shifter and the input of the priority encoder have to be as shown in the Figure 9.11b.
x1 x2 x3 x4 x5 x6 x7 x0 x1 x2 x3 x4 x5 x6 x7 7 6 Left 5 7Shifter 4 w0 0 3 1 2 2 1 3 0 4 1 5 2 6 w7 3 7 4 5 6 7 210 1 0 1 2 3 4 5 6 7 E 1 cin 0 Priority 1 Encoder 2 + z0 z1 z2 A A x0 x1 x2 x3 x4 x5 x6 x7 x0 x1 x2 x3 x4 x5 x6 c0 c1 c2 0 1 Right 2 7Shifter 3 0 4 1 5 2 6 3 7 4 8 5 9 6 10 7 11 12 13 14 210 c2 c1 c0 1 0 1 2 3 4 5 6 7 E 0 Priority 1 Encoder 2 A (b) (a) Figure 9.11: Cyclic priority encoder  Exercise 9.10 174
Exercise 9.11 Solutions Manual  Introduction to Digital Design  March 22, 1999 Input: x 2 f0; 1; 2; 3; 4; 5; 6; 7g, represented in binary by the vector x = fx2 ; x1 ; x0 g; xi 2 f0; 1g. Output: y 2 f0; 1; 2; 3; 4; 5; 6; 7g, represented in binary by the vector y = fy2 ; y1 ; y0 g; yi 2 f0; 1g Function: y = 3x mod 8 The function table for the system is: x01234567 y03614725 The implementation of this system using a binary decoder and a binary encoder is shown in Figure 9.12.
0 1 Binary 2 1 decoder 3 4 5 0 6 E 7 2 0 1 2 2 Binary 3 Encoder 1 4 5 0 6 7E 1 x2 x1 x0 y2 y1 y0 1 Figure 9.12: Function y = 3x using decoder and encoder
Exercise 9.12 The 64input encoder network in Figure 9.35 of the textbook consists of two levels of modules. In the rst level there are eight encoders, each of them encoding part of the input vector x. Since there is only one input with value 1, the outputs of all encoder modules are 0 except the one corresponding to this xi = 1. Also, only the corresponding A has value 1. Naming wj the value of the 3bit output of the encoder that has inputs xi, 8k i 8k + 7, the output is described as: wj = i mod 8 0
and if xi = 1 for j = bi=8c otherwise Aj = 1 0 if xi = 1 for j = bi=8c otherwise In the second level, there are three OR gates with eight inputs each which produce y2 ; y1 ; y0 and an eightinput encoder to encode the A outputs of the rst level encoders and produce y5 ; y4 ; y3 . The connection of the OR gates produces:
2 X
j =0 yj 2j = ORw7 ; w6 ; :::; w0 = i mod 8 Solutions Manual  Introduction to Digital Design  March 22, 1999 175 since all w's except one are 0. Similarly, the output of the secondlevel encoder is
5 X
j and, therefore, =3 yj 2j = bi=8c y= 5 X
j and the network performs the encoding function.
Exercise 9.13 The 256input multiplexer has eight select inputs. Since each 4input multiplexer has two select inputs, the tree has four levels. The number of multiplexer in each level is: rst level: 256 = 64 4 second level: 64 = 16 4 9:1 third level: 16 = 4 44 fourth level: 4 = 1 A total of 85 multiplexers distributed in four levels are required to implement a 256input multiplexer. Exercise 9.14 =0 yj 2j = bi=8c 23 + i mod 8 = i The exercise asks for a multiplexer tree with r levels, and 2n inputs in the last level, with n = rk. That means, each multiplexer has k selection lines and 2k inputs. Figure 9.13 shows a block diagram of the rst and second level of the tree. We can see from the gure that from one level to the next, the number of inputs is multiplied by p = 2k the number of inputs of each individual multiplexer module. For r levels, the total number of inputs in the last level is pr = 2rk = 2n .
p inputs Mux Mux Mux Mux p inputs Level 1 Level 2
2 Figure 9.13: Two levels of multiplexer tree The number of modules is:
r j ,1 X
=0 , pj = p0 + p1 + p2 + : : : + pr,1 = p , 11 p
r 176
Exercise 9.15 Solutions Manual  Introduction to Digital Design  March 22, 1999 f a; b; c; d = oneset1; 3; 4; 9; 14; 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 abcd f a; b; c; d
0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 a the implementation using 8input multiplexer is presented in Figure 9.14. The expression can be manipulated as follows: f a; b; c; d = a0b0 c0 d + a0 b0cd + a0 bc0 d0 + ab0 c0 d + abcd0 + abcd f a; b; c; d = m0 a; b; cd + m1 a; b; cd + m2 a; b; cd0 + m4 a; b; cd + m7 a; b; cd0 + d d d d’ 0 d 0 0 1 0 1 2 3 4 5 6 7 MUX f(a,b,c,d) 210 abc Figure 9.14: Implementation for Exercise 9.15 a Solutions Manual  Introduction to Digital Design  March 22, 1999 177 b the implementation using 4input multiplexer is presented in Figure 9.15. The expression for this implementation is: f a; b; c; d = m0 a; bc0 d + cd + m1a; bc0 d0 + m2a; bc0 d + m3 a; bcd + cd0 f a; b; c; d = m0 a; bd + m1 a; bc + d0 + m2 a; bc + d0 0 + m3a; bc d c d d c 0 1 2 3 1 0 MUX f(a,b,c,d) a b Figure 9.15: Network for Exercise 9.15 b
Exercise 9.16 The implementation of an 8input multiplexer using a 3input binary decoder and NAND gates is shown in Figure 9.16. The selection lines s = s2 ; s1 ; s0 are decoded and used to make z = ij , such that j = s = s2 :22 + s1 :2 + s0 . i0 i1 s2 s1 s0 0 1 Binary 2 1 decoder 3 4 5 0 6 E 7 2 i2 i3 z i4 1 i5 i6 i7 Figure 9.16: Network for Exercise 9.16 178
Exercise 9.17 Solutions Manual  Introduction to Digital Design  March 22, 1999 Part a The speci cation of an n,bit simple shifter is given on page 265 of the textbook. A description of an 8bit shifter is easily obtained from there. The block diagram of the circuit is shown in Figure 9.17.
x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 x 1 s d shift/no shift left/right SHIFTER E y7 y6 y5 y4 y3 y2 y1 y0 Figure 9.17: Block diagram of 8bits shifter To generate each output, a 4input multiplexer is used as shown in Figure 9.18. The selection inputs are de ned according to following table: c1 c0 Operation s dE 00 LEFT shift L 1 01 RIGHT shift R 1 10 NO SHIFT no shift  1 11 DISABLED 0 Considering shift = L = 1 and no shift = R = 0 same convention used in page 266 of the textbook we obtain the following Kmaps:
x
i1 0 1 2 3 1 c1 0 c0 yi MUX x
i x
i+1 0 Figure 9.18: Circuit for each output of the 8bit simple shifter E s c1 111 1001 1 c0 E s
1001 1 0 1 1 d d Solutions Manual  Introduction to Digital Design  March 22, 1999 179 that correspond to the following expressions: c1 = E 0 + s0 c0 = sd + E 0
Part b An 8bit bidirectional 3shifter is speci ed as: Inputs: x = x10 ; x9 ; x8 ; x7 ; : : : ; x0 ; x,1 ; x,2 ; x,3, with xi 2 f0; 1g. s 2 f0; 1; 2; 3g Function: d 2 fL; Rg E 2 f0; 1g Output: y = y7 ; y6 ; : : : ; y1 ; y0 , with yj 2 f0; 1g. 8
yi = :0 xi,s if d = L and E = 1 xi+s if d = R and E = 1
otherwise 9:2 Let us assume that L = 1 and R = 0. Each output is generated by an 8input multiplexer as shown in Figure 9.19. The table for the control inputs c2 c1 c0 is:
x i3 x i2 x i1 x i x i+1 x i+2 x
i+3 0 0 1 2 3 4 MUX 5 6 7
210 y
i c2 c1 c0 Figure 9.19: Circuit for each output of the 8bit bidirectional shifter
Eds c2 c1 c0 000 111 001 111 002 111 003 111 010 111 011 111 012 111 013 111 100 011 101 100 102 101 103 110 110 011 111 010 112 001 113 000 The values on the table are mapped into the following Kmaps, considering that s is represented in binary code: 180 Solutions Manual  Introduction to Digital Design  March 22, 1999 s0
1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 E c2 d c1 E s1 11 11 11 1 0 s0
1 1 11 00 10 s0 d c0
1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 E d s1 s1 The switching expressions are: c2 = E 0 + s1d0 + s0 d0 c1 = E 0 + ds01 + Es1 s0 + s01 s00 c0 = E 0 + s00
The module is obtained by renaming inputs and outputs of the shift register. For the right 3shifter we have the speci cation: Inputs: x = xn+2 ; xn+1 ; xn ; xn,1; : : : ; x1 ; x0, with xi 2 f0; 1g s 2 f0; 1; 2; 3g E 2 f0; 1g Output: y = yn,1 ; yn,2 ; : : : ; y1 ; y0 , yi 2 f0; 1g Function:
Exercise 9.18 if E = 1 yj = xj +s otherwise 0 And we would like to have a left 3shifter, which is speci ed as: Inputs: w = wn,1; wn,2 ; : : : ; w1 ; w0 ; w,1 ; w,2 ; w,3 , with wi 2 f0; 1g s 2 f0; 1; 2; 3g E 2 f0; 1g Output: z = zn,1 ; zn,2 ; : : : ; z1 ; z0 , zi 2 f0; 1g Function: 9:3 zi = wi,s if E = 1 0 otherwise
The mapping of the inputs is with k = n , 1 , i. Renaming the output also, we have 9:4 xi = wk yj = zt with t = n , 1 , j . Replacing these values on Equation 9.3 we obtain: zt = xn,1,t+s = wn,1,n,1,t+s = wt,s if E = 1 0 otherwise 9:5 Solutions Manual  Introduction to Digital Design  March 22, 1999 181 that corresponds to a 3left shifter. A nbit pshifter has n + 2p input bits and n output bits. It can shift right or left direction input d and the distance of shifting can vary from 0 to p. The implementation of a 32bit 3shifter using four 8bit 3shifters is presented in Figure 9.20. The circuit on the top is a 32bit 3shifter that shifts to the left only. The circuit on the bottom of the gure is a bidirectional 32bit 3shifter. The input of the circuit was named i31 to i0 , and the output z31 to z0 .
Exercise 9.19
i to i 31 24 i to i 23 16 i to i 15 8 i to i 7 0 shift inputs LEFT distance from 0 to 3 3
10 9 8 7 6 5 4 3 2 1 0 1 2 3 10 9 8 7 6 5 4 3 2 1 0 1 2 3 10 9 8 7 6 5 4 3 2 1 0 1 2 3 10 9 8 7 6 5 4 3 2 1 0 1 2 3 d s 8bit 3shifter 3 d s 8bit 3shifter 3 d s 8bit 3shifter 3 d s 8bit 3shifter z to z 31 24 z to z 23 16 z to z 15 8 z to z 7 0 LEFT 32bit 3shifter
i to i 31 24 i to i 23 16 i to i 15 8 i to i 7 0 shift inputs shift inputs
10 9 8 7 6 5 4 3 2 1 0 1 2 3 10 9 8 7 6 5 4 3 2 1 0 1 2 3 10 9 8 7 6 5 4 3 2 1 0 1 2 3 LEFT/RIGHT distance from 0 to 3 3 10 9 8 7 6 5 4 3 2 1 0 1 2 3 d s 8bit 3shifter 3 d s 8bit 3shifter 3 d s 8bit 3shifter 3 d s 8bit 3shifter z to z 31 24 z to z 23 16 z to z 15 8 z to z 7 0 Bidirectional 32bit 3shifter Figure 9.20: Exercise 9.19
Exercise 9.20 Calling the output of stage 1 w1 and of stage 2 w2 then: w1j = xj if s0 = 0 xj+1mod8 if s0 = 1 which indicates that this stage rotates 0 or 1 position left depending on the value of s0 . Similarly, w2j =
Finally, w 1j if s1 = 0 w1j +2mod8 if s1 = 1 182 Solutions Manual  Introduction to Digital Design  March 22, 1999 yj = w 2j if s2 = 0 w2j+4mod8 if s2 = 1 and this corresponds to rotating 0 or 4 positions. Consequently, the module rotates left s = 4s2 + 2s1 + s0 positions with 0 s 7. For example, if the input vector is x7 ; x6 ; :::; x0 = 11010110 the output vector, for a rotation of 2 to the left is: 01011011. Design of Part a 12bit right 3shifter using 4bit right shifter modules. The network is shown in Figure 9.21.
Exercise 9.21
x14 x13 x12 x11 x10 x 9 x 8 x7 x6 x5 x4 x3 x2 x1 x0 dist 65 43210 right 3shifter 3210 E dist 65 43210 right 3shifter 3210 E dist 65 43210 right 3shifter 3210 E d E Figure 9.21: 12bit right 3shifter Part b using kbit right pshifter modules we may implement a larger nbit right pshifter using: M = dne k modules of kbit right pshifter. The input vector of the nbit shifter is: x = xn+p,1 ; xn+p,2 ; :::; xn,1 ; xn,2 ; :::; x1 ; x0 Each kbit shifter module i receives the vector: xi = xik+p,1 ; :::; xik+1 ; xik
The enable and distance control lines of all shifters are connected together to from the control lines of the larger shifter.
Exercise 9.22 Considering the network formed by the decoder and the multiplexer we have that z= 1 0 if w; d; e = f; g; h otherwise 9:6 where w is the output of the rst multiplexer. An expression for this output is: w = a0 b0c + bc0 + abc = ab + bc0 + a0 b0 c Solutions Manual  Introduction to Digital Design  March 22, 1999 183 a b b c’ a’ b’ c w f d g e h z Figure 9.22: Network for Exercise 9.22 The gate network that implements the network in Figure 9.38 of the textbook is shown in Figure 9.22. The equality comparator that generates z is implemented using XOR and NOR gates as proposed in the hint. The gate network to generate w is implemented with AND and OR gates.
Exercise 9.23 The network in Figure 9.39 of the textbook has a serial line w between the MUX and DEMUX that is described as: w = xi if i = 4a + 2b + c and E1 = 1 9:7 0 otherwise The outputs of the DEMUX are speci ed as: yi = w if i = 4a + 2b + c and E2 = 1 0 otherwise
Combining both equations we obtain: 9:8 yi = xi if i = 4a + 2b + c and E1 = E2 = 1 0 otherwise 9:9 So, yi is the same as xi or is zero. This circuit is useful to allow the sharing of the single line between Mux and Demux among all pairs of input,output: x0 ; y0 , x1 ; y1 ... and so on. It's used in communication lines to divide the full capacity of the communication line among the many transmitters and receivers. Each pair can communicate without interference of the other pairs.
Exercise 9.24 From the network we obtain:
00 0 Y0 = x0y1 S1 + x0 y1S1 + xy1 S3 + xy1S2 + S0 00 0 0 0 00 = x0 y1 y2 y0 0 + x0 y1 y2 y0 + xy1 y2 y0 + xy1 y2 y0 + y2 y0 0 00 0 0 0 = x0 y1 y2 + x0 y1 y0 + x0 y1 y2 y0 + xy1 y2 y0 + xy1 y0 0 0 Y1 = x0y1 S3 + S0 + x0 y1 S2 + S0 + xy1 S0 + xy1 S3 + S2 0 00 0 00 000 0 = x0 y1 y2 y0 + y2 y0 + x0 y1 y2 y0 + y2 y0 + xy1 y2 y0 + xy1 y2 y0 + y2 y0 0 000 0 000 = x0 y1 y2 y0 + x0 y1 y2 y0 + x0 y1 y0 + xy1 y2 y0 + xy1 y2 184 Solutions Manual  Introduction to Digital Design  March 22, 1999 0 0 Y2 = x0y1S0 + S1 + x0 y1 S1 + xy1 S0 + xy1 S1 + S0 0 00 0 0 000 00 0 = x0 y1 y2 y0 + y2 y0 + x0 y1 y2 y0 + xy1 y2 y0 + xy1y2 y0 + y2 y0 00 0 000 0 = x0 y1 y2 + x0 y1 y2 y0 + xy1 y2 y0 + xy1 y2 0 0 00 00 00 z = y2 y0 y1 x = y2 y0 + y2 y0 y1 x = xy2 y1 y0 + y2 y1 y0 From these expressions we following state transition and output table: State PS Input Number y2 y1 y0 x = 0 x = 1 0 000 111,0 110,0 1 001 100,0 000,1 2 010 010,0 101,0 3 011 101,0 100,0 4 100 001,0 000,1 5 101 011,0 001,0 6 110 010,0 011,0 7 111 000,0 010,0 NS Y2 Y1 Y0 ,z To reduce the number of states we use the minimization procedure presented in Section 7.6 of the textbook. The rst partition is: 1 2 x14023567 011222222 122221122 Second partition: 1 2 3 x14026735 011222233 122233211 Third partition: 1 2 3 4 x14072635 011223344 122334411 No more new partitions! Stop. The reduced sequential system has only 4 states. We rename the states as: Sate number State name 1,4 A 0,7 B C 2,6 3,5 D and obtain the following state transition and output table: Solutions Manual  Introduction to Digital Design  March 22, 1999 185 Input x=0 x=1 A A,0 B,1 B B,0 C,0 C C,0 D,0 D D,0 A,0 NS,z A state diagram for the system is shown in Figure 9.23 and corresponds to a modulo4 counter.
0/0 0/0 PS 1/1 A B 1/0 1/0 1/0 D C 0/0 0/0 Figure 9.23: State digram for Exercise 9.24 A better canonical implementation of this sequential circuit is shown in Figure 9.24 and it uses only two memory elements and some gates. The design steps are not shown.
y0 x Y1 y1 z Y0 x Figure 9.24: Redesign of sequential system in Exercise 9.24
Exercise 9.25 From the circuit presented in the gure we can obtain the state diagram in Figure 9.25. The binary decoder connected to the state register generates the signals Si , which is 1 when the sequential system is at state i. The system outputs correspond to the state signals, that means, each output is active in one particular state. For this reason we used the output names as 186 Solutions Manual  Introduction to Digital Design  March 22, 1999 state names to make the state diagram more meaningful. In each present state we identify which input of the binary encoder is 1. This input determines the next state. For example, the origin of arcs going into state S1 check are obtained by considering the input of the Binary Encoder labeled 1, which is S0 for input GO, S2 always, no condition, and S3 always. The state diagram shows the operation of a controller which starts to operate with a GO signal. During operation it monitors two variables: dist and count and issues movement control signals and counter control signals, until dist 10 and count = 3.
GO’
dist Initial CLEAR COUNT GO check count = 3 10 6 and turn left dist 10 and count = 3 dist
stop move 10
count up Figure 9.25: Exercise 9.25
Exercise 9.26. The codewords of both systems are presented in the following table: n Code A Code B p = 3n mod 16 q = 7n mod 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 p2p1p0
0000 0011 0110 1001 1100 1111 0010 0101 1000 1011 1110 0001 0100 0111 1010 1101 q2q1 q0
0000 0111 1110 0101 1100 0011 1010 0001 1000 1111 0110 1101 0100 1011 0010 1001 Solutions Manual  Introduction to Digital Design  March 22, 1999 187 a the design of an AtoB converter using one 8input multiplexer and one 2input XOR gate is shown in Figure 9.26. Observe that: q0 = p0 q1 = p1 q2 = p2 p0 and q3 is easily implemented using an 8input multiplexer from the following function table: p3 p2p1p0 q3
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 p0 p1 p2 q0 q1 q2 0 1 1 0 0 1 2 3 MUX 4 5 6 7210 q3 p3 p2 p1 Figure 9.26: Code converter  Exercise 9.26 a b the code converter designed using one 4input decoder and one 16input encoder is shown in Figure 9.27. 188 Solutions Manual  Introduction to Digital Design  March 22, 1999 p0 p1 p2 p3 0 1 2 3 Binary decoder 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binary encoder 0 1 2 3 q0 q1 q2 q3 E 1 1 E Figure 9.27: Code converter  Exercise 9.26 b ...
View
Full
Document
This note was uploaded on 10/31/2009 for the course EE EE M16 taught by Professor Eshaghian,m.m. during the Fall '09 term at UCLA.
 Fall '09
 ESHAGHIAN,M.M.
 Gate

Click to edit the document details