Shifter
Shifter
Sh1
A2
B2
Sh3
A0
B0
Requires decoding of
Sh0 Sh1 Sh2 Sh3
shift amount given in
Area Dominated by Wiring instruction word
EECS 427 W07 Lecture 11 5
4x4 barrel shifter
A3
A2
A1
A0
Sh0 Sh 1 S h2 Sh3
Only 1 shift B uffer
bit high at Widthbarrel ~ 2 pm N
any time
N is max shift width (15 for us), pm is metal pitch
EECS 427 W07 Lecture 11 6
Barrel Considerations
• Buffer should really have weak feedback (for
full swing)
• Shown choices for horiz / diagonal / vertical
lines not the only ones
• How to implement shifts in both directions?
– This turns out to be nice for barrel because one
direction only requires a triangle, and the two
triangles can be fit together to form a square
• Fast for A through, but B goes through
decoder
• Size becomes a problem at more bits
A1 A0 1 0 0 0 A1
A1 A0 0 0 1 A0 0
Ai-1 Bi-1
A3 B3
A2 B2
A1 B1
A0 B0
A
3 Out3
A
2 Out2
A
1 Out1
A
0 Out0
K = log2N
EECS 427 W07 Lecture 11 10
Log Shifter Considerations
• Wiring pattern looks very similar to kogge-
stone adder
• No decoding needed
• How to handle both directions?
– Use binary shifters with connections in both
directions?
– Some way to avoid that?
• How to implement those small muxes?
– Use pass transistors like barrel shifter?