1989_TI_SN74ACT8800_Family_Data_Manual 1989 TI SN74ACT8800 Family Data Manual

User Manual: 1989_TI_SN74ACT8800_Family_Data_Manual

Open the PDF directly: View PDF PDF.
Page Count: 754

Download1989_TI_SN74ACT8800_Family_Data_Manual 1989 TI SN74ACT8800 Family Data Manual
Open PDF In BrowserView PDF
. . . TEXAS
INSTRUMENTS

SN74ACT8800 Family
32·Bif CMOS Processor
Building Blocks

1989

1989

Overview

SN74ACT8818

16-Bit Microsequencer

SN74ACT8832

32-Bit Registered ALU

SN74ACT8836

32- x 32-Bit Parallel Multiplier

SN74ACT8837

64-Bit Floating Point Processor

SN74ACT8841

Digital Crossbar Switch

SN74ACT8847

64-Bit Floating Point/lnteger Processor

Support

Mechanical Data

SN74ACT8800 Family
32·Bit CMOS Processor
Building Blocks
Data Manual

-1!1
TEXAS

INSTRUMENTS

IMPORTANT NOTICE
Texas Instruments (Til reserves the right to make changes to or
to discontinue any semiconductor product or service identified
in this publication without notice. TI advises its customers to
obtain the latest version of the relevant information to verify,
before placing orders, that the information being relied upon is
current.
TI warrants performance of its semiconductor products to current
specifications in accordance with TI's standard warranty. Testing
and other quality control techniques are utilized to the extent TI
deems necessary to support this warranty. Unless mandated by
government requirements, specific testing of all parameters of
each device is not necessarily performed.
TI assumes no liability for TI applications assistance, customer
product design, software performance, or infringement of patents
or services described herein. Nor does TI warrant or represent that
any license, either express or implied, is granted under any patent
right, copyright, mask work right. or other intellectual property
right of TI covering or relating to any combination, machine, or
process in which such semiconductor products or services might
be or are used.

Copyright © 1988, Texas Instruments Incorporated
March 1988
First edition:
First revision:
June 1988
Second revision: June 1989

INTRODUCTION
In this manual, Texas Instruments presents technical information on the TI
SN74ACT8800 family of 32-bit processor "building block" circuits. The
SN74ACT8800 family is composed of single-chip VLSI processor functions, all of which
are designed for high-complexity processing applications.
This manual includes specifications and operational information on the following highperformance advanced-CMOS devices:
•
•
•
•
•
•

SN 7 4ACT881 8
SN74ACT8832
SN74ACT8836
SN74ACT8837
SN74ACT8841
SN74ACT8847

16-bit
32-bit
32- x
64-bit
Digital
64-bit

microsequencer
registered ALU
32-bit parallel multiplier
floating point processor
crossbar switch
floating point/integer processor

These high-speed devices operate at or above 20 MHz, while providing the low power
consumption of TI's advanced one-micron EPIC'· CMOS technology. The EPIC'· CMOS
process combines twin-well structures for increased density with one-micron gate
lengths for increased speed.
The SN74ACT8800 Family Data Manual contains design and specification data for
all five devices previously listed and includes additional programming and operational
information for the '8818, '8832, and '8837/'8847. Two application notes,
"Chebyshev Routines for the SN74ACT8847" and "High-speed Vector Math and 3D
Graphics Using the SN74ACT8837/8847 Floating Point Unit" are also included.
Introductory sections of the manual include an overview of the '8800 family and a
summary of the software tools and design support TI offers for the chip-set. The general
information section includes an explanation of the function tables, parameter
measurement information, and typical characteristics related to the products listed
in this volume.
Package dimensions are given in the Mechanical Data section of the book in metric
measurement (and parenthetically in inches).
Complete technical data for any Texas Instruments semicondutor product is available
from your nearest TI field sales office, local authorized TI distributor, or by calling Texas
Instruments at 1-800-232-3200.

EPIC is a trademark of Texas Instruments Incorporated.

v

vi

Overview

1-1

o
...
<
<
(1)

en'

:E

1-2

Overview

1-3

o
<

...<

CD

ai'

:E

1-4

Introduction
Texas Instruments SN74ACT8800 family of 32-bit processor building blocks has been
developed to allow the easy, custom design of functionally sophisticated, highperformance processor systems. The '8800 family is composed of single-chip, VLSI
devices, each of which represents an element of a CPU.
Geared for computationally intensive applications, SN74ACT8800 devices include highperformance ALUs, multipliers, microsequencers, and floating point processors.
The '8800 chip set provides the performance, functionality, and flexibility to fill the
most demanding processing needs and is structured to reduce system design cost
and effort. Most of these high-speed processor functions operate at 20 MHz and above,
and, at the same time, provide the power savings of TI's advanced, 1 I!m EPICTM CMOS
technology.
The family's building block approach allows the easy, "pick-and-choose" creation of
customized processor systems, while the devices' high level of integration provides
cost-effectiveness.
Designed especially for high-complexity processing, the devices in the '8800 family
offer a range of functional options. Device features include three-port architecture,
double-precision accuracy, optional pipelined operation, and built-in fault tolerance.
Array, digital signal, image, and graphics processing can be optimized with '8800
devices. Other applications are found in supermini and fault-tolerant computers, and
I/O and network controllers.
In addition to the high-performance, CMOS processor functions featured in this data
manual, the family includes several high-speed, low-power bipolar support chips. To
reduce power dissipation and ensure reliabilty, these bipolar devices use Tl's proprietary
Schottky Transistor Logic (STL) internal circuitry.

EPIC is a trademark of Texas Instruments Incorporated.

1-5

~
oS;
Cii

>

o

At present, TI's '8800 32-bit processor building block family comprises the following
functions:
•
•
•
•
•
•
•

o
<

...<

(1)

CD'

:e

SN74ACT8818 16-bit micro sequencer
SN74ACT8832 32-bit registered ALU
SN74ACT8836 32· x 32-bit parallel multiplier
SN74ACT8837 64-bit floating point processor
SN74ACT8841 digital crossbar switch
SN74ACT8847 64-bit floating point and integer processor
Bipolar Support Chips
• SN74AS8838 32-bit barrel shifter
• SN74AS8839 32-bit shuffle/exchange network
• SN74AS8840 16 x 4 crossbar switch

20 MIPS and Low CMOS Power Consumption
With instruction cycle times of 50 ns or less and the low power consumption of EPIC'·
CMOS, the '8800 chip set offers an unrivaled speed/power combination. Unlike
traditional microprocessors, which require multiple cycles to perform an operation,
the' ACT8800 processors typically can complete instructions in a single cycle.
The ' ACT8832 registered ALU and ' ACT8818 microsequencer together create a
powerful 20-MHz CPU. Because instructions can be performed in a single cycle, the
8832/8818 combination is capable of executing over 20 million instructions per second
(MIPS).
For math-intensive applications, the ' ACT8836 fixed-point multiplier/accumulator
(MAC), ,ACT8837 64-bit floating point processor, and' ACT884 7 64-bit floating point
and integer processor offer unprecedented computational power.
The exceptional performance of the' ACT8800 family is made possible by TI's EPICTlO
CMOS technology. The EPIC™ CMOS process combines twin-well structures for
increased density with one-micron gate lengths for increased speed.

Customized Solution
The '8800 family is designed with a variety of architectural and functional options
to provide maximum design flexibility. These device features allow the creation of
"customized" solutions with the '8800 chipset.
A building block approach to processing allows designers to match specialized hardware
to their specific design needs. The '8818/8832 combination forms the basis of the
system, a high-speed CPU. For applications requiring high-speed integer multiplication,
the' ACT8836 can be added. To provide the high precision and large dynamic range
of floating point numbers, the 'ACT8837 or 'ACT8847 can be employed.

EPIC is a trademark of Texas Instruments Incorporated.

1-6

To ensure speed and flexibility, each component of the '8800 family has three data
ports. Each data port accommodates 32 bits of data, plus four parity bits. This
architecture eliminates many of the I/O bottlenecks associated with traditional singleI/O microprocessors.
The three-port architecture and functional partitioning of the '8800 chip-set opens
the door to a variety of parallel processing applications. Placing the math and shifting
functions in parallel with the ALU permits concurrent processing of data. Additional
processors can be added when performance needs dictate'.
The 'ACT8800 building block processors are microprogrammable, so that their
instruction sets can be tailored to a specific application. This high degree of
programmability offers greater speed and flexibility than a typical microprocessor and
ensures the most efficient use of hardware.
A separate control bus eliminates the need for multiplexing instructions and data, further
reducing processing bottlenecks. The microcode bus width is determined by the
designer and the application.
Another source of design flexibility is provided by the pipelined/flowthrough operation
option. Pipelining can dramatically reduce the time required to perform iterative, or
sequential, calculations. On the other hand, random or nonsequential algorithms require
fast flowthrough operations. The '8800 chip set allows the designer to select the mode
(fully pipelined, partially pipelined, or nonpipelined) most suited to each design.

Scientific Accuracy
The '8800 family is designed to support applications which require double-precision
accuracy. Many scientific applications, such as those in the areas of high-end graphics,
digital signal processing, and array processing, require such accuracy to maintain data
integrity. In general-purpose computing applications, floating point processors must
often support double-precision data formats to maintain compatibility with existing
software.
To ensure data integrity, '8800 devices (excluding the barrel shifter and
microsequencer) support parity checking and generation, as well as master/slave error
detection. Byte parity checking is performed on the input ports, and a parity generator
and a master/slave comparator are provided at the output. Fault tolerance is built into
the processors, ensuring correct device operation without extra logic or costly software.

1-7

3:
Q)

.~

~

o

The SN74ACT8800 Building Block Processor System
Some of the high-performance '8800 devices are described in the following paragraphs.

SN74ACT8818 16-Bit Microsequencer

~
~

<
ai'
:e

In a high-performance microcoded system, a fast microcode controller is required to
control the flow of instructions. The SN74ACT8818 is a high-speed, versatile l6-bit
microsequencer capable of addressing 64K words of microcode memory. The
ACT881 8 can address the next instruction fast enough to support a 50-ns system
cycle time.

'

The' ACT8818 65-word-deep by l6-bit-wide stack is useful for storing subroutine
return addresses, top of loop addresses, and loop counts. Addresses can be sourced
from eight different sources: the three I/O ports, the two register counters, the
microprogram counter, the stack, and the l6-way branch.

SN74ACT8832 Registered ALU
The SN74ACT8832 is a 32-bit registered ALU that operates at approximately 20 MHz.
Because instructions can be performed in a single cycle, the' ACT8832 is capable of
executing 20 million microinstructions per second. An on-board 64-word register file
is 36-bits-wide to permit the storage of parity bits. The 3-operand register file increases
performance by enabling the creation of an instruction and the storage of the previous
result in a single cycle. To facilitate data transfer, operands stored in the register file
can be accessed externally, while the ALU is executing. To support the parallel
processing of data, the' ACT8832 can be configured to operate as four 8-bit ALUs,
two l6-bit ALUs, or a single 32-bit ALU. The' ACT8832 incorporates 32-bit shifters
for double-precision shift operations.

SN74ACT8836 32- x 32-Bit Integer MAC
The SN74ACT8836 is a 32-bit integer multiplier/accumulator (MAC) that accepts two
32-bit inputs and computes a 64-bit product. The device can also operate as a 64-bit
by 64-bit multiplier. An onboard adder is provided to add or subtract the product or
the complement of the product from the accumulator.
When pipelined internally, the l.",m CMOS parallel MAC performs a full 32- x 32-bit
multiply/accumulate in a single 36-ns clock cycle. In flowthrough mode (without any
pipelining), the' ACT8836 takes 60 ns to multiply two 32-bit numbers. The' ACT8836
performs a 64- x 64-bit multiply/accumulate, outputting a 64-bit result, in 225 ns.
The' ACT8836 can handle a wide variety of data types, including two's complement,
signed, and mixed. Division is supported via the Newton-Raphson algorithm.

SN74ACT8837 64-Bit Floating Point Unit
The SN74ACT8837 is a high-speed floating point processor. This single-chip device
performs 32- or 64-bit floating point operations.

1-8

More than just a coprocessor, the' ACT8837 integrates on one chip a double-precision
floating point ALU and multiplier. Integrating these functions on a single chip reduces
data routing problems and processing overhead. In addition, three data ports and a
64-bit internal bus architecture allow for single-cycle operations.
The' ACT8837 can be pipelined for iterative calculations or can operate with input
registers disabled for low latency.

SN74ACT8841 Digital Crossbar Switch

~
Q)
'S;

..

Q)

>

The SN74ACT8841 is a single-chip digital crossbar switch. The high-performance
device, cost-effectively eliminates bottlenecks to speed data through complex bus
architecture.
The' ACT8841 is ideal for multiprocessor applications, where memory bottlenecks
tend to occur. The device has 64 bidirectional I/O ports that can be configured as 16
4-bit ports, 8 8-bit ports, or 4 16-bit ports. Each bidirectional port can be connected
in any conceivable combination. Any single input port can be broadcast to any
combination of output ports. The total time for data transfer is 20 ns.
The control sources for ten separate switching configurations are on-chip, including
eight banks of programmable control flip-flops and two hard-wired control circuits.
The EPIC'" CMOS SN74ACT8841 and its predecessor, SN74AS8840, are based on
the same architecture, differing in power consumption, number of control registers,
and pin-out. Microcode written for the ' AS8840 can be run on the ' ACT8841 .

SN74ACT8847 64-Bit Floating Point Unit
The SN74ACT8847 is a high-speed 64-bit floating point processor. The device is fully
compatible with IEEE standard 754-1985 for addition, subtraction, multiplication,
division, square root, and comparison. Division and square root operations are
implemented via hardwired control.
The SN74ACT8847 FPU also performs integer arithmetic, logical operations, and logical
shifts. Registers are provided at the inputs, outputs, and inside the ALU and multiplier
to support multilevel pipelining. These registers can be bypassed for nonpipelined
operations.
When fully pipelined, the' ACT884 7 can perform a double-precision floating point or
32-bit integer operation in under 40 ns. When in flowthrough mode, the' ACT884 7
takes less than 100 ns to perform an operation.

1-9

0

Bipolar Support Chips

~
~

The SN74AS8838 high-speed, 32-bit barrel shifter can shift up to 32 bits in a single
instruction cycle of Linder 25 ns. Five basic shifts can be programmed: circular left,
circular right, logical left, logical right, and arithmetic right. The' AS8838 offloads the
responsibility for shifting operations from the ALU, which increases shifter functionality
and system throughput.

<

(ii' The SN74AS8839 is a 32-bit shuffle/exchange network. The high-speed device can
perform data permutations on one 32-bit, two 16-bit, four 8-bit, or eight 4-bit data
words in a single instruction cycle of under 25 ns. The shuffle/exchange network is
designed primarily for use in digital signal processing applications.

:e

1-10

SN74ACT8818

16-Bit Microsequencer

2-1

en

:2
"'-I
~

l>

(")

-I

00
00
....a

00

2-2

SN74ACT8818
16·8it Microsequencer
•

Addresses Up to 64K Locations of Microprogram Memory

•

CLK-to-Y

•

Low-Power EPIC'· CMOS

•

Addresses Selected from Eight Different Sources

•

Performs Multiway Branching, Conditional Subroutine Calls, and Nested
Loops

=

30 ns (tpd)

•

Large 65-Word by 16-bit Stack

•

Cascadable

co
.-

CO
CO
lt)



n

-I
CO
CO
~

CO

Continue .........................................
Continue and Pop ..................................
Continue and Push .................................
Branch (Example 1) .................................
Branch (Example 2) .................................
Sixteen-Way Branch ................................
Conditional Branch .................................
Three-Way Branch .................................
Thirty-Two-Way Branch .............................
Repeat ..........................................
Repeat on Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Repeat Until CC = H ...............................
Loop Until Zero ....................................
Conditional Loop Until Zero ...........................
Jump to Subroutine ................................
Conditional Jump to Subroutine ........................
Two-Way Jump to Subroutine .........................
Return from Subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conditional Return from Subroutine . . . . . . . . . . . . . . . . . . . . .
Clear Pointers .....................................
Reset ...........................................

2-6

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

2-40
2-40
2-40
2-40
2-42
2-42
2-42
2-44
2-44
2-44
2-46
2-46
2-48
2-48
2-50
2-52
2-52
2-52
2-54
2-54
2-54
2-54

List of Illustrations
Figure

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

Title

' ACT8818 GC Package ......................... .
' ACT881 8 FN Package ......................... .
' ACT881 8 Logic Symbol ........................ .
' ACT881 8 Functional Block Diagram ............... .
Continue .................................... .
~ontinue and Pop ............................. .
Continue and Push ............................ .
Branch Example 1 ............................. .
Branch Example 2 ............................. .
Sixteen-Way Branch ........................... .
Conditiohal Branch ............................ .
Three-Way Branch ............................. .
Thirty-Two Way Branch ......................... .
Repeat ....................•.................
Repeat on Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Repeat Until CC = H ........................... .
Loop Until Zero ............................... .
Conditional Loop Until Zero (Example 2) ............. .
Jump to Subroutine ............................ .
Conditional Jump to Subroutine ................... .
Two-Way JUnip to Subroutine .................... .
Return from Subroutine ......................... .
Conditional Return from Subroutine ................ .
Clear Pointers ................................ .

Page

2-14
2-16
2-17
2-27
2-41
2-41
2-41
2-43
2-43
2-43
2-45
2-45
2-45
2-46
2-47
2-49
2-49
2-51
2-53
2-53
2-53
2-55
2-55
2-56

2-7

CO

or-

CO
CO
I(,)
c:(

~
.....

Z

CJ)

en
2

-...J
~

l>
(")

-f

00
00
...Ii

00

2-8

List of Tables
Table
1
2
3
4

5

6
7
8

9
10
11

Title
'ACT8818 Pin Grid Allocation ....................
' ACT881 8 Pin Functional Description ...............
Response to Control Inputs ......................
Y Output Controls (MUX2-MUXO) .................
Stack Controls (S2-S0) .........................
Register Controls (RC2-RCO) .....................
Decrement and Branch on Nonzero Encodings ........
Call Encodings without Register Decrements .........
Call Encodings with Register Decrements ............
Return Encodings without Register Decrements .......
Return Encodings with Register Decrements ..........

Page
.
.
.
.
.
.
.
.
.
.
.

2-15
2-18
2-26
2-32
2-33
2-33
2-36
2-37
2-38
2-38
2-39

2-9

~
CO
CO
~

()

~

"""
Z

CIJ

2-10

Introduction
The SN 7 4ACT8818 microsequencer is a low-power, high-performance microsequencer
implemented in TI's EPICT. Advanced CMOS technology. The 16-bit device addresses
up to 64K locations of microprogram memory and is compatible with the SN74AS890
microsequencer.
The 'ACT8818 performs a range of sequencing operations in support of TI's family 00
of building block devices and special-purpose processors such as the SN74ACT8847 ~
Floating Point Unit (FPU).
~

I-

Understanding the ' ACT8818 Microsequencer

U

The' ACT8818 microsequencer is designed to control execution of microcode in a
microprogrammed system. Basic architecture of such a system usually incorporates
at least the microsequencer, one or more processing elements such as the' ACT8847
FPU or the SN74ACT8832 Registered ALU, microprogram memory, microinstruction
register, and status logic to monitor system states and provide status inputs to the
microsequencer.
The' ACT8818 combines flexibility and high speed in a microsequencer that performs
multiway branching, conditional subroutine calls, nested loops, and a variety of other
microprogrammable operations. The' ACT8818 can also be cascaded for providing
additional register/counters or addressing capability for more complex microcoded
control functions.
In this microsequencer, several sources are available for microprogram address
selection. The primary source is the 16-bit microprogram counter (MPCl, although
branch addresses may be input on the two 1 6-bit address buses, ORA and ORB. An
address input on the ORA bus can be pushed on the stack for later selection.
Register/counters RCA and RCB can store either branch addresses or loop counts as
needed, either for branch operations or for looping on the stack.
The selection of address source can be based on external status from the device being
controlled, so that three-way or multiway branching is supported. Once selected, the
address which is output on the Y bus passes to the microprogram memory, and the
microinstruction from the selected location is clocked into the pipeline register at the
beginning of the next cycle.
It is also possible to interrupt the' ACT881 8 by placing the Y output bus in a highimpedance state and forcing an interrupt vector on the Y bus. External logic is required
to place the bus in high impedance and load the interrupt vector. The first

EPIC is a trademark of Texas Instruments Incorporated.
2-11

«

'I:t

I'
Z
(J)

microinstruction of the interrupt handler subroutine can push the address from the
Interrupt Return register on the stack so that proper linkage is preserved for the return
from subroutine.

Microprogramming the 'ACT8818

~

Microinstructions for the' ACT8818 select the specific operations performed by the
Y output multiplexer, the register/counters RCA and RCB, the stack, and the
bidirectional DRA and DRB buses. Each set of inputs is represented as a separate field
in the microinstructions, which control not only the microsequencer but also the ALU
or other devices in the system.

-...J

The 3-port architecture of the 'ACT8818 facilitates both branch addressing and
register/counter operations. Both register/counters can be used to hold either loop
C") counts or branch addresses loaded from the DRA and DRB buses. Register/counter
-t operations are selected by control inputs RC2-RCO.
CX)
~

»
CX)

-' Similarly, the 65-word by 16-bit stack can save addresses from the DRA bus, the
CX) microprogram counter (MPC)' or the Interrupt Return register, depending on the settings
of stack controls S2-S0 and related control inputs. Flexible instructions such as Branch
DRA else Branch to Stack else Continue can be coded· to take advantage of the
conditional branching capability of the 'ACT8818.
Multiway branching (16- or 32-way) uses the B3-.80 inputs to set up a 16-way branch
address on DRA or DRB by concatenating B3-BO with the upper 12 bits of the DRA
or DRB bus. The resulting branch addresses DRA' (DRA 15-DRA4::B3-BO) and DRB'
(DRB15-DRB4::B3-BO) are selected by the Y output multiplexer controls MUX2-MUXO.
A Branch DRB' else Branch DRA' instruction can select up to 32 branch addresses,
as determined by the settings of B3-BO.

Design Support
TI's '8818 16-bit microsequencer is supported by a variety of tools developed to aid
in design evaluation and verification. These tools will streamline all stages of the design
process, from assessing the operation and performance of the '8818 to evaluating
a total system application. The tools include a functional model, behavioral model,
and microcode development software and hardware. Section 8 of this manual provides
specific information on the design tools supporting Tl's SN74ACT8800 Family.

2-12

Systems Expertise
Texas Instruments VLSI Logic applications group is available to help designers analyze
TI's high-performance VLSI products, such as the '8818 16-bit microsequencer. The
group works directly with designers to provide ready answers to device-related
questions and also prepares a variety of applications documentation.
The group may be reached in Dallas, at (214) 997-3970.

....00

00

00
l-

e.>

«
~
,.....

Z

CIJ

2-13

'ACT8818 Pin Grid Allocation
(TOP VIEW)
2
A
B

c
D

en

E

2

-...J
~

l>

G

~

H

C")

00
00

J

...,\

00

K

3

4

5

6

8

9

10 11

.
• • • • •
• • • • • • • • •
• • • • • • • • •

.~

• (!) •

• •
• • •
• • •
• • •

•
•
•
•

• •
• •
• •

• •
• •
• • • • • •
(!) • • • • • • • (!) •
• • • • • • • • •

• •
• • •
•

Figure 1. 'ACT8818.

2-14

7

. GC Package

Table 1. 'ACT8818 Pin Grid Allocation

PIN
NO.
A2
A3
A4
A5
A6
A7
A8
A9
A10
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
C1

NAME
RC2
Y1
Y3
Y5
Y6
Y8
Y11
Y13
NC
DRB15
RC1
YO
Y2
Y4
YOE
Y9
Y12
Y14
Y15
ZEROIN
DRB14

PIN
NO.
C2
C3
C5
C6
C7
C9
C10
C11
D1
D2
D9
D10
D11
E1
E2
E3
E9
E10
E11
F1
F2

NAME
RCO
GND
GND
Y7
Y10
GND
VCC
RE
DRB12
DRB13
GND
COUT
INC
DRB9
DRB10
DRB11
INT
B3
B2
DRB7
DRB8

PIN
NO.
F3
F9
F10
F11
G1
G2
G3
G9
G10
G11
H1
H2
H10
H11
J1
J2
J3
J5
J6
J8
J9

NAME
RBOE
BO
B1
MUX2
DRB6
DRB5
GND
CLK
MUXO
MUX1
DRB4
DRB3
CC
ZEROUT
DRB2
DRB1
VCC
GND
RAOE
DRA1
GND

PIN
NO.
J10
J11
K1
K2
K3
K4
K5
K6
K7
K8
K9
K10
K11
L2
L3
L4
L5
L6
L7
L8
L9
L10

NAME
51
5TKWRN/RER
DRBO
5ELDR
DRA14
DRA12
DRA10
DRA7
DRA5
DRA3
DRAO
50
52
DRA15
DRA13
DRA11
DRA9
DRA8
DRA6
DRA4
DRA2
05EL

en
0ren
en
l-

e,)


(')
-t

00
00

.....

00

PIN

GC

FN

NAME

NO.

NO.

BO

F9

22

Bl

FlO

23

B2

Ell

24

B3

El0

25

ClK

G9

18

COUT

Dl0

28

DESCRIPTION

I/O

I

Input bits for branch addressing (see Table 3)

System clock
Incremerit~r

0

'carry-out. Goes high when an attempt is

made to il")crement microprogram counter beyond
addressable micromemory.

CC

Hl0

DRAO

K9

9

DRAl

J8

8

DRA2

19

7

DRA3

K8

6

DRA4

l8

5

DRA5

K7

4

DRA6

l7

3

DRA7

K6

2

DRA8

l6

84

stack or register/counter A (RAOE = 0) or inputs

DRA9

l5

83

external data (RAOE = 1).

DRA10

K5

82

DRAll

l4

80

DRA12

K4

79

DRA13

l3

78

DRA14

K3

77

DRA15

l2

76

DRBO

Kl

73

DRBl

J2

72

DRB2

Jl

71

DRB3

1i2
Hl

70

DRB4
DRB5

G2

69
67

DRB6

Gl

66

DRB7

Fl

65

DRB8

F2

63

DRB10

E2

61

2-18

15

I

I/O

Condition code

Bidirectional DRA data port. Outputs data from

Bidirectional DRB data port. Outputs data from
I/O

register/counter B
(RaOE = 0) or inputs external data

Table 2. 'ACT8818 Pin Functional Description (Continued)
PIN

GC

FN

NAME

NO.

NO.

I/O

DESCRIPTION

ORB11

E3

60

ORB12

01

59

ORB13

02

58

ORB14

C1

57

ORB15

B1

56

GNO

C3

10

co

GND

C5

30

GND

C9

33

GND

09

46

CO
CO
I-

GNO

G3

52

GND

J5

68

GNO

J9

81

INC

011

27

I

INT

E9

26

I

MUXO

G10

19

MUX1

G11

20

MUX2

F11

21

OSEL

L10

11

I

RAOE

J6

1

I

ORA output enable, active low

RBOE

F3

64

I

ORB output enable, active low

RCO

C2

55
I

Controls for register/counters A and B

I

INT RT register while a low input passes Y to INT RT

RC1

B2

54

RC2

A2

53

RE

C11

29

SO

K10

12

Bidirectional ORB data port. Outputs data from
I/O

register/counter B (RBOE = 0) or inputs external data
(RBOE = 1).

...

I

Ground pins. All pins must be used.

()

Incrementer control pin

z"""
en

«
~

Selects INT RT register to stack, active low (see
Table 3)
MUX control for Y output bus (see Table 4)
ORA output MUX select. Low selects RCA, high
selects stack.

INT RT register enable, active low. A high input holds
register (see Table 3).
S1

J10

13

S2

K11

14

SELDR

K2

75

I

J11

16

0

STKWRN/
RER
VCC

C10

31

VCC

J3

74

I

Stack controls
Selects data source to ORA bus and ORB bus (See
Table 3)
Stack warning signal flag
Supply voltage (5 V)

2-19

Table 2. 'ACT8818 Pin Functional Description (Concluded)
PIN

GC

FN

NAME

NO.

NO.

I/O

DESCRIPTION

YO

B3

Y1

A3

50

Y2

B4

49

Y3

A4

48

Y4

B5

47

Y5

A5

45

Y6

A6

44

~

Y7

C6

43

(")

Y8

A7

41

-I
CO
CO

Y9

B7

40

Y10

C7

39

Y11

A8

38

Y12

B8

37

Y13

A9

36

Y14

B9

35

Y15

B10

34

YOE

B6

42

I

ZEROIN

B11

32

I

Forces internal zero detect high

ZEROUT

H11

17

0

Outputs register/counter zero detect signal

en

2
......

l>

.....

CO

2-20

51

I/O

Bidirectional Y data port

Y output enable, active low

'ACT8818 Specification Tables
absolute maximum ratings over operating free air temperature range (unless
otherwise noted) t
Supply voltage, VCC . . . . . . . . . . . . . . . . . . . . . . . . . . . .. -0.5 V to 6 V
Input clamp current, ',K (V,VCC) ................ ±20 mA
Output clamp current, 10K (VO < 0 or Vo > V CC . . . . . .
± 50 mA
Continuous output current, 10 (VO = 0 to VCC) . . . . . .
± 50 mA
Continuous current through VCC or GND pins. . . . . . . .
± 100 mA
CO
Operating free-air temperature range. . . .
. . . . . . .. 0 DC to 70°C ....
Storage temperature range . . . . . . . . . . . . . . . . . . . . . . .. 65 DC to 1 50 DC CO
tStresses beyond those listed under "absolute maximum ratings" may cause permanent damage to the device.
These are stress ratings only and functional operation of the device at these or any other conditions beyond
those indicated under "recommended operating conditions" is not implied. Exposure to absolute maximum
rated conditions for extended periods may affect device reliability.
.

PARAMETER
Supply voltage

V,H

High-level input voltage

V,L

Low-level input voltage

IOH

High-level output current

IOL
V,

Input voltage

MIN

NOM

MAX

4.5
2
0

5

5.5

V

Vee

V

0.8
-8
8

mA
mA

Vee

V

Low-level output current

Va
dt/dv

Output voltage

TA

Operating free-air temperature

Input transition rise or fall rate

(.)

«
..t

"
en
Z

recommended operating conditions

Vee

CO
I-

0
0
0
0

Vee

15
70

UNIT

V

V
ns/V
°e

2-21

electrical characteristjcs over recommended operating free-air temperature
range (unless otherwise noted)
TA - 25°C
PARAMETER

..

TEST CONDITIONS

VCC
4.5 V

IOH = -201lA
VOH
IOH = -8 rnA

CJ)

:2

IOl = 20llA

-..J

VOL

~

»
("')

IOl = 8 rnA

-I
CO
CO

...

CO

TYP

MAX

MIN

TYP

MAX

UNIT

4.48

5.5 V

5.46

4.5 V

4.15

5.5 V

4.97

V

3.76
4.76

4.5 V

0.014

5.5 V

0.014

4.5 V

0.15

0.45

5.5 V

0.13

0.45
±1

IlA

98

200

Il A

II

VI = Vee or 0

5.5 V

lee

VI = Vee or 0

5.5 V

ei

VI = Vee or 0

5V

~Ieet

One input at 3.4 V, other
inputs at 0 or Vee

MIN

5.5 V

V

pF

3
1

rnA

tThis is the increase in supply current for each input that is at one of thE! specified TTL voltage levels rather
• than 0 V or Vee.

2-22

maximum switching characteristics

PARAMETER

(INPUT)

CC
CLK

tpd

TO

FROM

(OUTPUT)

V

ZEROUT

ORB

STKWRN

24

16

25

27
30 t
23

ORB15-0RBO

22

MUX2-MUXO

22

RC2-RCO

26

S2-S0

25

B3-BO

19

OSEL

25

ZEROIN

25

SELOR

23

23 t

18
19
ns
20

INC

20

Y

ten

16
16

RAOE

18

YOE
tdis

ns

17

RBOE
RAOE

COUT

23

ORA15-0RAO

YOE

UNIT

ORA

14
13

RBOE

ns
14

tOecrementing register/counter A or B and sensing a zero.

2-23

setup and hold times
PARAMETER

FROM (INPUT)

TO (OUTPUT)

CC

Stack

15

Stack

9

DRA15-DRAO

DRB15-DRBO

RCA

6

INT RT

9

RCB
INT RT

7

MPC
Stack

7

Stack

15

OSEl
B3-BO
SElDR
ZEROIN

RCA, RCB

6

INT RT

16

Stack

13

INT RT

13

Stack

12

INT RT

13

Stack

8

INT RT

14

Stack

10

INT RT

10

Stack

14

INT RT

13

Y

MPC

6

RE

INT RT (ClK)

7

MUX2-MUXO

INT RT

12

Any

Any

Input

Destination

th

UNIT

7

INT

S2-S0

MAX

11

INC

RC2-RCO

tsu

MIN

ns

0

ns

clock requirements
PARAMETER

MIN

MAX

UNIT

tw1

Pulse duration, clock low

7

ns

tw2

Pulse duration, clock high

9

ns

tc

Clock cycle time

33

ns

2-24

Architecture
The' ACT8818 microsequencer is designed with a 3-port architecture similar to the
bipolar SN74AS890 microsequencer. Figure 4 shows the architecture of the
'ACT8818. The device consists of the following principal functional groups:
1. A 16-bit microprogram counter (MPC) consisting of a register and
incrementer which generates the next sequential microprogram address
2. Two register/counters (RCA and RCB) for counting loops and iterations,
storing branch addresses, or driving external devices
3. A 65-word by 16-bit LIFO stack which allows subroutine calls and interrupts
at the microprogram level and is expandable and readable by external
hardware

CO

(')
-t

5. B3-BO, whose contents can replace the four least significant bits of the
ORA and ORB buses to support 16-way and 32-way branches

..
CO
CO

6. An external input onto the bidirectional Y port to support external
interrupts.

CO

Use of controls MUX2-MUXO is explained further in the later section on
microprogramming the' ACT8818.

Microprogram Counter.
Based on system status and the current instruction, the microsequencer outputs the
next execution address in the microprogram. Usually the incrementer adds one to the
address on the Y bus to compute next address plus one. Next address plus one is
stored in the microprogram register at the beginning of the subsequent instruction cycle.
During the next instruction, this 'continue' address will be ready at the Y output MUX
for possible selection as the source of the subsequent instruction. The incrementer
thus looks two addresses ahead of the address in the instruction register to set up
a continue /increment by one) or repeat (no increment) address.
Selecting INC from status is a convenient means of implementing instructions that
must repeat until some condition is satisfied; for example, Shift ALU Until MSB = 1,
or Decrement ALU Until Zero. The MPC is also the standard path to the stack. The
next address is pushed onto the stack during a subroutine call, so that the subroutine
will return to the instruction following that from which it was called.

Register/Counters
Addresses or loop counts may be loaded directly into register/counters RCA and RCB
through the direct data ports ORA 1 5-DRAO and ORB 1 5-DRBO. The values stored in
these registers may either be held, decremented, or read. Independent control of both
the registers during a single cycle is supported with the exception of a simultaneous
decrement of both registers.

2-28

Stack
The positive edge clocked 16-bit address stack allows multiple levels of nested calls
or interrupts and can be used to support branching and looping. Seven stack operations
are possible:
1. Reset, which pulls all Y outputs low and clears the stack pointer and read
pointer
2. Clear, which sets the stack pointer and read pointer to zero
3. Pop, which causes the stack pointer to be decremented
4. Push, which puts the contents of the MPC, interrupt return register, or
DRA bus onto the stack and increments the stack pointer
5.

Read, which makes the address indicated by the read pointer available
at the DRA port

6.

Hold, which causes the address of the stack and read pointers to remain
unchanged

7.

Load stack pointer, which inputs the seven least significant bits of DRA
to the stack pointer.

Stack Pointer
The stack pointer (SP) operates as an up/down counter; it increments whenever a push
occurs and decrements whenever a pop occurs. Although push and pop are two event
operations (store then increment SP, or decrement SP then read), the' ACT8818
performs both events within a single cycle.

Read Pointer
The read pointer (RP) is provided as a tool for debugging microcoded systems. It permits
a nondestructive, sequential read of the stack contents from the DRA port. This
capability provides the user with a method of backtracking through the address
sequence to determine the cause of overflow without affecting program flow, the status
of the stack pointer, or the internal data of the stack.

Stack Warning/Read Error Pin
A high signal on the STKWRN/RER pin indicates a potential stack overflow or underflow
condition. STKWRN/RER becomes active under two conditions. If 62 of the 65 stack
locations (0-64) are full (the stack pointer is at 62) and a push occurs, the STKWRN/RER
pin outputs a high signal to warn that the stack is approaching its capacity and will
be full after two more pushes.
The STKWRN/RER signal will remain high if hold, push or pop instructions occur, until
the stack pointer is decremented to 62. If a push instruction is attempted when the
stack is full, the new address will be ignored and the old address in stack location
64 will be retained.

2-29

The 5TKWRN/RER pin will go high when the stack pointer is less than ;or equal to one
and a pop or read from stack is coded on the 52-50 pins. The pin will go high after
reading the next to the bottom stack address (1). When the 52-50 pins are set to pop
or read the last address (0) or to pop or read an empty stack, the 5TKWRN/RER pin
. will go high. The pin depends only on the setting of the 52-50 pins and the stack pointer,
not on the clock.

Interrupt Return Register

en

:s

:t

Unlike the MPC register, which normally gets next address plus one, the interrupt return
register simply gets next address. This permits interrupts to be serviced with zero
latency, since the interrupt vector replaces the pending address.

The interrupting hardware disables the Y output and forces the vector onto the
microaddress bus. This event must be synchronized with the system clock. The first
---t address of the service routine must program INT low and perform a push to put the
00
00 contents of the intetrupt return register on the stack.
C')

~

00

2-30

Microprogramming the ' ACT8818
Microprogramming is unlike programming monolithic processors for several reasons.
First, the width of the microinstuction word is only partially constrained by the basic
signals required to control the sequencer. Since the main advantage of a
microprogrammed processor is speed, many operations are often supported by or
carried out in special purpose hardware. Lookup tables, extra registers, address
generators, elastic memories, and data acquisition circuits may also be controlled by
the microinstruction.
The number of slices in a bit-slice ALU is user-defined, which makes the microinstruction
width even more application dependent. Types of instructions resulting from
manipulation of the sequencer controls are discussed below. Examples of some
commonly used instructions can be found in the later section of microinstructions and
flow diagrams. The following abbreviations are used in the tables in this section:
BR A
BR A'
BR B
BR B'
BR S
CALL A
CALL B
CALL A'
CALL B'
CALL S
CLR SP, RP
CONT/RPT
ORA
ORA'
ORB
ORB'
MPC
POP
PUSH

RCA
RCB
REAO
RESET
RP
SP
STK

00
or-

00
00
lt.)

«

Y Y Y
Y -

ORA
ORA'
ORB
ORB'
Y - STK
Y ~ ORA; STK - MPC; SP - SP + 1; RP - RP + 1
Y
ORB; STK - MPC; SP - SP + 1; RP - RP + 1
Y - ORA'; STK - MPC; SP - SP + 1; RP - RP + 1
Y - ORB'; STK - MPC; SP - SP + 1; RP - RP + 1
Y - STK; STK - MPC; SP - SP + 1; RP - RP + 1
SP - 0; RP - points to TOS register
Y - MPC + 1 if INC = H; Y - MPC if INC = L
Bidirectional data port (can be loaded externally or from RCA)
ORA 15-0RA4::B3-BO
Bidirectional data port (can be loaded externally or from RCB)
ORB15-0RB4::B3-BO
Microprogram counter
SP - SP - 1; RP - RP - 1
STK - operand; SP - SP + 1; RP - RP + 1
Register/counter A
Register/counter B
ORA - STK; RP - RP - 1; SP - SP - 1
Y - 0; SP - 0; RP - points to TOS register
Read pointer
Stack pointer
Stack

~

"Z

tJ)

2-31

Address Selection
V-output multiplexer controls MUX2-MUXO select one of eight 3-source branches as
shown in Table 4. The states of CC and ZERO determine which of the three sources
is selected as the next address. ZERO is set at the beginning of any cycle in which
a register/counter will decrement to zero. This applies to both internal ZERO and external
ZEROUT signals.
Table 4. Output Controls (MUX2-MUXO)

MUX2RESET
MUXO

tn

Z
.....

XXX
LLL
LLH
LHL
LHH
HLL
HLH
HHL
HHH

~

»
n
-I
CO
CO

......

CO

Yes
No
No
No
No
No
No
No
No

Y OUTPUT SOURCE
CC - L
ZERO - L ZERO - H CC - H
All Low
All Low All Low
STK
MPC
ORA
STK
MPC
ORB
STK
ORA
MPC
STK
ORB
MPC
ORA
ORB
MPC
ORB,:j:
ORA't
MPC
ORA
STK
MPC
ORB
STK
MPC

tORA 15-0RA4::B3-BO
*ORB15-0RB4::B3-BO

By programming CC high or low without decrementing registers, only one outcome
is possible; thus, unconditional branches or continues can be implemented by forcing
the condition code. Alternatively, CC can be selected from status, in which case Branch
A on Condition Code Else Branch B instructions are possible, where A and B are the
address sources determined by MUX2-MUXO.
Decrement and Branch on Nonzero instructions, creating loops that repeat until a
terminal count is reached, can be implemented by programming CC low and
decrementing a register/counter. If CC is selected from status and registers are
decremented, more complex iflstructions such as Exit on Condition Code or End or
Loop are possible.
When MUX2-MUXO = HLH, the B3-BO inputs can replace the four least significant
bits of ORA or ORB to create 16-Way branches or, when CC is based on status, to
create 32-way branches.

Stack Controls
As in the case of the MUX controls, each stack-control coding is a three-way choice
based on CC and ZERO (see Table 5). This allows push, pop, or hold stack operations
to occur in parallel with the aforementioned branches. A subroutine call is accomplished
by combining a branch and push, while returns result from coding a branch to stack
with a pop.
2-32

Table 5. Stack Controls (S2-S0)
STACK OPERATION
S2-S0

OSEL

CC - L
ZERO = L
ZERO - H

CC .. H

LLL

X

Reset/Clear

Reset/Clear

Reset/Clear

LLH

X

Clear SP/RP

Hold

Hold

LHL

X

Hold

Pop

Pop

LHH

X

Pop

Hold

Hold

HLL

X

Hold

Push

Push

HLH

X

Push

Hold

Hold

HHL

X

Push

Hold

Push

HHH

H

Read

Read

Read

HHH

L

Hold

Hold

Hold

....

ex)
ex)
ex)

