Browse Prior Art Database

Three-Leg Adder Used as a Three Leg Subtracter

IP.com Disclosure Number: IPCOM000105152D
Original Publication Date: 1993-Jun-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 2 page(s) / 44K

Publishing Venue

IBM

Related People

Ray, DS: AUTHOR [+2]

Abstract

A method for using a three-leg adder as a three leg subtracter is disclosed.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 62% of the total text.

Three-Leg Adder Used as a Three Leg Subtracter

      A method for using a three-leg adder as a three leg subtracter
is disclosed.

     Machines with three leg adders allow parallel execution of add
operations feeding add operations such as the following.

  add1  T  <== (A  + B)
  add2  T'  <== (A'  + T)
if add2 is reformatted to

  add2   T'  <== (A'  + A + B);
then parallel execution is possible by the organization shown in the
figure.

     However, it is a common practice to use adders as subtracters.
To do this, you must compute the two's complement of the value to be
subtracted, and then add it to the other operand.  This is done by
taking the one's complement of the value to be subtracted and adding
a carry.

In a three leg subtracter, an example might look like this:

  sub1  T  <== (B - A)
  sub2  T'  <== (B'  - T)
if sub2 is reformatted like the add to

  sub2  T'  <== (B'  - (B - A));
then the three leg subtracter becomes more difficult than the three
leg add.  A solution is needed that can be done in parallel.

     Using the data flow shown in the figure it is possible to do the
following cases by using the commutative property of addition and
subtraction.  In these examples, {x} defines the port on the dataflow
of which a particular operand will use.

  sub1  T  <== (B - A)
  sub2  T'  <==(B'  - T) becomes
  sub1  T  <== (EA  + B + Cin)
  sub2  T'  <== (B'  - (B - A)     : not useable yet
 {port}     ...