Report Number: CSL-TR-73-49
Institution: Stanford University, Computer Systems Laboratory
Title: Self-testing residue trees
Author: Kolupaev, Stephen G.
Date: August 1973
Abstract: Error detection and correction in binary adders often require
computing the residue modulo A of a binary number. We present
here a totally self-checking network which extracts the
residue of a binary input number of arbitrary width, with
respect to any odd modulus A. This network has the tree
structure commonly used for residue extraction: a binary tree
of circuit blocks, where each block outputs the residue of
its inputs. The network we describe differs from previous
designs in that the signals between blocks of the tree are
not binary-coded. Instead, the l-out-of-A code is used, where
A is the modulus desired. Use of this code permits the
network to be free of inverters, giving it an advantage in
speed. The network output is also coded l-out-of-A, and with
respect to this code, the residue tree is totally
self-checking in the sense of Anderson.
The residue tree described here requires logic gates with A
inputs, when the modulus desired is A . This makes the basic
design somewhat impractical for a large modulus, because
gates with large fan-in are undesirable. To extend the
usefulness of this network, we present a technique which uses
several residue trees of this design, each for a different
modulus. The outputs of these residue trees are combined by a
totally self-checking translator from the code of multiple
residues to the l-out-of-A code. Using this multiple residue
scheme, the modulus of each residue tree can be made much
smaller than the desired modulus A.
http://i.stanford.edu/pub/cstr/reports/csl/tr/73/49/CSL-TR-73-49.pdf