....
()

~

A branch or jump to a given microaddress can also be coded several ways. RCA, ORA,
RCB, ORB, and STK are possible sources for branch addresses (see Table 4). Branches
00 to register or stack are useful whenever the branch address could be stored to reduce
~ overhead.
00
The simplest branches are to ORA and ORB, since they require only one cycle and
the branch address is supplied in the microinstruction. Use of registers or stack requires
an initial load cycle (which may be combined with a preceding instruction). but may
be more practical when an entry point is referenced over and over throughout the
microprogram, for example, in error-handling routines. Branches to stack or register
also enhance sequencing techniques in which a branch address is dynamically
computed or multiple branches to a common entry point are used, but the entry point
varies according to the system state. In this case, the state change might require
reloading the stack or register.
In order to force a branch to ORA or ORB, CC must be programmed high or low. A
branch to stack is only possible when CC is forced low (see Table 4).
When CC is low, the ZERO flag is tested, and if a register decrements to zero the
branch will be transformed into a Decrement and Branch on Nonzero instruction.
Therefore, registers should not be decremented during branch instructions using
CC = 0 unless it is certain the register will not reach terminal count. Call (Branch and
Push MPC) instructions and Return (Branch to Stack and Pop) instructions are discussed
in later sections.

2-34

Conditional Branch Instructions
Perhaps the most useful of all branches is the conditional branch. The' ACT8818
permits three modes of conditional branching: Branch on Condition Code; Branch
16-Way from DRA or DRB; and Branch on Condition Code 16-Way from DRA Else
Branch 16-Way from DRB. This increases the versatility of the system and the speed
of processing status tests because both single-bit and 4-bit status are allowed.
Testing single bit status is preferred when the status can be set up and selected through
a status MUX prior to the conditional branch. Four-bit status allows the' ACT8818
to process instructions based on Boolean status expressions, such as Branch if Overflow
and Not Carry if Zero or if Negative. It also permits true n-way branches, such as If
Negative then Branch to X, Else if Overflow, and Not Carry then Branch to Y. The
tradeoff is speed versus program size. Since multiway branching occurs relatively
infrequently in most programs, users will enjoy increased speed at a negligible cost.
Call (Branch and Push MPC) instructions and Return (Branch to Stack and Pop)
instructions are discussed in later sections.

Loop Instructions
Up to two levels of nested loops are possible when both counters are used
simultaneously. Loop count and levels of nesting can be increased by adding external
counters if desired. The simplest and most widely used of the loop instructions is
Decrement and Branch on Nonzero, in which CC is forced low while a register is
decremented. As before, many forms are possible, since the top-of-Ioop address can
originate from RCA, DRA, RCB, DRB, or the stack (see Table 4). Upon terminal count,
instruction flow can either drop out of the bottom of the loop or branch elsewhere.
When loops are used in conjunction with CC as status, B3-BO as status and/or stack
manipulation, many useful instructions are possible, including Decrement and Branch
on Nonzero else Return, Decrement and Call on Nonzero, and Decrement and Branch
16-Way on Nonzero. Possible variations are summarized in Table 7. Call (Branch and
Push MPC) instructions and Return (Branch to Stack and Pop) instructions are discussed
in later sections.
Another level of complexity is possible if CC is selected from status while looping.
This type of loop will exit either because CC is true or because a terminal count has
been reached. This makes it possible, for example, to search the ALU for a bit string.
If the string is found, the match forces CC high. However, if no match is found, it
is necessary to terminate the process when the entire word has been scanned. This
complex process can then be implemented in a simple compact loop using Conditional
Decrement and Branch on Nonzero.

2·35

00
r00
00

t;


S2-S0

OSEl

CC - H
BR A
CALL A

(')

HLL

HLH

X

CALL A

CONT/RPT

~

HLL

HHL

X

CALL A

CONT/RPT

CALL B

HLH

HLH

X

CALL A' (16-way)

CONT/RPT

BR B' (16-way)

HLH

HHL

X

CALL A' (16-way)

CONT/RPT

CALL B' (16-way)

HHL

HLH

X

CALL A

BR S

CONT/RPT

HHL

HHL

X

CALL A

BR S

CONT/RPT: PUSH

HHH

HLH

X

CALL B

BR S

CONT/RPT

HHH

HHL

X

CALL B

BR S

CONT/RPT: PUSH

CO
CO
~

CO

Subroutine Returns
A return from subroutine can be implemented by coding a branch to stack with a pop.
Since pop is also conditional on CC and ZERO, the complex forms discussed previously
also apply to return instructions: Decrement and Return on Nonzero; Return on
Condition Code; Branch on Condition Code Else Return. Return encodings are
summarized in Tables 10 and 11.
Table 10. Return Encodings without Register
Decrements

2-38

MUX2-MUXO

S2-S0

OSEl

cc - L

LLL

LHH

X

RET

CC - H
BR A

LLH

LHH

X

RET

BR B

LHL

LHH

X

RET

CONT/RPT

LHH

LHH

X

RET

CONT/RPT

Table 11. Return Encodings with Register Decrements
MUX2-MUXO

S2-S0

OSEl

cc ZERO - l

l
ZERO = H

CC

= H

LLL

LHH

X

RET

CONT/RPT

BR A

LLH

LHH

X

RET

CONT/RPT

BR B

LHL

LHH

X

RET

BR A

CONT/RPT

LHH

LHH

X

RET

BR B

CONT/RPT

HHL

LHL

X

BR A

RET

CONT/RPT: POP

HHH

LHL

X

BR B

RET

CONT/RPT: POP

co
~

CO
~

Reset
Pulling the S2-S0 pins low clears the stack and read pointers, and zeroes the Y output
multiplexer (See Table 5).

«
(.)
~

"
en

Clear Pointers

2:

The stack and read pointers may be cleared without affecting the Y output multiplexer
by setting S2-S0 to LLH and forcing CC low (see Table 5).

Read Stack
Placing a high value on all of the stack inputs (S2-S0) and OSEL places the' ACT8818
into the read mode. At each low-to-high clock transition, the address pointed to by
the read pointer is available at the ORA port and the read pointer is decremented. The
bottom of the stack is detected by monitoring the stack warning/read error pin
(STKWRN/RER). A high appears on the STKWRN/RER output when the stack contains
one word and a read instruction is applied to the S2-S0 pins. This signifies that the
last address has been read.
The stack pointer and stack contents are unaffected by the read operation. Under
normal push and pop operations, the read pointer is updated with the stack pointer
and contains identical information.

Interrupts
Real-time vectored ihtern,ipt routines are supported for those applications where polling
would impede system throughput. Any instruction, including pushes and pops, may
be interrupted. To process an interrupt, the following procedure should be followed:
1. Place the bidirectional Y bus into a high-impedance state by forcing YOE high.
2. Force the interrupt entry point vector onto the Y bus. INC should be high.
3. Push the current value in the Interrupt Return register on the stack as the
execution address to return to when interrupt handling is complete.
The first instruction of the interrupt routine must push the address stored in the interrupt
return register onto the stack so that proper return linkage is maintained. This is
accomplished by setting INT and B1 low and coding a push on the stack.
2-39

Sample Microinstructions for the ' ACT8818
Representative examples of instructions using the' ACT8818 are given below. The
examples assume a one-level pipeline system, in which the address and contents of
the next instruction are being fetched while the current instruction is being executed,
and an ALU status register contains the status results of the previous instruction.

en
~

-'="
»

(')

-I

00
00

...a

00

Since the incrementer looks two addresses ahead of the address in the instruction
register to set up some instructions such as continue or repeat, a set-up instruction
has been included with each example. This shows the required state of both INC and
CC. CC must be set up early because the status register on which V-output selection
is typically based contains the results of the previous instruction.
Flow diagrams and suggested code for the sample microinstructions are also given
below. Numbers inside the circles are microword address locations expressed as
hexadecimal numbers. Fields in microinstructions are binary numbers except for inputs
on ORA or ORB, which are also in hexadecimal. For a discussion of sequencing
instructions, see the preceding section on microprogramming.

Continue
To Continue (Instruction 10)' INC and CC must be programmed high one cycle ahead
of instruction 10 for pipelining.
Address
(Set-up)
10

Instruction
Continue

MUX2-MUXO S2-S0 R2-RO OSEL
XXX
110

XXX
111

XXX
XXX

X
0

CC
1
X

INC
X

ORA

ORB

XXXX XXXX
XXXX XXXX

Continue and Pop
To Continue and decrement the stack pointer (Pop), INC and CC are forced high in
the previous instruction.
Address

Instruction

(Set-up)
10
Continue/Pop

MUX2-MUXO S2-S0 R2-RO OSEL
XXX
110

XXX
010

XXX
XXX

X
X

CC

INC

1
X

X

ORA

ORB

XXXX XXXX
XXXX XXXX

Continue and Push
To Continue and push the microprogram counter onto the stack (Push), INC and CC
are forced high one cycle ahead of Instruction 10 for pipelining.
Address

Instruction

(Set-up)
10 Continue/Push

2-40

MUX2-MUXO S2-S0 R2-RO OSEL
XXX
110

XXX
100

XXX
XXX

X
0

CC
1
X

INC
X

ORA

ORB

XXXX XXXX
XXXX XXXX

>-----

IMPOSSIBLE

co

....

CO
CO
I-

U

«
~

"Z

CJ)

Figure 5. Continue

Figure 6. Continue and Pop

Figure 7. Continue and Push

2-41

Branch (Example 1)
To Branch from address 10 to address 20, CC must be programmed high one cycle
ahead of Instruction 10 for pipelining.
Address

Instruction

(Set-up)
10

BR A

MUX2-MUXO 52-SO

xxx

xxx

000

111

R2-RO

05EL

CC

INC

ORA

ORB

XXX
XXX

x

1

o

X

X
X

XXXX
0020

XXXX
XXXX

Branch (Example 2)

en

::i

To Branch from address 10 to address 20, CC is programmed low in the previous
instruction; as a result, a ZERO test follows the condition code test in Instruction 10.
~ To ensure that a ZERO = H condition will not occur, registers should not be
-t decremented during this instruction.
~

CO
CO

Address
(Set-up)
10

Instruction
BR A

MUX2-MUXO 52-SO
XXX
110

XXX

111

R2-RO 05EL
XXX
000

CC

INC

ORA

ORB

X

o

o

X

X
X

XXXX
0020

XXX X
XXXX

Sixteen-Way Branch
To Branch l6-Way, CC is programmed high in the previous instruction. The branch
address is derived from the concatenation DRB15-DRB4::B3-BO.
Address

Instruction

(Set-up)
10

BR B'

2-42

MUX2-MUXO 52-SO
XXX
101

XXX
111

R2-RO 05EL
XXX
XXX

CC

INC

X

X
X

X

o

DRA

ORB

XXXX XXXX
XXX X 0040

........_ - IMPOSSIBLE

ex>
ex>
~

>-_H_-IMPOSSIBLE*

~

(.)

~

-=:t

'"
Z
en
"no register decrement

Figure 8. Branch Example 1

Figure 9. Branch Example 2

Figure 10. Sixteen-Way Branch

2-43

Conditional Branch
To Branch to address 20 Else Continue to address 11, INC is set high in the preceding
instruction to set up the Continue.
Address
(Set-up)
10

en
2

"l>
~

(")

-I
00
00

Instruction

MUX2-MUXO 52-SO R2-RO OSEL CC' INC
XXX
110

BR A else
Continue

xxx
111

XXX
000

X

x

o

X

X

ORA

ORB

XXXX XXXX
0020 XXXX

Three-Way Branch
To Branch 3-Way, this example uses an instruction from Table 7 with BR A in the
ZERO = L column, CONT/RPT in the ZERO = H column and BR B in the CC = H
column. To enable the ZERO = H path, register A must decrement to zero during this
instruction (see Table 6 for possible register operations). INC is programmed high in
Instruction 10 to set up the Continue.

.-.

00

Address
(Set-up)
10
11

Instruction

MUX2-MUXO 52-SO R2-RO OSEL CC INC

Continue and
Load Reg A
Decrement Reg A;
Branch 3-Way

XXX

XXX

XXX

X

110

111

010

0

t

100

111

001

0

X

ORA

ORB

XXXX XXXX
XXXX XXXX
X

0020 0030

tSelected from external status

Thirty-Two-Way Branch
To Branch 32-Way, the four least significant bits of the ORA' and ORB' addresses
must be input at the B3-BO port; these are concatenated with the 12 most significant
bits of ORA and ORB to. provide new addresses ORA' (ORA 15-0RA4::B3-BO) and ORB'
(ORB15-0RB4::B3-BO).
Address

Instruction

(Set-up)
10

32-way Branch

2-44

MUX2-MUXO 52-SO R2-RO OSEL CC INC

XXX

XXX

101

111

XXX
000

X
0

X
X

X

ORA

ORB

XXXX XXXX
0040 0030

H IMPOSSIBLE"

....

ex)

ex)
ex)

l-

t.)

«
"d'
,....
Z

(J)
• no register decrement

Figure 11. Conditional Branch

Figure 12. Three-Way Branch

*no register decrement

Figure 13. Thirty-Two-Way Branch

2-45

Repeat
To Repeat (Instruction 10), INC must be programmed low and CC high one cycle ahead
of Instruction 10 for pipelining.

en

Address

Instruction

(Set-up)
10

Continue

MUX2-MUXO 52-SO R2-RO OSEL CC INC
XXX
110

XXX
111

XXX
XXX

a

X

a

X

X

ORA

ORB

XXXX XXXX
XXX X XXXX

Repeat on Stack

:2 To Continue and push the microprogram counter onto the stack (Push), INC and CC

......
~

must be forced high one cycle ahead for pipelining .

»
To Repeat (Instruction 12), an BR S instruction with ZERO =
("')

L is used. To avoid a
ZERO = H condition, registers are not decremented during this instruction (see Table 6
-I
CO for possible register operations. CC and INC are programmed high in Instruction 12
CO to set up the Continue in Instruction 11.
-'

(X)

Address

Instruction

(Set-up)
10
11
12

Continue/Push
Continue
BR Stack

INC-O

MUX2-MUXO 52-SO R2-RO OSEL CC INC
XXX
110
110
010

XXX
100
111
111

~-MIIIf---t

XXX
XXX
XXX
000

X
X

a
a

1

a

CC-1

>-...;;L'---_ IMPOSSIBLE

Y-MPC

Figure 14. Repeat

2-46

1
X

ORA

ORB

XXXX
XXXX
XXXX
XXXX

XXXX
XXXX
XXXX
XXXX

'no register decrement

Figure 15. Repeat on Stack

2-47

Repeat Until CC = H
To Continue and push the microprogram counter onto the stack (Push), INC and CC
must be forced high one cycle ahead for pipelining.
To Repeat Until CC = H (Instruction 12), use a BR S instruction with CC = Land
CONT/RPT: POP instruction with CC = H. To avoid a ZERO = H condition, registers
are not decremented (See Table 6 for possible register operations). CC and INC are
programmed high iii Instruction 12 to set up the Continue in Instruction 11. A
consequence of this is that the instruction following 1 3 cannot be conditional.
fJ)

2

-...I

Address

»
("")

(Set-up)
10
11
12

~

-t

00
00
~

00

Instruction
Continue/Push
Continue
BR Stack else
Continue

MUX2-MUXO 52-SO R2-RO OSEL CC INC
XXX
110
110

XXX
100
111

xxx
XXX
XXX

X
X
0

010

010

000

X

1
t

ORA

ORB

XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

t Selected from external status

Loop Until Zero
To Continue and push the microprogram counter onto the stack (Push), INC and CC
are forced high one cycle ahead for pipelining. Register A is loaded with the loop counter
using a Load A instruction from Table 6.
To decrement the loop count, a decrement register A and hold register B instruction
from Table 6 is used. To Repeat Else Continue and Pop (decrement the stack pointer),
an instruction from Table 7 with BR S in the ZERO = L column and CONT/RPT: POP
in the ZERO = H column is used. CC is programmed low in Instruction 11 to
force the ZERO test in Instruction 12; it is programmed high in Instruction 12 to set
up the Continue in Instruction 11.
Address
(Set-up)
10
11
12

2-48

Instruction
Continue/Push
Continue/Load
Reg A
Decrement Reg A;
BR 5 else
Continue: Pop

MUX2-MUXO 52-SO R2-RO OSEL CC INC
XXX
110

XXX
100

XXX
XXX

X
0

110

111

010

0

000

010

001

ORA

ORB

XXXX XXXX
XXXX XXXX
0

XXXX XXXX

XXXX XXXX

00

.-

00
00

IU


~

CO

Address
(Set-up)
10

Instruction
Call A else
Continue

MUX2-MUXO 52-SO R2-RO OSEL CC' INC
XXX

XXX

XXX

X

t

110

101

000

X

X

ORA

ORB

XXXX XXXX
X

0020

XXXX

t Selacted from external status

Two-Way Jump to Subroutine
To perform a Two-Way Call to Subroutine at address 20 or address 30, this example
uses an instruction from Table 8 with CALL A in the CC = L column and CALL B
in the CC = H column. In this example, CC is generated by external status during
the preceding (set-up) instruction. INC is programmed high in the preceding instruction
to set up the Push. To avoid a ZERO = H condition, registers should not be decremented
during Instruction 10.
Address
(Set-up)
23

Instruction
Call A else
Call B

t Selected from external status

2-52

MUX2-MUXO 52-SO R2-RO OSEL

CC

XXX

XXX

XXX

X

t

100

110

000

X

X

INC

ORA

ORB

XXXX XXXX
X

0020

0030

ex>

....

ex>
ex>

.....

u

«
o::t
,.....
Z

Figure 19. Jump to Subroutine

(J)

*no register decrement

Figure 20. Conditional Jump to Subroutine

• no register decrement

Figure 21. Two-Way Jump to Subroutine

2-53

Return from Subroutine
To Return from a subroutine, this example uses an instruction from Table 10 with RET
in the CC = L column. CC is programmed low in the previous instruction. To
avoid a ZERO = H condition, registers are not decremented during Instruction 23.

en
2

Address

Instruction

(Set-up)
23

Return

MUX2-MUXO S2-S0 R2-RO OSEL
XXX
010

xxx
011

XXX
000

CC

INC

ORA

ORB

x

o

X

X

X
X

XXXX
XXXX

XXXX
XXXX

Conditional Return from Subroutine

~ To conditionally Return from a Subroutine, this example uses an instruction from
:; Table 10 with RET in the CC = L column and CONT/RPT in the CC = H column.
n CC is selected from external status in the previous instruction. To avoid a ZERO = H
~ condition, registers are not decremented during Instruction 23.

CO
~

CO

Address
(Set-up)
23

Instruction

MUX2-MUXO S2-S0 R2-RO QSEL

Return else
Continue

CC

XXX

XXX

XXX

X

t

010

011

000

X

X

INC

ORA

ORB

XXX X XXX X
X

XXXX

XXXX

t Selected from external status

Clear Pointers
To Continue (Instruction 10), INC must be high; CC must be programmed high in the
previous instruction. To Clear the Stack and Read Pointers and Branch to address 20
(instruction 11), CC is programmed low in instruction 10 to set up the Branch. To avoid
a ZERO = H condition, registers are not decremented during Instruction 11.
Address
(Set-up)
10
11

Instruction
Continue
BR A and Clear
SP/RP

MUX2-MUXO S2-S0 R2-RO OSEL CC INC ORA
ORB
XXX
XXX
X
XXXX XXXX
XXX
110
111
XXX
X 0020 XXXX
0
0
110

001

000

X

X

X

XXXX XXXX

Reset
To Reset the' ACT8818, pull the S2-S0 pins low. This clears the stack and read pointers
and places the Y bus into a low state.
Address

Instruction

10

Reset

2-54

MUX2-MUXO S2-S0 R2-RO OSEL CC INC
XXX

000

XXX

X

X

X

ORA

ORB

XXXX XXXX

00

.00
00

l-

e,)



C')

-I

00
00
W
N

3-2

SN74ACT8832
CMOS 32·8it Registered ALU
•

50-ns Cycle Time

•

low-Power EPICTM CMOS

•

Three-Port 1/0 Architecture

•

64-Word by 36-Bit Register File

•

Simultaneous ALU and Register Operations

•

Configurable as Quad 8-Bit or Dual 16-Bit Single
Instruction, Multiple Data Machine

•

Parity Generation/Checking
The SN74ACT8832 is a 32-bit registered ALU that can operate at 20 MHz and
20 MIPS (million instructions per second), Most instructions can be performed
in a single cycle. The' ACT8832 was designed for applications that require highspeed logical, arithmetic, and shift operations and bit/byte manipulations.
The' ACT8832 can act as host CPU or can accelerate a host microprocessor.
In high-performance graphics systems, the 'ACT8832 generates display-list
memory addresses and controls the display buffer. In I/O controller applications,
the 'ACT8832 performs high-speed comparisons to initialize and end data
transfers.
A three-operand, 64-word by 36-bit register file allows the' ACT8832 to create
an instruction and store the previous result in a single cycle.

EPIC is a trademark of Texas Instruments Incorporated.

3-3

en
2

-...J
~

»
(")
-I
00
00
W
N

3-4

Contents
Page
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Understanding Microprogrammed Architecture ......... .
'ACT8832 Registered ALU ....................... .
Support Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Design Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systems Expertise . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
'ACT8832 Pin Descriptions ....................... .
'ACT8832 Specification Tables .................... .

3-13
3-13
3-13
3-14
3-15
3-15
3-16
3-25

'ACT8832 Registered ALU ...........................
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Architectural Elements ......................
Three-Port Register File ..................
Rand S Multiplexers ....................
Data Input and Output Ports ..............
ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ALU and MQ Shifters ...................
Bidirectional Serial I/O Pins ...............
MQ Register ..........................
Conditional Shift Pin ....................
Master/Slave Comparator ................
Divide/BCD Flip-Flops ...................
Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Input Data Parity Check .................
Test Pins ............................
Instruction Set Overview ........................
Arithmetic/Logic Instructions with Shifts .........
Other Arithmetic Instructions .................
Data Conversion Instructions ..................
Bit and Byte Instructions .....................
Other Instructions ..........................
Configuration Options .......................
Masked 32-Bit Operation .................
Shift Instructions ......................
Bit and Byte Instructions .................
Status Selection . . . . . . . . . . . . . . . . . . . . . . .

3-28
3-28
3-29
3-31
3-31
3-32
3-34
3-34
3-36
3-36
3-37
3-37
3-37
3-37
3-38
3-38
3-38
3-39
3-43
3-46
3-48
3-49
3-49
3-50
3-50
3-50
3-51
3-51

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

3-5

N

~

CO

~

«

'lit

~

en

Contents (Continued)
Page

Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ADDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ANDNR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BCDBIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BINCNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BINCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BINEX3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BSUBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BSUBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BXOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DIVRF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DNORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DUMPFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EX3BC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EX3C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INCNR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INCNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOADFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOADMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MOSLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MOSLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MOSRA ................ '...................
MQSRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CJ)

2

"l>

,f::I.

(")

-I
CO
CO

W
N

3-6

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

3-52
3-53
3-55
3-57
3-59
3-61
3-63
3-65
3-67
3-70
3-72
3-74
3-76
3-78
3-80
3-82
3-84
3-85
3-88
3-90
3-92
3-94
3-96
3-99
3-101
3-103
3-105
3-107
3-109
3-111
3-113
3-115
3-117
3-119
3-121
3-123
3-125
3-127

Contents (Concluded)
Page
SDIVI .................................... .
SDIVIN ................................... .
SDIVIS ................................... .
SDIVIT ................................... .
SDIVO .................................... .
SDIVQF ................................... .
SEL ...................................... .
SETO ..................................... .
SET1 ..................................... .
SLA .....................................".
SLAD .................................... .
SLC ..................................... .
SLCD .................................... .
SMTC .................................... .
SMUll .................................... .
SMULT ................................... .
SNORM ................................... .
SRA ..................................... .
SRAD .................................... .
SRC ..................................... .
SRCD .................................... .
SRL ...................................... .
SRLD .................................... .
SUBI ..................................... .
SUBR .................................... .
SUBS .................................... .
TBO ...................................... .
TB1 ...................................... .
UDIVI .................................... .
UDIVIS ................................... .
UDIVIT ................................... .
UMULI ................................... .
XOR ..................................... .

3-129
3-131
3-133
3-135
3-137
3-139
3-141
3-143
3-145
3-147
3-149
3-151
3-153
3-155
3-157
3-159
3-161
3-163
3-165
3-167
3-169
3-171
3-173
3-175
3-177
3-179
3-181
3-183
3-185
3-187
3-189
3-191
3-193

3-7

N

('I)

00
00

....

u



II)

MICROINSTRUCTION BUS

-t

CO
CO
W
N

TESTED STATUS

STATUS

Figure 1. Microprogrammed System Block Diagram
The configuration of this processor enchances processing throughput in arithmetic
and radix conversion. Internal generation and testing of status results in fast processing
of division and multiplication algorithms. This decision logic is transparent to the user;
the reduced overhead assures shorter microprograms, reduced hardware complexity,
and shorter software development time.

Support Tools
Texas Instruments has designed a family of low-cost, real-time evaluation modules
(EVM) to aid with initial hardware and microcode design. Each EVM is a small selfcontained system which provides a convenient means to test and debug simple
microcode, allowing software and hardware evaluation of components and their
operation.
At present, the 74AS-EVM-8 Bit-Slice Evaluation Module has been completed, and
16- and 32-bit EVMs are in advanced stages of development. EVMs and support tools
for other devices in the' ACT8800 family are also planned for future development.

3-14

Design Support
Tl's '8832 32-bit registered ALU is supported by a variety of tools developed to aid
in design evaluation and verification. These tools will streamline all stages of the design
process, from assessing the operation and performance of the '8832 to evaluating
a total system application. The tools include a functional model, behavioral model,
and microcode development software and hardware. Section 8 of this manual provides
specific information on the design tools supporting TI's SN74ACT8800 Family.

Systems Expertise
Texas Instruments VLSI Logic applications group is available to help designers analyze
Tl's high-performance VLSI products, such as the '8832 32-bit registered ALU. The
group works directly with designers to provide ready answers to device-related
questions and also prepares a variety of applications documentation.
The group may be reached in Dallas, at (214) 997-3970.

3-15

, ACT8832 Pin Descriptions
Pin descriptions and grid allocations for the' ACT8832 are given on the following pages.
GB . .. PACKAGE
(TOP VIEW)

2
A
B
C
D

en
2

......
.a:=a.

»
n
-t

00
00
W
N

E
F

G
H

J
K

L
M
N
P

R
S
T

• •
• ••
• •
• •
• •
• •
• •
• •
• •
• •
• •
• •
• •
• •
• •
• •
• •

3

4

5

6

7

8

9

10 11

12 13 14 15 16 17

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

•
•
•
•

Figure 2. SN74ACT8832 . .. GB Package

3-16

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

...
32-BIT
REGISTERED
ALU
WRITE EN

[......,

CLK

CLK

INPUT
SELECT

CARRY IN

r:
SSF

RF
OPERAND
SELECT

EBO-EB1
S100-S103

REGISTER
FILE

DA31-DAO

ALU

I

"- ALU/MO
SPECIAL
SHIFTER
SHIFT
FUNCTION

I ·
·
··
I ·
·

CONFIGURA TlON

CF1

MODE

CF2

SELECT

AO

B PORTIO
READ·
ADDRESS •
SelECT 5

BO

WRITE 0
ADDRESS

~ MO REGISTER
ALU SHIFTER

I

SElMO

DA
PORT

PARITY
I/O

I

OUTPUT

A5

B5

co

:

SelECT 5

I

TEST PINS

TPO-TP1

SELRF1-SELRFO

A PORT 0
READ·
ADDRESS •
SELECT 5

"- SIO EN
CFO

WE3-WEO
RFCLK

CLK

DB
PORT

C5
PAO

N

PA1

(V)

PA3

00
00

PBO

U

PA2

....
«

PB1

~

PB2

'"

Z

PB3

SELECT

CJ)
0

10
11

PORi

12
INSTRUCTIONS

13
14
15

PARITY
STATUS

16
17

7

OEA

......

OEB

"-

OEYO-OEY3

......

OES

......

DAO

DA31

I

YO-Y31

EN

STATUS

,

·· ··· ~
·
0

31

PY1
PY2
PY3

DA BUS

PERRA

DB BUS

PERRB

Y BUS
MASTER/SLAVE
COMPARATOR

PERRY

DAO-DA31
DBO-DB31

PYO

MSERR

SIGN

N

CARRY-OUT

C

STATUS

ZERO
OVERFLOW
BYTE OVERFlOW

OVR
BY03-BYOO

r

~ ··· ···
0

31

~ ·· ··
· ·
0

IINSTRUCTlf)

31

DBO

DB31
YO

Y31

v

Figure 3. SN74ACT8832 . .. Logic Symbol
3-17

Table 1. SN74ACT8832 Pin Grid Allocation
PIN

CJ)

2

"»
~

o

-t

00
00
CAl
N

NO.
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
B16
B17
C1

3-18

NAME

Y7
Y13
Y15
BYOF1
5103
5102
IE5101
IE5100
5100
N
OE5
55F
Y18
Y20
Y23
Y24
Y25
Y6
BYOFO
Y10
Y12
PY1
IE5103
IE5102
5101
Z

OVR
M5ERR
Y16
Y19
Y21
PY2
Y26
Y29
Y2

NO.
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
C12
C13
C14
C15
C16
C17
01
02
03
04
05
06
07
08
09
010
011
012
013
014
015
016
017
E1
E2

PIN
NAME

Y5
OEYO
Y9
Y11
Y14
OEY1
GNO
VCC
C
PERRY
Y17
Y22
OEY2
Y28
PY3
BYOF3
CF1
Y1
Y3
PYO
Y8
GNO
GNO
GNO
VCC
GNO
GNO
GNO
BYOF2
Y27
Y31
TP1
10
5ELMa
CFO

