LOGIC LSH32JC32, LSH32JC20 Datasheet

DEVICES INCORPORATED
LSH32
32-bit Cascadable Barrel Shifter
LSH32
DEVICES INCORPORATED
FEATURES DESCRIPTION
❑❑
32-bit Input, 32-bit Output Multi-
❑❑
plexed to 16 Lines
❑❑
Full 0-31 Position Barrel Shift
❑❑
Capability
❑❑
Integral Priority Encoder for 32-bit
❑❑
Floating Point Normalization
❑❑
Sign-Magnitude or Two’s Comple-
❑❑
ment Mantissa Representation
❑❑
32-bit Linear Shifts with Sign or
❑❑
Zero Fill
❑❑
Independent Priority Encoder
❑❑
Outputs for Block Floating Point
❑❑
68-pin PLCC, J-Lead
❑❑
The LSH32 is a 32-bit high speed shifter designed for use in floating point normalization, word pack/ unpack, field extraction, and similar applications. It has 32 data inputs, and 16 output lines. Any shift configuration of the 32 inputs, includ­ing circular (barrel) shifting, left shifts with zero fill, and right shift with sign extend are possible. In addition, a built-in priority encoder is provided to aid floating point normalization.
SHIFT ARRAY
The 32 inputs to the LSH32 are applied to a 32-bit shift array. The 32 outputs of this array are multiplexed down to 16 lines for presentation at the device outputs. The array may be
LSH32 BLOCK DIAGRAM
SIGN
I
31-I0
32
32:5
PRIORITY
SI4-SI
RIGHT/LEFT
FILL/WRAP
NORM
ENCODE
5
0
5
SO4-SO
2:1
16 16
0
32
32-bit
BARREL
SHIFT
ARRAY
2:1
16
Y15-Y
0
32-bit Cascadable Barrel Shifter
configured such that any contiguous 16-bit field (including wraparound of the 32 inputs) may be presented to the output pins under control of the shift code field (wrap mode). Alterna­tively, the wrap feature may be disabled, resulting in zero or sign bit fill, as appropriate (fill mode). The shift code control assignments and the resulting input to output mapping for the wrap mode are shown in Table 1.
Essentially the LSH32 is configured as a left shift device. That is, a shift code of 000002 results in no shift of the input field. A code of 000012 provides an effective left shift of 1 position, etc. When viewed as a right shift, the shift code corresponds to the two’s com­plement of the shift distance, i.e., a shift code of 111112 (–110) results in a right shift of one position, etc.
When not in the wrap mode, the LSH32 fills bit positions for which there is no corresponding input bit. The fill value and the positions filled depend on the RIGHT/LEFT (R/L) direction pin. This pin is a don’t care input when in wrap mode. For left shifts in fill mode, lower bits are filled with zero as shown in Table 2. For right shifts, however, the SIGN input is used as the fill value. Table 3 depicts the bits to be filled as a function of shift code for the right shift case. Note that the R/L input changes only the fill convention, and does not affect the definition of the shift code.
In fill mode, as in wrap mode, the shift code input represents the number of shift positions directly for left shifts, but the two’s complement of the shift code results in the equivalent right shift. However, for fill mode the R/L
OE
MS/LS
input can be viewed as the most
Special Arithmetic Functions
1
08/16/2000–LDS.32-Q
DEVICES INCORPORATED
LSH32
32-bit Cascadable Barrel Shifter
TABLE 1. WRAP MODE SHIFT CODE DEFINITIONS
Shift CodeShift Code
Shift Code
Shift CodeShift Code
00000 I31 I30 I29 • • • I16 I 15 • • • I2 I1 I0 00001 I30 I29 I28 • • • I15 I 14 • • • I1 I0 I31 00010 I29 I28 I27 • • • I14 I 13 • • • I0 I31 I 30 00011 I28 I27 I26 • • • I13 I 12 • • • I31 I 30 I 29
•••• •• •• ••••
•••• •• •• ••••
•••• •• •• ••••
01111 I16 I15 I14 • • • I1 I0• I19 I18 I17 10000 I15 I14 I13 • • • I0 I31 • • • I18 I 17 I16 10001 I14 I13 I12 • • • I31 I 30 • • • I17 I16 I15 10010 I13 I12 I11 • • • I30 I 29 • • • I16 I15 I14
•••• •• •• ••••
•••• •• •• ••••
•••• •• •• ••••
11100 I3 I2 I1• I20 I 19 • • • I6 I5 I 4 11101 I2 I1 I0• I19 I 18 • • • I5 I4 I 3 11110 I1 I0 I31 • • • I18 I 17 • • • I4 I3 I2 11111 I0 I31 I30 • • • I17 I 16 • • • I3 I2 I1
YY
YY
3131
Y
31
3131
YY
YY
3030
30
3030
2929
Y
29
2929
YY
Y
YY
• • •• • •
• • •
• • •• • •
YY
YY
1616
16
1616
1515
Y
15 • • •
1515
YY
Y
YY
YY
YY
22
Y
2
22
YY
YY
11
Y
YY
00
1
Y
0
11
00
YY
TABLE 2. FILL MODE SHIFT CODE DEFINITIONS — LEFT SHIFT
Shift CodeShift Code
Shift Code
Shift CodeShift Code
00000 I31 I30 I29 • • • I16 I 15 • • • I2 I1 I0 00001 I30 I29 I28 • • • I15 I 14 • • • I1 I0 0 00010 I29 I28 I27 • • • I14 I 13 • • • I0 00 00011 I28 I27 I26 • • • I13 I 12 • • • 000
•••• •• •• ••••
•••• •• •• ••••
•••• •• •• ••••
01111 I16 I15 I14 • • • I1 I0• 000 10000 I15 I14 I13 • • • I0 0 • • • 000 10001 I14 I13 I12 • • • 00 000 10010 I13 I12 I11 • • • 00 000
•••• •• •• ••••
•••• •• •• ••••
•••• •• •• ••••
11100 I3 I2 I1• 00 000 11101 I2 I1 I0• 00 000 11110 I1 I0 0 • • • 00 000 11111 I0 00 00 000
YY
YY
3131
Y
31
3131
YY
YY
3030
30
3030
2929
Y
29
2929
YY
Y
YY
• • •• • •
• • •
• • •• • •
YY
YY
1616
16
1616
1515
Y
15 • • •
1515
YY
Y
YY
YY
YY
22
Y
2
22
YY
YY
11
Y
YY
00
1
Y
0
11
00
YY
significant bit of a 6-bit two’s comple­ment shift code, comprised of R/L concatenated with the SI4–SI0 lines. Thus a positive shift code (R/L = 0) results in a left shift of 0–31 positions, and a negative code (R/L = 1) a right shift of up to 32 positions. The LSH32 can thus effectively select any contigu­ous 32-bit field out of a (sign extended and zero filled) 96-bit "input."
OUTPUT MULTIPLEXER
The shift array outputs are applied to a 2:1 multiplexer controlled by the MS/LS select line. This multiplexer makes available at the output pins either the most significant or least significant 16 outputs of the shift array.
PRIORITY ENCODER
The 32-bit input bus drives a priority encoder which is used to determine the first significant position for purposes of normalization. The priority encoder produces a five-bit code representing the location of the first non-zero bit in the input word. Code assignment is such that the priority encoder output represents the number of shift positions required to left align the first non-zero bit of the input word. Prior to the priority encoder, the input bits are individu­ally exclusive OR’ed with the SIGN input. This allows normalization in floating point systems using two’s complement mantissa representation. A negative value in two’s complement representation will cause the exclusive OR gates to invert the input data to the encoder. As a result the leading significant digit will always be "1." This affects only the encoder inputs; the shift array always operates on the raw input data. The priority encoder function table is shown in Table 4.
ffs2
Special Arithmetic Functions
08/16/2000–LDS.32-Q
DEVICES INCORPORATED
LSH32
32-bit Cascadable Barrel Shifter
TABLE 3. FILL MODE SHIFT CODE DEFINITIONS — RIGHT SHIFT
Shift CodeShift Code
Shift Code
Shift CodeShift Code
00000 S S S • • • SS SSS 00001 S S S • • • SS SSI31 00010 S S S • • • SS SI31 I30 00011 S S S • • • SS I31 I30 I 29
•••• •• •• ••••
•••• •• •• ••••
•••• •• •• ••••
01111 S S S • • • SS I19 I18 I 17 10000 S S S • • • SI31 • • • I18 I17 I16 10001 S S S • • • I31 I 30 • • • I17 I16 I15 10010 S S S • • • I30 I 29 • • • I16 I15 I14
•••• •• •• ••••
•••• •• •• ••••
•••• •• •• ••••
11100 S S S • • • I20 I 19 • • • I6 I5 I4 11101 S S S • • • I19 I 18 • • • I5 I4 I3 11110 S S I31 • • • I18 I 17 • • • I4 I3 I 2 11111 S I31 I30 • • • I17 I 16 • • • I3 I2 I1
YY
YY
3131
Y
31
3131
YY
YY
3030
30
3030
2929
Y
29
2929
YY
Y
YY
• • •• • •
• • •
• • •• • •
YY
YY
1616
16
1616
1515
Y
15 • • •
1515
YY
Y
YY
YY
YY
22
Y
2
22
YY
YY
11
Y
YY
00
1
Y
0
11
00
YY
NORMALIZE MULTIPLXER
The NORM input, when asserted results in the priority encoder output driving the internal shift code inputs directly. It is exactly equivalent to routing the SO4–SO0 outputs back to the SI4–SI0 inputs. The NORM input provides faster normalization of 32-bit data by avoiding the delay associated with routing the shift code off chip. When using the NORM function, the LSH32 should be placed in fill mode, with the R/L input low.
APPLICATIONS EXAMPLES
Normalization of mantissas up to 32 bits can be accomplished directly by a single LSH32. The NORM input is asserted, and fill mode and left shift are selected. The normalized mantissa is then available at the device output in two 16-bit segments, under the control of the output data multiplexer select, the MS/LS.
TABLE 4. PRIORITY ENCODER FUNCTION TABLE
II
II
3131
I
31
3131
II
II
3030
30
3030
2929
I
29
2929
II
I
II
1XX XX X X X 00000 01X XX X X X 00001 001 XX X X X 00010
•••• •• •• ••••
•••• •• •• ••••
000 1X X X X 01111 000 01 X X X 10000 000 00 X X X 10001
•••• •• •• ••••
•••• •• •• ••••
000 00 0 1 X 11110 000 00 0 0 1 11111 000 00 0 0 0 11111
• • •• • •
• • •
• • •• • •
II
II
1616
1515
I
16
1616
II
• • •• • •
I
15
• • •
1515
• • •• • •
II
II
II
II
22
I
II
11
2
I
1
22
11
II
Shift CodeShift Code
00
I
0
Shift Code
00
II
Shift CodeShift Code
If it is desirable to avoid the necessity of multiplexing output data in 16-bit segments, two LSH32 devices can be used in parallel. Both devices receive the same input word, with the MS/LS select line of one wired high, and the other low. Each device will then independently determine the shift distance required for normalization, and the full 32 bits of output data will be available simultaneously.
Special Arithmetic Functions
3
08/16/2000–LDS.32-Q
Loading...
+ 6 hidden pages