Bit-Slice Design: Controllers and ALUs

by Donnamaie E. White

Copyright © 1996, 2001, 2002 Donnamaie E. White



Table of Contents

1. Introduction

2. Simple Controllers

3. Adding Programming Support to the Controller

4. Refining the CCU

5. Evolution of the ALU

6. The ALU and Basic Arithmetic

7. Tying the System Together




The ALU and Basic Arithmetic

Last Edit November 1, 1996; May 1, 1999 ; July 15, 2001

Further Enhancements

If the Am2901 architecture is altered as follows then the design becomes that of the AMD Superslice™ RALU shown in Figure 6-1:

  1. add connections and controls to allow for vertical expansion of the scratchpad registers

  2. rearrange the Q shift and Q registers so that the ALU loads into the Q shift register directly
  3. move the RAM shift to the ALU output
  4. all data to eb input on the ALU B prot instead of the A port
  5. allow data to be output from the B port of the scratchpad, which requires a tristate buffering of that port
  6. allow data to be input directly into the scratchpad memory, bypassing the ALU
  7. share the G' and P' pins with SIGN and OVR
  8. enable the device to know if it the most, least, or middle significant digit, to allow arithmetic shifting
  9. increase the possible functions which the ALU can perform

Figure 6-1 Am2903 RALU

Figure 6-2 Sixteen-bit RALU with carry-lookahead

The Am2903 is more powerful than the Am2901. It has a richer instruction set, including nine special functions which use user-unaccessible internal controls to facilitate operations such as two's complement multiply, sign extend, and normilization. It can be used with an expanded scratchpad memory so that the RALU is no longer limited to 16 registers. The ability to identify a slice as to its significance contributes to the instructional power available. The Am29203 will [it did] feature additional special instructions (BCD arithmetic).

Like the Am2900 family in general, the Am2903 is a low-power Schottky device with tristate outputs. The Am2903 is in a 48-pin package. The Am2903A and the Am29203 are ECL internal and TTL external for higher speeds. [Remember that this was the 1970s-1980s.]

Instruction Fields

The basic 9-bit instruction field is broken up into subfields differently from the Am2901:

  • I5-8 identify the destination, shifting, etc.,
  • I1-4 identify the ALU function, and
  • I0 is a MUX select.. I0 normally appears with E'A amd OE'B as a 3-bit source select control field.

Instruction Set Extensions

The basic arithmetic and logic function set of the Am2903 has several extensions to that of the Am2901, including all HIGH, all LOW and the logical NAND and NOR functions (Table 6-1).

Table 6-1 Am2903 ALU Functions


There are two types of shifting possible owing to the identification of the significance of the slices. The logical shift shifts through all bit positions. The arithmetic shift shifts around the most significant bit position, i.e., the sign is undisturbed. The Am2903 data sheet provides a detailed table for the destination-shift control. Note that the source - ALU and destination control tables are valid only if:

For the case:

the special functions override the normal chip operations, with I5-8 as the function select control field.

Three-Address Operation

The Am2903 may be used to perform a three-address operation. The given A-B addresses are used as the source addresses and a third address used as the destination. The second and third addresses are input to a MUX whose selection is under colck control such that the B address is stable for the read and the C address is stable for the write.

The third address must be in a register. The actual WRITE takes place on the rising edge of the clock. See the Am2903 data sheet for control details. [Now out of print - we will atempt to find a historical copy.]

















For information about this file or to report problems in its use email

Copyright © September 1996, 1999, 2001, 2002 Donnamaie E. White White Enterprises