PIN

NO.
E3
E4
E14
E15
E16
E17
F1
F2
F3
F4
F14
F15
F16
F17
G1
G2
G3
G4
G14
G15
G16
G17
H1
H2
H3
H4
H14
H15
H16
H17
J1
J2
J3
J4
J14

NAME

YO
Y4
Y30
TPO
12
13
EB1
Cn
CLK
CF2
OEY3
11
14
16
OBO
EA
EBO
GNO
GNO
15
17
PA3
OB2
OB1
VCC
GNO
GNO
VCC
OA31
OA30
OB3
OB4
OB5
VCC
VCC

PIN

NO.
J15
J16
J17
K1
K2
K3
K4
K14
K15
K16
K17
L1
L2
L3
L4
L14
L15
L16
L17
M1
M2
M3
M4
M14
M15
M16
M17
N1
N2
N3
N4
N14
N15
N16
N17

NAME

OA28
OA27
OA29
OB6
OB7
OAO
GNO
GNO
OA24
OA25
OA26
PBO
OA2
VCC
GNO
GNO
VCC
OB30
PB3
OA1
OA4
OA7
GNO
PA2
OB26
OB28
OB31
OA3
OA6
OB9
OB13
OA19
OA23
OB25
OB29

PIN

NO.
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
P16
P17
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
R16
R17

NAME

OA5
OB8
OB12
OA9
OA15
A5
A1
VCC
GNO
C4
PERRB
GNO
OB22
OA16
OA18
OA22
OB27
PAO
OB11
PB1
OA11
PA1
A4
AO
WE2
VCC
B1
C2
OEB
OB18
OB21
PB2
OA20
OB24

PIN

NO.
51
52
53
54
55
56
57
58
59
510
511
512
513
514
515
516
517
T1
T2
T3
T4
T5
T6
T7

T8
T9
T10
T11
T12
T13
T14
T15
T16
T17

NAME

OB10
OB15
OA10
OA13
PERRA
A3
WEO
WE3
RFCLK
B4
B2
C3
CO
OB17
OB20
OB23
PA21
OB14
OA8
OA12
OA14
OEA
A2
WE1
5ELRF1
5ELRFO
B5
B3
BO
C5
C1
OB16
OB19
OA17

Table 2. SN74ACT8832 Pin Description
PIN
NAME

NO.

AO

R7

A1

P7

A2

T6

A3

56

A4

R6

A5

P6

BO

T12

B1

R10

1/0

DESCRIPTION

I

Register file A port read address select

I

Register file B port read address select

B2

511

B3

T11

B4

510

N
M

B5

T10

00
00

BYOFO

B2

BYOF1

A4

BYOF2

D13

BYOF3

C17

C

C10

CO

513

C1

T14

C2

R11

C3

512

C4

P10

C5

T13

CFO

E2

CF1

D1

CF2

F4

l-

0

5tatus signal representing carry out condition

I

Register file write address select

F2

I

AlU carry input

F3

I

Clocks synchronous registers on positive edge

DAO

K3
M1
l2

DA3

N1

DA4

M2

DA5

P1

DA6

N2

DA7

M3

DA8

T2

DA9

P4

I/O

"z

en

16-bit. or four 8-bit AlU's

Cn

DA2

~

Configuration mode select. single 32-bit. two

ClK
DA1



(")

-I
CO
CO
W

N

NAME

NO.

YO
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
Y16
Y17
Y18
Y19
Y20
Y21
Y22
Y23
Y24
Y25
Y26
Y27
Y28
Y29
Y30
Y31

E3
02
C1
03
E4
C2
B1
A1
05
C4
B3
C5
B4
A2
C6
A3
B12
C12
A13
B13
A14
B14
C13
A15
A16
A17
B16
014
C15
B17
E14
015
B9

Z

3-24

110

1/0

0

DESCRIPTION

Y port data bus

Output status signal represents zero condition

, ACT8832 Specification Tables
absolute maximum ratings over operating free-air temperature range
(unless otherwise noted) t
Supply voltage, vee. . . . . . . . . . . . . . . . . . . . . . . . . . . .. -0.5 V to 6 V
Input clamp current, 11K (VI < 0 or VI > Vee) . . . . . . . . . . . . .. ± 20 mA
Output clamp current, 10K (VO < 0 or Vo > Vee) .......... ± 50 mA
Continuous output current, 10 (VO = 0 to Vee) . . . . . . . . . . . .. ± 50 mA
Continuous current through Vee or GND pins. . . . . . . . . . . . .. ± 100 mA
Operating free-air temperature range. . . . . . . . . . . . . . . . . .. ooe to 70 0 e
Storage temperature range ............... . . . . . .. - 65 °e to 150 0 e
tStresses beyond those listed under "absolute maximum ratings" may cause permanent damage to the device.
These are stress ratings only and functional operation of the device at these or any other conditions beyond
those indicated under "recommended operating conditions" is not implied. Exposure to absolute-maxi mumrated conditions for extended periods may affect device reliability.

Table 3. Recommended Operating Conditions
PARAMETER
Vee Supply voltage
VIH High-level input voltage
VIL

Low-level input voltage

IOH

High-level output current

IOL

Low-level output current

VI

Input voltage

Output voltage
Vo
dt/dv Input transition rise or fall rate
TA

Operating free-air temperature

MIN

NOM

4.5
2
0

5.0

0
0
0
0

MAX

UNIT

5.5

V

Vee

V

0.8
-8
8

mA

Vee

V

Vee

15
70

V
mA
V
ns/V
°e

3-25

N
M
00
00

....

u



~

,

SI03-SIOO

T _\.

55F

I

N

PARITY

GENERATE

",:::E

& 'l

..

~,.

I

I

,

pya-pya

17-10
CF2-CFO

~'8

4

iESI03-IESloa

Oil

GND

I

4

VCC

,2

/'

9 I qJ

4

TP1-TPO

SHIFTER

...I

DIVIDE'
BCD

ClK

I

MQ
REGISTER

32

~

SELMa

t:J
32

Y31·YO

I

MASTERI
SLAVE
COMPARE

t

I

MSERR

Figure 4. 'ACT8832 32-Bit Registered ALU

3-30

4

~3

7 110

I

1

to

4
4

I

I

T

PARITY
COMPARE

EB1-ESO

I

~

1:

o831-0BO

32

I

k~ ~ ~ J'
32

t

PERRO

OEB

2

)-

,

PERRY

'f
.......

r-~

RFCLK

P03-POO

I

"" "o~ 1 .

3.

I

CHECK

1,

r< 1

ALU
/
SHIFTER

I

Co\)

f

L-i

PARITY

C5-CO
85-80

AlU

(")

-4

4

I

32

z
....,

•

I

1 '1
'-J

OA31-DAO

4

,

1

32

,

"

5
T
A
T
U
5

,

,

SELRF1SELRFO

36

36

2

WE3-WEO
C5-CO
A5-AO

PA3-PAO

REGISTER
FILE
64 X 36

BS-BO
RFCLK

4

4

PB3-PBO

32

EA

2

EB1-EBO

DA31-DAO
DB31-DBO

Cn

N

('\')

CO
CO
~

Co)



SELRF1

SELRFO

0

0

-t

0

1

External DB input

1

0

V-output MUX

1

1

External Y port

~

(')

CO
CO
W
N

SOURCE
External DA input

Rand S Multiplexers
ALU inputs are selected by the Rand S multiplexers. Controls which affect operand
selection for instructions other than those using constants or masks are shown in
Table 9.
Table 9. ALU Source Operand Selects

3-32

R-BUS

S-BUS

OPERAND

OPERAND

RESULT

SELECT

SELECT

DESTINATION

EA

EB1-EBO

-SOURCE OPERAND

0

R bus

-Register file addressed by A5-AO

1

R bus

-DA port

00

S bus

-Register file addressed by B5-BO

10

S bus

-DB port

X 1

5 bus

-MO register

Table 10. Destination Operand Select/Enables
REGISTER
FILE
WRITE
ENABLE
WE

Y BUS
OUTPUT
ENABLE
OEY

FILE

SELECT
MOSEL

0
0

0

0
0

0
0

0

0
0
0

1

X

X

X

X

X

1

REGISTER

YMUS

DA

DB

PORT

PORT

OUTPUT OUTPUT

SELECT
RFSEL 1-RFSELO

ENABLE

ENABLE

OEA

OEB

----

SOURCE

X
X

Y/PY
y/py

ALU shifter/parity generate

X

0
0

Y/PY, RF

ALU shifter/parity generate

Y/PY, RF

MQ register/parity generate

RF

External Y/PY

RF

External DA/PA

X

RF

External DB/PB

0

DA/PA

R bus register file output

DA/PA

Hi-Z

0

X

0
--

-

X

1
0
0

~-

RESULT
DESTINATION

---------

MQ register/parity generate

DB/PB

S bus register file output

DB/PB

Hi-Z

Co)

w
Co)

SN74ACT8832

Data Input and Output Ports
The DA and DB ports can be used to load the Sand/or R multiplexers from an external
source or to read S or R bus outputs from the register file. The Y port can be used
to load the register file and to output the next address selected by the Y output
multiplexer. Tables 9 and 10 describe the MUX and output controls which affect DA,
DB, and Y.

ALU
The ALU can perform seven arithmetic and six logical instruction's on the two 32-bit
operands selected by the Rand S multiplexers. It also supports multiplication, division,
normalization, bit and byte operations and data conversion, including excess-3 BCD
arithmetic. The' ACT8832 instruction set is summarized in Table 15.
(J)

The' ACT8832 can be configured to operate as a single 32-bit ALU, two 16-bit ALUs,

~

32-bit word formed by adding leading zeros to the 12 least significant bits of R bus

~ or four 8-bit ALUs (see Figures 6 and 7). It can also be configured to operate on a

l> data. This is useful in certain IBM relative addressing schemes.
(")
-I
CO
CO

W
N

4

SKrn~------~--------+---------~~---+----~

16

V31-V16

16

BVOF3

V15-VO

Figure 6. 16-Bit Configuration

3-34

Z. C. OVR. N

BVOF1

"16

16

,"JiJ
,I

5103-++-l..

n
s

T

QJ

A

IT

U
5

n
s

T

QJ

'i/" '----.g

n
S
T

A

A

T
U
5

T
U
5

4
4

5102

4

5101
5100

8

Y31-Y24

8

BYOF3

Y23-Y16

8

8

BYOF2

Y15-Y8

Figure 7. 8-Bit Configuration
w

W

0'1

SN74ACT8832

BYOF1

Y7-YO

f:J

Z, C, OVR, N

I.
BYOFO

OE5

Configuration modes are controlled by three CF inputs as shown in Table 11. These
signals also select the data from which status signals other than byte overflow will
be generated.
Table 11. Configuration Mode Selects
CONTROL INPUTS

CJ)

:2
-....I

MODE SELECTED

DATA FROM WHICH STATUS OTHER

CF2

CF1

CFO

0

0

0

Four a-bit

THAN BYOF WILL BE GENERATED
Byte 0

0

0

1

Four a-bit

Byte 1

0

1

0

Four a-bit

Byte 2

0

1

1

Four a-bit

Byte 3

1

0

0

Two 16-bit

Least significant 16-bit word
Most significant 1 6-bit word

1

0

1

Two 16-bit

1

1

0

One 32-bit

32-bit word

1

1

1

Masked 32-bit

32-bit word

~

»
n

-I ALU and MQ Shifters
CO

~
N

The ALU and MQ shifters are used in all of the shift, multiply, divide and normalize
functions. They can be used independently for single precision or concurrently for
double precision shifts. Shifts can be made conditional, using the Special Shift Function
(SSF) pin.

Bidirectional Serial lID Pins
Four bidirectional SID pins are provided to supply an end fill bit for certain shift
instructions. These pins may also be used to read bits that are shifted out of the ALU
or MQ shifters during certain instructions. Use of the SID pins as inputs or outputs
is summarized in Table 17.
The four pins allow separate control of end fill inputs in configurations other than 32-bit
mode (see Table 12 and Figure 4).
Table 12. Data Determining SID Input
SIGNAL

16-BIT MODE

a-BIT MODE

-

Byte 3

most significant word

Byte 2

SI01

-

-

Byte 1

SIOO

32-bit word

least significant word

Byte 0

SI03
SI02

3-36

CORRESPONDING WORD, PARTIAL WORD OR BYTE
32-BIT MODE

To increase system speed and reduce bus conflict, four SIO input enables
(lESI03-IESIOO) are provided. A low on these enables will override internal pull-up
resistor logic and force the corresponding SIO pins to the high impedance state
required before an input signal can appear on the signal line. If the SIO enables are not
used, this condition is generated internally in the chip. Use of the enables allow internal
decoding to be bypassed, resulting in faster speeds.
The IESIOs are defaulted to a high because of internal pull-up resistors. When an
SIO pin is used as an output, a low on its corresponding IESIO pin would force
SIO to a high impedance state. The output would then be lost, but the internal
operation of the chip would not be affected.

MQ Register
Data from the MQ shifter is written into the MQ register when a low-to-high transition
occurs on clock ClK. The register has specific functions in double precision shifts,
multiplication, division and data conversion algorithms and can also be used as a
temporary storage register. Data from the register file and the DA and DB buses can
be passed to the MQ register through the AlU.
The Y bus contains the output of the AlU shifter if SElMQ is low and the output of
the MQ register if SElMQ is high. If OEY is low, AlU or MQ shifter output will
be passed to the Y port; if OEY is high, the Y port becomes an input to the
feedback MUX.

Conditional Shift Pin
Conditional shifting algorithms may be implemented using the SSF pin under hardware
or firmware control. If the SSF pin is high or floating, the shifted AlU output will be
sent to the output buffers. If the SSF pin is pulled low externally, the AlU result will
be passed directly to the output buffers, and MQ shifts will be inhibited. Conditional
shifting is useful for scaling inputs in data arrays or in signal processing algorithms.

Master/Slave Comparator
A master/slave comparator is provided to compare data bytes from the Y output MUX
with data bytes on the external Y port when OEY is high. If the data are
not equal, a high signal is generated on the master slave error output pin (MSERR).
A similar comparator is provided for the Y parity bits.

Divide/BCD Flip-Flops
Internal multiply/divide flip-flops are used by certain multiply and divide instructions
to maintain status between instructions. Internal excess-3 BCD flip-flops preserve the
carry from each nibble in excess-3 BCD operations. The BCD flip-flops are affected
by all instructions except NOP and are cleared when a ClR instruction is executed.
The flip-flops can be loaded and read externally using instructions lOADFF and DUMPFF

3-37

C\I
M
CO
CO

I-

()


-I

W
N

3-40

SLC

Logical right single precision shift

Circular left single precision shift

Load MQ register
Pass ALU to Y

Table 15 .• ACT8832 Instruction Set (Continued)
GROUP 3 INSTRUCTIONS
INSTRUCTION BITS

17-10
(HEX)

MNEMONIC

08

SET1

18

SETO

Set bit 0

28

TB1

Test bit (one)
Test bit (zero)

FUNCTION
Set bit 1

38

TBO

48

ABS

58

SMTC

68

ADD I

Add immediate

78

SUBI

Subtract immediate

88

BADD

Byte add R to S

98

BSUBS

Byte subtract S from R

A8

BSUBR

Byte subtract R from S

B8

BINCS

Byte increment S

C8

BINCNS

08

BXOR

Byte XOR Rand S

E8

BAND

Byte AND Rand S

F8

BOR

Absolute value
Sign magnitude/two's complement

Byte increment negative S

Byte OR Rand S

3-41

Table 15. 'ACT8832 Instruction Set (Continued)
GROUP 4 INSTRUCTIONS
INSTRUCTION BITS

en

2
.;:.

.....

»

17-10
(HEX)

MNEMONIC

00
10
20
30
40
50
60
70
80
90

CRC

Cyclic redundancy character accumulation

SEL

Select S or R

FUNCTION

SNORM

Single length normalize

DNORM

Double length normalize

DIVRF
SDIVQF

Divide remainder fix
Signed divide quotient fix

SMUll

Signed multiply iterate

SMULT

Signed multiply terminate

SDIVIN

Signed divide initialize

SDIVIS

Signed divide start

AO

SDIVI

Signed divide iterate

