The L4C383 is a flexible, high speed,
cascadable 16-bit Arithmetic and Logic
Unit. The L4C383 is capable of
performing up to 32 different
arithmetic or logic functions.
The L4C383 can be cascaded to perform
32-bit or greater operations. See
“Cascading the L4C383” on the next
page.
ARCHITECTURE
The L4C383 operates on two 16-bit
operands (A and B) and produces a 16-
L4C383 BLOCK DIAGRAM
B15-B
FFFF
0
H
ENA
A15-A
0
1616
A REGISTERB REGISTER
FFFF
H
ENB
FTAB
bit result (F). Five select lines control
the ALU and provide 19 arithmetic and
13 logical functions. Registers are
provided on both the ALU inputs and
the output, but these may be bypassed
under user control. An internal feedback path allows the registered ALU
output to be routed to one or both of
the ALU inputs, accommodating chain
operations and accumulation.
ALU OPERATIONS
The S4–S0 lines specify the operation to
be performed. The ALU functions and
their select codes are shown in Table 1.
ALU STATUS
The ALU provides Overflow and Zero
status bits. A Carry output is also
provided for cascading multiple
devices, however it is only defined for
the 19 arithmetic functions. The ALU
sets the Zero output when all 16 output
bits are zero. The N, C16 and OVF flags
for the arithmetic operations are
defined in Table 2.
N, C
OVF, Z
FTF
OE
CLK
5
S
4-0
OPERAND REGISTERS
The L4C383 has two 16-bit wide input
registers for operands A and B. These
16
4
ALU
16
C
0
registers are rising edge triggered by a
common clock. The A register is
enabled for input by setting the ENA
control LOW, and the B register is
RESULT REGISTER
ENF
enabled for input by setting the ENB
control LOW. When either the ENA
control or ENB control is HIGH, the
data in the corresponding input register
will not change.
16
This architecture allows the L4C383 to
accept arguments from a single 16-bit
16
data bus. For those applications that do
not require registered inputs, both the
TO ALL REGISTERS
F15-F
0
A and B operand registers can be
bypassed with the FTAB control line.
Arithmetic Logic Units
1
08/16/2000–LDS.383-E
DEVICES INCORPORATED
L4C383
16-bit Cascadable ALU (Extended Set)
TABLE 1.ALU FUNCTIONS
S4-S0FUNCTION
00000A + B + C0
00001A OR B
00010A + B + C0
00011A + B + C0
00100A + C0
00101A OR F
00110A – 1 + C0
00111A + C0
01000A + F + C0
01001A OR F
01010A + F + C0
01011A + F + C0
01100F + B + C0
01101A OR B
01110F + B + C0
01111F + B + C0
10000A XOR B
10001A AND B
10010A AND B
10011A XNOR B
10100A XOR F
10101A AND F
10110A AND F
10111ALL 1's + C0
11000B + C0
11001A AND B
11010B + C0
11011B – 1 + C0
11100F + C0
11101A OR B
11110F – 1 + C0
11111F + C0
When the FTAB control is asserted
(FTAB = HIGH), data is routed
around the A and B input registers;
however, they continue to function
normally via the ENA and ENB
controls. The contents of the input
registers will again be available to the
ALU if the FTAB control is released.
TABLE 2.ALU STATUS FLAGS
Bit Carry Generate = gi =AiBifor i = 0 ... 15
Bit Carry Propagate = pi =Ai + Bifor i = 0 ... 15
P0 =p0
Pi =pi (Pi–1)for i = 1 ... 15
and
G0 =g0
Gi =gi + pi (Gi–1)for i = 1 ... 15
Ci =Gi–1 + Pi–1 (C0)for i = 1 ... 15
then
C16=G15 + P15C0
OVF = C15 XOR C16
Zero = All Output Bits Equal Zero
N = Sign Bit of ALU Operation
OUTPUT REGISTER
The output of the ALU drives the input of
a 16-bit register. This rising-edgetriggered register is clocked by the same
clock as the input registers. When the
ENF control is LOW, data from the ALU
will be clocked into the output register.
By disabling the output register, intermediate results can be held while loading
new input operands. Three-state drivers
controlled by the OE input allow the
L4C383 to be configured in a single
bidirectional bus system.
The output register can be bypassed by
asserting the FTF control signal (FTF =
HIGH). When the FTF control is asserted,
output data is routed around the output
register, however, it continues to function
normally via the ENF control. The
contents of the output register will again
be available on the output pins if FTF is
released.
CASCADING THE L4C383
Cascading the L4C383 to 32 bits is
accomplished simply by connecting the
C16 output of the least significant slice to
the C0 input of the most sig-nificant slice.
The S4-S0, ENA, ENB, and ENF lines are
common to both devices. The Zero output
flags should be logically ANDed to
produce the Zero flag for the 32-bit result.
The OVF and C16 outputs of the most
significant slice are valid for the 32-bit
result.
Propagation delay calculations for this
configuration require two steps: First
determine the propagation delay from the
input of interest to the C16 output of the
lower slice. Add this number to the delay
from the C0 input of the upper slice to the
output of interest (of the C0 setup time, if
the F register is used). The sum gives the
overall input-to-output delay (or setup
time) for the 32-bit configuration. This
method gives a conservative result, since
the C16 output is very lightly loaded.
Formulas for calculation of all critical
delays for a 32-bit system are shown in
Figures 4A through 4D.
Cascading to greater than 32 bits can be
accomplished by simply connecting the
C16 output of each slice to the C0 input of
the next more significant slice.
Propagation delays are calculated as
for the 32-bit case, except that the C0
to C16 delays for all intermediate slices
must be added to the overall delay for
each path.
Arithmetic Logic Units
2
08/16/2000–LDS.383-E
DEVICES INCORPORATED
FIGURE 4A.FTAB = 0, FTF = 0
FromToCalculated Specification Limit
Clock➞ F=Same as 16-bit case
Clock➞ Other=(Clock ➞ C16) + (C0➞ Out)
C0➞ Other=(C0➞ C16) + (C0➞ Out)
S4-S0➞ Other=(S4-S0➞ C16) + (C0➞ Out)
A, BSetup time=Same as 16-bit case
C0Setup time=(C 0➞ C16) + (C0 Setup time)
S4-S0Setup time=(S4-S0➞ C16) + (C0 Setup time)
ENA, ENB, ENFSetup time=Same as 16-bit case
Minimum cycle time=(Clock ➞ C16) + (C0 Setup time)