ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4)...
-
Upload
judah-pearce -
Category
Documents
-
view
223 -
download
3
Transcript of ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4)...
![Page 1: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/1.jpg)
ECE2030 Introduction to Computer Engineering
Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers
Prof. Hsien-Hsin Sean LeeProf. Hsien-Hsin Sean Lee
School of Electrical and Computer EngineeringSchool of Electrical and Computer Engineering
Georgia TechGeorgia Tech
![Page 2: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/2.jpg)
2
Basic Shifting• Shift directions
– Left (multiply by 2)– Right (divide by 2)
• Take floor value if the result is not an integer• Floor value of XX (or X) is the greatest
integer number less than or equal to X, X, E.g. 5/2 = 2 -3/2 = -2
• Shift types– Logical (or unsigned) – Arithmetic (or signed)
![Page 3: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/3.jpg)
3
Logical Shift
• Shift Left– MSB: Shifted out– LSB: Shifted in with a “0”– Examples:
• (11001011 << 1) = 10010110• (11001011 << 3) = 01011000
• Shift right– MSB: Shifted in with a “0”– LSB: Shifted out– Examples: (Some ISA use triple “>” for logical
right shift)• (11001011 >>> 1) = 01100101• (11001011 >>> 3) = 00011001
![Page 4: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/4.jpg)
4
Arithmetic Shift
• Shift left– MSB: Shifted out, however, be aware of
overflow/underflow – LSB: Shifted in with a “0”– Examples:
• (1100 << 1) = 1000• (1100 << 3) = 0000 (Incorrect!) Underflow
• Shift right– MSB: Retain “sign bit” – LSB: Shifted out – Examples:
• (1100 >> 1) = 1110 (Retain sign bit)• (1100 >> 3) = 1111 (-4/8 = -1 ) Floor value of -0.5
![Page 5: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/5.jpg)
5
Examples of Arithmetic Shift 1111 1011 Arithmetic shift right by 1
1111 1101
1111 1011 Arithmetic shift left by 1
1111 0110
1011 1111 (= -65) Arithmetic shift left by 1 (i.e. x2)
0111 1110 (= +126 -130) Underflow !
0100 0010 (= +66) Arithmetic shift left by 1 (i.e. x2)
1000 0100 (= -124 +132) Overflow !
Overflow/Underflow
![Page 6: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/6.jpg)
6
4-bit Logical Shifter
S1 S0 D3 D2 D1 D0
0 X A3 A2 A1 A0
1 0 0 A3 A2 A1
1 1 A2 A1 A0 0
A3 A2 A1 A0
D3 D2 D1 D0
S/NS
S0
S1
L/R
101010
001201111
101301212
201313
ASSAS D
ASS ASS AS D
ASSASSAS D
ASSASD
![Page 7: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/7.jpg)
7
4-bit Logical Shifter using 4-to-1 Mux
4-to-1 Mux
00 01 10 11s1
s0
S1 S0 D3 D2 D1 D0
0 X A3 A2 A1 A0
1 0 0 A3 A2 A1
1 1 A2 A1 A0 0
D3
A2A3
4-to-1 Mux
00 01 10 11s1
s0
D2
A1
4-to-1 Mux
00 01 10 11s1
s0
D1
A0
4-to-1 Mux
00 01 10 11s1
s0
D0S1
S0
Right Shift
Left Shift
![Page 8: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/8.jpg)
8
4-bit Arithmetic Shifter w/ 4-to-1 Mux
4-to-1 Mux
00 01 10 11s1
s0
S1 S0 D3 D2 D1 D0
0 X A3 A2 A1 A0
1 0 A3A3 A3 A2 A1
1 1 A2 A1 A0 0
D3
A2A3
4-to-1 Mux
00 01 10 11s1
s0
D2
A1
4-to-1 Mux
00 01 10 11s1
s0
D1
A0
4-to-1 Mux
00 01 10 11s1
s0
D0S1
S0
Right Shift
Left Shift
![Page 9: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/9.jpg)
9
4-bit Arithmetic Shifter w/ 4-to-1 Mux
4-to-1 Mux
00 01 10 11s1
s0
S1 S0 D3 D2 D1 D0
0 X A3 A2 A1 A0
1 0 A3A3 A3 A2 A1
1 1 A2 A1 A0 0
D3
A2A3
4-to-1 Mux
00 01 10 11s1
s0
D2
A1
4-to-1 Mux
00 01 10 11s1
s0
D1
A0
4-to-1 Mux
00 01 10 11s1
s0
D0S1
S0
Right Shift
Left ShiftOverflow/Overflow/UnderflowUnderflow
![Page 10: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/10.jpg)
10
4-bit Arithmetic Shifter w/ 4-to-1 Mux
4-to-1 Mux
00 01 10 11s1
s0
S1 S0 D3 D2 D1 D0
0 X A3 A2 A1 A0
1 0 A3A3 A3 A2 A1
1 1 A2 A1 A0 0
D3
A2A3
4-to-1 Mux
00 01 10 11s1
s0
D2
A1
4-to-1 Mux
00 01 10 11s1
s0
D1
A0
4-to-1 Mux
00 01 10 11s1
s0
D0S1
S0
Right Shift
Left ShiftOverflow/Overflow/UnderflowUnderflow
OverflowUnderflow Detection
![Page 11: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/11.jpg)
11
RotatorS1 S0 D3 D2 D1 D0
0 0 A3 A2 A1 A0
0 1 A0 A3 A2 A1
1 0 A1 A0 A3 A2
1 1 A2 A1 A0 A3
4-to-1 Mux
00 01 10 11s1
s0
D3
A2A3
4-to-1 Mux
00 01 10 11s1
s0
D2
A1
4-to-1 Mux
00 01 10 11s1
s0
D1
A0
4-to-1 Mux
00 01 10 11s1
s0
D0S1
S0
![Page 12: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/12.jpg)
12
Barrel Shifter
S2 S1 S0 D3 D2 D1 D0
0 0 0 A3 A2 A1 A0
0 0 1 A3 A3 A2 A1
0 1 0 A3 A3 A3 A2
0 1 1 A3 A3 A3 A3
1 0 0 A3 A2 A1 A0
1 0 1 A2 A1 A0 0
1 1 0 A1 A0 0 0
1 1 1 A0 0 0 0
Shift multiple bitsmultiple bits at a time
Left Shift
Right Shift
![Page 13: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/13.jpg)
13
Barrel Shifter Design w/ Mux (D3)S2 S1 S0 D
3D2
D1
D0
0 0 0 A3 A2 A1 A0
0 0 1 A3 A3 A2 A1
0 1 0 A3 A3 A3 A2
0 1 1 A3 A3 A3 A3
1 0 0 A3 A2 A1 A0
1 0 1 A2 A1 A0 0
1 1 0 A1 A0 0 0
1 1 1 A0 0 0 0
4-to-1 Mux
00 01 10 11s1
s0
00 01 10 11s1s04-to-1 Mux
2-to
-1 M
ux
2-to
-1 M
ux1
0 D3
A3
A3 A2 A1 A0
S0
S1
S2
Replicate and change wiring of the two 4-to-1 Muxes for D2, D1 and D0
![Page 14: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/14.jpg)
14
Barrel Shifter Design Alternative (16-bit)
23 Shifter
22 Shifter
21 Shifter
20 Shifter
Left/Right
S3
S2
S1
S0
16
16
16
16
(S3 S2 S1 S0) specifies the “shift amount” in binary(S3 S2 S1 S0) specifies the “shift amount” in binary
16Output NumberOutput Number
Input NumberInput Number
![Page 15: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/15.jpg)
15
Barrel Shifter Design w/ nMOSFET
D3
D2
D1
D0
A3
S=0(No Shift)
S=1 S=2 S=3
A2
A1
A0
S=3
S=2
S=1
![Page 16: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/16.jpg)
16
A3A3A3
Barrel Shifter Design w/ nMOSFET
D3
D2
D1
D0
A3
S=0(No Shift)
S=1 S=2S=2 S=3
A2
A1
A0
S=3
S=2S=2
S=1
A3
A2
![Page 17: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/17.jpg)
17
Barrel Shifter Design w/ nMOSFET
D3
D2
D1
D0
A3
S=0(No Shift)
S=1S=1 S=2 S=3
A2
A1
A0
S=3
S=2
S=1S=1
= A3
= A3
= A2
= A1
![Page 18: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/18.jpg)
18
Unsigned Binary Multiply
101 (5)X 111 (7)---------- 101 101 101----------100011 (35)
![Page 19: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/19.jpg)
19
Unsigned Integer Multiplier (2-bit)
s
00100111
1011
0001
01
01
ba baba ba
ba ba
ba ba
b b x
a a
2-bit by 2-bit
carrycarry out
p0
a0b0
H.A.
p1
c
s
a1b0a0b1
H.A.c
s
p2p3
a1b1
![Page 20: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/20.jpg)
20
Unsigned Integer Multiplier (3-bit)
ba ba ba
ba ba ba
ba ba ba
b b b x
a a a
202122
101112
000102
012
012
3-bit by 3-bit
p0
a0b0
s
F.A.
p1
a1b0a0b1
0co
s
ci
c
F.A.
p2
s
a2b0a1b1
co
s
ci
c
F.A.
s
co
s
ci
a0b2
00
c
F.A.
p3
a2b1
co
s
ci
c
F.A.co
s
ci
a1b2
0
s
s
s
c
p4
c
F.A.co
s
ci
a2b2
p5
![Page 21: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/21.jpg)
21
4-bit Unsigned Integer Multiplier
a0 b0
P0
a1 b0
a0 b1
++0
P1
a2 b0
a1 b1
++
a0 b2
++0
P2
a3 b0
a2 b1
++
a1 b2
++
a0 b3
++0
P3
a3 b1
++
a2 b2
++
a1 b3
++
0
P4
a3 b2
++
a2 b3
++
P5
a3 b3
++
P6P7
a0 b0
++CinCout
Sum
A B
Full AdderFull Adder
a0b0
![Page 22: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/22.jpg)
22
Propagation Delay
a0 b0
P0
a1 b0
a0 b1
++0
P1
a2 b0
a1 b1
++
a0 b2
++0
P2
a3 b0
a2 b1
++
a1 b2
++
a0 b3
++0
P3
a3 b1
++
a2 b2
++
a1 b3
++
0
P4
a3 b2
++
a2 b3
++
P5
a3 b3
++
P6P7
1122
33
33
44
44
55
55
66
667788
4x4Delay = 8 adders
8x8Delay = 20 adders
![Page 23: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/23.jpg)
23
a3 b3
++
P7 P6
Carry-Save Multiplier
a0 b0
P0
a1 b0
a0 b1
++0
P1
a2 b0
a1 b1
++
a0 b2
++
0
P2
a3 b0
a2 b1
++
a1 b2
++
a0 b3
++
0
P3
a3 b2
++
a2 b3
++
P5
a3 b1
++
a2 b2
a1 b3
++
++0
P4
![Page 24: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/24.jpg)
24
Propagation Delay of Carry-Save Multiplier
a0 b0
P0
a3 b1
++
a2 b2
a1 b3
++
a3 b2
++
a2 b3
++
P5
a3 b3
++
P7
a1 b0
a0 b1
++0
P1
11
22
33 33
5566
4x4Delay = 6 adders
8x8Delay = 14 adders
a2 b0
a1 b1
++
a0 b2
++
0
P2
11
22
a3 b0
a2 b1
++
a1 b2
++
a0 b3
++
0
P3
11
22
33
++440
P6 P4
![Page 25: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/25.jpg)
25
Signed Binary Multiply
When the Multiplicand is negativeWhen the Multiplicand is negative
11101 (-3) 01001 (+9) -------------------- 11111101 00 11101 -------------------- 11100101
Maintain the sign bits of the partial product
![Page 26: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/26.jpg)
26
Signed Binary Multiply
When the Multiplier is negativeWhen the Multiplier is negative
01001 (+9) 11101 (-3) -------------------- 01001 01001 -------------------- 0101101 01001 -------------------- 01110101 10111 -------------------- 111100101 (-27)
At the last step, 2’s complement the multiplicand before adding
![Page 27: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/27.jpg)
27
Signed Binary Multiply
When both the Multiplicand and Multiplier are negativeWhen both the Multiplicand and Multiplier are negative
10111 (-9) 11101 (-3) -------------------- 1110111 10111 -------------------- 11010011 10111 -------------------- 110001011 01001 -------------------- 000011011(+27)
At the last step, 2’s complement the multiplicand before adding
Maintain the sign bits of the partial product
![Page 28: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/28.jpg)
28
More Examples (1)
1111 1010 (-6) 0000 0101 (+5) -------------------- 111111 1010 111110 10 -------------------- 1110 0010 (-30)
Assume 8-bit numbers
![Page 29: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/29.jpg)
29
More Examples (2)
0011 (+3) 1110 (-2) -------------------- 0 0110 00 11 -------------------- 01 0010 110 1 -------------------- 1010 (-6)
Assume 4-bit numbers
![Page 30: ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.](https://reader035.fdocuments.us/reader035/viewer/2022062222/56649c775503460f9492c12d/html5/thumbnails/30.jpg)
30
More Examples (3)
1111 1100 (-4) 1110 0000 (-32) -------------------- 11 1111 1000 0000 11 1111 00 -------------------- 111 1110 1000 0000 000 0010 0 -------------------- 000 0000 1000 0000 (+128)
Assume 8-bit numbers