("')

80

UDIVIS

Unsigned divide start

~

CO

UDIVI

Unsigned divide iterate

DO

UMULI

Unsigned multiply iterate

EO

SDIVIT

Signed divide terminate

FO

UDIVIT

Unsigned divide terminate

CO
CO
W
N

3-42

Table 15. 'ACT8832 Instruction Set (Continued)
GROUP 5 INSTRUCTIONS
INSTRUCTION BITS

17-10
(HEX)

MNEMONIC

OF

LOADFF

1F

CLR

Clear

2F

CLR

Clear

3F

CLR

Clear

4F

CLR

Clear

5F

DUMPFF

6F

CLR

7F

BCDBIN

BCD to binary

8F

EX3BC

Excess-3 byte correction
Excess-3 word correction

FUNCTION
Load divide/BCD flip-flops

Output divide/BCD flip-flops
Clear

9F

EX3C

AF

SDIVO

BF

CLR

Clear
Clear

Signed divide overflow test

CF

CLR

DF

BINEX3

EF

CLR

Clear

FF

NOP

No operation

Binary to excess-3

Group 1, a set of ALU arithmetic and logic operations, can be combined with the userselected shift operations in Group 2 in one instruction cycle. The other groups contain
instructions for bit and byte operations, division and multiplication, data conversion,
and other functions such as sorting, normalization and polynomial code accumulation.

Arithmetic/Logic Instructions with Shifts
The seven Group 1 arithmetic instructions operate on data from the Rand/or S
multiplexers and the carry-in. Carry-out is evaluated after ALU operation; other status
pins are evaluated after the accompanying shift operation, when applicable. Group 1
logic instructions do not use carry-in; carry-out is forced to zero.
Possible shift instructions are listed in Group 2. Fourteen single and double precision
shifts can be specified, or the ALU result can be passed unshifted to the MO register
or to the specified output destination by using the LOADMO or PASS instructions.
Table 16 lists shift definitions.
When using the shift registers for double precision operations, the least significant
half should be placed in the MO register and the most significant half in the ALU for
passage to the ALU shifter. An example of a double-precision shift using the ALU and
MO shifters is given in Figure 8.

3-43

SERIAL DATA
INPUT SIGNALS

SIOO_----,

Single Precision Logical Right Single Shift. 32·8it Configuration
SERIAL DATA
INPUT SIGNALS

SIOO..----.

Double Precision Logical Right Single Shift. 32·8it Configuration

Figure 8. Shift Examples, 32·Bit Configuration
All Group 2 shifts can be made conditional using the conditional shift pin (SSF). If the
SSF pin is high or floating, the shifted ALU output will be sent to the output buffers,
MO register, or both. If the SSF pin is pulled low, the ALU result will be passed directly
to the output buffers and any MO shifts will be inhibited.
Table 16. Shift Definitions
SHIFT TYPE
Left

NOTES
Moves a bit one position towards the most significant bit

Right

Moves a bit one position towards the least significant bit

Arithmetic right

Retains the sign unless an overflow occurs, in which case, the
sign would be inverted

Arithmetic left

May lose the sign bit if an overflow occurs. Zero is filled into
the least significant bit unless the bit is set externally

Circular right

Fills the least significant bit in the most significant bit position

Circular left

Fills the most significant bit in the least significant bit position

Logical right

Fills a zero in the most significant bit position unless the bit

Logical left

Fills a zero in the least significant bit position unless the bit

is forced to one by placing a zero on an SID pin
is forced to one by placing a zero on an SID pin

3·44

The bidirectional SIO pins can be used to supply external end fill bits for certain Group 2
shift instructions. When SIO is high or floating, a zero is filled, otherwise a 1 is filled
Table 17 lists instructions that make use of the SIO inputs and identifies input and
output functions.
Table 17. Bidirectional SIO Pin Functions
INSTRUCTION
BITS 17-10

510
MNEMONIC

1/0

0*

SRA
SRAD

0
0

Shift out

1*
2*

SRL

I

Most significant bit

(HEX)

DATA

Shift out

3*

SRLD

I

Most significant bit

4*

SLA

I

Least significant bit

5*

SLAD

I

Least significant bit

6*

SLC
SLCD

8*

SRC

9*

SRCD

A*

MOSRA

0
0
0
0
0

Shifted input to MO shifter

7*

Most significant bit

N
M
00
00
I-

U

Shifted input to MO shifter

«
~

Shifted input to ALU shifter

,....

Shifted input to ALU shifter

Z

Shift out

B*

MOSRL

I

C*

MOSLL

I

Least significant bit

D*

MOSLC

Shifted input to MO shifter
Least significant bit

00

CRC

0
0

20

SNORM

I

30

DNORM

I

Least significant bit

60

SMUll

ALUO

(/J

Internally generated end fill bit

70

SMULT

80

SDIVIN

90

SDIVIS

AO

SDIVI

BO

UDIVIS

CO

UDIVI

DO

UMULI

EO

SDIVT

FO

UDIVIT

0
0
0
0
0
0
0
0
0
0

7F

BCDBIN

I

Least significant bit

DF

BINEX3

0

Shifted input to MO register

ALUO
Internally generated end fill bit
Internally generated end fill bit
Internally generated end fill bit
Internally generated end fill bit
Internally generated end fill bit
Internal input
Internally generated end fill bit
Internally generated end fill bit

3-45

Other Arithmetic Instructions
The 'ACT8832 supports two immediate arithmetic operations. ADDI and SUBI
(Group 3) add or subtract a constimt between the values of 0 and 15 from an operand
on the S bus. The constant value is specified in bits A3-AO.
Twelve Group 4 instructions support serial division and multiplication. Signed, unsigned
and mixed multiplication are implemented using three instructions: SMUll, which
performs a signed times unsigned iteration; SMULT, which provides negative weighting
of the sign bit of a negative multiplier in signed multiplication; and UMULI, which
performs an unsigned multiplication iteration. Algorithms using these instructions are
given in Tables 18., 19, and 20. These include: signed multiplication, which performs
a two's complement multiplication; unsigned multiplication, which produces an
unsigned times unsigned product; and mixed multiplication which multiplies a signed
multiplicand by an unsigned multiplier to produce a signed result.

en

z

Table 18. Signed Multiplication Algorithm

"l>
~

OP

(')

CODE

-4

E4

LOADMQ

W
N

60
70

CO
CO

MNEMONIC

CLOCK

INPUT

INPUT

CYCLES

SPORT

R PORT

Multiplier

-

SMUll

1
N-1 t

Accumulator

Multiplicand

SMULT

1

Accumulator

Multiplicand

OUTPUT
YPORT
Multiplier
Partial product
Product (MSH) i

Table 19. Unsigned Multiplication Algorithm
OP
CODE

MNEMONIC

E4

LOADMQ

DO

UMULI

DO

UMULI

CLOCK

INPUT

INPUT

CYCLES

SPORT

R PORT

1
N-1 t
1

Multiplier
Accumulator
Accumulator

-

OUTPUT
Y PORT
Multiplier

Multiplicand

Partial product

Multiplicand

Product (MSH) i

Table 20. Mixed Multiplication Algorithm
OP
CODE

MNEMONIC

E4

LOADMQ

60
60

CLOCK

INPUT

INPUT

CYCLES

SPORT

R PORT

Multiplier

-

OUTPUT
YPORT
Multiplier

SMUll

1
N-1 t

Accumulator

Multiplicand

Partial product

SMUll

1

Accumulator

Multiplicand

Product (MSH) i

t N = 8 for quad 8-bit mode, 16 for dual 16-bit mode, 32 for 32-bit mode.
tThe least significant half of the product is in the MQ register.

3-46

Instructions that support division include start, iterate and terminate instructions for
unsigned division routines (UDIVIS, UDIVI and UDIVITI; initialize, start, iterate and
terminate instructions for signed division routines (SDIVIN, SDIVIS, SDIVI and SDIVITI;
and correction instructions for these routines (DIVRF and SDIVOFI. A Group 5
instruction, SDIVO, is available for optional overflow testing. Algorithms for signed
and unsigned division are given in Tables 21 and 22. These use a nonrestoring
technique to divide a 16 N-bit integer dividend by an 8 N-bit integer divisor to produce
an 8 N-bit integer quotient and remainder,. where N = 1 for quad 8-bit mode, N = 2
for dual 16-bit mode, and N = 4 for 32-bit mode.
Table 21. Signed Division Algorithm
OP
CODE

MNEMONIC

CLOCK

INPUT

CYCLES

SPORT
Dividend (LSH)

E4

LOADMQ

80

SDIVIN

AF

SDIVO

1
1
1

90

SDIVIS

AO

SDIVI

INPUT
R PORT

-

OUTPUT
Y PORT
Dividend (LSH)

Dividend (MSH)

Divisor

Remainder (N)

Remainder (N)

Divisor

Overflow Test

1

Remainder (N)

Divisor

Remainder (N)

N-2t

Remainder (N)

Divisor

Remainder (N)

N
M

en
en

IU

Result

EO

SDIVIT

Divisor

Remainder§

DIVRF

1
1

Remainder (N)

40

Remainder+

Divisor

Remainder'

50

SDIVQF

1

MQ register

Divisor

Quotient #

«
"d'

"Z

CIJ

tN = 8 for quad 8-bit mode, 16 for dual 16-bit mode, 32 for 32-bit mode.
tThe least significant half of the product is in the MO register.
§Unfixed
, Fixed (corrected)
#The quotient is stored in the MO register. Remainder can be output at the Y port or stored in
the register file accumulator.

Table 22. Unsigned Division Algorithm
OP
CODE

MNEMONIC

E4

LOADMQ

CLOCK

INPUT

CYCLES

SPORT

1

Dividend (LSH)

1

INPUT
R PORT
-

OUTPUT
Y PORT
Dividend (LSH)

Dividend (MSH)

Divisor

Remainder (N)

N-l t

Remainder (N)

Divisor

Remainder (N)

UDIVIT

1

Remainder (N)

Divisor

Remainder+

DIVRF

1

Remainder§

Divisor

Remainder§

BO

UDIVIS

CO

UDIVI

FO
40

tN = 8 in quad 8-bit mode, 16 in dual 16-bit mode, 32 in 32-bit mode
tUnfixed
.
§ Fixed Icorrected)

3-47

Data Conversion Instructions
Conversion of binary data to one's and two's complement can be implemented using
the INCNR instruction (Group 1). SMTC (Group 3) permits conversion from two's
complement representation to sign magnitude representation, or vice versa. Two's
complement numbers can be converted to their positive value, using ABS (Group 3).
SNORM and DNORM (Group 4) provide for normalization of signed, single- and doubleprecision data. The operand is placed in the MQ register and shifted toward the most
significant bit until the two most significant bits are of opposite value. Zeroes are shifted
into the least significant bit, provided 510 is high or floating. (A low on 510 will shift
a one into the least significant bit.) SNORM allows the number of shifts to be counted
and stored in one of the register files to provide the exponent.
(J)

2

......

Data stored in binary-coded decimal form can be converted to binary using BCD BIN
(Group 5). A routine for this conversion, given in Table 23, allows the user to convert
an N-digit BCD number to a 4N-bit binary number in 4N + 8 clock cycles .

~

:r>

Table 23. BCD to Binary Algorithm

C")

-4

CO
CO
W
N

OP

MNEMONIC

CODE

CLOCK

INPUT

INPUT

OUTPUT

CYCLES

SPORT

R PORT

DESTINATION

-

E4

LOADMQ

1

BCD operand

02

SUBR/MQSLC

1

Accumulator

Accumulator

Accumulator/MQ reg.

02

SUBR/MQSLC

1

Mask reg.

Mask reg.

Mask reg/MQ reg.

01

MQSLC

2

Don't care

Don't care

MQ reg.

68

ADDI (15)

1

Accumulator

Decimal 15

Mask reg.

Interim reg/MQ reg.

MQ reg.

REPEAT N-1 TIMES t
DA

AND/MQSLC

1

MQ reg.

Mask reg.

D1

ADD/MQSLC

1

Accumulator

Interim reg.

Interim reg/MQ reg.

7F

BCDBIN

1

Interim reg.

Interim res.

Accumulator/MQ reg.

7F

BCDBIN

1

Accumulator

Interim reg.

Accumulator/MQ reg.

1

MQ reg.

Mask reg.

Interim reg.

1

Accumulator

Interim reg.

Accumulator

END REPEAT
FA
D1

I

AND
ADD MQSLC

tN = Number of BCD digits

BINEX3, EX3BC, and EX3C assist binary to excess-3 conversion. Using BINEX3, an
N-bit binary number can be converted to an N/4- digit excess-3 number. For an
algorithm, see Table 24.

3-48

Table 24. BCD to Binary Algorithm
OP
CODE
E4
02
02

MNEMONIC

CLOCK

INPUT

INPUT

OUTPUT

CYCLES

SPORT

R PORT

DESTINATION

-

LOADMQ

1

Binary number

SUBR

1

Accumulator

Accumulator

Accumulator

MQ reg.

SET1 (33116

1

Accumulator

Mask (33116

Accumulator

REPEAT N TIMES t
OF

BINEX3

1

Accumulator

Accumulator

Accumulator/MQ reg

9F

EX3C

1

Accumulator

Internal data

Accumulator

ENO REPEAT
tN = Number of bits in binary number

N
~

Bit and Byte Instructions
Four Group 3 instructions allow the user to test or set selected bits within a byte.
SET1 and SETO force selected bits of a selected byte (or bytes) to one and zero,
respectively. TB1 and TBO test selected bits of a selected byte (or bytes) for ones
and zeros. The bits to be set or tested are specified by an 8-bit mask formed by the
concatentation of register file address inputs C3-CO and A3-AO. The register file
addressed by B5-BO is used as the destination operand for the set bit instructions.
Register writes are inhibited for test bit instructions. Bytes to be operated on are
selected by forcing SIOn low, where n represents the byte position and 0 represents
the least significant byte. A high on the zero output pin signifies that the test data
matches the mask; a low on the zero output indicates that the test has failed.
Individual bytes of data can also be manipulated using eight Group 3 byte
arithmetic/logic instructions. Bytes can be added, subtracted, incremented, ORed,
ANDed and exclusive ORed. Like the bit instructions, bytes are selected by forcing
SIOn low, but multiple bytes can be operated on only if they are adjacent to one another;
at least one byte must be nonselected.

Other Instructions
SEL (Group 4) selects one of the ALU's two operands, S or R, depending on the state
of the SSF pin. This instruction could be used in sort routines to select the larger or
smaller of two operands by performing a subtraction and sending the status result
to SSF. CRC (Group 4) is designed to verify serial binary data that has been transmitted
over a channel using a cyclic redundancy check code. An algorithm using this instruction
is given in Table 25.

3-49

~
(,)

~

~
Z

en

Table 25. CRC Algorithm
OP
CODE

MNEMONIC

CLOCK

INPUT

INPUT

OUTPUT

R PORT

DESTINATION

Polynomial g(x)

Poly reg.

1

SPORT
Vector c'(x)t

F6

·INCR

1

-

F2

SUBR

1

Accumulator

Accumulator

Accumulator

Accumulator

E4

LOADMQ

CYCLES

-

MQ reg.

REPEAT n/BN TIMESt

00

CRC

1

Accumulator

Poly reg.

E4

LOADMQ

1

Vector c'(x) t

-

MQ reg.

END REPEAT

en

tN = Number of bits in binary number
n = Length of the code vector

:2
-..J

t

CLR forces the ALU output to zero and clears the internal BCD flip-flops used in excess-3
BCD operations. NOP forces the ALU output to zero, but does not affect the flip-flops.

n

....

Configuration Options
00
00 The' ACT8832 can be configured to operate in 8-bit, 16-bit, or 32-bit modes, depending
eN
N on the setting of the configuration mode selects (CF2-CFO). Table 11 shows the control
inputs for the four operating modes. Selecting an operating configuration other than
32-bit mode affects ALU operation and status generation in several ways, depending
on the mode selected.

Masked 32-Bit Operation
Masked 32-bit operation is selected to reset to zero the 20 most significant bits of
the R Mux input. The 12 least significant bits are unaffected by the mask. Only Group
1 and Group 2 instructions can be used in this operating configuration. Status
generation is similar to unmasked 32-bit operating mode.

Shift Instructions
Shift instructions operate similarly in 8-bit, 16-bit, and 32-bit modes. The serial I/O
(SI03'-SI00') pins are used to select end-fill bits or to shift bits in or out, depending
on the operation being performed. Table 12 shows the SIO signals associated with
each byte or word in the different modes, and Table 17 indicates the specific function
performed by the SIO pins during shift, multiply, and divide operations.
Figures 9 and 10 present examples of logical right shifts in 16-bit and 8-bit
configurations.

3-50

SERIAL DATA
INPUT SIGNALS
SIOO-'~---------------------------------~

SI02-+--~L

Single Precision Logical Right Single Shift. 16-Bit Configuration
SERIAL DATA
INPUT SIGNALS
SIOO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,

Double Precision Logical Right Single Shift. 16-Bit Configuration

Figure 9. Shift Examples, 16-Bit Configuration
Bit and Byte Instructions
The' ACT8832 performs bit operations similarly in 8-bit, 16-bit, and 32-bit modes.
Masks are loaded into the R MUX on the A3-AO and C3-CO address inputs, and the
bytes to be masked are selected by pulling their 510' inputs low. Instructions which
set, reset, or test bits are explained later
Byte operations should be performed in 32-bit mode to get the necessary status
outputs. While byte overflow signals are provided for all four bytes (BYOF3-BYOFOI.
the other status signals (C, N, Z) are output only for the word selected with the
configuration control signals (CF2-CFO).
Status Selection
Status results (C, N, Z, and overflow) are internally generated for all words in all modes,
but only the overflow results (BYOF3-BYOFO) are available for all four bytes in 8-bit
mode or for both words in 16-bit mode. If a specific application requires that the four
status results are read for two or four words, it is possible to toggle the configuration

3-51

SERIAL DATA
INPUT SIGNALS
SIOO-.~-------------------------------------------------~
SI01~---------------------------------.
SI02~----------------~

,.-----.".,;----,

Single-Precision Logical Right Shift. 8-8it Configuration

SERIAL DATA
INPUT SIGNALS

SIOIo~--------------------------------------------------~
SI01~---------------------------------.
SI02~-----------------.

,.----rn;----,

en

SI03

Z

...,J
~

»

(")

-t

00
00

eN

N

Double-Precision Logical Right Shift. 8-8it Configuration

Figure 10. Shift Examples, 8-Bit Configuration
control signals (CF2-CFO) within the same clock cycle and read the additional status
results. This assumes that the necessary external hardware is provided to toggle
CF2-CFO and collect the status for the individual words before the next clock signal
is input.

Instruction Set
The' ACT8832 instruction set is presented in alphabetical order on the following pages.
The discussion of each instruction includes a functional description, list of possible
operands, data flow diagram, and notes on status and control bits affected by the
instruction. Microcoded examples are also shown.
Mnemonics and opcodes for instructions are given at the top of each page. Opcodes
for instructions in Groups 1 and 2 are four bits long and are combined into eight-bit
instructions which select combinations of arithmetic, logical, and shift operations.
Opcodes for the other instruction groups are all eight bits long.
An asterisk in the left side of the opcode box for a Group 1 instruction indicates that
a Group 2 opcode is needed to complete the instruction. An asterisk in the right side
of a box indicates that aGroup 1 opcode is required to combine with the Group 2
opcode in the left side of the box.

3-52

Absolute Value

ABS

I4 I8 I

FUNCTION
Computes the absolute value of two's complement data on the S bus.

DESCRIPTION
Two's complement data on the S bus is converted to its absolute value. The carry
must be set to one by the user for proper conversion. ABS causes S' + Cn to be
computed; the state of the sign bit determines whether S or S' + Cn will be selected
as the result. SSF is used to transmit the sign of S.
Available R Bus Source Operands
C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed

..
A3-AO
Mask

No

No

No

No

Available S Bus Source Operands
RF
(85-80)
Yes

D8-Port

MQ
Register

Yes

Yes

Available Destination Operands
RF

RF

(C5-CO) (85-80)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

Control/Data Signals
Signal

User
Programmable

Use

SSF

No

Inactive

SiO'O

No

Inactive

SI01

No

Inactive

SI02

No

Inactive

SI03

No

Inactive

Cn

Yes

Should be programmed high for proper conversion.

3-53

1418

Absolute Value

ABS

Status Signals
ZERO

N
OVR

1 if result = 0
1 if MSB (input) = 1
1 if input of most significant byte is 80 (Hex) and inputs (if any) in all
other bytes are 00 (Hex).

C=1ifS=0

EXAMPLES (assumes a 32-bit configuration)
Convert the two's complement number in register 1 to its positive value and store
the result in register 4.

en
2:
-...I
~

»

Instr

Oprd

Oprd

Code
17-10

Addr
A5-AO

Addr
B5-BO

01001000

XX XXXX

000001

Oprd Sel

Dest

EB1-

Addr

EA EBO
X

00

Destination Selects

WE3- SELRF1-

C5-CO

SELMQ

-WEO

SELRFO

000100

0

0000

10

X

X

n

~ Example 1: Assume register file 1 holds F6D81340 (Hex):
CO
Source

11110110110110000001001101000000

Is+- RF(1)

Destination

00001001 00100111 1110 1100 11000000

I

~

RF(4)

+- S + Cn

Example 2: Assume register file 1 holds 09D527CO (Hex):
Source

00001001110101010010011111000000

Is+- RF(1)

Destination

00001001 1101 0101 00100111 1100 0000

I RF(4) +- S

3-54

CF2-

OEY3

0eA DEB 0eY0 DES
xxxx

0

Cn

CFO

1

110

ADD

Add with Carry (R + S + Cn)

1

FUNCTION
Adds data on the Rand S buses to the carry-in.

DESCRIPTION
Data on the Rand S buses is added with carry. The sum appears at the ALU and MQ
shifters.
·The result of this instruction can be shifted in the same microcycle by specifying a shift instruction in the
upper nibble (17-14) of the instruction field. The result may also be passed without shift. Possible instructions
are listed in Table 15.

Available R Bus Source Operands

N

C3-CO
RF
A3-AO
(A5-AO) Immed

DA-Port

M

..

CX)
CX)
~

A3-AO

()

Mask
Yes

No

Yes

«c:t

No

I"'-

Z

Available S Bus Source Operands

CJ)

MQ
RF
DB-Port
(B5-BO)
Register
Yes

Yes

Yes

Available Destination Operands
RF

RF

(C5-CO) (B5-BO)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

Yes

Yes

3-55

Add with Carry (R + S + Cn)

1

ADD

Control/Data Signals
User

Signal

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

SIOO

No

Inactive

SI01

No

Inactive

SI02

No

Inactive

SI03

No

Inactive

Cn

Yes

Increments sum if set to one.

instruction field.

(f) Status Signals t

2

-.J

if result = 0

ZERO

~

l>

N

(")

OVR

-t

C

1 if MSB = 1
1 if signed arithmetic overflow
if carry-out

=

1

CO
CO tc is ALU carry out and is evaluated before shift operation. ZERO and N (negative) are evaluated
eN after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.
N
EXAMPLES (assumes a 32-bit configuration)
Add data in register 1 to data on the DB bus with. carry-in and pass the result to the
MQ register.
Instr

Oprd

Oprd

Code

Addr

Addr

17-10

A5-AO

B5·BO

1110 0001

00 0001

XX XXXX

Ioprd Sel
EB1-

Eli" EBO
a 10

Destination Selects

Dest
Addr

WE3- SELRF1-

C5·CO

SELMO

WEO

XX XXXX

a

1111

OEY3·

SELRFO OEA
10

CF2·

OEB

OEYO

OES

Cn

CFO

X

XXXX

a

a

110

X

Assume register file 1 holds 0802C618 (Hex and DB bus holds 1 E007530 (Hex):
Source

0000 1000 0000 0010 1100 0110 0001 1000

I R +- RF( 1)

Source

0001 1110 0000 0000 0111 0101 0011 0000

Is+- DB bus

Destination

0010 0110 0000 0011 0011 1011 0100 1000

MQ register

3-56

+-

R

+ S + Cn

ADDI

I6I8 I

ADD Immediate

FUNCTION
Adds four-bit immediate data on A3-AO with carry to S-bus data.

DESCRIPTION
Immediate data in the range 0 to 15, supplied by the user at A3-AO, is added with
carry to S.
Available R Bus Source Operands (Constant)
C3-CO
RF

A3-AO

..

DA-Port

(A5-AO) Immed

N
M
00
00

Mask
No

Yes

No

No

~

U

Available S Bus Source Operands



n

Logically AND the contents of register 3 and register 5 and store the result
in register 5.
.
Instr
Code
17-10

Op,d
Add,

Op,d
Add,

Op,d Sel

AS-AO

Bq-BO

EA EBO

11111010

000011

000101

EB1·
0

00

Dest
Add,

Destination Selects

WEj. SELRF1-

CS-CO

SELMQ

WED

000101

0

0000

SELRFO
10

CF2-

OEY3
OEA

X

0eB 0eY0 DeS
X

XXX X

0

Cn

CFO

X

110

~

~

Assume register file 3 holds F617D840 (Hex) and register file 5 holds 15F6D842 (Hex):

Co\)

Source

111101100001 0111 1101 100001000000

I

R - RF(3)

Source

0001 0101 1111 01101101 100001000010

I

S - RF(5)

Destination

0001 01000001 01101101 1000 0100 0000

I

RF(5) - RAND S

N

3-60

ANDNR

Logic AND Negative R (R' AND S)

*

I

E

FUNCTION
Computes the logical expression S AND NOT R.

DESCRIPTION
The logical expression S AND NOT R is computed. The result appears at the ALU and
MQ shifters.
"The result of this instruction can be shifted in the same microcycle by specifying a shift instruction in the
upper nibble 07-14) of the instruction field. The result may also be passed without shift. Possible instructions
are listed in Table 15.
Available R Bus Source Operands
C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed
Yes

No

N

('I')

..
A3-AO

CO
CO

Mask

(.)

Yes

~

«q-

No

I"'"

Z

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port

MQ
Register

Yes

Yes

Available Destination Operands
RF

RF

(C5-CO) (B5-BO)
Yes

en

No

Shift Operations

Y-Port

ALU

MQ

Yes

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

5100

No

Inactive

instruction field.
5101

No

Inactive

5102

No

Inactive

5103

No

Inactive

Cn

No

Inactive

3-61

Logic AND Negative H (H' AND S)

ANONH

Status Signals t
ZERO
I

= 1 if result = 0
N = 0
OVR = 0
C = 0

t C is ALU carry out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Iflvert the contents of register 3, logically AND the result with data in register 5
and store the result in register 10.

en
2

-..J

.J:Io

»
n
-I

Inst,
Code
17-10
11111110

Op,d
Add,
A5-AO
000011

Op,d
Add,
B5-BO
000101

Op,d Sel
Dest
Destination Selects
EB1Addr
SELRF1EAEBO
C5-CO
SELMQ WEb SELRFO CiEA OEB
10
X
0 00
001010
0
0000
X

wea-

omOEYO

DES

XXXX

0

CF2Cn CFO
X 110

CO
CO Assume register file 3 holds 1 5F6D840 (Hex) and register file 5 hold F61 7D842 (Hex):
Co\)

N
Source

0001010111110110 110110oo010Qoooo

I R-

Source

1111 01100001 0111 1101 100001000010

I

S - RF(5)

Destination

11100010000000010000000000000010

I

RF(10) - RAND S

3-62

FlF(3)

BADD

Byte Add R to S with Carry

8

8

FUNCTION
Adds 8 with carry-in to a selected byte or selected adjacent bytes of R.

DESCRIPTION
8103-8100 are used to select bytes of R to be added to the corresponding bytes of
8. A byte of R with 810 programmed low is selected for the computation of
R + 8 + en. If the 810 signal for a byte of R is left high, the corresponding byte
of 8 is passed unaltered. Multiple bytes can be selected only if they are adjacent to
one another. At least one byte must be nonselected.
Available R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

Yes

No

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port

MQ
Register

Yes

Yes

Available Destination Operands
RF

RF

(C5-CO) (B5-BO)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

Control/Data Signals
Signal

User

Use

Programmable
Inactive

SSF

No

5100

Yes

Byte select

5101

Yes

Byte select

5102

Yes

Byte select

5103

Yes

Byte select

Cn

Yes

Propagates through nonselected bytes; increments
selected byte(s) if programmed high.

3-63

18 18

BADD

Byte Add R to S with Carry

Status Signals
ZERO

N

1 if result (selected bytes) = 0

o
if signed arithmetic overflow (selected bytes)

OVR

if carry-out (most significant selected byte) = 1

C

EXAMPLE (assumes a 32-bit configuration)
Add bytes 1 and 2 of register 3 with carry to the contents of register 1 and store the
result in register 11.

en

z

-..J
~

l>

n

Instr

Oprd

Oprd

Oprd Sel

Dest

Code

Addr

Addr

EB1-

Addr

17-10

AS-AO

BS-BO

0100 1000 000011

000001

Eii EBO
0

00

Destination Selects

WE3-

SELRF1-

CS-CO

SELMa

WEo

SELRFO

001011

0

0000

10

om-

CF2-

0Eii Oeii OEYO 5Es
X

X

XXXX

0

Cn CFO
1

Si03- iESi03'SiOo IESiOO

110 1001

0000

Assume register file 3 holds 2C018181 (Hex) and registerfile 1 holds 7A8FBE3E (Hex):
Source

0010110000000001 10000001 10000001

I Rn'" RF(3)n

Source

011110101000 11111011111000111110

I

ALU

101001101001 0001 0100 000011000000

I Fn'" Rn + Sn + Cn

Destination

01111010100100010100 1111 00111110

I

-I
CO
CO

eN
N

tF = ALU result
n = nth byte
Register file 11 gets F if byte selected. S if byte not selected.

3-64

Sn'" RF(l)n

RF(11)n'" Fn or Sn t

Byte AND RAND S (Byte Logical AND RAND S)

BAND

IEI8 I

FUNCTION
Evaluates the logical AND of selected bytes of R-bus and S-bus data.

DESCRIPTION
Bytes with their corresponding SIO signals programmed low compute RAND S. Bytes
with SIO signals programmed high, pass S unaltered. Multiple bytes can be selected
only if they are adjacent to one another. At least one byte must be nonselected.
Available R Bus Source Operands

C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed
Yes

No

..
A3-AO

N

Mask

CO
CO

Yes

C")

No

I-

o

oCt

Available S Bus Source Operands

,...
¢

RF
MQ
DB-Port
(B5-BO)
Register
Yes

Yes

Yes

Available Destination Operands

RF
RF
(C5-CO) (B5-BO)
Yes

z

en

No

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

Control/Data Signals

Signal

User

Use

Programmable

SSF

No

Forced low

SIOO

Yes

Byte select

SIOl

Yes

Byte select

SI02

Yes

Byte select

SI03

Yes

Byte select

Cn

No

Inactive

3-65

IEI8

Byte AND RAND S (Byte Logical AND RAND S)

BAND

Status Signals
ZERO
N
OVR

C

1 if result (selected bytes) =0

0
0
0

EXAMPLE (assumes a 32-bit configuration)
Logically AND bytes 1 and 2 of register 3 with input on the DB bus; store the result
in register 3.
,
Instr

Oprd

Oprd

Oprd Sel

best

C/)

Code

Addr

Addr

EB1-

Addr

Z

17-10

AS-AD

BS-BO

"-oJ

11101000 000011

XX XXXX

t\ EBO
0

10

Destination Selects

C5-CO

SELMa

WE3WEo

000011

0

0000

SELRF 110

SELRFO

0mX

X

~

»
~

CF2-

i5EA 0Eii 6EYo DEs

xxxx

Cn CFO

0

X

Si03- iESiOOSiOo IEsiOo

110 1001

0000

Assume register file 3 holds 398FBEBE (Hex) and input on the DB port is 4290BFBF
(Hex):

00
00

I Rn -

Source

001110011000 11111011111010111110

Source

01000010 1001 0000 1011 1111 1011 1111

Sn - DBn

Destination

01000010 10000000 1011 1110 1011 1111

RF(3)n - Fn or Sn t

W

RF(3)n

N

tF = ALU result
n = nth byte
Register file 3 gets F if byte selected, S if byte not selected.

3-66

BCDBIN

BCD to Binary

1

F

FUNCTION
Converts a BCD number to binary.

DESCRIPTION
This instruction allows the user to convert an N-digit BCD number to a 4N-bit binary
number in 4(N-1) plus 8 clocks. The instruction sums the Rand S buses with carry.
A one-bit arithmetic left shift is performed on the ALU output. A zero is filled into bit 0
of the least significant byte unless SIOO is set low, which would force bit 0 to one.
Bit 7 of the most significant byte is dropped.
Simultaneously, the contents of the MQ register are rotated one bit to the left. Bit
7 of the most significant byte is rotated to bit 0 of the least significant byte.
N
M
00
00

Recommended R Bus Source Operands

IU

C3-CO
A3-AO
RF
(A5-AO) Immed

DA-Port

..


(")
-t

N
OVR

C

00
00
Co\)

N

Should be programmed low for proper conversion.

1
1
1
1

if result = 0
if MSB = 1
if signed arithmetic overflow
if carry-out = 1

ALGORITHM
The following code converts an N-digit BCD number to a 4N-bit binary number in 4(N-1 )
plus 8 clocks. This is one possible user generated algorithm. It employs the standard
conversion formula for a BCD number (shown here for 32 bits):
ABCD = [(A

x 10 + B) x 10 + C] x 10 + D.

The conversion begins with the most significant BCD digit. Addition is performed in
radix 2.

3-68

BCDBIN

BCD to Binary

I7IFI

PSEUDOCODE
LOADMO

NUM

Load MO with BCD number.

SUB

ACC, ACC, SLCMO

Clear accumulator;
Circular left shift MO.

SUB

MSK, MSK, SLCMO

Clear mask register;
Circular left shift MO.

SLCMO

Circular left shift MO.

SLCMO

Circular left shift MO.

ADD I

ACC, MSK, 15

Store 1 5 in mask register.

Repeat N-1 times:

N
M
CO
CO

(N '" number of BCD digits)
AND

ADD

MO, MSK, R1,
SLCMO
ACC, R1, R1, SLCMO

I(.)

Extract one digit;
Circular left shift MO.



Source

01000000100011111011111010111110

I Sn

+--

RF(7)n

ALU

01000000 1000 11111011111110111110

I Fn

+--

Sn

Destination

0100 00001000 1111 1011 1111 1011 1110

I RF(2)n

+--

+


~

..
A3-AO
Mask

Yes

No

Yes

No

("')

-t

00
00
Co\)

N

Available S Bus Source Operands
RF
MO
DB-Port
(B5-BO)
Register
Yes

Yes

Yes

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

·No

Shift Operations

Y-Port

ALU

MO

Yes

None

None

Control/Data Signals
Signal

User

Use

Programmable
Inactive

SSF

No

5100

Yes

Byte select

SiOi'

Yes

Byte select

Si02

Yes

Byte select

5103

Yes

Byte select

Cn

Yes

Propagates through nonselected bytes; should be
set high for two's complement subtraction.

3-78

IAI8 I

Byte Subtract R from S with Carry

BSUBR
Status Signals

1 if result (selected bytes) = 0

ZERO

o

N

if signed arithmetic overflow (selected bytes)

OVR

C

if carry-out (most significant selected byte)

EXAMPLE (assumes a 32-bit configuration)
Subtract bytes 1 and 2 of register 1 with carry from bytes 1 and 2 of register 3.
Concatenate with bytes 0 and 3 of register 3, storing the result in register 11.
Instr

Oprd

Oprd

Oprd 5.1

Oest

Code

Addr

Addr

EB1-

Addr

17-10

A5-AO

B5-SO

10101000

00 0001

000011

EAESO
0

00

Destination Selects

C5-CO

SELMa

WE3WEo

00 1011

0

0000

SELRF110

SELRFO OEA

X

om-

0Eii
X

CF2-

OEYO

DES

XXXX

0

Cn CFO
1

Si'53- i'Esi03Si50 iEsiOO N
M

110 1001

0000

Assume register file 1 holds 09185858 (Hex) and register file 3 holds 703A9898 (Hex):
Source

0000 1001000110110101100001011000

I Rn

+-

CO
CO
~

U

~

RF(1)n

I'

Z

Source

0111 00000011 1010 1001 10001001 1000

I Sn

+-

RF(3)n

ALU

01100111 0001 1111 0100000001000000

I Fn

+-

R'n

Destination

0111 00000001 1111 01000000 1001 1000

I RF( 11)n

rJ)

+ Sn + Cn

+-

Fn or Sn t

t F = ALU result
n = nth package
Register file 11 gets F if byte selected. S if byte not selected.

3-79

I9 I8

Byte Subtract S from R with Carry

BSUBS

FUNCTION
Subtracts S from R in selected bytes.

DESCRIPTION
Bytes with SIO inputs programmed low compute R + S' + Cn. Bytes with SIO inputs
programmed high. pass S unaltered. Multiple bytes can be selected only if they are
adjacent to one another. At least one byte must be nonselected.
Available R Bus Source Operands
C3-CO
RF

A3-AO

DA-Port

(A5-AOI Immed

Mask

(I)

2

..
A3-AO

Yes

No

Yes

No

-.J
~

l>

n

-f
CO
CO
Co\)

N

Available S Bus Source Operands
RF
(B5-BOI
Yes

DB-Port

MQ
Register

Yes

Yes

Available Destination Operands
RF

RF

(C5-COI (B5-BOI
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

SIOO

Yes

Byte select

SiOT
Si02

Yes

Byte select

Yes

Byte select

5103

Yes

Byte select

Cn

Yes

Propagates through nonselected bytes; should be
set high for two's complement subtraction.

3-80

BSUBS

I9I8I

Byte Subtract S from R with Carry

Status Signals
ZERO

N

1 if result (selected bytes) = 0

o
if signed arithmetic overflow (selected bytes)

OVR

if carry-out (most significant selected byte)

C

EXAMPLE (assumes a 32-bit configuration)
Subtract bytes 1 and 2 of register 3 with carry from bytes 1 and 2 of register 1.
Concatenate with bytes 0 and 3 of register 3, storing the result in register 11.
Instr

Op,d

Op,d

Op,d S.I

Dest

Code

Add,

Add,

EB1-

Add,

17-10

A5-AO

B5-BO

1001 1000 00 0001

000011

EAEBO
0

00

Destination Selects

We3-

SELRF1-

C5-CO

SELMa

WEo

SELRFO

001011

0

0000

10

om-

CF2-

Si03- iESiOaiEsiOo

QEij 0Ev0 (ill; Cn CFO SiOO
X
X XXXX 0
1 110 1001

0eA

0000

C'II

(¥)

Assume register file 1 holds 52888888 (Hex) and register file 3 holds 143A9898 (Hex):
Source

Source

0101 0010100010001011 1000 1011 1000

I Rn -

0001 01000011 10101001 1000 1001 1000

I

CO
CO

....

RF(1)n

CJ

Sn - RF(3)n

I'

~

~

2

CJ)

ALU

0011 11100100 111000100000 0010 0000

I Fn -

Destination

0101 00100100111000100000 1011 1000

I RF(11)n -

Rn

+ S'n +

Cn

Fn or Sn t

t F = AlU result
n = nth byte
Register file 11 gets F if byte selected. S if byte not selected.

3-81

Byte XOR Rand S
(Byte Exclusive OR Rand S)

lola

BXOR

FUNCTION
Evaluates R exclusive OR S in selected bytes.

DESCRIPTION
Bytes with SIO inputs programmed low evaluate R exclusive OR S. Bytes with SIO
inputs programmed high, pass S unaltered. Multiple bytes can be selected only ifthey
are adjacent to one another. At least one byte must be nonselected.
Available R Bus Source Operands
C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed

en
z
.....

..
A3-AO
Mask

Yes

No

Yes

No

~

»
(")
-t

CO
CO
W
N

Available S Bus Source Operands
RF
MQ
DB-Port
(B5-BO)
Register
Yes

Yes

Yes

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

5100

Yes

Byte select

5101

Yes

Byte select

5102

Yes

Byte select

5103

Yes

Byte select

Cn

No

Inactive

3-82

Byte XOR Rand S
(Byte Exclusive OR Rand S)

BXOR

I0 I8 I

Status Signals
ZERO

N
OVR

C

1 if result (selected bytes) = 0

o
o
o

EXAMPLE (assumes a 32-bit configuration)
Exclusive OR bytes 1 and 2 of register 6 with bytes 1 and 2 on the DB bus; concatenate
the result with DB bytes 0 and 3, storing the result in register 10.
Instr

Op,d

Op,d

Op,d Sel

Dest

Code

Add,

Add,

EB1-

Add,

WE3-

17-10

A5-AO

B5-BO

C5-CO

SELMO WEO SELRFO

1101 1000 000110

XX XXXX

EAEBO
0

10

001010

Destination Selects

0

SELRF1-

0000

10

om-

CF2-

0eA Oeii 0Ev0 OES
X

X

XXXX

0

Cn CFO
1

Si53"- iEsi'03SiOO iEsiOo

110 1001

0000

Assume register file 6 holds 938FBEBE (Hex) and the DB bus holds 4190BEBE (Hex):
Source

100100111000 11111011111010111110

I Rn -

RF(6)n

Source

0100 0001 1001 0000 1011 1110 1011 1110

I Sn -

DBn

Destination

0100 0001 0001 1111 0000 0000 1011 1110

I

RF( 1O)n - Fn or Sn t

tF

= ALU result
n = nth pac~age
Register file 10 gets F if byte selected, S if byte not selected.

3-83

I F It

1

CLEAR

FUNCTION
Forces ALU output to zero and clears the BCD flip-flops.

DESCRIPTION
ALU output is forced to zero and the BCD flip-flops are cleared.
tThis instruction may also be coded with the following opcodes:
[2] [F]. [3] [F], [4] [F], [6] [F], [B] [F], [e] [F], [E] [F]

Available R Bus Source Operands
C3-CO

RF

A3-AO

(AS-AO) Immed

DA-Port

CJ)

2

-.J

..
A3-AO
Mask

No

No

No

No

~

~
-I

(X)
(X)

eN

N

Available S Bus Source Operands

RF
(BS-BO)

DB-Port

No

No

MQ
Register
No

Available Destination Operands

RF

RF

(CS-CO) (85-80)
Yes

No

Status Signals

IZER~

OVR
Cn

3-84

1

o
o
o

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

CLR

CRC

Cyclic Redundancy Character Accumulation

I0I0I

FUNCTION
Evaluates R exclusive OR S for use with cyclic redundancy check codes.

DESCRIPTION
Data on the R bus is exclusive ORed with data on the S bus. If MOO XNORed with
SO is zero (MOO is the LSB of the MO register and SO is the LSB of S-bus data), the
result is sent to the ALU shifter. Otherwise, data on the S bus is sent to the ALU shifter.
A right shift is performed; the MSB is filled with RO (MOO XOR SO), where RO is the
LSB of R-bus data. A circular right shift is performed on MO data.
Recommended R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed

DA-Port

N
M
00
00

..
A3-AO

~

Mask
Yes

No

No

u

«~

No

"enZ

Recommended S Bus ,Source Operands
MQ
RF
DB-Port
(B5-BO)
Register
Yes

Yes

No

Recommended Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

Shift Operations

Y-Port

ALU

MQ

No

Right

Right

No

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

5100
5101
5102
5103
Cn

No

Inactive

No

Inactive

No

Inactive

No

Inactive

No

Inactive

3-85

10 10

Cyclic Redundancy Character Accumulation

CRC

Status Signals
ZERO

=

1 if result = 0

N = 0
I

OVR = 0

en

= 0

CYCLIC REDUNDANCY CHARACTER CHECK
DESCRIPTION

en
~

Serial binary data transmitted over a channel is susceptible to error bursts. These bursts
may be detected and corrected by standard encoding methods such as cyclic
redundancy check codes, fire codes, or computer generated codes. These codes all
divide the message vector by a generator polynomial to produce a remainder that
contains parity information about the message vector.

~

l> If a message vector of m bits, a(x), is divided bya generator polynomial, g(x), of order

n

k-1, a k bit remainder, r(x), is formed. The code vector, c(x), consisting of mIx) and
r(x) of length n = m + k is transmitted down the channel. The receiver divides the
received vector by g(x).

N

After m divide iterations, r(x) will be regenerated only if there is no error in the message
bits. After k more iterations, the result will be zero if and only if no error has occurred
in either the message or the remainder.

-f
CO
CO
W

ALGORITHM
An algorithm for a cyclic redundancy character check, using the 'ACT8832 as a
receiver, is given below:
LOADMQ VEC(X)
Load MQ with first 32 message bits of
received vector c' (x).
LOAD POLY

Load register with polynomial g(x).

CLEAR SUM

Clear register acting as accumulator.

REPEAT (n/32) TIMES:
SUM = SUM CRC POLY

Perform CRC instruction where
R Bus = POLY
S Bus = SUM
Store result in SUM.

LOADMQ VEC(X)

Load MQ with next 32 message bits of
received vector c'(x).

(END REPEAT)

3-86

CRC

Cyclic Redundancy Character Accumulation

I0 I0 I

SUM now contains the remainder [r'(x)) of c'(xl. A syndrome generation routine may
be called next, if required.
Note that the most significant bit of
g(x) = (gk-1 )(xk-1)

+

(9k_2)(x k - 2 )

+ .. (go)(x O )

is implied and that POL Y(O) is set to zero if the length of g(x) requires fewer bits than
are in the machine word width.

3-87

1410

Divide Remainder Fix

DlVRF

FUNCTION
Corrects the remainder of nonrestoring division routine if correction is required.

DESCRIPTION
DIVRF tests the result of the final step in nonrestoring division iteration: SDIVIT (for
signed division) or UDIVIT (for unsigned division). An error in the remainder results
when it is nonzero and the signs of the remainder and the dividend are different.
The R bus must be loaded with the divisor and the S bus with the most significant
half of the previous result. The least significant half is in the MO register. The Y bus
result must be stored in the register file for use during the subsequent SDIVOF
instruction.
CJ)

~
~

DIVRF tests to determine whether a fix is required and evaluates:
Y +- S + R' + 1 if a fix is necessary
Y +- S + R + 0 if a fix is unnecessary

l>
(")
-t

Overflow is reported to OVR at the end of the division routine (after SDIVOF).

~

Recommended R Bus Source Operands

00
N

C3-CO
A3-AO
RF
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

No

No

Recommended S Bus Source Operands
MQ
RF
DB-Port
(B5-BO)
Register
Yes

Yes

No

Recommended Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

3-88

No

Shift Operations

Y-Port

ALU

MQ

No

None

None

DIVRF

Divide Remainder Fix

I4 I0 I

Control/Data Signals

User

Signal

Use

Programmable

SSF

No

Inactive

5100

No

Inactive

SiC5T

No

Inactive

5102

No

Inactive

5103

No

Inactive

Cn

Yes

Should be programmed high

Status Signals
ZERO

N
OVR

Cn

1 if remainder = 0

N

o
o

CO
CO
l-

('I)

t.)

1 if carry-out =


n

"""4

00
00

W

RF

A3-AO

(A5-AO) Immed

DA-Port

..
A3-AO

Mas!<
No

No

No

No

N

Recommended S Bus Source
Operands (MSH)
RF
(B5-BO)
Yes

DB-Port
No

MQ
Register
No

Recommended Destination
Operands
RF

RF

(C5-CO) (B5-BO)
Yes

3-90

No

Shift Operations
(conditional)

Y-Port

ALU

MQ

No

Left

Left

DNORM

o

3

Double-Length Normalize

Control/Data Signals
User

Signal

Use

Programmable

SSF

No

Inactive

5100

Yes

When low, selects a one end-fill bit in LSB

5101

No

Passes internally generated end-fill bits

5102

No

5103

No

Cn

No

Status Signals
ZERO
N
OVR
Cn

1 if result = 0

N

1 if MSB = 1

C')

1 if MSB XOR 2nd MSB

00
00

o

lt)

<
'¢

EXAMPLE (assumes a 32-bit configuration)

,....

Normalize a double-precision number.

z

(This example assumes that the MSH of the number to be normalized is in register 3
and the lSH is in the MQ register. The zero on the OVR pin at the end of the instruction
cycle indicates that normalization is not complete and the instruction should be
repeated).
Instr

Oprd

Oprd

Oprd Sel

Code

Addr

Addr

EB1-

17-10

A5-AO

B5-BO

00110000

XX XXXX

000011

Eli: EBO
X

00

Dest
Addr
C5-CO
000011

Destination Selects

SELRF1-

SELMO

WE3WeO

0

0000

10

SELRFO

Offi"-

0eA We
X

X

CF2-

OEYO

OES

Cn

CFO

XXXX

0

X

110

Assume register file 3 holds FA75D84E (Hex) and MQ register holds 37F6D843 (Hex):

I ALU shifter

Source

11111010011101011101100001001110

Source

0011 0111 1111 01101101 100001000011

MQ shifter

Destination

1111 010011101011 1011 0000 1001 1101

8RF(3)

Destination

01101111 11101101 1011 000010000110

+-

+-

OVR

+-

MQ register

Result (MSH)

I MQ register

GJ

RF(3)

+-

+-

Result (LSH)

ot

tNormalization not complete at the end of this instruction cycle.

3-91

en

I5 IF

Output Divide/BCD Flip-Flops

DUMPFF

FUNCTION
Output contents of the divide/BCD flip-flops.

DESCR,PTION
The contents of the divide/BCD flip-flops are passed through the MQ register to the
Y output Imultiplexer.
Available R Bus Source Operands
C3-CO

en
2

'-I

RF
A3-AO
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

No

No

No

No

~

»(")
-f
CO
CO
W
N

Available S Bus Source Operands
RF
MQ
DB-Port
(B5-BO)
Register
No

No

No

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
No

No

Status Signals

IZER~

=

=

0
0

OVR = 0
Cn

3-92

= 0

Shift Operations

V-Port

ALU

MQ

Ves

None

None

DUMPFF

I5IFI

Output DividelBCD Flip-Flops

EXAMPLES (assumes a 32-bit configuration)
Dump divide/BCD flip-flops to Y output.
Oprd
Addr

Instr

Code
17-10
0101 1111

A5-AO

XX

Oprd
Addr
B5-BO

Oprd Sel
EB1EAEBO

Dest
Addr
C5-CO

xxxx xx xxxx x xx xx

-WE3-

Destination Selects

SELRF1-

SELMa WEO SELRFO
XXXX
1
XXXX
XX

0EY3'15EA 15Es 0Ev0 DES en

x

x

0000

x

X

CF2CFO
110

Assume divide/BCD flip-flops contain 2A055470 (Hex):
Source

0010101000000101 0101 01000111 0000

I MQ register

+-

Destination

0010101000000101 0101 01000111 0000

I Y output

MQ register

+-

Divide/BCD flip-flops

N

M

00
00
~

(.)

«qr"

2

en

3-93

I8 IF

Excess·3 Byte Correction

EX3BC

FUNCTION
Corrects the result of excess-3 addition or subtraction in selected bytes.

DESCRIPTION
This instruction corrects excess-3 additions or subtractions in the byte mode. For
correct excess-3 arithmetic, this instruction must follow each add or subtract. The
operand must be on the 5 bus.
Data on the 5 bus is added to a constant on the R bus determined by the state of
the BCQ flip flops and previous overflow condition reported on the 55F pin. Bytes with
510 inputs programmed low evaluate the correct excess-3 representation. Bytes with
510 inputs programmed high or floating, pass 5 unaltered.

en
2

-.oJ

Available R Bus Source Operands

~

»
n

......j

CO
CO
W
N

C3-CO
A3-AO
RF
(A5-AO) Immed

DA-Port

..
A3-AO
Ml!sk

No

No

No

No

Available S Bus Source O,perands
MQ
RF
DB-Port
(B5-BO)
Register
Yes

No

No

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

Shift Operations

Y-Port

ALU

MQ

No

No

No

No

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

SIOO

Yes

Byte select

5101

Yes

Byte select

5102

Yes

Byte selElct

5103

Yes

Byte select

Cn

No

Inactive

3-94

EX3BC

F

8

Excess-3 Byte Correction

Status Signals
ZERO

o

N

o
if arithmetic signed overflow

OVR

if carry-out = 1

Cn

EXAMPLE (assumes a 32-bit configuration)
Add two BCD numbers and store the sum in register 3. Assume data comes in on
DB bus.
1.
2.
3.
4.
5.
6.

Clear accumulator (SUB ACC, ACC)
Store 33 (Hex) in all bytes of register (SET1 R2, H/33/1
Add 33 (Hex) to selected bytes of first BCD number (BADD DB, R2, R1)
Add 33 (Hex) to selected bytes of second BCD number (BADD DB, R2, R3)
Add selected bytes of registers 1 and 3 (BADD, R1, R3, R3)
Correct the result (EX3BC, R3, R3)

Instr

Op.d

Op.d

Op.d Sol

Dest

Code

Add.

Add.

EB1-

Add.

-WE3-

17-10

AS-AD

BS-8O,

CS-CO

SELMQ WEO SELRFO

Eli EBO

XX XXXX 0
00001000 00 0010 XX XXXX 0
10001000 00 0010 XX XXXX 0
1000 1000 00 0010 XX XXXX 0

XX
XX

000010

10

1000 1000 000001

11110010 00 0010

1000 1111

000011

XX XXXX 000011

SELRF1-

0

0000

10

00 0010

0

0000

10

00 0001

0

0000

10

10

000011

0

0000

10

00

000011

0

0000

10

X 00

000011

0

0000

10

0

- --

Destination Selects

0eYa0eA 0Eii iiEYO 0eS
X
X
X
X
X
X

X XXXX
X XXXX
X XXX X
X XXX X
X XXXX
X XXXX

CF2- 5103- IESI03Cn CFO

SiOo iEsiOo

1

110

0

XXXX XXXX
X 110 XXXX XXXX

0

0

110 1100

0000

0

0

110 1100

0000

0

0

110 1100

0000

0

0

110 1100

0000

0

Assume DB bus holds 51336912 at third instruction and 34867162 at fourth
instruction.
000000000000 0000 0000 0000 0000 0000

I

RF(2)

+-

0

2

0000 0000 0000 0000 0011 0011 0011 0011

RF(2)

+-

00003333 (Hex)

3

01010001001100111001110001000101

RF(1)

+-

RF(2) +DB

4

0011 0100 1000 0110 1010 0100 1001 0101

RF(3)

+-

RF(2)

5

0011 010010000110010000001101 1010

I

6

0011 0100 1000 0110 0100 0000 0111 0100

I RF(3)n

RF(3)n

+ DB
+ RF(3)n

+-

RF(1)n

+-

Corrected RF(3)n result

3-95

I9 IF

Excess·3 Word Correction

EX3C

FUNCTION
Corrects the result of excess-3 addition or subtraction.

DESCRIPTION
This instruction corrects excess-3 additions or subtractions in the word mode. For
correct excess-3 arithmetic, this instruction must follow each add or subtract. The
operand must be on the 5 bus.
Data on the 5 bus is added to a constant on the R bus deteqnined by the state of
the BCD flip-flops and previous overflow condition reported on the SSF pin.
Available R Bus Source Operands

en

C3-CO

:2
-...I

~

»
(")

-t

CO
CO

W
N

RF
A3-AO
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

No

No

No

No

Available S Bus Source Operands
RF
MQ
DB-Port
(B5-BO)
Register
Yes

No

No

Available Destination Operands
RF
RF
(C5-CO) (B5-80)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

No

No

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

5100

No

Inactive

5101

No

Inactive

5102

No

Inactive

5103

No

Inactive

Cn

No

Inactive

3-96

EX3C

I9IF

Excess-3 Word Correction

Status Signals

o

ZERO

N

1 if MSB =
if arithmetic signed overflow

OVR

en

if carry-out = 1

EXAMPLE (assumes a 32-bit configuration)
Add two BCD numbers and store the sum in register 3. Assume data comes in on
DA bus.
1.
2.
3.
4.
5.
6.
7.

Clear accumulator (SUB ACC, ACC)
Store 33 (Hex) in all bytes of register (SET1 R2, H/33/1
Add 33 (Hex) to all bytes of first BCD number (ADD DB, R2, R1)
Add 33 (Hex) to all bytes of second BCD number (ADD DB, R2, R3)
Add the excess-3 data (ADD, R1, R3, R3)
Correct the excess-3 result (EX3C, R3, R3)
Subtract the excess-3 bias to go to BCD result.

Instr

Oprd

Oprd

Oprd Sel

Code
17-10

Addr
A5-AO

Addr
B5-80

EA EBO

11110010

00 0010

00001000
11110001
11110001
111.10001

000010
000010
000010

000001
1001 1111 XX
11110010 000010

xxx x

EB1-

Dest
Addr
C5-CO

Destination Selects
WE3- SELRF1SELMa

0
0

xx
xx

000010
000010

0
0

0
0

10
10

000001
000011

0
0

000011
000011

0

00

X 00

000011
000011

000011

0

000011

0
0
0

XX
XX
XX
XX

XXXX
XXXX
XXXX
XXXX

00

WEO

SELRFO
10
0000
0000
10
10
0000
10
0000
0000
0000
0000

10
10
10

X
X
X
X
X
X
X

....
U


(")

-I
00

CO

Co\)

N

3-110

CF2-

0eY0 0eS

RF(1)

R +

en

0

Cn CFO
0 110

MQSLC

Pass (V - F) with Circular Left MQ Shift

I0 I

*

I

FUNCTION
Passes the result of the ALU instruction specified in the upper nibble of the instruction
field to Y MUX. Performs a circular left shift on MQ.

DESCRIPTION
The result of the arithmetic or logical operation specified in the lower nibble of the
instruction field (13-10) is passed unshifted to Y MUX.
The contents of the MQ register are rotated one bit to the left. The MSB is rotated
out and passed to the LSB of the same word, which may be 1, 2, or 4 bytes long.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the MQ register. If SSF is low, the MQ register will not be altered .
• A list of ALU operations that can be used with this instruction is given in Table 15.

Shift Operations

Available Destination Operands IALU Shifter)
RF

RF

(C5-CO)

185-80)

Yes

No

Y-Port
Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shift result if high or floating; retains MQ

SiOO
SiOT

No

Inactive

No

Inactive

SI02

No

Inactive

SI03

No

Inactive

Cn

No

Affects arithmetic operation programmed in bits

without shift if low.

13-10 of instruction field.

3-111

10 I *

Pass (Y - F) with Circular Left MQ Shih

MQSLC

Status Signals t
ZERO
N

1 if result = 0
1 if MSB of result =

o if MSB of result
OVR

C

= 0
1 if signed arithmetic overflow

1 if carry-out = 1

tc is ALU carry-out and is evaluated before shift operation. ZERO and N (negative)

are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
CJ)

Add data in register 1 to data on the DB bus with carry-in and store the unshifted
result in register 1. Circular shift the contents of the MQ register one bit to the left.

:2
-.,J
~

l>

n

-4

00
00

W
N

Inst'
Code
17·10
11010001

Op,d
Add,
A5·AO
00 0001

Op,d
Add,
B5·BO
XX

Op,d Sel

Dest
Add,
EB1·
EAEBO
C5·CO
10 00 0001

xxxx a

Destination Selects
SELRF1·
SELMa
SELRFO i5EA 0Ee
10
X
X
0
0000

WE3.
WEO

Offi·
0EY0 OES

xxxx a

CF2·
Cn CFO
I
110

Assume register file 1 holds 2508C618 (Hex), DB bus holds 11007530 (Hex), and
MQ register holds 4DA99AOE (Hex).
Source

0010 0101 0000 1000 1 lOa 01100001 1000

Source

0001 0001 0000 0000 0111 0101 0011 0000

Destination

001101100000 1001 00111011 0100 1001

Source

Destination

3-112

I

0100 1101 lOla 1001 1001 lOla 0000 1 I 10

1001 1011 0101 001 I 001 I 0100 0001 1100

I R - RF(1)
I S - DB bus
I RF( 1) - R + S + Cn
I MQ shifter - MQ register
I MQ register - MQ shifter

MOSLL

Pass (Y - F) with Logical Left MO Shift

FUNCTION
Passes the result of the ALU instruction specified in the upper nibble of the instruction
field to Y MUX. Performs a left shift on MO.

DESCRIPTION
The result of the arithmetic or logical operation specified in the lower nibble of the
instruction field (13-10) is passed unshifted to Y MUX.
The contents of the MO register are shifted one bit to the left. A zero is filled into
the least significant bit of each word unless the SIO input for that word is programmed
low; this will force the least significant bit to one. The MSB is dropped from each word,
which may be 1, 2, or 4 bytes long, depending on the configuration selected.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the MQ register. If SSF is low, the MQ register will not be altered.
• A list of ALU operations that can be used with this instruction is given in Table 15.

N
M

CO
CO
I(.)


("')
-t

00
00
tAl
N

Inst,
Code
17-10
10110001

Op,d
Add,
A5-AO
000001

Op,d
Op,d Sel
Dest
Add,
Add,
EB1B5-BO
EA EBO C5-CO
XX XXXX
0 10 00.. 0001

Destination Selects
SELRF1OffiSELMa WEo SELRFO 0eA 0Eii 0EY0
0
0000
10
X
X
XXXX

WE3-

OES
0

CF2Cn CFO
1 110

Assl-lme register file 1 holds 5608C61~ (Hex), DB bus holds 14007530 (Hex), and
MO register holds 98A99AOE (Hex).
Source

0101 01100000 1000 110001100001 1000

I R +- RF( 1)

Source

0001 0100000000000111 0101 0011 0000

Is+- DB bus

Destination

011010100000 1001 0011 1011 0100 1001

I RF(1) +- R + S + Cn

Source

1001100010101001 1001 10100000 1110

I MO shifter +- MO register

Destination

01001100 0101 0100 1100 1101 00000111

3-118

MO register

+- MO shifter

NAND

Logical NAND (R NAND S)

*

IcI

FUNCTION
Evaluates the logical expression R NAND S.

DESCRIPTION
Data on the R bus is NANDed with data on the S bus. The result appears at the ALU
and MQ shifters.
"The result of this instruction can be shifted in the same micro cycle by specifying a shift instruction in the
upper nibble (17-14) of the instruction field. The result may also be passed without shift. Possible instructions
are listed in Table 15.

Available R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed

DA-Port

N
M

..

CO
CO

A3-AO

t-

Mask
Yes

No

Yes

O

«
,...~

No

z

Available S Bus Source Operands

en

MQ

RF
DB-Port
(85-BO)
Register
Yes

Yes

Yes

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

Y-Port
Yes

No

ALU

MQ

Shifter

Shifter

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

5100

No

instruction field.

5101

No

5102

No

5103

No

Cn

Inactive

3-119

I * Ie I

Logical NAND (R NAND S)

NAND

Status Signals t
ZERO

N

1 if result = 0
1 if MSB = 1

OVR

0

C

0

tc is AlU carry out "and is evaluated before shift operation.

ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after AlU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Logically NAND the contents of register 3 and register 5, and store the result
in register 5.
rJ)

2

"'-J
~

»
("')
-t

CO
CO

Inst'
Code
17-10

Op,d
Add,

Op,d

Op,d Sel

Add,

A5-AO

1111 1100

000011

B5-BO
000101

EB1·
EA EBO
0

00

Dest
Add,
C5-CO
000101

Destination Selects
SELRF1OEY3CF2SELMQ
SELRFO OEA OEB 0eY0 OES Cn CFO
X
X XXXX
X 110
0
0000
10
0

WE3.
'Weii

Assume register file 1 holds 60F6D840 (Hex) and register file 5 holds 13F6D377 (Hex).

~

I R-

Source

01100000111101101101100001000000

Source

00010011111101101101001101110111

S - RF(5)

Destination

111111110000 100100101111 lOll 1111

RF(5) - R NAND S

3-120

RF(3)

NOP

No Operation

F

F

FUNCTION
Forces AlU output to zero.

DESCRIPTION
This instruction forces the AlU output to zero. The BCD flip-flops retain their old value.
Note that the clear instruction (ClR) forces the AlU output to zero and clears the BCD
flip-flops.
Available R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed

DA-Port

..
A3-AO

N
M
CO
CO

Mask
No

No

No

No

....

()

ct

Available S Bus Source Operands

~

I'

RF
MO
DB-Port
(B5-BO)
Register
No

No

No

Available Destination Operands
RF

RF

(C5-CO) (B5-BO)
Yes

No

Z

en
Shift Operations

Y-Port

ALU

MO

Yes

None

None

Status Signals

IZER~

OVR

C

o

o
o

3-121

IFIF

No Operation

NOP

EXAMPLE (assumes a 32-bit configuration)
Clear register 12.
Inst,
Code
17-10
11"11111

Op,d
Add,
AS-AO
XX XXXX

Dl:Istination

en
2:

"~

o

-t

co
co
W
N

3-122

I

Op,d
Md,
B5-6O
XXXX

xx

Op,d Sel
EB1EA EBO

x xx

Destination Selects
Dest
Add,
WE3- SELRF1C5-CO
SELMa WeB' SELRFO OEA DEe
001100
0
0000
10
X
X

0000 0000 0000 0000 0000 0000 0000 0000

I RF(12) -

0

OEY3-

0Ev0

xxxx

CF2OES Cn CFO
X
0
110

Logical NOR (R NOR S)

NOR

*

I0

FUNCTION
Evaluates the logical expression R NOR S.

DESCRIPTION
Data on the R bus is NORed with data on the S bus. The result appears at the ALU
and MQ shifters.
"The result of this instruction can be shifted in the same microcycle by specifying a shift instruction in the
upper nibble (17-141 of the instruction field. The result may also be passed without shift. Possible instructions
are listed in Table 15.

Available R Bus Source Operands
C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed

N

..

('I)

00
00

A3-AO

....

Mask
Yes

No

~

No

Yes

I"

Available S Bus Source Operands

Z

C/)

RF
(B5-BO)
Yes

DB-Port

MO
Register

Yes

Yes

Available Destination Operands
RF

RF

(C5-CO) (85-BO)
Yes

No

Y-Port
Yes

ALU

MO

Shifter

Shifter

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

5100

No

instruction field.

5101

No

5102

No

5103

No

Cn

No

Inactive

3-123

I * 10

Logical NOR (R NOR S)

NOR

Status Signals t
ZERO
N
OVR
C

1 if result = 0
1 if MSB = 1

o
o

t C is ALU carry out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift op~ration. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Logically NOR the contents of register 3 and register 5, and store the result
in' register 5.

~

-...I
~

l>

(")

-t

CO
CO

Ins~r

Code
17-10
11111011

Oprd
Addr
A5-AO
000011

Oprd
Addr
B5-BO
000101

Oprd Sel
Dest
EB1Addr
EAEBO
C5-CO
0 00 000101

Destination Se!!3cts
SELRF1SELMO
SELRFO 0eA OEB
X
X
0
0000
10

We3WEci

0eYaOEYO

OES

XXXX

0

CF2Cn CFO
X 110

Assume register file 3 holds 60F6D840 (Hex) and register file 5 holds 13F6D377 (Hex).

~

Source

011000001111 01101101 100001000000

I R +- RF(3)

Source

00010011111101101101001101110111

Is+- RF(5)

Destination

1000 11000000 10010010010010001000

I RF(5) -

3-124

R NOR S

OR

Logical OR IR 0" S)

*

IBI

FUNCTION
Evaluates the logical expression R OR S.

DESCRIPTION
Data on the R bus is ORed with data on the S bus. The result appears at the ALU
and MQ shifters.
'The result of this instruction can be shifted in the same microcycle by specifying a shift instruction in the
upper nibble (17-14) of the instruction field. The result may also be passed without shift. Possible instructions
are listed in Table 15.

Available R Bus Source Operands
C3-CO
RF
A3-AO
(AS-AO) Immed
Yes

DA-Port

No

N
M
CO
CO

..
A3-AO
Mask

I-

No

«
q-

Yes

CJ

r-.

Available S Bus Source Operands

2

en

RF
MQ
DB-Port
(BS-BO)
Register
Yes

Yes

Yes

Available Destination Operands
RF
RF
(CS-CO! (BS-BO)
Yes

No

Y-Port
Yes

ALU

MQ

Shifter

Shifter

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

5100

No

instruction field.

5101

No

5102

No

5103

No

Cn

No

Inactive

3-12S

Logical OR (R OR S)

OR

Status Signals t
ZERO

1 if result

N
OVR
C

1 if MSB

=0
=1

0
0

t C is ALU carry out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluat/ld after ALU operation and after shift operation.

EXAMPLE (assu!11es a 32-bit configuration)
Logically OR the contents of register 5 and register 3, and store the result in
register 3.
t/)

Z

~

~
C')
-f

~

~

Code
17-10

Oprd
Addr
A5-AO

Oprd
Addr
B5-BO

1111 1011

000101

000011

Instr

Oprd Sel

EA

EB1·
EBO

Dest
Addr
C6-CO

0

00

000011

Destination Selects
SELRF1·
SELMO
SELRFO 0eA OEB
0000
10
X
X
0

"We3.
WeD

om·

0eY0 DES

Cn

XXXX

X

0

CF2·
CFO
110

Assume register file 5 holds 60F6D840 (Hex) and register file 3 holds 13F6D377 (Hex).
Source

011000001111 01101101 100001000000

Source

Destination

3-126

I

R

+-

RF(5)

00010011111101101101001101110111

S

+-

RF(3)

0111 0011 1111 0110 1101 1011 0111 0111

RF(3)

+-

R OR S

PASS

F

Pass (Y - F)

FUNCTION
Passes the result of the ALU instruction specified in the lower nibble of the instruction
field to Y MUX.

DESCRIPTION
The result of the arithmetic or logical operation specified in the lower nibble of the
instruction field (/3-10) is passed unshifted to Y MUX.
* A list of ALU operations that can be used with this instruction is given in Table 15.

Available Destination Operands
RF

RF

(C5-CO)

(85-80)

Yes

No

Y-Port
Yes

ALU

MQ

Shifter

Shifter

None

None

N
M
CO
00

I-

CJ

~
,....

Control/Data Signals

Signal

User

z

en

Use

Programmable

SSF

No

Inactive

SIOO

No

Inactive

~101

No

Inactive

SI02

No

Inactive

SI03

No

Inactive

Cn

No

Affects arithmetic operation specified in bits 13-10 of
instruction field.

Status Signals t
ZERO

N

1 if result = 0
1 if MSB of result = 1

o if MSB of result
OVR

C

= 0

1 if signed arithmetic overflow
if carry-out condition

tc is ALU carry out and is evaluated before shift operation. ZERO and

N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

3-127

IFI*

Pass (Y -

PASS

F)

EXAMPLE (assumes a 32-bit configuration)
Add data in register 1 to data on the DB bus with carry-in and store the unshifted
result in register 10.
Instr

Op,d

Op,d

Code
17-10

Add,

Add,

Op,d Sel
EB1-

Dest
Add,

A5-AO

B5-BO

Eli: EBO

C5-CO

SELMQ

WeD

SELRF1SELRFO

0eA

QEij

11110001

000001

XX XXXX

00 1010

0

0000

10

X

X

0

10

Destination Selects

WEJ-

0Ev3OEYO 0eS
xxxx 0

CF2Cn CFO
1

110

Assume register file 3 holds 9308C618 (Hex) and DB bus holds 24007530 (Hex).
Source

1001 0011 00001000 110001100001 1000

I R-

Source

00100100 0000 0000 0111 0101 0011 0000

I

Destination

10110111000010010011101101001001

3-128

RF(1)

S - DB bus

RF(10) - R

+ S + en

SDIVI

Signed Divide Iterate

IAI0 I

FUNCTION
Performs one of N-2 iterations of nonrestoring signed division by a test subtraction
of the N-bit divisor from the 2N-bit dividend. An algorithm using this instruction is
given in the "Other Arithmetic Instructions" section.

DESCRIPTION
SOIVI performs a test subtraction of the divisor from the dividend to generate a quotient
bit. The test subtraction passes if the remainder is positive and fails if negative. If
it fails, the remainder will be corrected during the next instruction.
SOIVI checks the pass/fail result of the test subtraction from the previous instruction,
and evaluates
F ..... R
F ..... R'

+ S
+ S + Cn

if the test fails
if the test passes

N
M
00

A double precision left shift is performed; bit 7 of the most significant byte of the MO
shifter is transferred to bit 0 of the least significant byte of the ALU shifter. Bit 7 of
the most significant byte of the ALU shifter is lost. The unfixed quotient bit is circulated
into the least significant bit of the MO shifter.
The R bus must be loaded with the divisor, the S bus with the most significant half
of the result of the previous instruction (SOIVI during iteration or SOIVIS at the beginning
of iteration). The least significant half of the previous result is in the MO register. Carryin should be programmed high. Overflow occurring during SOIVI is reported to OVR
at the end of the signed divide routine (after SOIVOF).
Available R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed
Yes

No

DA-Port

Yes

..
A3-AO
Mask
No

Recommended S Bus Source Operands
RF
MQ
D8-Port
(85-80)
Register
Yes
Yes
No
Recommended Destination Operands
RF
RF
(C5-CO) (85-80)
Yes
No

Shift Operations

Y-Port

ALU

MQ

Yes

Left

Left

3-129

~

U



C

(')

-4
CO
CO
Co\)

N

3-134

1 if intermediate result = 0

o
o
1 if carry-out

SOIVIS

SDiVIT

Signed Divide Terminate

I EI0 I

FUNCTION
Solves the final quotient bit during nonrestoring signed division. An
algorithm using this instruction is given in the "Other Arithmetic Instructions" section.

DESCRIPTION
SDIVIT performs the final subtraction of the divisor from the remainder during
nonrestoring signed division. SDIVIT is preceded by N-2 iterations of SDIVI, where
N is the number of bits in the dividend.
The R bus must be loaded with the divisor, and the S bus must be loaded with the
most significant half of the result of the last SDIVI instruction. The least significant
half lies in the MQ register. The Y bus result must be ioaded back into the register
file for use in the subsequent DIVRF instruction. Carry-in should be programmed high.
SDIVIT checks the pass/fail result of the previous instruction's test subtraction and
evaluates;
Y+-R+S
Y +- R' + S

I-

if the test fails
if the test passes

+ Cn

CJ

«
~

The contents of the MQ register are shifted one bit to the left; the unfixed quotient
bit is circulated into the least significant bit.
Overflow during this instruction is reported to OVR at the end of the signed division
routine (after SDIVQF).
Available R Bus Source Operands
C3-CO
A3-AO
RF
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

Yes

No

Recommended S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port
Yes

MQ
Register
No

Recommended Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

Left

Left

N
M
CO
CO

3-135

~

en

IEI0

Signed Divide Terminate

Control/Data Signals

User

Signal

Use

Programmable

SSF

No

Inactive

5100

No

Pass internally generated end-fill bits.

5101

No

5102

No

5103

No

Cn

Yes

Should be programmed high

Status Signals

en

ZERO

1 if intermediate result = 0

:2

N

o

~

OVR

o

-..I

»
(')

C

-t

CO
CO

eN

I\)

3-136

1 if carry-out

SDIVIT

SOIVO

Signed Divide Overflow Test

IAI

F

FUNCTION
Tests for overflow during nonrestoring signed division. An algorithm using this
instruction is given in the "Other Arithmetic Instructions section.

DESCRIPTION
This instruction performs an initial test subtraction of the divisor from the dividend.
If overflow is detected, it is preserved internally and reported at the end of the divide
routine (after SOIVOF). If overflow status is ignored, the SOIVO instruction may be
omitted.
The divisor must be loaded onto the R bus; the most significant half of the previous
SOIVIN result must be loaded onto the S bus. The least significant half is in the MO
register.

N
The result on the Y bus should not be stored back into the register file; WE' should
be programmed high.

('I)

00
00
~

Carry-in should also be programmed high.

u


C

n

Use

Programmable

-I
CO
CO
Co\)
to..)

3-138

1 if divisor = 0

o
o
1 if carry-out

SDiVO

SDlVQF

Signed Divide Quotient Fix

I5I0I

FUNCTION
Tests the quotient result after nonrestoring signed division and corrects it if necessary.
An algorithm using this instruction is given in the "Other Arithmetic Instructions"
section.

DESCRIPTION
SDIVQF is the final instruction required to compute the quotient of a 2N-bit dividend
by an N-bit divisor. It corrects the quotient if the signs of the divisor and dividend are
different and the remainder is nonzero.
The fix is implemented by incrementing S:

Y-S+
Y-S+O

if a fix is required
if no fix is required

The R bus must be loaded with the divisor, and the S bus with the most significant
half of the result of the preceding DIVRF instruction. The least significant half is in
the MQ register.

N
M

00
00
I-

U



o

Source

000011110000 1111 0000 111100001111

CO

Source

10100000100000111011111010111110

ALU

1010oo()0 1000001110111111101111;0

Destination

10100000100000111011111110111110

-I

ffiN

Rn - C3-CO::A3-AO

I Sn - RF(1)n
I Fn - Sn OR Rn
I RF(1)n - Fn or Snt

tF = ALU result
n = nth byte
Register file 1 gets F if byte selected. S if byte not selected_

3-146

Si03- iE'Si03SiOo iEsiOo

116 HOl

0000

SLA

Arithmetic Left Single Precision Shift

FUNCTION
Performs arithmetic left shift on result of ALU operation specified in lower nibble of
instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is shifted one bit
to the left. A zero is filled into bit 0 of the least significant byte of each word unless
the SID input is programmed low; this will force bit 0 to one. Bit 7 is dropped frqm
the most significant byte in each word, which may be 1, 2, or 4 bytes long, depending
on the configuration selected.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the MQ register. If SSF is low, the MQ register will not be altered .
• A list of ALU operations that can be used with this instruction is given in Table 15.

Shift Operations
ALU Shifter
Arithmetic Left
Available Destination Operands (ALU Shifter)
RF

RF

(C5-CO)

(85-80)

Yes

No

V-Port
Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shift result if high; passes ALU result if low.

SIOO

Yes

Fills a zero in LS8 of each word if high; fills a

SI01

Yes

one in L58 if low.

5102

Yes

5103

Yes

Cn

No

Affects arithmetic operation programmed in bits
13-10 of instruction field.

3-147

SlA

Arithmetic Left Single Precision Shift
Status Signals t
ZERO
N

1 if result = 0
1 if MSB of result = 1
cOif MSB of result = 0

OVR
C

1 if signed arithmetic overflow or if MSB XOR MSB-1

1 before shift

1 if carry-out condition

tc is ALU carry-out and is evaluated before shift operation. ZERO and N (negative I are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after s~ift operation.

EXAMPLE (assumes a 32-bit configuration)

en
2

"~

(")

-I

00

~

Perform the computation A = 2(A + B), where A and B are single-precision, two's
complement numbers. Let A be stored in r~g!ster 1 and B be input via the DB bus.
Instr

Oprd

Oprd

Oprd 5el

Dest

Code

Addr

Addr

EB1-

Addr

17-10

AS-AO

BS-BO

01000001

00 0001

XX XXXX

EA EBO
0

10

Destination Selects
WE3- SELRF1-

OEV3-

CF2- S103-

CS-CO

SELMa

WEO

SELRFO

OEA

OEB

OEVO

OES

000001

0

0000

10

X

X

XXXX

0

Cn CFO
0

IESI03-

SiOo iESiOo

110 1110

0000

Assume register file 1 holds 1308C618 (Hex), DB bus holds 44007530 (Hex).

N
Source

00010011000010001100011000911000

I R-RF(1)

Source

010001000000 0000 01 I I 0101 0011 0000

I

Intermediate
Result

0101 01 I 1 0000 1001 001 I 101 I 01001000

I ALU Shifter

Destination

10101 I 100001 001001 I I 0110 1001 0001

3-148

S - DB bus

RF( 1)

+-

+-

R + S + Cn

ALU shift result

SSF

1

SLAD

Arithmetic Left Double Precision Shift

15 I

*

I

FUNCTION
Performs arithmetic left shift on MO register (LSH) and result of ALU operation (MSH)
specified in lower nibble of instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is used as the upper
half of a double-precision word, the contents of the MO register as the lower half.
The contents of the MO register are shifted one bit to the left. A zero is filled into
bit 0 of the least significant byte of each word unless the SID input for the word is
set to zero; this will force bit 0 to one. Bit 7 of the most significant byte in the MO
shifter is passed to bit 0 of the least significant byte of the ALU shifter. Bit 7 of the
most significant byte in the ALU shifter is dropped.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the Y MUX and MO register. If SSF is low, the ALU output and MO
register will not be altered .
• A list of ALU operations that can be used with this instruction is given in Table 15.

Shift Operations
ALU Shifter

MQ Shifter

Arithmetic Left

Arithmetic Left

Available Destination Operands (ALU Shifter)
RF

RF

(C5-CO)

(B5-BO)

Yes

No

Y-Port
Yes

ContrOl/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shift result if high; passes ALU result if low.

SIOO

Yes

Fills a zero in LSB of each word if high; fills a

SI01

Yes

one in LSB if low.

SI02

Yes

SI03

Yes

Cn

No

Affects arithmetic operation specified in bits 13-10 of
instruction field.

3-149

I5 I*

Arithmetic Left Double Precision Shift

SLAD

Status Signals t
ZERO

N

1 if result = 0
1 if MSB of result. = 1

o if
OVR

MSB of result = 0

1 if signed arithmetic overflow or if MSB XOR MSB-1

C

1 before shift

if carry-but condition

tc is ALU carry-out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Perform the computation A = 2(A + B), where A and B are two's complement numbers.
(/) Let A be a double Ilrecision number residing in register 1 (MSH) and the MQ register
~ (LSH). Let B be a single precision number which is input through the DB bus.
~

»
(")
-f
00
00

Instr

Oprd

Oprd

Oprd Sel

Dest

Code

Addr

Addr

EB1-

Addr

17-10

A5-AO

B5-BO

-

0101 0001

00 0001

XX XXXX

0

10

EA EBO

Destination Selects

WE3- SELRF1-

C5·CO

SELMa

000001

0

-

WEO

SELRFO

OEA

OEB

0000

10

X

X

OEY3-

CF2-

Si03- iESiOO-

0EYci DES en

CFO

SIOO

IESIOO

SSF

XXXX

110 1110

0000

1

0

0

Co\)

N

Assume register file 1 holds 2408C618 (Hex), DB bus holds 26007530 (Hex), and
MQ register holds 50A99AOE (Hex).
MSH
Source

0010010000001000110001100001 1000

I R +- RF( 1)

Source

00100110000000000111 0101 0011 0000

Is+- DB bus

Intermediate
Result

0100 10100000 1001 0011 1011 0100 1000

I ALU Shifter

Destination

1001 0100 OOP1 00100111 0110 1001 0000

I RF( 1) +- ALU shift register

Source

0101 0000 1010 1001 1001 101000001110

I MO shifter +- MO register

Destination

10100001 0101 0011 0011 01000001 1101

+-

R + S + en

LSH

3-150

MO register

+-

MO shift result

SLC

Circular Left Single Precision Shift

FUNCTION
Performs circular left shift on result of ALU operation specified in lower nibble of
instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is rotated one bit
to the left. Bit 7 of the most significant byte in each word is passed to bit 0 of the
least significant byte in the word. which may be 1. 2. or 4 bytes long.
The shift may be made conditional on SSF. If SSF is high or floating. the shift result
will be sent to Y MUX. If SSF is low. F is passed unaltered.
* A list of ALU operations that can be used with this instruction is given in Table 15.

N
M

Shift Operations
ALU Shifter

MQ Shifter

Circular Left

None

CO
CO

....

u

(")
-t

Instr

Oprd

Dest

Addr

Oprd
Addr

Oprd Sel

Code

EB1-

Addr

17-10

AS-AD

B5-BO

EA EBO

01100110

000110

XXXXXX

0

00

Destination Selects
WE3- SELRF 1-

C5-CO

SELMQ

WEO

SELRFO

OEA

OEB

000001

o

0000

10

X

X

"Ci"EY35EYo OES
XXX X

CF2Cn CFO

0

CO Assume register file 6 holds 3788C618 (Hex).
CO
Co\)

Source

0011 0111 1000 1000 110001100001 1000

I

R

Intermediate
Result

0011 0111 1000 1000 1100 0110 0001 1000

I

ALU Shifter

Destination

0110 1111 0001 0001 1000 1100 0011 0000

I

RF( 1)

N

3-152

+-

RF(6)

+-

+-

R

+ Cn

ALU shifter result

0

110

SSF

1

SLCD

Circular Left Double Precision Shift

7

FUNCTION
Performs circular left shift on MQ register (LSH) and result of ALU operation specified
in lower nibble of instruction field (MSH).

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is used as the upper
half of a double-precision word. the contents of the MQ register as the lower half.
The contents of the MQ and ALU registers are rotated one bit to the left. Bit 7 of the
most significant byte in the MQ shifter is passed to bit 0 of the least significant byte
of the ALU shifter. Bit 7 of the most significant byte is passed to bit 0 of the least
significant byte in the MQ shifter.
The shift may be made conditional on SSF. If SSF is high or floating. the shift result
will be sent to Y MUX. If SSF is low. F is passed unaltered and the MQ register is
not changed.

N

* A list of ALU operations that can be used with this instruction is given in Table 15.

U

~

CO

t-



Perform a circular left double precision shift of data in register 6 (MSH) and MQ (LSH),
and store the result back in register 6 and the MQ register.

~

Instr

Op,d

Op,d

Op,d Sel

Add,

Add,

EB1·

(')

Code
17·10
01110110

A5·AO
000110

B5·BO

-t

XX XXXX

EA EBO
0

00

Dest
Add,

Destination Selects

iNE3.

SELRF1·
SELRFO OEA

C5·CO

SELMO

WED

000110

0

0000

10

X

+-

RF(6)

0Ev3.
We 0EY0 OES
X

XXXX

CF2·
Cn CFO SSF

0

0

110

l

CO
CO
W Assume register file 6 holds 3708C618 (Hex) and MQ register holds 50A99AOE (Hex).
N
MSH

R

Source

0011 0111 00001000 110001100001 1000

Intermediate
Result

0011 0111 00001000110001100001 1000

I ALU Shifter

Destination

01101111 0001 0001 100011000011 0000

I

Source

0101 0000 1010 1001 1001 10100000 1110

I MQ register

+-

MQ register

Destination

10100001 0101 0011 0011 01000001 1100

I

+-

MQ shift result

RF(6)

+-

+-

R

+ Cn

ALU shifter result

LSH

3-154

MQ register

SMTC

Sign Magnitude/Two's Complement

I5I8I

FUNCTION
Converts data on the S bus from sign magnitude to two's complement or vice versa.

DESCRIPTION
The S bus provides the source word for this instruction. The number is converted by
inverting S and adding the result to the carry-in, which should be programmed high
for proper conversion; the sign bit of the result is then inverted. An error condition
will occur if the source word is a negative zero (negative sign and zero magnitude).
In this case, SMTC generates a positive zero, and the OVR pin is set high to reflect
an illegal conversion.
The sign bit of the selected operand in the most significant byte is tested; if it is high,
the converted number is passed to the destination. Otherwise the operand is passed
unaltered.
Available R Bus Source Operands
C3-CO
RF

A3-AO

(A5-AO) Immed

DA-Port

..
A3-AO

Mask
No

No

No

No

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port
Yes

MQ
Register
Yes

Available Destination Operands
RF

RF

(C5-CO) (B5-BO)
Yes

No

Shift Operations

Y-Port

ALU

MQ

Yes

None

None

3-155

15 18

Sigm Magnitude/Two's Complement

SMTC

Control/Data Signals
Sign!:!1

en
2
....,

t

(")

-4

CO
CO

User

Use

Programmable

SSF

No

Inactive

SIOO

No

Inactive

SiOf

No

Inactive

SI02

No

Inactive

SI03

No

Inactive

Cn

Yes

Should be programmed high for proper conversion

Status Signals
ZERO
N
OVR

1 if result = 0
1 if MSB = 1
1 if input of most significant byte is 80 (Hex) and results in all other

bytes are 00 (Hex).
C = 1 if S = 0

tAl
N EXAMPLES (assumes a 32-bit configuration)
Convert the two's complement number in register 1 to sign magnitude representation
and stor~ the result in register 4.

Oprd
Add,

Oprd
Add,

Op,d Sel
EB1-

Dest
Add,

A5-AO

B5-BO

EA EBO

C5-CO

000001

X 00

000100

Instr

Code
17,10

0101 1000 XX XXXX

Destination Selects

WE3-

SELRF1-

SELMO

WEo

SELRFO

OEA

(ffij

0

0000

10

X

X

OEY3·

Example 1: Assume register file 1 holds C3F6D840 (Hex).
Source

11000011111101101101100001000000

I S-

Destination

1011 11000000 1001 00100111 11000000

I RF(4) -

RF(1)

S' + Cn

Example 2: Assume register file 1 holds 550927CO (Hex).

Source

0101 0101 0000 1001 00100111 11000000

I S-

Destination

01010101 0000 1001 00100111 11000000

I RF(4) -

3-156

RF(1)

S

CF2-

0EY0 DEs
XXXX

0

Cn
1

CFO
110

SMUll

Signed Multiply Iterate

I6I0 I

FUNCTION
Computes one of N-1 signed or N mixed multiplication iterations for computing an
N-bit by N-bit product. Algorithms for signed and mixed multiplication using this
instruction are given in the "Other Arithmetic Instructions" section.

DESCRIPTION
SMUll checks to determine whether the multiplicand should be added with the present
partial product. The instruction evaluates:
F

+-

R + S + Cn

F-S

if the addition is required
if no addition is required

A double precision right shift is performed. Bit 0 of the least significant byte of the
ALU shifter is passed to bit 7 of the most significant byte of the MO shifter; carry-out
is passed to the most significant bit of the ALU shifter.
The S bus should be loaded with the contents of an accumulator and the R bus with
the multiplicand. The Y bus result should be written back to the accumulator after
each iteration of UMULI. The accumulator should be cleared and the MO register loaded
with the multiplier before the first iteration.

C3-CO
A3-AO

(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

Yes

No

Recommended S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port
Yes

MQ
Register
No

Recommended Destination Operands Shift Operations
RF

RF

(C5-CO) (B5-BO)
Yes

No

en
en

lt)

«
'It

"Z

en

Available R Bus Source Operands

RF

N
('I)

Y-Port

ALU

MQ

No

Right

Right

3-157

1610

Signed Multiply Iterate

Control/Data Signals
User

Signal
SSF

No

Inactive

5100

No

Passes LSB from ALU shifter to MSB of MQ shifter.

5101

No

SI02

No

Si03

No

Cn

Yes

Status Signals

en
Z
.....
~
~

Use

Programmable

ZERO

N
OVR

C

-f
CO
CO
W
N

3-158

1 if result = 0
1 if MSB = 1

o
1 if carry-out

Should be programmed low

SMUll

SMULT

Signed Multiply Terminate

I7I0 I

FUNCTION
Performs the final iteration for computing an N-bit by N-bit signed product. An algorithm
for signed multiplication using this instruction is given in the "other Arithmetic
Instructions" section.

DESCRIPTION
SMUll checks the present multiplier bit (the least significant bit of the MO register)
to determine whether the multiplicand should be added with the present partial product.
The instruction evaluates:
F

+-

R'

+ S + en

if the addition is required
if no addition is required

F-S

with the correct sign in the product.
A double precision right shift is performed. Bit 0 of the least significant byte of the
ALU shifter is passed to bit 7 of the most significant byte of the MO shifter.
The S bus should be loaded with the contents of an register file holding the previous
iteration result; the R bus must be loaded with the multiplicand. After executing SMULT,
the Y bus contains the most significant half of the product, and MO contains the least
significant half.
Available R Bus Source Operands
C3-CO
RF

A3-AO

(A5-AO) Immed

DA-Port

..
A3-AO

Mask
Yes

No

Yes

No

Recommended S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port
Yes

MQ
Register
No

Available Destination Qperands
RF

RF

(C5-CO) (B5-BO)
Yes

No

Shifl Operations

Y-Port

ALU

MQ

No

Right

Right

3-159

17 10

Signed ,Multiply Terminate

Control/Data Signals
User

Signal
SSF

No

Inactive

5100

No

Passes LSB from ALU shifter to MSB of MQ shifter.

5101

No

5102

No

5103

No

en

Yes

Status Signals

en
:2
-...I

Use

Programmable

ZERO

N

~

OVR

l>
(")
-t

c

CO
CO
Co\)

N

3-160

1 if result = 0

1 if MSB = 1

o
1 if carry-out

Should be programmed low

SMULT

SNORM

Single-Length Normalize

I2I0 I

FUNCTION
Tests the two most significant bits of the MO register. If they are the same, shifts
the number to the left.

DESCRIPTION
This instruction is used to normalize a two's complement number in the MO register
by shifting the number one bit position to the left and filling a zero into the LSB (unless
the SIO input for that word is low). Data on the S bus is added to the carry, permitting
the number of shifts performed to be counted and stored in one of the register files.
The shift and the S bus increment are inhibited whenever normalization is attempted
on a number already normalized. Normalization is complete when overflow occurs.

C3-CO

C\I
M
00
00

..

()

A3-AO


~

o

~

Perform the computation A = (A + B)/2, where A and B are single-precision numbers.
Let A reside in register 1 and B be input via the DB bus.
Instr
Code
17·10
00000001

Oprd
Addr
A5-AO
000001

Oprd
Oprd Sel
Dest
Addr
EB1·
Addr
B5-BO
EA EBO C5-CO
XX XXXX 0 10
000001

Destination Selects
SELRF10eY3.
SELMQ
SELRFO OEA Oeii 0eY0
o 0000 10
X
X XXXX

WE3WED

DEs
0

CF2Cn CFO SSF
Ci 110 1

CO
CO Assume register file 1 holds 6Ab8C618 (Hex) and DB bus holds 51007530 (Hex).
W
N

Source

0110 10100000 1000 110001100001 1000

I R +- RF( 1)

Source

0101 0001 00000000 0111 0101 0011 0000

Is+- DB bus

Intermediate t
Result

10111011000010010011101101001000

Destination

0101110110000100 1001110110100100

I ALU Shifter R + S + en
I RF(1) ALU shift result
+-

+-

tAfter the intermediate operation (ADD), overflow has occurred and OVR status signal is set high. When the
arithmetic right shift is executed, the sign bit is corrected (see Table 16 for shift definition notes).

3-164

SRAD

Arithmetic Right Double Precision Shift

1

I

*

FUNCTION
Performs arithmetic right shift on MQ register (LSH) and result of ALU operation (MSH)
specified in lower nibble of instruction field.

DESCRIPTION
The result of the ALLi operation specified in instruction bits 13-10 is used as the upper
half of a double precision word, the contents of the MQ register as the lower half.
The contents of the ALU are shifted one bit to the right. The sign bit of the most
significant byte is retained unless the sign bit is inverted as a result of overflow. Bit 0
of the least significant byte in the ALU shifter is passed to bit 7 of the most significant
byte of the MQ register. Bit 0 of the MQ register's least significant byte is dropped.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the Y MUX. If SSF is low, the ALU result will be passed unshifted to
the Y MUX.
* A list of ALU operations that can be used with this instruction is given in Table 15.
Shift Operations
ALU Shifter

MQ Shifter

Arithmetic Right Arithmetic Right
Available Destination Operands (ALU Shifter)
RF

RF

(C5-CO)

(B5-BO)

Yes

No

Y-Port
Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shifted output if high; passes ALU result

5100

No

LSB of ALU shifter is passed to MSB of MQ shifter,
and LSB of MQ shifter is dropped.

if low.
SI01

No

SI02

No

5103

No

Cn

No

Affects arithmetic operation specified in bits 13-10 of
instruction field.

3-165

I1 I*

Arithmetic Hight Double Precision Shift

SHAD

Status Signals t

ZERO

1 if result

N

= 0
=

1

MSB of result =

0

1 if MSB of result

o if
o

OVR
C

1 if carry-out condition

t C is ALU carry-out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Perform the computation A = (A + B)/2, where A and B are two's complement numbers.
Let A be a double precision number residing in register 1 (MSH) and MQ (LSH). Let
~ B be a single precision number which is input through the DB bus.

en
~

»
o
-I
CO
CO
W
N

Instr

Code
17-10
0001 0001

Oprd
Add,
A5-AO
000001

Op,d Sel
Dest
EB1Add,
EAEBO
C5-CO
XX XXXX 0 10
000001
Op,d
Add,
B5-BO

Destination Selects

WE3.

SELMQ
0

SELRF1·
SELRFO
0000
10

WEo

0EY3OEA 0EEi 0EY0 5Es
X

X

XXXX

0

CF2Cn CFO SSF
0 110 1

Assume register file 1 holds 4A08C618 (Hex). and DB bus holds 51007530 (Hex).
and MQ register holds 17299AOF (Hex).
MSH
Source

01001010000010001100011000011000 I

Source

0101 0001 000000000111 0101 0011 0000 IS+- DB bus

Intermediate:!:
Result

Destination

R +- RF(1)

1001 1011 00001001 0011 1011 01001000 I

ALU

01001101100001001001110110100100 I

RF(1) +-

Shifter +- R

ALU

+

S

+

Cn

shift result

LSH
Source

Destination

0001

on 1 00101001

1001 101000001111

0000 1011 1001 0100 1100 1101 00000111

MO shifter +- MO register

MO register +- MQ shift result

:tAfter the intermediate operation (ADD), overflow has occurred and OVR status signal is set high. When the
arithmetic right shift is executed, the sign bit is corrected (see Table 16 for shift definition notes).

3-166

SHC

Circular Hight Single Precision Shift

I8I

*

FUNCTION
Performs circular right shift on result of ALU operation specified in lower nibble of
instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is shifted one bit
to the right. Bit 0 of the least significant byte is passed to bit 7 of the most significant
byte in the same word, which may be 1,2, or 4 bytes long depending on the selected
configuration.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the Y MUX. If SSF is low, the ALU result will be passed unshifted to
the Y MUX .
• A list of ALU operations that can be used with this instruction is given in Table 15.

Shift Operations
ALU Shifter

MQ Shifter

Circular Right

None

Available Destination Operands IALU Shifter)
RF

RF

(C5-CO)

(B5-BO)

Yes

No

Y-Port
Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shift result if high; passes ALU result

SIOO

No

Rotates LSB to MSB of the same word, which may

SIOl

No

be 1, 2, or 4 bytes long depending on configuration

if low.

SI02

No

SI03

No

Cn

No

Affects arithmetic operation specified in bits 13-10 of
instruction field.

3-167

I8 I*

Circular Right Single Precision Shift

SRC

Status Signals t
ZERO

N

1 if result = 0
1 if MSB of result = 1

o if MSB of result
OVR

C

= 0

1 if signed arithmetic overflow
1 if carry-out condition

t C is ALU carry-out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Perform a circular right shift of register 6 and store the result in register 1.
C/)

2

"l>
~

n

Instr

Code
17-10

Oprd
Addr
A5-AO

1000 0110 000110

Oprd
Addr
85-80

XX

Oprd Sel
E81·
EA E80

xxxx a xx

Dest
Addr
C5-CO
00 0001

Destination Selects

SELRF1-

SELMa

iiVE3.
WEO

a

0000

10

SELRFO

OEY3-

OEA 0Eii
X

X

CF2OEYO OES Cn CFO SSF
a a 110 1

xxxx

-t

00 Assume register file 6 holds 3788C618 (Hex).
00

~

Source

0011 0111 1000 1000 1100 0110 0001 1000

Intermediate
Result

0011 0111 1000 1000 1100 0110 0001 1000

Destination

0001 1011 1100 0100 0110 0011 0000 1100

3-168

IR

+-

RF(6)

I ALU Shifter R + Cn
I RF( 1) ALU shift result
+-

+-

SHCD

Circular Hight Double Precision Shift

I9I

*

FUNCTION
Performs circular right shift on MO register (LSH) and result of ALU operation (MSH)
specified in lower nibble of instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is used as the upper
half of a double precision word, the contents of the MO register as the lower half.
The contents of the ALU and MO shifters are rotated one bit to the right. Bit 0 of the
least significant byte in the ALU shifter is passed to bit 7 of the most significant byte
of the MO shifter. Bit 0 of the least significant byte is passed to bit 7 of the most
significant byte of the ALU shifter.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the Y MXU and MO register. If SSF is low, the Y MUX and MO register
will not be altered.

N
M

* A list of ALU operations that can be used with this instruction is given in Table 15.

U

~
~

«~

Shift Operations

"

Z

en

ALU Shifter

MQ Shifter

Circular Right

Circular Right

Available Destination Operands (ALU Shifter)
RF

RF

(C5-CO)

(B5-BO)

Yes

No

Y-Port
Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shift result if high; passes ALU result and

SIOO

No

Rotates LSB of ALU shifter to MSB of MQ shifter,
and LSB of MQ shifter to MSB of ALU shifter

retains MQ register if low.
SIOl

No

SI02

No

SI03

No

Cn

No

Affects arithmetic operation specified in bits 13-10 of
instruction field.

3-169

I9 I*

Circular Hight Double Precision Shift

SHCD

Status Signals t
1 if result = 0

ZERO

1 if MSB of result = 1

N

o if

MSB of result = 0

1 if signed arithmetic overflow

OVR

C

if carry-out condition

t C is ALU carry-out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)

en

Perform a circular right double precision shift of the data in register 6 (MSH) and MQ
(LSH), and store the result back in register 6 and the MQ register.

2

.....

~

l>
n
-t

Instr

Op,d

Op,d

Op,d Sel

Code
17·10

Add,

Add,
BS;eO

EB1EA EBO

10010110

AS-AO
000110

XX XXXX

0

XX

Dest
Add,

Destination Selects

WE3-

CS-CO

SELMQ

WEci

SELRF1·
SELRFO

000110

0

0000

10

0EY30eA DeB 0eYli 0Es
X

X

XXXX

0

Cn

CF2·
CFO

0

110

CO
CO Assume register file 6 holds 3788C618 (Hex) and MQ register holds 50A99AOF (Hex).
W
N

MSH
R

RF(6)

Source

0011 0111 00001000110001100001 1000

Intermediate
Result

0011 0111 0000 1000 110001100001 1000

Destination

1001 1011 1000010001100011 00001100

Source

0101 000010101001 1001 101000001111

MQ shifter - MQ register

Destination

001010000101 0100 1100 1101 0000 0111

MQ register - MQ shift result

+-

I ALU shifter R + Cn
I RF(6) - ALU shift result
+-

LSH

3-170

SRL

Logical Right Single Precision Shift

FUNCTION
Performs logical right shift on result of ALU operation specified in lower nibble of
instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is shifted one bit
to the right. A zero is placed in the bit 7 of the most significant byte of each word
unless the SIO input for the word is programmed low; this will force the sign bit to
one. The LSB is dropped from the word, which may be 1,2, or 4 bytes long depending
on selected configuration.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the Y MUX. If SSF is low, the ALU result will be passed unshifted to
the Y MUX.
• A list of ALU operations that can be used with this instruction is given in Table 15.

N

('I)
ex)
ex)

....

U

Shift Operations



(")
~

CO
CO
W
N

3-172

I

+-

DA bus

RF( 1)

+-

+-

R + en

ALU shift result

SRLD

Logical Right Double Precision Shift

FUNCTION
Performs logical right shift on MQ register (LSH) and result of ALU operation (MSH)
specified in lower nibble of instruction field.

DESCRIPTION
The result of the ALU operation specified in instruction bits 13-10 is used as the upper
half of a double precision word, the contents of the MQ register as the lower half.
The ALU result is shifted one bit to the right. A zero is placed in the sign bit of the
most significant byte unless the SIO input for that word is programmed low; this will
force the sign bit to one. Bit 0 of the least significant byte is passed to bit 7 of the
most significant byte of the MQ shifter. Bit 0 of the least significant byte of the MQ
shifter is dropped.
The shift may be made conditional on SSF. If SSF is high or floating, the shift result
will be sent to the Y MUX and MQ register. If SSF is low, the ALU result and MQ
register will not be altered.
* A list of ALU operations that can be used with this instruction is given in Table 15.
Shift Operations
ALU Shifter

MQ Shifter

Logical Right

Logical Right

Available Destination Operands (ALU Shifter)
RF

RF

(C5-CO)

(B5-BO)

Yes

No

Y-Port
Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

Yes

Passes shift result if high; passes ALU result and

5100

Yes

Fills a zero in M5B if high or floating;

SiOT

Yes

fills a one M5B if low.

5102

Yes

5103

Yes

Cn

No

retains MQ

Affects arithmetic operation specified in bits 13-10 of
instruction field.

3-173

I3 I*

Logical Right Double Precision Shift

SRLD

Status Signals t

ZERO

1 if result = 0

N == 1 if MSB of result = 1

o if MSB of result
OVR
C

= 0

1 if signed arithmetic overflow
if carry-out conditioh

t C is ALU carry-out and is evaluated before shift operation. ZERO and N (negative) are evaluated
after shift operation .. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
t/)

2

~

l>
C')

-4
00
00

Perform a logical right double precision shift of the data in register 1 (MSH) and MO
(LSH), filling a one into the most significant bit, and store the result back in register 1
and the MO register.
Instr

Op,d

Op,d

Op,d S.I

Dest

Code

Add,

Add,

EB1·

Add,

17·10

A5·AO

B5·BO

00110110 XX XXXX 00 0001

EAEBO
X

00

Destination Selects

iiVe3.

SELRF1·

C5·CO

SELMO

WEo

SELRFO

000001

0

0000

10

om·

CF2·

i5'EA 0Eii 0EY0 0Es
X

X

0

XXXX

Cn CFO
0

Si03. iESi03.
SIOO iESiOo

110 1110

0000

W
N Assume register file 1 holds 2DA8C615 (Hex) and MO register holds 50A99AOE (Hex).

MSH
Source

0010 1101 10101000 1100 0110 0001 0101

R

Intermediate
Result

0010 1101 10101000 110001100001 0101

ALU Shifter

Destination

10010110 1101 0100 0110 00110000 1010

I RF(1)

Source

0101 0000 1010 1001 1001 1010 0000 1110

I MQ shifter

Destination

1010 1000 0101 0100 1100 1101 0000 0111

+-

RF(1)

+-

+-

S + Cn

ALU shift result

LSH

3-174

+-

MQ register

MQ register

+-

MQ shift result

,

SUBI

Subtract Immediate

I7I8I

FUNCTION
Subtracts four-bit immediate data on A3-AO with carry from S-bus data.

DESCRIPTION
Immediate data in the range 0 to 15, supplied by the user at A3-AO, is inverted and
added with carry to S.
Available R Bus Source Operands (Constant)
C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed

..
A3-AO
Mask

No

Yes

No

N
M
00
00

No

t-

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port

«~

MO

"Z

Register

Yes

Yes

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

U

No

CJ)

Shift Operations

Y-Port

ALU

MO

Yes

None

None

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

SIOO

No

Inactive

SiOT

Inactive

Si02

No
No

5103

No

Inactive

Cn

Yes

Two's complement subtraction if programmed high.

Inactive

3-175

1718 1

SUBI

Subtract Immediate

Status Signals
ZEAO
N
OVA
C

1

if result =

1

if

1

0

MSB = 1

if arithmetic Signed overflow
if carry-out

EXAMPLE (assumes a 32-bit configuration)
Subtract the value 12 from data on the DB bus, and store the result into register file 1.

en
z

Inst,
Code
17-10
01111000

Op,d
Add,
A5-AO
001100

Op,d
Op,d Sel
Dest
EB1Add,
Add,
B5-BO
Eli EBO C5-CO
XX XXXX
X 10 00 0001

Destination Selects

WE3SELMa

o

SELRF1SELRFO
0000
10

WEo

0EY3-

15EA

Qeij

X

X

0eY0 0eS
XXXX

'" Assume bits A3-AO hold C (Hex) and DB bus holds 24000100 (Hex).
~

l>
o
-t

CO
CO
W
N

Source

00000000 0000 0000 0000 0000 00001100

I A +- A3-AO

Source

0010010000000000 0000 0001 00000000

Is+-

Destination

001001000000000000000000 1111 0100

I

3-176

DB bus

AF( 1)

+- A'

+

S

+

Cn

0

CF2Cn CFO
1 110

Subtract R with Carry (R ' + S + Cn)

SUBR
FUNCTION

Subtracts data on the R bus from S with carry.

DESCRIPTION
Data on the R bus is subtracted with carry from data on the S bus. The result appears
at the ALU and MQ shifters.
* The result of this instruction can be shifted in the same microcycle by specifying a shift instruction in the
upper nibble (17-14) of the instruction field. The rellult may also be passed without shift. Possible instructions
are listed in Table 15.

Available R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

Yes

No

No

Available S Bus Source Operands
RF
MQ
DB-Port
(B5-BO)
Register
Yes

Yes

Yes

Available Destination Operands
RF
RF
(C5-CO) (B5-BO)
Yes

Y-Port
Yes

No

ALU

MQ

Shifter

Shifter

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

SIOO

No

instruction field.

SI01

No

SI02

No

SI03

No

Cn

Yes

Two's complement subtraction if programmed high.

3-177

1* 12

Subtract q with Carry (R'

+

S

+

SUBR

Cn)

Status Signals t

ZERO

if result = 0

N

1 if MSB = 1

OVR

if signed arithmetic overflow

C

if carry-out

t C is ALU carry-out and is evaluated before shift operation. ZERO and N (negative) are evaluated after shift
operation. OVR (overflow) is evaluated after ALU operl;ltion and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Subtract data in register 1 from data on the DB bus, and store the result in the MQ
register.

en
2

-..J

t
n

Instr

Oprd

Oprd

Code
17-10
11100010'

Addr
A5-AO

Addr
85-80

000001

XX XX'XX

Oprd Sel
EB1EAE80
0

10

Destination Selects

Dest
Addr
C5-CO

SELMQ

XX XXXX

1

WEa-

SELRF1-

WEO

SELRFO
XXXX
XX

0eV3OEA OEB 6EYli OES
X

X

XXX X

0

-4

CF2Cn CFO
1

110

00 Assume register file 1 holds 15008400 (Hex) and DB bus holds 4900C350 (Hex).

ffiN

Source

0001 0101 0000 0000 1000 0100 1101 0000

I R-

RF( 1)

Source

01001001 0000000011000011 0101 0000

I S-

DB bus

Destination

0011 0100000000000011 111010000000

I

3-178

MQ register - R'

+ S + Cn

Subtract S with Carry (R + S' + Cn)

SUBS
FUNCTION

Subtracts data on the S bus from R with carry.

DESCRIPTION
Data on the S bus is subtracted with carry from data on the R bus. The result appears
at the ALU and MQ shifters.
"The result of this instruction can be shifted in the same microcycle by specifying a shift instruction in the
upper nibble (17-14) of the instruction field. The result may also be passed without shift. Possible instructions
are listed in Table 15.

Available R Bus Source Operands
C3-CO
A3-AO
RF
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

Yes

No

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port

MQ
Register

Yes

Yes

Available Destination Operands
RF

RF

(C5-CO) (B5-BO)
Yes

No

Y-Port
Yes

ALU

MQ

Shifter

Shifter

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Affect shift instructions programmed in bits 17-14 of

5100

No

instruction field.

5101

No

5102

No

5103

No

Cn

Yes

Two's complement subtraction if programmed high.

3-179

I* I3

Subtract S with Carry (R + Sf + Cn)

SUBS

StatUI> Signals t

ZERO
N

OVR
C

if result = 0
1 if MSB = 1
1 if signed arithmetic overflow
if carry-out

t C is ALU carry-out and is evaluated before ~hift operation. ZERO and N (negative) are evaluated
after shift operation. OVR (overflow) is evaluated after ALU operation and after shift operation.

EXAMPLE (assumes a 32-bit configuration)
Subtract data on the DB bus from data in register 1, and store the result in the MQ
register.
f/)

2
....,
~

l>

(")

....

ex)
ex)

W
N

Op,d

Op,d

Add,

Add,

A5·AO

B5·BQ
XX XXXX

Instr
Code
17-10
11100011

000001

Op,d Sel
EB1-

Oest
Add,

EAEBO

C5-CO

SELMQ

XX XXXX

1

0

10

Destination Selects

We3-

SELRF1·
WEO SELRFO
XXXX
XX

OEY3-

00i DEB 1iEYo 0Es
X'

X

XXXX

0

CF2·
Cn CFO
1

110

Assume register file 1 holds 15008400 (Hex) and DB bus holds 4900C350 (Hex).
Source

000101010000 000010000100110) 0000

I .R .... RF(1)

Source

01001001 0000000011000011 0101 0000

Is+- DB bus

Destination

3-180

1100 1011

i 111

1111 11000001 10000000

I MQ register .... R + S' + en

TBO

Test Bit (Zero)

3

8

FUNCTION
Tests bits in selected bytes of S-bus data for zeros using mask in C3-CO::A3-AO.

DESCRIPTION
The S bus is the source word for this instruction. The source word is passed to the
ALU, where it is compared to an a-bit mask, consisting of a concatenation of the C3-CO
and A3-AO address ports (C3-CO::A3-AO). The mask is input via the R bus. The test
will pass if the selected byte has zeros at all bit locations specified by the ones of
the mask. Bytes are selected by programming the SIO inputs low. Test results are
indicated on the ZERO output, which goes to one if the test passes. Register write
is internally disabled during this instruction.
Available R Bus Source Operands

N
M
CO
CO

C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed

..

I(.)
c:(

A3-AO
Mask

No

No

No

~

"Z

Yes

(IJ

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port

MQ
Register

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

SIOO

Yes

Byte Select

SI01

Yes

Byte Select

SI02

Yes

Byte Select

SI03

Yes

Byte Select

Cn

No

Inactive

3-181

131a

Test Bit (Zero)

TBO

.Status Signals
ZERO

1 if result (selected bytes)

N

o

OVR

0
0

C

Pass

EXAMPLE (assumes a 32-bit configuration)
Test bits 7, 6 and 5 of bytes 0 and 2 of data in register 3 for zeroes.

en
2

"

~

Instr

Mask

Oprd

Oprd Sol

Mask

Code

(LSH)

Addr

EB1·

(MSH)

17-10

A3-AO

B5-BO

EA EBO

C3-CO

0011 1000

0000

000011

X 00

1110

Destination Selects

WEi·

SELRF1-

SELMa

WeO

SELRFO

X

XXXX

xx

OEV3-

CF2-

0eA i5EB OEYO 0Es
x

x

XXXX

Q

Cn CFO

SiO"3- iEsi'1i35100 iESiOo

X 110 1010

Assume register file 3 holds 881 CD003 (Hex).

l>

(")

Source

11100000111000001110000011100000

I

R +- Mask (C3-CO::A3-AO)

Source

100010000001 11001101 000000000011

I

SN

-I

CO
CO
W
N

Output
tn

nth byte

3-182

GJ

+-

ZERO

RF(3)n t

+-

1

0000

Test Bit (One)

TB1

2

8

FUNCTION
Tests bits in selected bytes of S-bus data for ones using mask in C3-CO::A3-AO.

DESCRIPTION
The S bus is the source word for this instruction. The source word is passed to the
ALU, where it is compared to an 8-bit mask, consisting of a concatenation of the C3-CO
and A3-AO address ports (C3-CO::A3-AO). The mask is input via the R bus. The test
will pass if the selected byte has ones at all bit locations specified by the ones of the
mask. Bytes are selected by programming the SIO inputs low. Test results are indicated
on the ZERO output, which goes to one if the test passes. Register write is internally
disabled for this instruction.
Available R Bus Source Operands
C3-CO
RF

A3-AO

DA-Port

(A5-AO) Immed

..
A3-AO
Mask

No

No

No

Yes

Available S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port

MQ
Register

Yes

Yes

Control/Data Signals
Signal

User

Use

Programmable

SSF

No

Inactive

SIOO

Yes

Byte Select

SIOl

Yes

Byte Select

SI02

Yes

Byte Select

Si03

Yes

Byte Select

Cn

No

Inactive

3-183

12 18

Test Bit (One)

TB1

Status Signals

ZERO

1 if result (selected bytes)

Pass

o

N
OVR

0

C

0

EXAMPLE (assumes a 32-bit configuration)
Test bits 7, 6 and 5 of bytes 1 and 2 of data in register 3 for ones.

CJ)

Destination Selects

Instr

Mask

Oprd

Oprd Sel

Mask

Code

(LSH)

Addr

EB1-

(MSH)

17-10

A3-AO

B5-BO

Eli EBO

C3-CO

SELMa

WEo

SELRFO

0010 1000

0000

000011

1110

x

xxxx

xx

x

00

0EY3-

WE3- SELRF1-

CF2-

OEA DEe 0W0 0eS
x

x

XXX X

0

Cn CFO

SiOO- iESi03SiOO iESiOii

X 110 1001

2
""'" Assume register file 3 holds 881 CFOO;3 (Hex).
~

l>

(")

Mask

11100000 111000001110000011100000

Rn - Mask (C3-CO::A3-AO)

Source

100010000001 11001101 000000000011

Sn - RF(3)n t

~

00
00
W
N

Output
tn

3-184

nth byte

G

ZERO - 0

0000

UDIVI

Unsigned Divide Iterate

IcI0 I

FUNCTION
Performs one of N-2 iterations of nonrestoring unsigned division by a test subtraction
of the N-bit divisor from the 2N-bit dividend. An algorithm using this instruction can
be found in the "Other Arithmetic Instructions" section.

DESCRIPTION
UDIVI performs a test subtraction of the divisor from the dividend to generate a quotient
bit. The test subtraction may pass or fail and is corrected in the subsequent instruction
if it fails. Similarly a failed test from the previous instruction is corrected during
evaluation of the current UDIVI instruction (see the "Other Arithmetic
Instructions"section for more details).
The R bus must be loaded with the divisor, the S bus with the most significant half
of the result of the previous instruction (UDIVI during iteration or UDIVIS at the
beginning of iteration). The least significant half of the previous result is in the MQ
register.

M
CO
CO

UDIVI checks the result of the previous pass/fail test and then evaluates:

U

F+-R+S
F +- R' + S

+ en

N

~

«~
,...

if the test is failed
if the test is passed

Z

CJ)

A double precision left shift is performed; bit 7 of the most significant byte of the
MQ shifter is transferred to bit 0 of the least significant byte of the ALU shifter. Bit 7
of the most significant byte of the ALU shifter is lost. The unfixed quotient bit is
circulated into the least significant bit of the MQ shifter.
Available R Bus Source Operands
C3-CO
A3-AO
RF
(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

Yes

No

Recommended S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port
Yes

MQ

Register
No

3-185

Ie 10

Unsigned Divide Iterate

Recommended Destination Operands Shift Operations
RF

RF

(C5-CO) (85-80)
Yes

No

Y-Port

ALU

MQ

Yes

Left

Left

Control/Data Signals
User
Signal

Programmable

SSF

No

Inactive

5100

No

Passes internally generated end-fill bit.

5101

No

en

5102

No

5103

No

-...I

Cn

Yes

2

~

»

(") Status Signals

-i
00
00
W
N

ZERO

1 if result = 0

N

o

OVR

o

C

3-186

1 if carry-out

Use

Should be programmed high.

UDIVI

UDIVIS

Unsigned Divide Start

IBI0 I

FUNCTION
Computes the first quotient bit of nonrestoring unsigned division. An
algorithm using this instruction is given in the "Other Arithmetic Instructjions" section.

DESCRIPTION
UDIVIS computes the first quotient bit during nonrestoring unsigned division by
subtracting the divisor from the dividend. The resulting remainder due to subtraction
may be negative; the subsequent UDIVI instruction may have to restore the remainder
during the next operation.
The R bus must be loaded with the divisor and the S bus with the most significant
half of the remainder. The result on the Y bus should be loaded back into the register
file for use in the next instruction. The least significant half of the remainder is in the
MQ register.

~

UDIVIS computes:

ex)
ex)

F

+-

R'

+

S

+

....

U

Cn

A double precision left shift is performed; bit 7 of the most significant byte of the
MQ shifter is transferred to bit 0 of the least significant byte of the ALU shifter. Bit 7
of the most significant byte of the ALU shifter is lost. The unfixed quotient bit is
circulated into the least significant bit of the MQ shifter.
Available R Bus Source Operands
C3-CO
RF

A3-AO

(A5-AO) Immed

DA-Port

..
A3-AO
Mask

Yes

No

Yes

No

Recommended S Bus Source Operands
RF
(B5-BO)
Yes

DB-Port
Yes

MQ
Register
No

Recommended Destination Operands Shift Operations
RF
RF
(C5-CO) (B5-BO)
Yes

No

Y-Port

ALU

MQ

Yes

Left

Left

3-187


~

(1

ZERO

N
OVR

C

-4
CO
CO
W
N

3-190

1 if intermediate result =0

o
o
1 if carry-out

UDiVIT

UMULI

Unsigned Multiply Iterate

o o

FUNCTION
Performs one of N unsigned multiplication iterations for computing an N-bit by N-bit
product. An algorithm for unsigned multiplication using this instruction is given in the
"Other Arithmetic Instructions" section.

DESCRIPTION
UMULI checks to determine whether the multiplicand should be added with the present
partial product. The instruction evaluates:
F +- R + S +
F+-S

en

if the addition is required
if no addition is required

A double precision right shift is performed. Bit 0 of the least significant byte of the
ALU shifter is passed to bit 7 of the most significant byte of the MQ shifter; carry-out
is passed to the most significant bit of the ALU shifter.
The S bus should be loaded with the contents of an accumulator and the R bus with
the multiplicand. The Y bus result should be written back to the accumulator after
each iteration of UMULI. The accumulator should be cleared and the MQ register loaded
with the multiplier before the first iteration.
R Bus Source Operands
C3-CO
RF
A3-AO
(A5-AO) Immed
Yes

No

DA-Port

Yes

..
A3-AO
Mask
No

Recommended S Bus Source Operands
RF
MQ
DB-Port
(85-80)
Register
Yes
Yes
No
Recommended Destination Operands Shift Operations
RF

RF

(C5-CO) (85-80)
Yes

No

Y-Port

ALU

MQ

Yes

Right

Right

3-191

N

~
CO
~

u


(")

-I
00
00
eN

0')

4-2

SN74ACT8836 32·Bit by 32·Bit
Multiplier/Accumulator
The SN74ACT8836 is a 32-bit integer multiplier/accumulator (MAC) that accepts
two 32-bit inputs and computes a 64-bit product. An on-board adder is provided
to add or subtract the product or the complement of the product from the
accumulator.
To speed-up calculations, many modern systems off-load frequently-performed
multiply/accumulate operations to a dedicated single-cycle MAC. In such an
arrangement, the 'ACT8836 MAC can accelerate 32-bit microprocessors,
building block processors, or custom CPUs. The' ACT8836 is well-suited for
digital signal processing applications, including fast fourier transforms, digital
filtering, power series expansion, and correlation.

4-3

rJ)

2:
~

~

»
(")
~

co
co

eN
0')

4-4

SN74ACTB836
32·BIT BY 32·81T MULTIPLIER/ACCUMULATOR
03046. JANUARY 1988

•

Performs Full 32-Bit by 32-Bit
Multiply/Accumulate in Flow-Through Mode
in 60 ns (Max)

•

Can be Pipelined for 36 ns (Max) Operation

•

Performs 64-Bit by 64-Bit Multiplication in
Five Cycles

•

Supports Division Using Newton-Raphson
Approximation

•

Signed, Unsigned, or Mixed-Mode Multiply
Operations

•

EPIC'· (Enhanced-Performance Implanted
CMOS) l-J.'m Process

•

Multiplier, Multiplicand, and Product Can be
Complemented

•

Accumulator Bypass Option

•

TTL I/O Voltage Compatibility

•

Three Independent 32-Bit Buses for
Multiplicand, Multiplier, and Product

•

Parity Generation/Checking

•

Master/Slave Fault Detection

•

Single 5-V Power Supply

•

Integer or Fractional Rounding

description
The' ACT8836 is a 32-bit by 32-bit parallel multiplier/accumulator suitable for low-power, high-speed
operations in applications such as digital signal processing, array processing, and numeric data processing.
High speed is achieved through the use of a Booth and Wallace Tree architecture.
Data is input to the chip through two registered 32-bit DA and DB input ports and output through a registered
32-bit Y output port. These registers have independent clock enable signals and can be made transparent
for flowthrough operations.

II

The device can perform two's complement, unsigned, and mixed-data arithmetic. It can also operate as
a 64-bit by 64-bit multiplier. Five clock cycles are required to perform a 64-bit by 64-bit multiplication
and multiplex the 128-bit result. Division is supported using Newton-Raphson approximation.
A multiply/accumulate mode is provided to add or subtract the accumulator from the product or the
complement of the product. The accumulator is 67 bits wide to accommodate possible overflow. A warning
flag (ETPERR) indicates whether overflow has occurred.
A rounding feature in the' ACT8836 allows the result to be truncated or rounded to the nearest 32-bits.
To ensure data integrity, byte parity checking is provided at the input ports, and a parity generator and
master/slave error detection comparator are provided at the output port.
The SN74ACT8836 is characterized for operation from OOC to 70°C.

2:

o

i=
c:r:
~
a:

ou.

-

2:

w

(,)

2:

~

Q

c:r:

EPIC is a trademark of Texas Instruments Incorporated

ADVANCE INFORMATION doc.mants contain

~~~;:d::~nO:h:::or~::f~::.!~ac~::=,.:~

uta and other specifications are subject to change
without notice.

TEXAS

~

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

Copyright © '988, Texas Instruments Incorporated

4-5

SN74ACT8836

32-BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
logic symbol
32 x 32 MULTIPLIER/
ACCUMULATOR
4>
74ACT8836
ClK
CKEA
CKEB

CKEi
CKEY
OASGN
OBSGN
COMPl
RNOO
RN01
ACCO
ACC1

•

SFTO
SFT1

(J)

2

FTO
FT1

'-I
~

l>

n

SELY

-I
CO
CO

SElO
EA

EB

W

en

SElREG
WEMS
WElS

»C
<
»2

(H1)

.....
......
......

(H151
(H2)
(G141
(C12)

,....

OA31

m

'T1

0

OB31

PAR
STAT

OA REG
DB REG

ClK
EN

I REG

Y PORT
MASTER/SLAVE

(0151

EOUAl CHK

Y REG

(014)

0

(G13)

110

(H12)
(G12)

INSTR
INPUTS

(E15)
(C14)

(A15)
(E14)
(B15)

3

(M8)

0

(09)

OA
PORT

(013)
(F1)

PARITY
INPUTS

o

ISHIFTER
1 CONTROL

(G4)
(H13)

1

08
PORT

CONTROL
EXTENDED
PRECISION

YMUX

(H14)

......

(C3)

......

OMUX
RMUX

(06)
(07)

3

(B3)
(G1)

(05)
(M7)

0

o I FEEOTHROUGH

(G15)

(P9)
(010)

3

(813)
(B12)

0
2

Y OUT/EN

SMUX

(814)

...,

(03)
(02)

TESTI 0
PINS 1

_l'.. RAorR81
MS 32-BITS WRITE
...... lS 32-BITS ENA8lE

(G3)

..,
0

•••

•
•31•
0

••
•

•

••
31

PERRB
PERRY
MSERR
ETPERR
PYO
PY1
PY2
PY3
PAO
PA1
PA2
PA3
PBO
PB1
PB2

YETPO
YETP1
YETP2

(C13)

(E7)
(01)

PERRA

PB3

I

INPUT
SELECT

TPO
TP1

r

I OAT~
I OAT~

~
I

RESULTS;

::D

s:
»

:::!

0
2

TEXAS ."

4-6

(E141

Y PORT
PARITY

OBO

2

(081
(C15)

08 PORT

(F15)

OAO

0

(881

OA PORT

ClK

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TeXAS 75265

0

••
•
31

••
•

YO

Y31

SN74ACT8836
32·81T 8Y 32·81T MULTIPLIER/ACCUMULATOR

functional block diagram (positive logic)

SGNEXT
SELD

PA3-PAO +-_--/-..;4'--_+-_ _ _-1
PB3-PBO

+-_--1-:..4'--_+-___-1

2

PERRA

+ ____-+____....J

PERRB

+-----+-------'
2

SFT1-SFTO

SELREG
WEMS
WELS

32

DA31-DAO+--+3::.:2=-e_~_ _ _.....,

32
32

CKEA~----~----~---;--I

DB31-DBO
CKEB

CKEI
EA
~-----H-~EB

'----'

(0
('I)

DASGN
DBSGN

L -_ _ _ _ _ _ _-I

CO
CO

MULTIPLIER/ADDER STAGE 1

l-

RND1-RNDO

ACC1-ACCO

t)

PIPELINE REGISTER

COMPL
2

«

MULTIPLIER/ADDER STAGE 2

""'"2:
en

~----------1-CKEY

FT1-FTO~
TP1-TPO~

2

o

CLK+--

VCC~

l-

GND~

e:(

J'----------~~SELY

PERRY

~

a:

oLL
2
w

U

2

OEY~----------+~~~--~~~---~

ETPERR YETP2-YETPO

Y31-YO

e:(

>
C

MSERR PY3-PYO

e:(

TEXAS . "

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

4-7

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
GB PIN·GRID·ARRAY PACKAGE
(TOP VIEWI

2
A
B

C

D
E

F
G

H

J
K
L
M

N
p

R

3

4

5

• • • •
•
• @ • •
• • • •
• • •
• • •
• • •
• • • •
• • • •
• • • •
• • •
• • •
• • •
• • • •
•@ • •
• • • •

6

7

8

9

• • • •
• • • •
• • • •
• •

•
• • •
• • •
• • •

•
•
•
•

10 11 12 13 14 15

• • • • •
• • • • •
• • • • •
•
•
•
•
• •
• •
• •
•
•
•
•
• • • • •
• • • • •
• • • • •

• •

@.

•
•
•
•

•
•
•
•

• •

•
•
•
•
•

•
•
•
•
•
• •

@ •

• •

GB PACKAGE PIN ASSIGNMENTS

NO.
Al
A2
A3
A4
A5
A6
A7
A8
A9
Al0
All
A12
A13
A14
A15
Bl
B2
83
B4
B5
B6
B7
B8
B9
Bl0
Bll

l>

C

<

l>
2

(')

m

2

."

o:xJ
s:

l>

:::!

o

PIN
NAME

Y8
Yl0
Yll
Y13
Y14
Y16
Y18
Y19
Y21
Y23
Y25
Y27
Y28
Y30
PYl
Y2
Y6
SELY
Y7
Y9
Y12
Y17
Y20
Y26
Y29
Y31

NO.
B12
B13
B14
815
Cl
C2
C3
C4
C5
C6
C7
C8
C9
Cl0
Cl1
C12
C13
C14
C15
Dl
D2
D3
D7
D8
09
D13

PIN
NAME

YETPl
YETPO
YETP2
PY3
YO
Y4
EB
Y5
VCC
GND
Y15
GND
Y22
GND
VCC
CKEY
OEY
ACCO
PERRY
WEMS
TPl
TPO
GND
VCC
Y24
ACCl

NO.
D14
D15
El
E2
E3
E13
E14
E15
Fl
F2
F3
F13
F14
F15
Gl
G2
G3
G4
G12
G13
G14
G15
Hl
H2
H3
H4

PIN
NAME

PYO
ETPERR
SELREG
Y3
GND
GND
PY2
RNDl
SFTO
Yl
GND
GND
MSERR
DASGN
SELD
SGNEXT
WELS
SFT1
RNDO
DBSGN
CKEI
FTl
CLK
CKEB
DBO
DBl

NO.
H12
H13
H14
H15
Jl
J2
J3
J4
J12
J13
J14
J15
Kl
K2
K3
K13
K14
K15
L1
L2
L3
L13
L14
L15
Ml
M2

PIN
NAME

COMPL
FTO
EA
CKEA
DB2
DB3
DB5
DB7
DA26
DA24
DA30
DA31
D84
DB9
D811
DA22
DA28
DA29
DB6
DB15
DB13
DA18
DA20
OA27
DB8
DB17

2

..If

4·8

TEXAS
INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

PIN

NO.
M3
M7
M8
Ml0
M13
M14
M15
Nl
N2
N3
N4
N5
N6
N7
N8
N9
Nl0
Nll
N12
N13
N14
N15
Pl
P2
P3
P4

NAME

DB18
PBl
PAO
DA6
DA16
DA17
DA25
DB10
DB19
DB20
DB21
DB23
DB27
VCC
GND
DAO
DA4
DA10
DA13
DA15
DA19
DA23
DB12
DB16
DB24
D822

NO.
P5
P6
P7
P8
P9
Pl0
Pll
P12
P13
P14
P15
Rl
R2
R3
R4
R5
R6
R7
R8
R9
Rl0
Rll
R12
R13
R14
R15

PIN
NAME

DB25
D829
DB31
PERRA
PA2
DA2
DA8
DA12
DA14
DA11
DA21
DB14
DB26
DB28
D830
PBO
PB2
PB3
PERRB
PAl
PA3
DAl
DA3
DA5
DA7
DA9

SN74ACT8836
32-BIT BY 32-BIT MULTIPLIER/ACCUMULATOR

PIN
NAME

ACCO
ACCI
ClK
CKEA
CKES

NO.
C14
013
HI
H15

110

I

DESCRIPTION
Accumulate mode ope ode (see Table 2)

I

System clock

I

Clock enable for A register, active low

I

Clock enable for 8 register, active low

Clock enable for Y register, active low

CKEI

H2
G14

CKEY

C12

I
I

COMPl

H12

I

DAO
DAI
DA2
DA3
DA4
DA5
DA6
DA7
DAB
DA9
DA10
DAll
DA12
DA13
DA14
DA15
DA16
DA17
DA18
DA19
DA20
DA21
DA22
DA23
DA24
DA25
DA26
DA27
DA28
DA29
DA30
DA31

N9
Rll
Pl0
R12
Nl0
R13
Ml0
R14
Pll
R15
NIl
P14
P12
N12
P13
N13
M13
M14
l13
N14
l14
P15
K13
N15
J13
M15
J12
l15
K14
K15
J14
J15

DASGN

F15

Clock enable for I register. active low

Product complement control; high complements multiplier result, low passes multiplier unaltered
to accumulator.

U)
('I)
ex)
ex)

I

I-

DA port input data bits 0 through 31

U


C
~

TEXAS •
INSTRUMENTS
POST OFFICE BOX 656012. DALLAS, TEXAS 75265

4-11

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR

PIN

»c
<
»z

NAME

NO.

YO
Yl
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Yl0
Yll
Y12
Y13
Y14
Y15
Y16
Y17
Y18
Y19
Y20
Y21
Y22
Y23
Y24
Y25
Y26
Y27
Y28
Y29
Y30
Y31
YETPO
YETPl
YETP2

Cl
F2
Bl
E2
C2
C4
82
84
Al
B5
A2
A3
B6

110

DESCRIPTION

A4

A5
C7
A6
B7
A7
A8
B8
A9
C9
Al0
09
All
B9
A12
A13
Bl0
A14
Bl1
B13
B12
B14

110

110

Y port data bus. Outputs data from Y register (OEY ::::; L); inputs data to master/slave comparator

(DEY = HI.

Data bus for extended precision product. Outputs three most significant bits of the 67-bit multiplier
core result; inputs external data to master/slave comparator.

TABLE 1. INSTRUCTION INPUTS
Low

Signal

High

OASGN

Identifies DA Input data as two's complement

m

OBSGN

Identifies DB input data as two's complement

Identifies DB input data as unsigned

Z

RNOO

Rounds integer result

Leaves integer result unaltered

o;:g
s:

RNOl

Rounds fractional result

Leaves fractional result unaltered

(")

"T1

COMPL

»-I

ACCO
ACCl

oz

Identifies DA input data as unsigned

Complements the product from the multiplier

Passes the product from the multiplier to the

before passing it to the accumulator

accumulator unaltered

See Table 2

See Table 2

TEXAS . "
4·12

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
TABLE 2. MULTIPLIER/ADDER CONTROL INPUTS

ACCl

ACCO

EA

EB

0

0

X
X
X

X
X
X

Ace

Operation

± IR x S) + 0
± IR x S) + ACC

0

1

1

0

1

1

0

0

±1 x 1 + 0

1

1

0

1

±1 x DB + 0

1

1

1

0

±DA x 1 + 0

1

1

1

1

±DA x DB + 0

±IR x S) - ACC

is the data stored in the accumulator

TABLE 3. SHIFTER CONTROL INPUTS

SFTl

SFTO

l

l

Pass data without shift
Shift one bit left; fill with zero

Shifter Operation

l

H

H

l

Swap upper and lower halves of temporary register

H

H

Shift 32 bits right; fill with sign bit

TABLE 4. FLOWTHROUGH CONTROL INPUTS
Control Inputs

FTl
l
l
H
H

FTO
l
H
l
H

Registers Bypassed

Pipeline

Y

I

B

A

Yes

Yes Yes Yes Yes

Yes

No

Yes

Yes

No

No

No

No

No

No

No

No

No

No

<.0
M
CO
CO

No

I(.)

«
I"
"""
Z

TABLE 5. TEST PIN CONTROL INPUTS
TPl
l
l
H
H

TPO
l
H
l
H

Operation

All outputs and liDs forced low

en

All outputs and liDs forced high
All outputs placed in a high impedance state

Normal operation (default state)

2

o

data flow
Two 32·bit input data ports, DA and DB, are provided for input of the multiplicand and multiplier to registers
A and B and the multiplier/adder. Input data can be clocked to the A and B registers before being passed
to the multiplier/adder if desired. Two multiplexers, Rand S, in conjunction with a flowthrough decoder
select the multiplier operands from DA and DB ihPuts, A and B registers, or the temporary register. Data
is supplied to the temporary register from a shifter that operates on external OAf DB data or a previous
multiplier/adder result. The 67·bit multiplier/adder result can be output through the Y port or passed through
the shifter to the accumulator.
External DA and DB data is also available to the accumulator via the shifter. This 64-bit data can be extended
with zeros or the sign bit. The 64 least significant bits from the shifter may also be latched in the 64-bit
temporary register and input to the multiplier through the Rand S multiplexers. A swap option allows the
most significant and least significant 32-bit halves of temporary register data to be swapped before being
made available to the Rand S multiplexers. This allows either 32-bit half of the temporary register to be
used as a multiplier.

i=

C

C

C
<
>
2

SGNEXT
SELD

0 MUX ,

li

2

II

ACCUMULATOR

32

\;A
P'
M~

I

I
1
I

32

,32
B
REGISTER

\ . A MUX /

'\BMUX

~.
\

.r?

~
RMUX /

\

J

SMUX /

T
MULTIPLIER/ADDER STAGE 1

2

PIPELINE REGISTER

."

MULTIPLIER/ADDER STAGE 2

::0

T

0

67

s:
>

FIGURE 1. TEMPORARY REGISTER AND ACCUMULATOR

::!
0
2

TEXAS •
4-16

JL

I~

I

EA

I

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS. TEXAS 75265

SELREG
WEMS
WELS

DB31-DBO

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR

shifter
The shifter can be used to multiply by two for Newton·Raphson operations or perform a 32-bit shift for
double precision multiplication. The shifter is controlled by two SFT inputs, as shown in Table 3.

Y register
Final or intermediate multiplier/adder results will be clocked into Y register when CKEY is low.
Results can be passed directly to the Y output multiplexer using flowthrough decoder signals to bypass
the register (see Table 4).

Y multiplexer and Y output multiplexer
The Y multiplexer allows the 64-bit result or the contents of the Y register to be switched to the Y bus,
depending upon the state of the flowthrough control outputs. The upper 32 bits are selected for output
when the Y output multiplexer control SEL Y is high; the lower 32 bits are selected for output when SEL Y
is low. Note that the Y output multiplexer can be switched at twice the clock rate so that the 64-bit result
can be output in one clock cycle.

flowthrough decoder
To enable the device to operate in pipelined or flowthrough modes, on-chip registers can be bypassed using
flowthrough control signals FT1 and FTO. Up to three levels of pipeline can be supported, as shown in
Table 4.

co

MULTIPLIER/ADDER STAGE 1

M

a)
a)

PIPELINE REGISTER
MULTIPLIER/ADDER STAGE 2

I-

()


0
«
TEXAS

-I!}

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

4-17

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR

Y

~-------------------4-CKEY

REGISTER

~------------------~~SELY

PERRY

OEY~------------------~~~4------4~~------~

ETPERR YETP2· YETPO

Y31·YO

MSERR PY3·PYO

FIGURE 3. OUTPUT ERROR CONTROL

en

z
...,
~

l>
(')
-t

extended precision check
Three extended product outputs, YETP2-YETPO, are provided to recover three bits of precision during
overflow. An extended precision check error signal (ETPERR) goes high whenever overflow occurs. If sign
controls DASGN and DBSGN are both low, indicating an unsigned operation, the extended precision bits
66-64 are compared for equality. Under all other sign control conditions, bits 66-63 are compared for
equality.

CO master slave comparator

CO

Co\)
0')

»c
»<2

(')

-m
2

A master/slave comparator is provided to compare data bytes from the Y output multiplexer with data
bytes on the external Y port when OEY is high. A comparison of the three extended precision bits of the
multiplier/adder result or Y register output with external data in the YETP1-YETPO port is performed
simultaneously. If the data is not equal, a high signal is generated on the master slave error output pin
(MSERR). A similar comparison is performed for parity using the PY3-PYO inputs. This feature is useful
in fault-tolerant design where several devices vote to ensure hardware integrity.

test pins
Two pins, TP1-TPO, support system testing. These may be used, for example, to place all outputs in a
high-impedance state, isolating the chip from the rest of the system (see Table 5).

data formats

."

The 'ACT8836 performs single-precision and double-precision multiplication in two's complement, unsigned
magnitude, and mixed formats for both integer and fractional numbers.

:lJ

Input formats for the multiplicand (R) and multiplier (5) are given below, followed by output formats for
the fully extended product. The fully extended product (PRDT) is 67 bits wide. It includes the extended
product (XTP) bits YETP1-YETPO, the most significant product (MSP) bits Y63-Y32, and the least significant
product (LSP) bits Y31-YO.

o

s:
»
:::!
o
2

4-18

TEXAS . .
INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

SN74ACT8836

32·BI1 BY 32·BI1 MULTIPLIER/ACCUMULATOR
This can be represented in notational form as follows:
PRDT

XTP : : MSP : : LSP

PRDT

YETP2 - YETPO : : Y63 - YO

or
Table 6 shows the output formats generated by two's complement, unsigned and mixed-mode
multiplications.
TABLE 6. GENERATED OUTPUT FORMATS
Two's Complement

Unsigned Magnitude

Two's Complement

Two's Complement

Two's Complement

Unsigned Magnitude

Two's Complement

Unsigned Magnitude

examples
Representative examples of single-precision multiplication, double-precision multiplication, and division using
Newton-Raphson binary division algorithm are given below.

single-precision multiplication
Microcode for the multiplication of two signed numbers is shown in Figure 1. In this example, the result
is rounded and the 32 most significant bits are output on the Y bus. A second instruction (SEL Y = 0)
would be required to output the least significant half if rounding were not used.
Unsigned and mixed mode single-precision multiplication are executed using the same code. (The sign
controls must be modified accordingly.) Following are the input and output formats for signed, unsigned,
and mixed mode operations.

e.>

«
'd'

Input Operand B

31

30

29

2

_2 31

2 30

2 29

22

0
21

I 31

20

(Sign 1

_231

30

29

2

2 30

2 29

22

0
21

""'"
en
Z

20

(Signl

Unsigned Integer Inputs
Input Operand A
31

30

29

2 31

2 30

2 29

.........

2

Input Operand B
2
22

21

0

31

30

29

2

20

2 31

2 30

2 29

22

0
21

20

31

30

29

_20

2- 1

2- 2

(Sign)

0

2- 29 2-30 2-31

I I

31

30

29

-20

2- 1

2- 2

-
C


-t

CO
CO

Extended
Product
(YETP2-YETPO)

Co\)
0')

I

('")

m

Z

o"

...........

30

31

32

I I 31

30

29 .......... .

234

233

232

231

230

2 29

o

2

Two's Complement Fractional Outputs

("')

»
c
<
»
z

Least Significant Product
(Y3l-YO)

Most Significant Product
(Y63-Y32)

66

65

64

-24

23

22

Most Significant Product
(Y63-Y32)

II

63

62

61

21

20

2- 1

'-...-'

30

Least Significant Product
(Y3l-YO)
31

II

32

31

30

29

..

'"

,

.....

2-31 2-32 2-33

2-28 2-29 2-30

2

r 60 2-61

0
2-62

(Sign)

Unsigned Fractional Outputs
Extended
Product
(YETP2-YETPO)
66

65

64

22

21

20

Least Significant Product
(Y3l-YO)

Most Significant Product
(Y63-Y32)

II

63

62

61

2- 1

2-2

2-3

. .....

.....

30

31

II

32

2-30 2-31 2-32

31

lJ

s:
»

:!

o
z

TEXAS

4-20

30

29 ...........

2-33 2-34 2-35

~

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

2

0

2-62 2-63 2- 64

I

SN74ACT8836
32-BIT BY 32-BIT MULTIPLIER/ACCUMULATOR

double-precision multiplication
To simplify discussion of double-precision multiplication, the following example implements an algorithm
using one' ACT8836 device. It should be noted that even higher speeds can be achieved through the use
of two' ACT8836s to implement a parallel multiplier.
The example is based on the following algorithm where A and Bare 64-bit signed numbers.
Let
Am = as,a62, a61,· .. , a32
and
AI = a31, a30, a29, ... , ao (ao
LSB)
Therefore:
A = (Am x 2 32 ) + AI
Likewise:
B = (B m x 2 32 ) + BI
Thus:
A x B = [(Am x 2 32 ) + AI] x [(B m x 2 32 ) + BI]
= (Am x Bm) 2 64 + (Am x BI + AI] x Bm )2 32

+ AI x BI

Therefore, four products and three summations with rank adjustments are required.
Basic implementation of this algorithm uses a single 'ACT8836. The result is a two's complement 128-bit
product. Microcode signals to implement the algorithm are shown in Figure 4.
The first instruction cycle computes the first product, AI x BI. The least significant half of the result is
output through the Y port for storage in an external RAM or some other 32-bit register; this will be the
least significant 32-bit portion of the final result.
The instruction also uses the shifter to shift the AI x BI product 32 bits to the right in order to adjust
for ranking in the next multiplication-addition sequence. The least significant half of the shift result is stored
in the lower 32-bit portion of the accumulator; the upper 32 bits contain the zero and fill.
The second instruction produces the second product, AI x Bm , adds it to the contents of the accumulator,
and stores the result in the accumulator for use in the third instruction.
Instruction 3 computes Am x BI, adds the result to the accumulator, and outputs the least significant
32 bits of the addition for use as bits 63-32 of the final product.
This instruction also shifts the result 32 bits to the right to provide the necessary rank adjustment and
stores the shift result (the most significant half of the addition result) in the lower 32 bits of the accumulator.
Bits ACC63-ACC32 are filled with zeros; the sign is extended into the three upper bits (ACC66-ACC64).
Instruction 4 computes the fourth product (Am x Bm), adds it to the accumulator, and outputs the least
significant half at the Y port for use as bits 95-64 of the final product.
This example assumes that the chip is operating in feed-through mode. A fifth instruction is therefore required
to perform the fourth iteration again so that bits 127-96 of the final product can be output.

c.o

M
00
00

I-

(.)

«
~
"""
z
en

2

o

i=


c

n
n
c

:s:
c

;:
-I
CI
:1:1

SN74ACT8836
32-BIT BY 32-BIT MULTIPLIER/ACCUMULATOR
Newton-Raphson binary division algorithm
The following explanation illustrates how to implement the Newton-Raphson binary division algorithm using
the 'ACT8836 multiplier/accumulator. The Newton-Raphson algorithm is an iterative procedure that
generates the reciprocal of the divisor through a convergence method.
Consider the equation Q = A/B. This equation can be rewritten as Q = A x (1/B). Therefore, the quotient
Q can be computed by simply multiplying the dividend A by the reciprocal of the divisor (B). Finding the
divisor reciprocal 1/B is the objective of the Newton-Raphson algorithm.
To calculate 1/B the Newton-Raphson equation, Xi + 1 = Xi(2'BXi) is calculated in an iterative process.
In the equation, B represents the divisor and X represents successively closer approximations to the
reciprocaI1/B. The following sequence of computation illustrates the iterative nature of the Newton-Raphson
algorithm.
Step 1
Step 2
Step 3

X 1 = XO(2-BXO)
X2 = X 1(2-BX 1)
X3 = X2(2-BX2)

Step n

Xn = Xn-1 (2-BXn-1 )

The successive approximation of Xi, for all i, approaches the reciprocal 1/B as the number of iterations
increases; that is
1im Xi = 1/B
i -+ n
The iterative operation is executed until the desired tolerance or error is reached. The required accuracy
for 1/B can be determined by subtracting each xi from its corresponding xi + 1. If the difference IXi + 1
- Xi I is less than or equal to a predetermined round off error, then the process is terminated. The desired
tolerance can also be achieved by executing a fixed number of iterations based on the accuracy of the
initial guess of 1/B stored in RAM of PROM.

II

The initial guess, XO, is called the seed approximation. The seed must be supplied to the Newton-Raphson
process externally and must fall within the range of 0 < XO < 2/B if B is greater than 0 or 2/B < XO < 0
if B is less than O.
To perform the Newton-Raphson binary division algorithm using the' ACT8836, the divisor, B, must be
a positive fraction. As a positive fraction, B is limited within the range of 1/2 ,;; B < 1.
Since Xi from Newton-Raphson must lie between 0 < Xi < 2/B and since the range of the positive fraction
B is 1/2 ,;; B < 1, then the limits of Xi become 1 ,;; Xi <2.
The range of - BXi will therefore be - 2 ,;; - BXi ,;; - 1/2.

z

-o

The limits of - BXi are shown in Table 7 as they would appear in the' ACT8836 extended bit, binary fraction
format.

I-

TABLE 7. LIMITS OF -BXi IN 'ACT8836 EXTENDED BIT FORMAT

a:

Extended Bits

-2
-%

66

65

64

1
1

1
1

1
1

63

62

61

......

2

1

0

0
1

0
1

0
0

......

0
0

0
0

0
0

......


C

The diagram indicates that - BXi is always of the form:
1 1 1 dO. d1 d2 ............ dn-2 dn-1



c

<
l>
2
m

(")

2

."

o

::D

s:
l>
:::!

o
2

TEXAS . "

4-24

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR

absolute maximum ratings over operating free-air temperature range (unless otherwise noted)t
Supply voltage, Vee. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. -0.5 V to 6 V
Input clamp current, 11K (VIVee) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ±20 mA
Output clamp current, 10K (VOVee) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ±50 mA
Continuous output current, 10 (VO = 0 to Vee) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ± 50 mA
eontinous current through Vee or GND pins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ± 100 mA
Operating free-air temperature range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 0 DC to 70°C
Storage temperature range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 65°C to 150°C
t Stresses beyond those listed under "absolute maximum ratings" may cause permanent damage to the device. These are stress ratings
only and functional ope~ation of the device at these or any other conditions beyond those indicated under "recommended operating
conditions" is not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.

recommended operating conditions
MIN

NOM

MAX

4.5

5

5.5

V

Vee
0.8

V

Vee

Supply voltage

VIH

High-level input voltage

2

Vil

Low-level input voltage

0

10H

High-level output current

UNIT

V

~8

rnA

8

rnA

10l

Low-level output current

VI

Input voltage

0

Vee

V

Vo
dt/dv

Output voltage

0

Input transition rise or fall rate

0

Vee
15

nslV

TA

Operating free-air temperature

0

70

V
°e

electrical characteristics over recommended operating free-air temperature range (unless otherwise
noted)
PARAMETER

TEST CONDITIONS
10H

.-

~20 ~A

VOH
IOH

~

~8

rnA

10l ~ 20 ~A
VOL
10l ~ 8 rnA
~

Vee or 0

II

VI

lee

VI ~ Vee or 0.10

ei

VI ~ Vee or 0

Alee t

One input at 3.4 V.
other inputs at 0 or Vee

10ZH

VI ~ Vee or 0

10Zl

VI

~

Vee or 0

Vee

TA - 25°C
TYP
MAX
MIN

TA MIN

4.5 V

4.4

4.4

5.5 V

5.4

5.4

4.5 V

3.8

3.7

5.5 V

4.8

4.7

oDe

to 70 DC

UNIT

MAX

V

0.1

5.5 V

0.1

0.1

4.5 V

0.32

0.4

5.5 V

0.32

0.4

5.5 V

0.1

5.5 V

50

100

~A

10

10

pF
rnA

5

V
V
~A

± 1.0

1

1

5V

0.5

5

~0.5

I-

o


o
c:r:

TEXAS . "
INSTRUMENlS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

4-25

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
setup and hold times
PARAMETER

MIN

tsul
tsu2

Instruction before ClKi
Data before ClKi

14
12

tsu3

CKEA before ClKi

14

tsu4

CKEB before ClKi

14

tsu5

CiITi before

10

ClKi

tsu6

CKEY before ClK i

t su 7

SElREG before ClK i

19
12

tsu8

WEMS before ClKi

11

tsu9
th1
th2

WElS before ClKi
Instruction after CLKf

Data after ClK i

11
0
0

th3

CKEA after ClK i

0

tM

CKEB after ClKi

0

th5

CiITi after

0

th6
th7

CKEY after ClKi
SElREG after ClKi

0
0

th8

WEMS after ClK i

0

th9

WElS after ClKi

0

ClKi

(f)

:2

"l>
~

(")

-f
CO
CO
W

0)

l>

c
<
l>
2:

(')

m

-2:

."

0

::tI
~

l>

::!

0

2:
TEXAS •
4-26

INSTRUMENTS
POST OFFICE BOX 65!?012 • DALLAS, TEXAS 75265

MAX

UNIT

ns

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
switching characteristics over recommended ranges of supply voltage and free-air temperature (see
Figure 2) for load circuit and voltage waveforms)
PARAMETER

FROM

TO

(INPUT)

(OUTPUT)

FT MODE (FT1-FTO)

MIN

TYP

MAX

tpdl t

ClK

PIPE

11

36

tpd2 t

PIPE

Y REG

11

36

tpd3 t

PIPE

ACCUM

11

36

tpd4t

Y REG

Y

All modes

18

tpd5

SElY

Y

All modes

18

tpd6 t

ClK

Y REG

01

54

tpd7t

ClK

ACCUM

10 or 01

67

tpd8

ClK

Y

10

67

tpd9

DATA

Y

00

60

tpdl0 t

DATA

ACCUM

00

56

tpdl1

ClK

YETP

11 or 10

18

tpd12

ClK

ETPERR

11 or 10

18

tpd13

ClK

YETP

00

67

tpd14

ClK

ETPERR

01

67

tpd15

DATA

YETP

00

60

tpd16

DATA

ETPERR

00

60

tpd17

PA

PERRA

All modes

20

tpd18

DA

PERRA

All modes

20

tpd19

PB

PERRB

All modes

20

tpd20

DB

PERRB

All modes

20

tpd21

PY

PERRY

All modes

20

tpd22

Y

MSERR

All modes

22

tpd23

YETP

MSERR

All modes

22

ten2

YETP

All modes

20

tenl

DEY
DEY

Y

All modes

20

tdisl

DEY

YETP

All modes

15

tdis2

OEY

Y

All modes

15

UNIT

ns

•
z
o

t=


1

I
~ten2

I

I.

_I

tpd9

Y31-YO SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSX

..pzzz

I
~ tpdS

X

LSP

tdi.2~
1

XS

MSP

FIGURE 5. FULL FLOWTHROUGH MODE (FT - 001
CLK __________________________________________~~~-----------------1

CKEA.CKEB~~----------------------------------------I~----------------------_

CKEI. CKEY

24'

I

INSTR ~I:::::::::::::::::::::::::::::::::::::::::~I::::::::::::::::::==
I
I

1

1

I

I

I

I

I

x::::

DATA~~~==================================jl=================X===
1
I
SELREG ___

WEMS. WELS

l>
C

~
:2

om

:2
."

o:xJ

SUM-OF-

1

I

1

1

slsssssssssssssssssssssssssssssssssss~

--,-

*:---t -t

i

1
I

h7 h9 -----*'

PRODUCT

I

ACCUM.

1

I.

SELY

42277727222

I

t.u7-t.u9~

tpdl0

_I

1

1

,

I

1

{

1
I

1
1

1

DEY SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS 1>
I
.
1
I.
tpd9
.1
I

I

I
I
~I

tpdS--*-+I
I

,I

1

Y31-YO SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSlSSSX

1

LSP

X

ten2--k-------.1

s:

FIGURE 6. FULL FLOWTHROUGH MODE. ACCUMULATOR MODE (FT - 001

l>

:::!

o

:2
TEXAS •
4-28

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

tdis2 --I4-+t

I
1

MSP

XS

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
PARAMETER MEASUREMENT INFORMATION

CLK __________~r----1~__________________~~~---------------------I

1

1

1

CKEA. CKEB ~:
CKEI. CKEY '-t t . .
;-- su3- su6INSTR~:
_ tsu1--+!
:

DATA:::::XI

:
QZZZZZZZZZZZZZZZzzzzz;
1_
1 t t
-===~.• ==~.~h~3~-~h6~========
~
1

..
1;~-----th1---~.1

I

1

*-- tsu2--+!

I

A. B

X:::=================
1
1

1

1...
~----th2----...-I.1
1

PRDDUCT=====:ti============~f:::======~YR~EG[:====:::
I

1

...1~------tpd6------+l~

1
I

SELY
OEY

...rI

1
I

:

SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS~ :
:
:

~

1

I+--+t:

Y31-YO SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
X
1
I
ten2 I.
.1

tpd4:
t p d5

LSP

-+--+:

FIGURE 7. FLOWTHROUGH PIPE ONLY VOLTAGE WAVEFORMS (FT

tdis2-+-+t

:

==XS

X:::=JM~S[P

•

= 01)

2

o

i=
c:r:
:E
a:

ou.
2

w

(.)

2

c:r:

>
c
c:r:

TEXAS •
INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

4-29

SN74ACT8836

32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
PARAMETER MEASUREMENT INFORMATION
ClK
I

I

CKEA. CKEB
CKEI. CKEY
INSTR

I

_"S)-~~'
-., :+-~:;;:;;;;~--!------!-------j-----th3::t.;;i::t;::=::::f
tsu3- t su6
~ I
-.:

*:±=====J

:.-tsu 1

:

~th1~

DATAS!<:

--.:
SElREG

WEMS,WELS

~tsu2

*::::====:J

A.a

:

:

_th2~

I

I

I

I

SSS(SSSSSSS»
I

tsu7-tsu9

.1

I
I
I
I+-- t h7-t h9---+i

:
SUM-OFPRODUCT

I
I
SSSSSSSSSSSSSSSSS,*

I

I

en

z-.oJ
~

»
(")
-I

CO
CO

I

I

I

II

I

I

I

I

I

I

SSSSSSSSSSSSSSSSSK I
I

I

'--:======~'=======::±'====
x..
I

ACCUM.

i+---tpd7 ------..,I
PRODUCT

I

I
I
I

,rIZZ????Z?Z?ZZ?Z???????????????????????

I.

VREG

I I

I

xq:=======:I~======:::t====
:

Io--tpdS-----oI :

:

:

SElY ----------t:----~.-( I
I
I

OEY

I
I

SSSSSSSSSSSSSSSS)..1

en

I
I

: :

I
I

1/ ZZZZVZZZZZZZZZZZZZZZZZ

I I

I

I

I

I

I

II
I I

I
:

I
I

:

I

I

I

I

I

SSSSSSSSSSSSSSSSSSSS SX=:Jl!!SP~1=:*==:J!:MS~P=+':::::)j(~2Z:LZ~7~Z~Z2:ZZZZ2Z2/2Z22:LZ:L2~2~Z~/~Z~Z2:Z2:ZZ/Z
I

ten2

Co\)

'I

I I

l~tpd4
Y31-YO

I

....... SfSSSSSSSSSSSSS1SSSSSSS

I.

01

I

Io----<+-tpd5

~tdis2

FIGURE 8. FLOWTHROUGH PIPE ONLY. ACCUMULATOR MODE (FT = 01)

»c

<
»
z
(")

m
Z

."

olJ
s:

»
::t

oZ ________________________________________________
4-30

TEXAS . "
INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

SN74ACT8836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
PARAMETER MEASUREMENT INFORMATION

ClK __________________~~L-----------------------------------------I
14- th3-th5-.i
CKEA. CKEB ~
I
I
~
I
...,..\SSSSSSSSS\SS\S$':::"
CKEI
' - - - tsu 3-tsu5-----'
INSTR::X
I
* ____________
~
~ul
~
i
1414------t hl------+l.1

DATA:J(::::::::::::::::::t::::::JA[.!B:::::::::::::::::::*:::::::::::::::::::::::~I
,
,
1
...- - - - t su 2 - - - -...1

I

I

I

,..'.-------th2-----_.1

SElY _____________~I----------------------------_1(
I

I

:

I

I

OEY SSSSSSSSSSSSSSSSS>SSSSSSSSSSSSSSSSS,/>
..(ZZZ
I
~ten2
I
tdis2~
I.
tpdB
..
~tpd5
I
Y31-YO-)~S"'S""'S""''''''''''''''S'''''''''S'''''S'''''S'''''S..,."...S""'",....S"""......S..,.S...S""'S,. . S,. . S""""'S..."...S...S,....S,....S......S..,."...S""'S,. . S,. . S""'S. ,.S...,,""'S,....*~--...,.,LS"'P---X-------:M"'S::-P---~
FIGURE 9. FLOWTHROUGH PIPE AND Y ONLY 1FT - 10)

ClK

,

CD
M

I

CO
---*I ~tsu3-tsu5
th3- th5*---1
CKEA. CKEB I I
I
}:- CO
CKEI
-~~~I---------------7-----------+---------------r-----------L----~~~ IINSTR ~
-.I

*:
I+------thl__
i
*

x

~tsul

x

xc~::==
I
I
I

'

~tsu2

I

I,

I

I

I

I

I
I

I

I

I

1+----tpd7--+f
I
:
I
I
I

I

1_

I

I
:

I
I

..aZZVZZZZZVVZZZZZZZZZZZOZZOaZOZ

~tsu7-t5u9

PRODUCT 227ZZZZZZZZZZZZZZZX

SElY

en

I

I
I
I
I4--- t h7- t h9---+i
I

I

X

I

!---th2_
SElREG
I
WEMS. WElS s\\\\\\sSSSSSSS)...
SUM-OF-

X

A.S

ACCUM.

I

I
:

I

*
,

«~

I"'"
xCtl::::::= Z

,

DATA::li<

U

I
I
I
:

Z

o

-
C
%>SS«SSSSs*
I

I

/

,

PRODUCT

SElY

/,

~~~

I
I

/

/

I

I

X

IYREG

'

/

I

I

XC==!======::=====t:==

:

/

/

:

I

VAEG
/

I

I

I
~r~I------~~__

//

/

I

"

I

/

~ '4>'S§S\\\\\\\\f§§SSSSSSSr :
Y31-YO

I

,

/

/

I

*:::::=====t=====::!:====::±I==

PIPE

I

/

I

:
:

,

S&~~~,,~'\\\§\>*
I

xq~====:)XI

*'

PIPE

_tpd1---ot

:
Xc~===::>a::::=

I

CO/2'

--.: r.

d:::====>e!==
,

X

I

/
I

I ~tpd4""

::
,

I

, I

I',

,

I

S§\m~~~""~~~
I4-len2 _

LSP1 :

:

L
-4_____~(----t---~\~SS"~S~SS'~~'~,~§~S~S

/

I

I

tpd5~
'I

:

:

I

tpd5~
I I

1/zzm*mm
"

j(:::::::iM~S[P'C::X!(=::::J;LS!iP[2=:X~=]!M!!SP[2~:~)vZ/.~?:2zZ?z~?:2zza~'l
I
I
14----01-- tpd5
---.I !4- 'dis2

FIGURE 11. ALL REGISTERS ENABLED (FT - 11)

»
c
»2<
o

m

2
o

."

:::a

~

::!

o
2

TEXAS
4-32

i

I '

~

INSTRUMENTS
POST OFFICE BOX 655012 • DALLAS, TEXAS 75265

SN74ACTB836
32·BIT BY 32·BIT MULTIPLIER/ACCUMULATOR
PARAMETER MEASUREMENT INFORMATION
ClK

-~ :.- th3-t su6
CKEA. CKEB::cl. I
CKEI. CKEY
I
INSTR:JIC :
...,

j4- tsu1

:
I
I

*:

x

JI<: •. B'"

-.I

:+-tsu 2

:

:+--th2_

INTR. PRDDUCT

xcj=====:::>xq:====~x:::;

WEMS. WELS

I

I

I

:

I

I

l,tsU7-tsu9~,

I
I
I

I

tpd3~

PRODUCT

SS\SSSSSSSSSSSS\\SS*

I

SElY

I

tpd 2 - - "

:

I

:

:

:

I

1~-4--~~~

I
I
I
I
I
I
OEY SSS\'L'Z\"Sb~,§\\S», I
I
I
I t+-.t-tpd4

:

I

.X:
"

'CCUM.

I

I

I

;.

.

I

I

I

I

I

I

I

I

'I

XC=Yil!RliEGC:*==)XC===::t=====~:=====::~=:
I

YREG :

I

I

:
I

I

""];§£i!~;==)X
"""y""'~"(&"'~ACCUM.
.
..
I
I

I
I

{WflTLYAV?ZZV/TAVrLrfld/Yqfl!ZTAVW2V1W

SUM-OFPRODUCT

I

I

~th7-th9-.1

I

I

*::::=====~:=====:::t=====t==
I
I

PIPE

I

I

I

I

I

I

XI

PIPE

I

I

I

I

I

----.I

S$\\.'§\\\\\\\}

I

I

I

~~'$A~~"'X
I
I
- - tpd1
I

SElREG

r-

J.zzzi

=====>¢:::=
----.I
l!<:::::::=:JC~.£D]12[1=)xC::±====~X::::~====::JX¢:::=
I

14-- th 1
DATA

th3- t h6"':
:
I
I

:
'
:

::

:

I

I

Y31·YO SSSSSSSSSSSS~

1

:

lSP1

*

-..-.I-ten2

I

I
I
I
I

I

I

tpd5~

______-+J/~-------:I~',S~S~S~SSSS~S~S~SS~S~~S~SS~~S~S

I

:
MSP1

I

I

I
I

I
'
I I

4Zmmzzmzzza

*

: :
LSP2

X

I

MSP2

,I

I

:
~,§\SSS\\\&'5S'

--.t ~tdis2

i+---M-tpd5

FIGURE 12. ALL REGISTERS ENABLED. ACCUMULATOR MODE (FT - 11)

Tvce
S1
TEST

PARAMETER
ten

FROM OUTPUT _ _P_O.IN
....T
_ _"'R"'loy.._ _•
UNDER TEST

tdis

tpZH
tpZL
tpHZ
tpLZ

Rl

clt

1 kll

50 pF

1 kll

50 pF

-

50 pF

tDd

S1'
OPEN

S2
CLOSED

CLOSED

OPEN

OPEN

CLOSED

CLOSED

OPEN

OPEN

OPEN

z
o

i=

C


(")

-I
00
00
CAl
-..J

5-20

NO.

DESCRIPTION

I/O

OENORM

B16

I/O

ENRA

M2

I

ENRB

M1

I

FAST

E3

I

GNO
GNO
GNO
GND
GND
GND
GND
GNO
GND
GND
GND
GND
GND
GNO
GND
GNO
GNO

04
06
07
09
010
012
013
E4
E14
F4
F14
H4
H14
K4
K14
L14
M4

HALT

R2

10
11
12
13
14
15
16
17
18
19
INEX

E2
01
E1
F2
G3
F1
G2
G1
H3
H1
C14

Status pin indicating a denormal output from the
ALU or a wrapped output from the multiplier. In
FAST mode, causes the result to go to zero when
OENORM is high.
When high, enables loading of RA register on a
rising clock edge if the RA register is not disabled
(see PIPESO below).
When high. enables loading of RB register on a
rising clock edge if the RB register is not disabled
(see PIPESO below).
When low. selects gradual underflow (IEEE mode).
When high. selects sudden underflow. forcing all
denormalized inputs and outputs to zero.

Ground pins. NOTE: All ground pins should be
used and connected.

I

Stalls operation without altering contents of
instruction or data registers. Active low.

I

Instruction inputs

I/O

Status pin indicating an inexact output

Table 2 .• ACT8837 Pin Functional Description (Continued)
PIN
NAME

NO.

I/O

IVAL

A15

I/O

MSERR

0

OEC

E17
A1
A2
A16
A17
B1
B17
H2
J15
P1
S1
T1
T16
T17
G15

OES

F17

I

OEY

F16

I

OVER

B14

I/O

PAO
PA1
PA2
PA3
PBO
PB1
PB2
PB3

L17
K15
K16
K17
S2
P4
R3
T2

PERRA

F15

0

PERRB

C1

0

PIPESO

P2

I

PIPES1

R1

I

NC

DESCRIPTION
Status pin indicating that an invalid operation or a
nonnumber (NaN) has been input to the multiplier
or ALU.
Master/Slave error output pin

No internal connection. Pins should be left floating.

I

Comparison status output enable. Active low.
Exception status and other status output enable.
Active low.
Y bus output enable. Active low.
Status pin indicating that the result is greater the
largest allowable value for specified format
(exponent overflow).

I

Parity inputs for DA data

I

Parity inputs for DB data
DA data parity error output. When high, signals a
byte or word has failed an even parity check.
DB data parity error output. When high, signals a
byte or word has failed an even parity check.
When low, enables instruction register, RA and RB
input registers. When high, puts instruction
register, RA and RB registers in flowthrough mode.
When low, enables pipeline registers in ALU and
multiplier. When high, puts pipeline registers in
flowthrough mode.

5-21

Table 2. 'ACT8837 Pin Functional Description (Continued)
PIN
NAME

en

z

~

~

»
(")
-4

00
00
eN

NO.

I/O

DESCRIPTION

I

When low, enables status register, product (P) and
sum (S) registers. When high, puts status register,
P and S registers in flowthrough mode.

PIPES2

N4

PYO
PY1
PY2
PY3

A13
C12
B13
A14

RESET

P3

I

RNDO
RND1

F3
D2

I

RNDCO

B15

I

SELMS/LS

G16

I

SELOPO
SELOP1
SELOP2
SELOP3
SELOP4
SELOP5
SELOP6
SELOP7
SELSTO
SELST1

J3
J2
J1
K1
K2
K3
L1
L2
H17
H16

SRCC

J16

I

SRCEX

C16

I/O

STEXO
STEX1

D16
D15

I/O

TPO
TP1

H15
G17

I

UNDER

C13

I/O

UNORD

D17

I/O

I/O

I

I

~

5-22

Y port parity data
Clears internal states and status with no effect to
data registers. Active low.
Rounding mode control pins. Select four IEEE
rounding modes (see Table 18).
When high, indicates the mantissa of a wrapped
number has been increased in magnitude by
rounding.
When low, selects LSH of 64-bit result to be
output on the Y bus. When high, selects MSH of
64-bit result.

Select operand sources for multiplier and ALU
(See Tables 6 and 7)

Select status source during chained operation
(see Table 16)
When low, selects ALU as data source for C
register. When high, selects multiplier as data
source for C register.
Status pin indicating source of status, either
ALU (SRCEX = L) or multiplier (SRCEX = H)
Status pins indicating that a nonnumber (NaN) or
denormal number has been input on A port
(STEX1) or B port (STEXO).
Test pins (see Table 19)
Status pin indicating that a result is inexact and
less than minimum allowable value for format
(exponent underflow).
Comparison status pin indicating that the two
inputs are unordered because at least one of them
is a nonnumber (NaN).

Table 2 .• ACT8837 Pin Functional Description (Concluded)
PIN
NAME

VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
VCC
YO
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
Y16
Y17
Y18
Y19
Y20
Y21
Y22
Y23
Y24
Y25
Y26
Y27
Y28
Y29
Y30
Y31

NO.

05
08
011
014
G4
G14
J4
J14
L4
M14
C2
03
82
C3
83
A3
C4
84
A4
C5
85
A5
C6
86
A6
C7
87
A7
C8
88
A8
A9
89
C9
A10
810
C10
A11
811
A12
C11
812

DESCRIPTION

1/0

5-V power supply

'"

M
1/0

CO
CO
I-

32-bit Y output data bus

o

«~

'"2:

en

5-23

, ACT8837 Specification Tables
absolute maximum ratings over operating free-air temperature range
(unless otherwise noted) t
Supply voltage, Vee ....................... - 0.5 V to 6 V
Input clamp current, 11K (VI < 0 or VI > Vee) ........ ± 20 mA
Output clamp current, 10K (VO <0 or Vo > Vee) . . . .. ± 50 mA
eontinuous output current, 10 (VO = 0 to Vee) . . . . . .. ± 50 mA
eontinuous current through Vee or GND pins . . . . . . .. ± 100 mA
Operating free-air temperature range . . . . . . . . . . . .. ooe to 70 0 e
Storage temperature range. . . . . . . . . . . . . . . .. - 65 °e to1 50 0 e
tStresses beyond those listed under "absolute maximum ratings" may cause permanent damage
to the device. These are stress ratings only and functional operation of the device at these or
any other conditions beyond those indicated under "recommended operating conditions" is
not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect
device reliability.

recommended operating conditions
PARAMETER

V

y£t'

V

0

_v,:10.8
-8
A 'x'
_':''j(>
8

Low-level input voltage

IOH

High-level output current

»
(")

IOL
VI

Input voltage

OQ

5.0

5.25

VIH

co
W
......

4.75

UNIT

2

VIL

-I

MAX

Supply voltage

z
......
~

NOM

Vee

High-level input voltage

en

SN74ACT8837
MIN

Low-level output current

Vo
dt/dv

Output voltage

TA

Operating free-air temperature

5-24

Input transition rise or fall rate

~lPv
"<0

0
0

V
mA
mA

Vee

V

Vee
15

ns/V

70

V
°e

electrical characteristics over recommended operating free-air
temperature range (unless otherwise noted)
PARAMETER

TEST CONDITIONS
10H

=

10L

=

-8 mA

II
ICC
Ci

VI
VI
Vi

3.76

5.5 V

4.76

TYP MAX

UNIT

5.5 V
10

V
.<

...•'0',\'\;>.

5.5 V
4.5 V

mA

= VCC or 0
= VCC or 0,
= VCC or 0

4.5 V
4.5 V

= 20 p.A
=8

MIN

5.5 V

VOL
10L

SN74ACT8837

TA - 25°C
MIN TYP MAX

4.5 V

-20 p.A

VOH
10H

VCC

J'

\

';:"

.O(\i)~i

'

0.45

.

V

0.45

5.5 V

±1

p.A

5.5 V

200

p.A

5V

pF

switching characteristics (see Note)
PARAMETER

SN74ACT8837-65
MIN

MAX

Propagation delay from DAIDB/I inputs
tpd1

to Y output
Propagation delay from input register to

tpd2

output buffer

tpd5

output

buff~r

Propagation delay from SELMS/LS to Y output

<$.,F;,:§i'
':;

.

Propagation delay from input register to
td1

output register
Delay time', input register to pipeline register or

td2

pipeline register to output register

ns

118

ns

~.~..\\'l.(.,.'~
70

ns

30

ns

32

ns

95

ns

,....'<-\;.

output buffer
Propagatipn delay from output register to

tpd4

125

,\

Propagation delay from pipeline register to
tpd3

UNIT

65

ns

Note: Switching data must be used with timing diagrams for different operating modes.

5-25

setup and hold times
SN74ACT8837-65
MIN
MAX

PARAMETER
tsu1

Setup time. Instruction before ClK!

18

tsu2

Setup time. data operand before ClK!

18

tsu3

for double-precision operation (input register

UNIT

.,~' ~. ns
£>1).,,,,"Vi ,.
ns

f'\
;O'\) .J

Setup time. data operand before second ClK I

~O

ns

0

ns

not enabled)
th1

Hold time. Instruction input after ClK I

clock requirements
SN74ACT8837-65

PARAMETER
tw

Pulse duration
Clock period

5-26

I ClK high
I ClK low

MIN
15

~t.
~,tc1 1(T"

~Jv

~J.lNIT
ns
ns

SN74ACT8837 FLOATING POINT UNIT
The SN74ACT8837 is a high-speed floating point unit implemented in TI's
advanced 1-p.m CMOS technology. The device is fully compatible with IEEE
Standard 754-1985 for addition, subtraction and multiplication operations.
The' ACT8837 input buses can be configured to operate as two 32-bit data buses
or a single 64-bit bus, providing a number of system interface options. Registers are
provided at the inputs, outputs, and inside the ALU and multiplier to support multilevel
pipelining. These registers can be bypassed for nonpipelined operation.
A clock mode control allows the temporary register to be clocked on the rising edge
or the falling edge of the clock to support double precision operations (except
multiplication) at the same rate as single precision operations. A feedback register with
a separate clock is provided for temporary storage of a multiplier result, ALU result
or constant.
To ensure data integrity, parity checking is performed on input data, and parity is
generated for output data. A master/slave comparator supports fault-tolerant system
design. Two test pin control inputs allow alii/Os and outputs to be forced high, low,
or placed in a high-impedance state to facilitate system testing.
Floating point division using a Newton-Raphson algorithm can be performed in a sumof-products operating mode, one of two modes in which the multiplier and ALU operate
in parallel. Absolute value conversions, floating point to integer and integer to floating
point conversions, and a compare instruction are also available.
I'

Data Flow

('I')

CO

Data enters the' ACT8837 through two 32-bit input data buses, DA and DB. The buses 00
can be configured to operate as a single 64-bit data bus for double precision operations ~
U
(see Table 7). Data can be latched in a 64-bit temporary register or loaded directly 
n

-I
CO
CO

SELMS/l§'

SELST1-

SElSTO

FROM
INSTRUCTION - - •
REGISTER

ore

CAl

m

-.J

PY3-PYO

Y31-YO

m

MSERR

UNORD

AGT B
A eQ B

IVAL
IHEX
OVER
UNDER
DEHORM
DENIN
RNOCO

SRCEX
CHEX
STEX1-STEXO

Figure 1. •ACT8837 Floating Point Unit

5-28

A parity check can also be performed on the entire input data word by setting BYTEP
low. In this mode, PAO is the parity input for DA data and PBO is the parity input for
DB data.

Temporary Input Register
A temporary input register is provided to enable double precision numbers on a single
32-bit input bus to be loaded in one clock cycle. The contents of the DA bus are loaded
into the upper 32 bits of the temporary register; the contents of DB are loaded into
the lower 32 bits. A clock mode signal (ClKMODE) determines the clock edge on which
the data will be stored in the temporary register. When ClKMODE is low, data is loaded
on the rising edge of the clock; when ClKMODE is high, data is loaded on the falling
edge.

RA and RB Input Registers
Two 64-bit registers, RA and RB, are provided to hold input data for the multiplier
and AlU. Data is taken from the DA bus, DB bus and the temporary input register,
according to configuration mode controls CON FIG l-CONFIGO (see Tables 3 and 5).
The registers are loaded on the rising edge of clock ClK. For single-precision operations,
CONFIG1-CONFIGO should ordinarily be set to 0 1 (see Table 4).
Table 3. Double-Precision Input Data Configuration Modes
LOADING SEQUENCE
DATA LOADED INTO
TEMP REGISTER ON FIRST

DATA LOADED INTO

CLOCK AND RA/RB

RA/RB REGISTERS ON

REGISTERS ON SECOND

SECOND CLOCK

~

CLOCKt

0

VvLNS
U1

IN
N

Table 8. Independent ALU Operations, Single Operand (19 ... 0, 16 - 0)
CHAINED
OPERATION

PRECISION

19

RA
18

0= Not
Chained

0= A(SP)
1 = A(OP)

PRECISION
RB

16

17
0= B(SP)
1 = B(OP)

OPERAND
TYPE

OUTPUT
SOURCE

o

= ALU
result

ABSOLUTE
VALUE A

ALU OPERATION

15

14

13-10

1 = Single
Operand

O=A
1 = IAI

0000
0001
0010
0011
0100
0101
0110
0111
1000

----_ ..

-

1001
1010
1011
1100
1101
1110
1111

RESULT

Pass A operand
Negate A operand
Integer to floating point
conversion t
Floating point to integer
conversion
Undefined
Undefined
Floating point to floating
point conversion:J:
Undefined
Wrap (denormal) input
operand
Undefined
Undefined
Undefined
Unwrap exact number
Unwrap inexact number
Unwrap rounded input
Undefined

tThe precision of the integer to floating point conversion is set by 18.
*This converts single precision floating point to double precision floating point and vice versa. If the 18 pin is low to indicate a single-precision input, the result
of the conversion will be double precision. If the 18 pin is high, indicating a double-precision input, the result of the conversion will be single precision.

Table 9. Independent ALU Operations, Two Operands (19 ... 0, 15 ... 0)
CHAINED
OPERATION
19

PRECISION
RA
18

PRECISION
RB
17

OUTPUT
SOURCE
16

OPERAND
TYPE
15

ABSOLUTE
VALUE A
14

ABSOLUTE
VALUE B
13

ABSOLUTE
VALUE Y
12

0= Not
chained

0= A(SP)
1 = A(DP)

o

0= ALU
result

0= Two
operands

O=A
1 = IAI

0= B
1 = IBI

0= V
1 = IVI

= B(SP)
1 = B(OP)

--

ALU OPERATION·
11-10

RESULT

00
01
10
11

A+B
A-B
Compare A, B
B - A

'-

.-

Table 10. Independent Multiplier Operations (19 ... 0, 16 ... 1)
CHAINED
OPERATION
19

o=

Not
chained

PRECISION
RA
18
0= A(SP)
1 = A(DP)

PRECISION
RB
17
o = B(SP)
1 = S(OP)

OUTPUT
SOURCE·
16
1 = Multiplier
result

15
0

tSee Table 15.

U1

W
eN

SN74ACT8837

ABSOLUTE
VALUE A
14t

ABSOLUTE
VALUEB
13 t

NEGATE
RESULT'
12t

O=A
1 = IAI

0= B
1 = IBI

0= V
1 = IVI

WRAP A
11

o=

Normal
format
1 = A is a
wrapped
number

WRAPB
10

o=

Normal
format
1 = B is a
wrapped
number

I
I

Table 11. Independent Multiplier Operations Selected by 14-12 (19 = 0, 16 = 1)
ABSOLUTE
VALUE A

ABSOLUTE
VALUE B

NEGATE
RESULT

OPERATION SELECTED

14

13

12

14-12

RESULTS

O=A
1 = IAI

0= B
1 = IBI

O=Y
1 = -y

000
001
010
011
100
101
110
111

A*B
-(A * B)
A * IBI
-(A * IBI)
IAI * B
-(IAI * B)
IAI * IBI
-(IAI * IBI)

Table 12. Operations Selected by 18-17 (19 - 0, 16 - 1)
PRECISION
SELECT RA

18

(I)

:2

"~
»
(")
-4

00
00
W

"

PRECISION
RAINPUT

PRECISION
SELECT RB

17

PRECISION
RBINPUT

PRECISION
OF RESULT

0

Single

0

Single

Single

0

Single
Converted
to Double

1

Double

Double

1

Double

0

Single
Converted
to Double

Double

1

Double

1

Double

Double

Master/Slave Comparator
A master/slave comparator is provided to compare data bytes from the Y output
multiplexer and the status outputs with data bytes on the external Y and status ports
when OEY, OES and OEC are high. If the data bytes are not equal, a high signal is
generated on the master/slave error output pin (MSERR).

Status and Exception Generator/Register
A status and exception generator produces several output signals to indicate invalid
operations as well as overflow, underflow, non numerical and inexact results, in
conformance with IEEE Standard 754" 1985. If output registers are enabled
(PIPES2 = 0), status and exception results are latched in a status register on the rising
edge of the clock. Status results are valid at the same time that associated data results
are valid. Status outputs are enabled by two signals, O'EC for comparison status and
OES for other status and exception outputs. Status outputs are summarized in
Tables 14 and 15.
During a compare operation in the ALU, the AEQ8 output goes high when the A and
8 operands are equal. When any operation other than a compare is performed, either
by the ALU or the multiplier, the AEQ8 signal is used as a zero detect.
5-34

Table 13. Chained Multiplier/ALU Operations (19 = 1)
CHAINED PRECISION PRECISION
OPERATION
RB
RA
17
19
18
1 = Chained 0= A(SP) o = B(SP)
1 = A(DP) 1 = B(DP)

OUTPUT
SOURCE

ADD ZERO

16

O=ALU
result
1 = Multiplier
result

MULTIPLY
BY ONE

15

o=

Normal
operation
1 = Forces
B2 input
of ALU
to zero

CJ1

W

CJ1

SN74ACT8837

NEGATE
NEGATE MULTIALU RESULT PlIER RESULT

14

o=

Normal
operation
1 = Forces
B1 input
of multiplier to
one

12

11-10

RESULT

Normal
operation
1 = Negate
multiplier
result

00
01
10
11

A+B
A-B
2 - A
B - A

13

o=

Normal
operation
1 = Negate
ALU
result

ALU
OPERATIONS

o=

Table 14. Comparison Status Outputs
SIGNAL
AEQB

RESULT OF COMPARISON (ACTIVE HIGH)
The A and B operands are equal. (A high signal on the AEQB output indicates a
zero result from the selected source except during a compare operation in the
ALU.)

AGTB

The A operand is greater than the B operand. (Only during a compare operation
in the ALU)

UNORD

The two inputs of a comparison operation are unordered, i.e., one or both of
the inputs is a NaN.

Table 15. Status Outputs
SIGNAL
CHEX

DENIN
DENORM

STATUS RESULT
If 16 is low, indicates the multiplier is the source of an exception during a
chained function. If 16 is high, indicates the ALU is the source of an exception
during a chained function.

Input to the multiplier is a denorm. When DENIN goes high, the STEX pins
indicate which port had a denormal input.
The multiplier output is a wrapped number or the ALU output is a denorm. In
the FAST mode, this condition causes the result to go to zero.

INEX

The result of an operation is not exact.

IVAL

A NaN has been input to the multiplier or the ALU, or an invalid operation
(0
00 or ± oo:j: (0) has been requested. When IVAL goes high, the STEX
pins indicate which port had a NaN.

»
(")

OVER

The result is greater than the largest allowable value for the specified format.

-4

RNDCO

The mantissa of a wrapped number has been increased in magnitude by
rounding and the unwrap round instruction can be used to unwrap properly
the wrapped number (see Table 8).

SRCEX

The status was generated by the multiplier. (When SRCEX is low, the status
was generated by the ALU.)

STEXO

A NaN or a denorm has been input on the B port.

STEX1

A NaN or a denorm has been input on the A port.

UNDER

The result is inexact and less than the minimum allowable value for the
specified format. In the FAST mode, this condition causes the result to go to
zero.

en
z
.....
~

CO
CO
W

.....

5-36

*

In chained mode, status results to be output are selected based on the state of the
16 (source output) pin (if 16 is low, ALU status will be selected; if 16 is high, multiplier
status will be selected). If the nonselected output source generates an exception, CHEX
is set high. Status of the nonselected output source can be forced using the SELST
pins, as shown in Table 16.
Table 16. Status Output Selection (Chain Model
SELST1SELSTO

00
01
10
11

STATUS SELECTED
Invalid
Selects multiplier status
Selects ALU status
Normal operation (selection based on result source specified by 16 input)

Flowthrough Mode
To enable the device to operate in pipelined or flowthrough modes, registers can be
bypassed using pipeline control signals PIPES2-PIPESO (see Table 17).
Table 17. Pipeline Controls (PIPES2-PIPESOI
PIPES2PIPESO
X X 0

Enables input registers (RA, RB)

X X 1

Disables input registers (RA, RB)

X 0 X

Enables pipeline registers

X 1 X

Disables pipeline registers

0 X X

Enables output registers (P, S, Status)

1 X X

Disables output registers (P, S, Status)

REGISTER OPERATION SELECTED

......

M

00
00
IU

«~

......

z

en

FAST and IEEE Modes
The device can be programmed to operate in FAST mode by asserting the FAST pin.
In the FAST mode, all denormalized inputs and outputs are forced to zero.
Placing a zero on the FAST pin causes the chip to operate in IEEE mode. In this mode,
the ALU can operate on denormalized inputs and return denormals. If a de norm is input
to the multiplier, the DENIN flag will be asserted, and the result will be invalid. If the
multiplier result underflows, a wrapped number will be output.

5-37

Rounding Mode
The' ACT8837 supports the four IEEE standard rounding modes: round to nearest,
round towards zero (truncate), round towards infinity (round up), and round towards
minus infinity (round down). The rounding function is selected by control pins RND1
and RNDO, as shown in Table 18.
Table 18. Rounding Modes
RND1-

ROUNDING MODE SELECTED

RNDO

o0
o1

Round towards nearest

1 0
1 1

Round towards infinity (round up)

Round towards zero (truncate)
Round towards negative infinity (round down)

Test Pins
Two pins, TP1-TPO, support system testing. These may be used, for example, to place
all outputs in a high-impedance state, isolating the chip from the rest of the system
(see Table 19).
Table 19. Test Pin Control Inputs
TP1-

OPERATION

en

TPO

0
0

0

All outputs and 1I0s are forced low

~

1

All outputs and I/0s are forced high

1

0

All outputs are placed in a high impedance state

1

1

Normal operation

:2

....
l>

(")
~

CO
CO
~

....

Summary of Control Inputs
Control input signals for the' ACT8837 are summarized in Table 20.

5-38

Table 20. Control Inputs
SIGNAL
SYTEP

HIGH
Selects byte parity generation
and test

LOW
Selects single bit parity generation
and test

Clocks all registers except C

No effect

Clocks C register

No effect

CLKMODE

Enables temporary input register
load on f.alling clock edge

Enables temporary input register load
on rising clock edge

CONFIG1CONFIGO

See Table 3 (RA and RS register
data source selects)

See Table 3 (RA and RS register data
source selects)

ENRA

If register is not in flow through,
enables clocking RA register

If register is not in flow through, holds
contents of RA register

ENRS

If register is not in flow through,
enables clocking of RS register

If register is not in flow through, holds
contents of RS register

FAST

Places device in FAST mode

Places device in IEEE mode

HALT

No effect

Stalls device operation but does not
affect registers, internal states, or
status

OEC

Disables compare pins

Enables compare pins

OES

Disables status outputs

Enables status outputs

OEY

Disables Y bus

Enables Y bus

See Table 17 (pipeline mode
control)

See Table 17 (pipeline mode control)

RESET

No effect

Clears internal states and status but
does not affect data registers

RND1RNDO

See Table 18 (rounding mode
control)

See Table 18 (rounding mode control)

See Tables 6 and 7
(multiplier/ALU operand selection)

See Tables 6 and 7 (multiplier/ALU
operand selection)

Selects MSH of 64-bit result for
output on the Y bus

Selects LSH of 64-bit result for output
on the Y bus (no effect during single
precision operation)

See Table 15 (status output
selection)

See Table 15 (status output selection)

Selects multiplier result for input
to C register

Selects ALU result for input to C
register

See Table 19 (test pin control
inputs)

See Table 19 (test pin control inputs)

CLK
CLKC

PIPES2PIPESO

SELOP7SELOPO
SELMS/LS

SELST1 SELSTO
SRCC
TP1-TPO

5-39

INSTRUCTION SET
Configuration and operation of the ~ACT8837 can be.selected to perform single- or
double-precision floating-point .calculations in operating modes ranging from
flowthrough to fully pipeliried. Timing and sequences of operations are affected by
settings of clock mode, data and status registers, input data configurations, and
rounding mode, as well as the instruction inputs controlling the ALU and the multiplier.
The ALU and the multiplier of the 'ACT8837 can operate either independently or
simultaneously, depending on the setting of instruction inputs 19-10 and related controls.
Controls ·for data flow and status results are discussed separately, prior to the
discussions of ALU and multiplier operations. Then, in Tables 22 through 25, the
instruction inputs to the ALU and the multiplier are summarized according to operating
mode, whether independent or chained (ALU and multiplier in simultaneous operation).

Loading External Data Operands
Patterns of data input to the' ACT8837 vary depending on the precision of the operands
and whether they are being input as A or B operands. Loading of external data operands
is controlled by the settings of CLKMODE and CONFIG 1-CONFIGO, which determine
the clock timing and register destinations for data inputs.

Configuration Controls (CONFIG 1-CONFIGO)

en

Three input registers are provided to handle input of data operands, either single
precision or double precision. The RA, RB, and temporary registers are each 64 bits
wide. The temporary register is only used during input of double-precision operands.

~ When single-precision or integer operands are loaded, the ordinary setting of CON FIG 1~ CONFIGO is LH, as shown in Table 4. This setting loads each 32-bit operand in the
most significant half (MSH) of its respective register. The operands are loaded into
~ the MSHs and adjusted to double precision because the data paths internal to the device
00 are all double precision. It is also possible to load single-precision operands with
~ CONFIG 1-CONFIGO set to HH but two clock edges are required to load both the A
~ and B operands on the DA bus.

»

Double-precision operands are loaded by using the temporary register to store half
of the operands prior to inputting the other half of the operands on the DA and DB
buses. As shown in Tables 3 and 5, four configuration modes for selecting input sources
are available for loading data operands into the RA and RB registers.

CLKMODE Settings
Timing of double-precision data inputs is determined by the clock mode setting, which
allows the temporary register to be loaded on either the rising edge (CLKMODE = L)
or the falling edge of the clock (CLKMODE = H). Since the temporary register is not
used when single-precision operands are input, clock modes 0 and 1 are functionally
equivalent for single-precision operations.

5-40

The setting of CLKMODE can be used to speed up the loading of double-precision
operands. When the CLKMODE input is set high, data on the DA and DB buses are
loaded on the falling edge of the clock into the MSH and LSH, respectively, of the
temporary register. On the next rising edge, contents of the DA bus, DB bus, and
temporary register are loaded into the RA and RB registers, and execution of the current
instruction begins. The setting of CONFIG1-CONFIGO determines the exact pattern
in which operands are loaded, whether as MSH or LSH in RA or RB.
Double-precision operation in clock mode 0 is similar except that the temporary register
loads only on a rising edge. For this reason the RA and RB registers do not load until
the next rising edge, when all operands are available and execution can begin.
A considerable advantage in speed can be realized by performing double-precision ALU
operations with CLKMODE set high. In this clock mode both double-precision operands
can be loaded on successive clock edges, one falling and one rising, and the ALU
operation can be executed in the time from one rising edge of the clock to the next
rising edge. Both halves of a double-precision ALU result must be read out on the Y
bus within one clock cycle when the' ACT8837 is operated in clock mode 1.

Internal Register Operations
Six data registers in the' ACT8837 are arranged in three levels along the data paths
through the m,ultiplier and the ALU. Each level of registers can be enabled or disabled
independently of the other two levels by setting the appropriate PIPES2-PIPESO inputs.
The RA and RB registers receive data inputs from the temporary register and the DA
and DB buses. Data operands are then multiplexed into the multiplier, ALU, or both.
To support simultaneous pipelined operations, the data paths through the multiplier
and the ALU are both provided with pipeline registers and output registers. The control
settings for the pipeline and output registers (PIPES2-PIPES 1) are registered with the
instruction inputs 19-10.

,....
M

~

IU
ct
'd"
A seventh register, the constant (C) register is available for storing a 64-bit constant ,....
or an intermediate result from the multiplier or the ALU. The C register has a separate
clock input (CLKC) and input source select (SRCC). The SRCC input is not registered
with the instruction inputs. Depending on the operation selected and the settings of
PIPES2-PIPESO, an offset of one or more cycles may be necessary to load the desired
result into the C register.

Status results are also registered whenever the output registers are enabled. Duration
and availability of status results are affected by the same timing constraints that apply
to data results on the Y output bus.

Data Register Controls (PIPES2-PIPESO)
Table 1 7 shows the settings of the registers controlled by PIPES2-PIPESO. Operating
modes range from fully pipelined (PIPES2-PIPESO = LLL) to flowthrough
(PIPES2-PIPESO = HHH).

5-41

Z

en

Ih flowthrough mode all three levels of registers are disabled, a circumstance which
may affect some double-precision operations. Since double-precision operands require
two steps to input, at least half of the data must be clocked into the temporary register
before the remaining data is placed on the DA and DB buses.
When all registers (except the C register) are enabled, timing constraints can become
critical for many double-precision operations. In clock mode 1, the ALU can perform
a double-precision operation and output a result during every clock cycle, and both
halves of the result must be read out before the end of the next cycle. Status outputs
are valid only for the period during which the Y output data is valid.
Similarly, double-precision multiplication is affected by pipelining, clock mode, and
sequence of operations. A double-precise multiply requires two cycles to execute,
depending on the settings of PIPES2-PIPESO. The output may be valid for one or two
cycles, depending on the precision of the next operation.
Duration of valid outputs at the Y multiplexer depends on settings of PIPES2-PIPESO
and CLKMODE, as well as whether all operations and operands are of the same type.
For example, when a double-precision multiply is followed by a single-precision
operation, one open clock cycle must intervene between the dissimilar operations.

C Register Controls (SRCC, CLKC)

en

:2

......
~

l>

n

-I
00
00
eN

......

The C register loads from the P or the S register output, depending on the setting of
SRCC, the load source select. SRCC = H selects the multiplier as input source.
Otherwise the ALU is selected when SRCC = L. In either case the C register only loads
the selected input on a rising edge of the CLKC signal.
The C register does not Imid directly from an external data bus. One method for loading
a constant without wasting a cycle is to input the value as an A operand during an
operation which uses only the ALU or multiplier and requires no external data inputs.
Since the B operand can be forced to zero in the ALU or to one,in the multiplier, the
A operand can be passed to the C register either by adding zero or multiplying by one,
then selecting the input source with SRCC and causing the CLKC signal to go high .
Otherwise, the C register can be loaded through the ALU with the Pass A Operand
instruction, which requires a separate cycle.

Operand Selection (SELOP7-SELOPO)
As shown in Tables 6 and 7, data operands can be selected as five possible sources,
including external inputs from the RA and RB registers, feedback from the P and S
registers, and a stored value in the C register. Contents of the C register may be selected
as either the A or the B operand in the ALU, the multiplier, or both. When an external
input is selected, the RA input always becomes the A operand, and the RB input is
the B operand.

5-42

Feedback from the ALU can be selected as the A operand to the multiplier or as the
B operand to the ALU. Similarly, multiplier feedback may be used as the A operand
to the ALU or the B operand to the multiplier.
Selection of operands also interacts with the selected operations in the ALU or the
multiplier. ALU operations with one operand are performed only on the A operand.
Also, depending on the instruction selected, the B operand may optionally be forced
to zero in the ALU or to one in the multiplier.

Rounding Controls (RND1-RNDO)
Because floating point operations may involve both inherent and procedural errors,
it is important to select appropriate modes for handling rounding errors. To support
the IEEE standard for binary floating-point arithmetic, the' ACT8837 provides four
rounding modes selected by RND1-RNDO.
Table 18 shows the four selectable rounding modes. The usual default rounding mode
is round to nearest (RND1-RNDO = LL). In round-to-nearest mode, the 'ACT8837
supports the IEEE standard by rounding to even (LSB = 0) when two nearest
representable values are equa"ynear. Directed rounding toward zero, infinity, or minus
infinity are also available.
Rounding mode should be selected to minimize procedural errors which may otherwise
accumulate and affect the accuracy of results. Rounding to nearest introduces a
procedural error not exceeding half of the least significant bit for each rounding
operation. Since rounding to nearest may involve rounding either upward or downward
in successive steps, rounding errors tend to cancel each other.

"

('t)

In contrast, directed rounding modes may introduce errors approaching one bit for
each rounding operation. Since successive rounding operations in a procedure may
a" be similarly directed, each introducing up to a one-bit error, rounding errors may
accumulate rapidly, especially in single-precision operations.

Status Exceptions
Status exceptions can result from one or more error conditions such as overflow,
underflow, operands in illegal formats, invalid operations, or rounding. Exceptions may
be grouped into two classes: input exceptions resulting from invalid operations or
denormal inputs to the multiplier, and output exceptions resulting from i"egal formats,
rounding errors, or both.
To simplify the discussion of exception handling, it is useful to summarize the data
formats for representing IEEE floating-point numbers which can be input to or output
from the FPU (see Table 21). Since procedures for handling exceptions vary according
to the requirements of specific applications, this discussion focuses on the conditions
which cause particular status exceptions to be signalled by the FPU.

5-43

CO
CO
....
(.)

Navigation menu