CA1089569A - Binary multiplier circuit including coding circuit - Google Patents

Binary multiplier circuit including coding circuit

Info

Publication number
CA1089569A
CA1089569A CA301,370A CA301370A CA1089569A CA 1089569 A CA1089569 A CA 1089569A CA 301370 A CA301370 A CA 301370A CA 1089569 A CA1089569 A CA 1089569A
Authority
CA
Canada
Prior art keywords
bit
register
bits
binary
product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA301,370A
Other languages
French (fr)
Inventor
Ernst A. Munter
Carmine A. Ciancibello
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nortel Networks Ltd
Original Assignee
Northern Telecom Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northern Telecom Ltd filed Critical Northern Telecom Ltd
Priority to CA301,370A priority Critical patent/CA1089569A/en
Priority to GB7911981A priority patent/GB2020068B/en
Priority to JP54045522A priority patent/JPS583252B2/en
Priority to SE7903354A priority patent/SE440562B/en
Priority to FR7909666A priority patent/FR2423821A1/en
Application granted granted Critical
Publication of CA1089569A publication Critical patent/CA1089569A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/49Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/50Conversion to or from non-linear codes, e.g. companding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Nonlinear Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

BINARY MULTIPLIER CIRCUIT INCLUDING CODING CIRCUIT
Abstract of the Disclosure A binary multiplier circuit wherein the product is expressed in coded form as soon as the linear (or non-coded) product is produced. When a twelve-bit binary number is multiplied by another twelve-bit binary number a twenty-four bit binary number is produced.
The twenty-four bit product can be coded as an unsigned seven-bit binary number (µ-255 code) as follows. The number 33 x 211 in binary form is added to the linear product to form an augmented product. The number of leading zeroes in the augmented product is counted and the base-minus-one complement of the count is used for the three most significant bit positions of the coded product. The four next most significant bits of the augmented product, after the most significant logic 1, are used for the four least significant bit positions of the coded product. Suitable circuitry is described which allows the coding process, just described, to take place while the linear product is in the process of being formed, and produces the coded result when the final linear product is completed.

- i -

Description

10~ 3 This invention relates generally to a multiplier circuit for multiplying two binary numbers, and more specifically to a synchronous multiplier circuit for multiplying two linear PCM (pulse code modulation) serial numbers and obtaining the product in companded (i.e. coded) PCM format.
PCM signals consist of binary code words, representing the instantaneous value of a periodically sampled and quantized analogue signal. These PCM code words are normally sent in a serial format to a receiving device where they are decoded back into an analogue approx-imation of the original analogue signal. In such a system, manipulations to the data being sent is preferably performed on the digital signals themselves rather than transforming the digital signals to analogue signals, performing the desired operations and then recoding to digital format again.
One operation which is performed in certain digital ~ tone generators is multiplication. Were the PCM code linear, i.e. having ; no expansion or compression, a relatively simple multiplication device could be used. However, in the telephone art, a coded PCM system is $' employed, referred to as a ~255 coding law. The linear PCM code word comprises twelve binary bits (plus an additional one binary bit for sign, i.e. positive or negative); the coded PCM code word (according to the ~255 code) comprises seven binary bits (plus an additional one binary bit for sign).
Before a multiplication occurs, the coded PCM word must first be transformed into its linear PCM format (i.e. linearized). The ~ .
multiplication is then performed. If two unsigned twelve-bit digital numbers are multiplied together, the resultant linear product will have twenty-four binary bits. This twenty-four bit linear product must then be transformed into the seven-bit coded PCM format.
The prior art shows circuits which multiply two linear ~, , - 1 -.. . .
~, '' .

lO~ g ¢
! digital words and produce a linear digital product. United Statespatent 4,027,147 ;ssued May 31, 1977 to J. Majos and J.A. Lardy is an example of such a circuit. The prior art also shows circuits which expand, or compress, or otherwise modify a digital word. United States patent 3,594,560 issued July 20, 1971 to T.P. Stanley depicts one such circuit for expanding a digital word. United States patent 4,071,743 issued January 31,1978 to R.G. Upton depicts a scale converter circuit for a digital word. United States patent 4,069,478 issued January 17, 1978 to A.J. Miller depicts a binary to binary coded decimal converter.
One problem with such devices, when used in tandem (e.g. a multiplier circuit followed by a coding circuit), is that valuable time is lost in performing the two calculations consecutively, first the multiplication is performed and then, when the multiplication ~`
is completed, the digital number is coded. In order to save time when doing the calculations, it would be desirable to perform the multiplica-tion and the coding concurrently.
The present invention provides a multiplier-coding circuit e ~ ~
in which the coded binary product is available from the output immediately upon completion of the multiplication.
In somewhat more detail, the present invention comprises ;~
, one 25-bit shift register for storing a first 12-bit binary number (unsigned) and one 12-bit shift register for storing a second 12-bit binary number (unsigned). The output of each shift register is applied to one input of a two-input AND gate which performs the actual ,~ multiplication. A first clock controls the shifting in the first shift ~- register. The first shift register has its output connected back to its input so that after twenty-five pulses of the first clock, the first register is back to its original status. The second shift register is controlled by a second clock which has a pulse rate 1/24 of the first clock.

108~ (;9 , ~ The output of the AND gate is applied to an accumulator i, which includes a 24-bit shift register. The accumulator sums the partial products of the multiplication process (provided by the AND
gate) and stores the resultant sum in its 24-bit sh;ft register. At the start of the process the 24-bit register is initialized to 33 x 211 in binary format (i.e. 000000010000100000000000). A 3-bit binary counter counts the number of logic O's input to the 24-bit register, the counter being reset to zero at the occurrence of every logic 1 being input to the 24-bit register. When the most significant `~ 10 lagic 1 in the final linear binary product is at the input to the24-bit shift register, the counter is set to zero for the last time.
Consequently, the final count in the counter is the number of leading zeroes in the unsigned linear binary product. The binary count is then ~,; inverted (bit for bit) and the result is the 3 most significant bits in the coded product (unsigned). .--Additionally, a 4-bit latch circuit is connected to the four most significant bit locations of the 24-bit register. At the occurrence of every logic 1 at the input of the 24-bit shift register, the contents of the four most significant bit locations in the 24-bit shift register are loaded into the 4-bit latch register. When the most significant logic 1 in the final linear binary product is at the input to the 24-bit shift register, the 4-bit latch circuit is loaded for the last time. The four logic bits stored in the 4-bit latch become the four least significant bits in the coded product. The coded product is now in parallel form, and a sign bit (derived by known means) can be inserted preceding the most significant bit of the coded product.
Expressed in other terms the present invention is a circuit for transforming an (n + m)-bit unsigned binary number into a q-bit unsigned coded binary number, wherein n, m and q are positive .

10~3~3~t~9 integers, (n + m) ~ 13, and q < (n + m), the c;rcu;t compr;s;ng: means i to add a constant number in binary format to said (n + m)-bit number, thereby producing an augmented binary numberi means for counting the ~ number of leading zeroes in the augmented binary number, and for ; forming the base-minus-one complement of the count, the base-minus-one complement forming the (q - p) most significant bits of the q-bit .
coded binary number wherein p is a positive integer, o < p < qi means for extracting the p less significant logic bits, immediately adjacent the most significant logic 1, from the augmented number, and employing them as the p least significant bits of the coded product. In one : ;
: embodiment (n + m) equals 24, q equals 7, p equals 4, and the constant . ~.
number is (2 x 2P + l) x 2[(n + m) - (2(q P)+ p + 1)]
Expressed in yet other terms, the present invention is a multiplier circuit for multiplying a first unsigned binary number having a maximum of n binary bits by a second unsigned binary number having a maximum of m binary bits and producing an unsigned coded . binary product having a maximum of q binary bits, wherein n, m and q :~
are all positive integers, (n + m) > q, the multiplier circuit comprising: an accumulator means, including a shift register having .
(n + m) bit locations for storing both the partial products and the , final non-coded product of the first and second binary numbers, the ~: register being preset to an initial binary valuei a (q - p) bit ~ binary counter connected so as to increase its count by one, for every .~ logic 0 input to the register, counter being reset to zero at the ~ occurrence of every logic 1 at the input of the register wherein p is ?
' a positive integer, o < p < q, a latch circuit connected so as to receive the bits stored in the p most significant bit locations of the ;-~
register, the latch circuit being responsive to the input signal to the register so as to load the bits from the register into the latch ; ~ 4 ~
., ` ~08~5~i~

circuit at every occurrence of a logic 1 at the input to the register;
the most significant bits of the codecl product being the base-minus-one complement of the final count stored in the counter, and the least significant bits of the coded product being the final binary number stored in the latch circuit. In one embodiment n = 12; m = 12; q = 7;
p = 4, and said initial binary value is 000000010000100000000000.
One preferred embodiment of the invention will now be described, in more detail, with reference to the accompanying drawings wherein:
Figure 1 is a simplified block diagram depicting a multiplier and coding circuit in accordance with the present inventioni Figure 2 is a graphic representation of the manipulations ~ applied to the non-coded product in order to obtain the coded product.
¦~ The interconnection of the various components is shown in figure 1 and attention is directed to it. Shift register 10 contains 25 bit locations and accordingly will be referred to as a 25-bit shift register. In the embodiment depicted in figure 1, the binary number "J"
to be stored in shift register 10 contains a maximum of 12 bits and when the shift register is initialized these twelve bits are situated at the right most side of register 10, i.e. in the twelve least significant bit locations of register 10. The remainder of the bit locations (i.e. the 13 most significant locations) are all at logic 0.
Since the output (at the right most, or least significant bit location) of register 10 is connected back to the input (at the left most, or most significant bit location) of register 10, at each clock pulse of clock A (clock A has a frequency of 2.56 MHz) the least significant bit of information in register 10 is shifted to the most significant bit location and all the rest of the bits are shifted one bit position to their right (i.e. each bit is shifted to a bit position one bit less significant th~n their previous position). This process repeats itself ~ - .
10~ '3 .
; at each pulse of clock A; consequently, after 25 pulses of clock A, register A is back to its original arrangement. As well as being ~ connected back to the input of register 10, the output of register 10 r also connects to one input of AND gate 11.
`, Shift register 12 is a twelve-bit binary shift reg;ster and contains a binary number "K" having a maximum of twelve bits. The output of register 12 is connected to one input of AND gate 11 as shown.
Clock B provides a clock pulse to register 12 at the rate of one pulse for every 24 pulses of clock A. Every time clock B produces a pulse, the bits in register 12 are each shifted to a bit position one bit less significant than their previous position (i.e. shifted one bit position to the right). It should be noted that the numbers J and K
', are unsigned; the sign of the multiplication is determined by conventional ; methods and accordingly, will not be described herein.
AND gate 11 acts as a multiplier in the depicted circuit.
If both the inputs of AND gate 11 are logic ls, the output of AND
gate 11 is a logic 1; for all other input conditions its output is a logic 0. This concept is well known.
Since clock A is pulsing at a rate 24 times as fast as , 20 clock B, the least significant bit of number K (stored in register 12) is multiplied successively by the bits stored in the least significant bit location of register 10 (which are of course, successively the logic bits comprising the number J, beginning with the least significant and progressing to the most significant, and then followed ~ by twelve logic Os). When clock A produces its 24th pulse, clock B
7~ produces its first pulse (i.e. clock B in effect counts the pulses ~
produced by clock A, and when the count reaches 24 it outputs a logic 1 ~ -i and resets to zero to begin counting again). The pulse from clock B
causes each bit stored in register 12 to shift one position to the right (i.e. to one significant bit position lower).

.~ , ~ .
lV~ ;9 The effect of this is to cause the second least significant bit of number K (now stored in the right most bit of register 12) to be multiplied successively (via AND gate 11) by one logic 0, then by the bits contained in number J, beginning with the least significant bit, and progressing to the most significant bit and followed by a string of logic Os. It is to be noted that after 25 pulses from clock A, register 10 has completed one complete cycle and is back to its original arrangement; however, after just 24 pulses from clock A, register 10 has not quite completed one complete cycle , 10 and the effect is that all the bits in register 10 are one bit position to the left of their original starting position (i.e. one significant bit higher). Thus it can be seen that the purpose of including the extra thirteen logic 0 bits (beyond the twelve bits needed for number J) ~ was to provide this shift in significant bit location in number J. The i theory behind this shift is basic to the theory of multiplication and will not be explained in any further detail.
As explained previously the output of AND gate 11 is the product of the logic bits at its input. Consequently, the output of AND gate 11 consists of a sequence of binary digits. The output of AND gate 11 is applied to input 16 of the one-bit adder 13. The sum j output 14 of adder 13 is applied to input 17 (most significant bit) of a twenty-four bit shift register 15. The output 22 of shift register 15 is applied to another input 18 of adder 13. The carry output lg of adder 13 is applied to the carry input 20 of adder 13 via flip-flop 21.
- Clock A is connected to control the operation of shift register 15.
At each clock pulse of clock A, register 15 adds a partial product to its contents, received from one-bit adder 13. At the end of 288 clock pulses from clock A, register 15 contains the twenty-four bit product of the unsigned binary number J multiplied by the unsigned binary number K; the most significant bit being at the left most side of register 15 and the least significant bit being at the right side of register 15.

.. . . . . .
-.
.: . . .

l()~ tj~3 It should be noted that when register 15 is initialized to begin its part of forming the product of two numbers it is not set to zero, but rather, register 15 is begun at the value 33 x 211 stored in binary format (i.e. 000000010000100000000000). The significance of this will be explained later. It should also be noted that adder 13, flip-flop 21, and register 15, in combination, form an accumulator 38.
Three-bit binary counter 23 has its reset ;nput 24 connected to output 14 of adder 13. Counter 23 functions by counting the clock pulses applied to its clock input 25 by clock A. Every time a logic 1 pulse is received on reset input 24, counter 23 is reset back to zero, and begins its count anew. The end result of this is that, after 288 pulses of clock A, the linear product of J and K is stored in ~; register 15, and three-bit binary counter 23 contains a count equal .i, ~- to the number of zeroes to the left of the most significant logic 1 ~? stored in register 15 (i.e. the leading zeroes of the product).
I~ Also connected to output 14 of adder 13 is the load ~-; input 28 of four-bit latch 26. Latch 26 has its four inputs 27a, 27b, 27c and 27d connected to the four most significant bit locations of register 15, as shown in figure 1. Whenever a logic 1 occurs on sum ~ 20 output 14 of adder 13, and consequently at load input 28 of latch 26, $ the information contained in the four most significant bit locations of register 15 is loaded into the four bits of latch 26. This loading (and subsequent reloadings) can take place many times during the `
multiplication process until the last logic 1 to be shifted into register 15 appears at sum output 14 of adder 13 and latch 26 is loaded for the final time; this last logic 1 will be the most significant logic 1 in the final result stored in register 15. At this point in time, four-bit latch 26 contains the four bits immediately to the right of the most significant logic 1 of the final non-coded product !~ 30 stored in register 15, i.e. the four less significant logic bits '' ; - 8 -., : , .

.. , . . . : , :

1()~9''~tj5~

, immediately adjacent the most significant logic 1 of the final non-coded , product.
To summarize so far, the leading zeroes of the final non-coded product (i.e. the number of consecutive zeroes in the most significant bit locations of register 15) are counted, and the resultant count is stored in three-bit binary counter 23. The most signicicant logic 1 of the final non-coded product is used both for resetting counter 23 to zero for the last time, and for loading latch 26 for the ~` last time. The four less significant logic bits, immediately adjacent ~ 10 the most significant logic 1, are stored in latch 26.
i~; Outputs 29, 30 and 31 of counter 23 are applied to the inputs of inverters 32, 33 and 34 respectively. It should be noted that the use of counter 23 and inverters 32, 33 and 34 is equivalent to the use of a down-counter, which is well known in the art. It should ~ also be noted that inverters 32, 33 and 34 produce the base-minus-one i complement of the count stored in counter 23. The outputs of -~ inverters 32, 33 and 34 are applied to eight-bit parallel to serial shift register 35. The outputs 36a, 36b, 36c and 36d from latch 26 are also applied to shift register 35. A sign bit 37 is applied to shift register 35 to the left of the bit from inverter 32. The format of the resultant companded (according to ~255 PCM) PCM serial output is as follows (beginning with the most significant bit and progressing to the least significant bit): sign bit; bit from inverter 32; bit from inverter 33; bit from inverter 34; bit from output 36a; bit from ,~ output 36b; bit from output 36c; and bit from output 36d.
S The foregoing has been a description of the preferred embodiment of the present invention, as envisioned by the inventors, for one specific application.
~; A brief description of the theory underlying the ~, 30 operation of the circuitry of figure 1 will now be given.

~: _ g _ s:

. :

lVb~'~'jt;9 Co~nencing with a 24-bit linear (i.e. non-coded) unsigned binary number Z to be converted to an unsigned 7-bit PCM (pulse code modulation) code, the binary number Z can be described as:
~, z = y = y +Y
I F

where: Y = a 24-bit unsigned binary number I = the 13 most significant bits of number Y
(integer, ranging from 0 to 8158) F = the 11 least significant bits of number Y
(fractional, ranging from 0 to 248) In short, with the division of Z by the factor 211 ` (i.e. 2048 a binary point has been inserted to the right of the thirteenth most significant bit of the number Z.
Now, let C be the corresponding unsigned PCM code word, such that:
C = 16L + V
= 24L + V
where: L is the 3-bit segment value ~-~
V is the 4-bit step value 2Q The next step is to compare the number Y with all possible threshold values X, where X is defined as follows:
X = 2 (2V + 32) - 33 such that Xn ~ Y < Xn + 1 This is accomplished according to the following procedure: `-Both the number Y and the threshold values X are augmented by 33 y' = Y + 33 `

recall that Y = YI + YF

., : .
- 10 - ' ~

- - : . -, . ~ :
,: . - ~ ~ . . . .

1~ 9 .
;~ Y ~ = Y + 33 + YF
20~8 X' = X + 33 ~ recall that X = 2L (2Y + 32) - 33 `~ . X' = 2L (2V + 32) - 33 + 33 ~, = 2L (2V + 32) The modified number (i.e. Y') is then expressed as a ~; floating point number (note that Y' > 0 and Y' ranges from 33 to 8191 + 2047) Y' = 2L + y~ (expressed as a floating point number) with Y" in the range 33 to 63 + 218-1 and L in the range 0 to 7.
~ This is equivalent to shifting the number stored in ;~ register 15 to the lef~, by (7 - L) places, to eliminate the leading zeroes and placing the imaginary binary point after what is now the sixth bit. This finds the segment bits L.
Next, both Y' and X' are divided by 2L to obtain:

~; Y' = 2 x Y"
s~ 2L 2L -. . Y" = y' -'-` 2L
Let X" = X' Consequently L
X' = 2 (2V + 32) = X"

.-. X" = 2V + 32 Equating Y" = X" we can then derive the step bits V:
'`- ' :
~C - 1 1 - .

~ . .

~ - . . . .

lV~'3~j'3 Y" = 2V ~ 32 + X"
2V = Y" - 32 V = (Y" - 32) Note:
Subtracting 32 from Y" has the effect of dropping the most significant bit; dividing by 2 has the effect of shifting the imaginary binary point one place to the left; if the number V is truncated (i.e. drop the bits to the right of the imaginary binary point) the four bits which are left are the step bits V of the PCM code.
Figure 2 is a graphic representation of the theoretical manipulations applied to the final non-coded product stored in register 15. It should be noted that these manipulations do not occur in actual fact, but are shown here solely to facilitate an appreciation for the , :
theory underlying the steps, previously described in connection with , figure 1, which in fact do occur. s Figure 2a, is a representation of register 15 after an , exemplary multiplication has been completed. Figure 2b depicts the insertion of an imaginary binary point after the thirteenth most significant bit. The portions YI and YF of the number Y are shown: ~
YI consists of the thirteen most significant bits, and YF consists of ~-$, the eleven least significant bits.
Figure 2c is a representation of the number 33 (in binary format) and shows how it is added (in the proper location) to -~
~ the number Y of figure 2b. Figure 2d is the result of the addition of Y the two binary numbers Y and 33 depicted in figure 2b and 2c , respectively.
Figure 2e is a representation of the contents of counter 23 (see figure 1) after the complete multiplication. The counter 23 ,~ contains the count of the number of leading zeroes in the linear product (4 in this example`) . Figure 2f is a representation of the lV~9Stj9 :
`:
~ inversion of each bit from counter 23 as performed by inverters 32, .; 33 and 34 of figure 1.
Figure 29 depicts the binary number (from figure 2d) ,~ shifted sufficiently to the left so that there are no longer any leading zeroes (the leading zeroes have been shifted to the least significant bit locations). Figure 29 depicts how the most significant logic 1 is discarded, how the next four bits become the four-bit step value V, and how the remaining bits are discarded. Figure 2h shows how the segment value L, the step value V, and a sign bit are combined to form the coded product C with a sign.
~ In more general terms, consider a coded binary number, { coded according to a ~ law code, consisting of a total of q bits , (excluding the sign bit); this coded number of q bits can be thought of as having (q - p) segment bits (L) and p step bits (V). For the i~ unsigned ~255 code discussed previously note that q = 7, p = 4 and (q - p) = 3. The decision levels XlOwer of the ~ code (or law)are defined by:
~; Xlower 2(2 (V + 2 ) - 2P) - 1 = 2L(2V + 2 x 2P) - 2 x 2P _ 1 ~, 20 wherein:
XlOwer is the lower bound of the level in questioni p is the number of step bits in the coded binary number L is the integer number (i.e. value) expressed by ,~ the (q - p) segment bits of the code;
' V is the integer number (i.e. value) expressed by the p step bits of the codei and q is the total number of bits in the unsigned coded ~, number.
The "offset" for such a coded binary number is thus (2 x 2P + 1), which equals 33 for a normal 7-bit ~255 PCM number , ,, . - .
:

~.0~5~9 J
(with p = 4). This is the number tha~ was added to shift register lS
(Figure 1), in the proper location, prior to the multiplication (see also Figure 2c).
The linearized code, for this general PCM ~ code, contains (p + 2(q ~ P) + 1) bits, which equals 13 (i.e. 4 + 23 + 1) for a normal 7-bit ~255 PCM number. The imaginary binary point (when determining the proper location of the "offset") must be inserted, ` in the final linear product, after the number of bits (counting from j the most significant bit; see Figure 2b). Consequently, the number , 10 which must be added to the linear product (stored in register 15, Figure 1) to code it, is:
' (2 x 2P + l) x 2[(n + m) - (2(q P) + p + 1)]
In the general case of binary multiplication (e.g. JJ x KK), the unsigned binary number JJ has (p + 2(q P) + 1) bits (i.e. 4 + 23 + 1 = 13 bits for the ~255 code). The unsigned binary number KK would also have the same number of bits as the ;~
number JJ. Depending upon the application, the number of bits in ~ -the numbers JJ and KK can vary, and the number of bits in number JJ need not equal the number of bits in number KK. ~ `
Figures 1 and 2 depict a circuit in the context of a ~ -digital tone generator. In this context 12 bits were used for each ~ -number J and K (Figure 1) since these numbers were not in fact derived ; from PCM originally, and 12 bits were a better fit for the then available hardware.
., ~
:~ Another coding law that is sometimes used is the A-law.
Unlike the ~ law, the A-law is not a regular code. The first segment ;
of the A-law (closest to 0) is described by a different equation than . .
,~ is the rest of the segments. Consequently there is no "offset" with the A-law, so that the final linear product is augmented by the value zero. ~ ;
This means that there is the possibility that the three bit counter ~.

~. ,, . ~
~ ..................................... . ............................... .
.

~V~'3~;it;9 ,, used in figure 1 could overflow. Additionally, for the zero segment of the A-code, a special output is needed (namely the 8th through 11th ~ most significant bits, inclusive, of the linear product). If the i, overflow of the three-bit counter is neglected, and if the zero segment of the A-law is neglected, the circuit of figure 1 will apply to the A-law. Minor modifications (not depicted herein) can be made to the circuit of figure 1 to take account of the overflow of the three-bit counter and the zero segment of the A-code.

':

.

Claims (14)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A multiplier circuit for multiplying a first unsigned binary number having a maximum of n binary bits by a second unsigned binary number having a maximum of m binary bits and producing an unsigned coded binary product having a maximum of q binary bits, wherein n, m and q are all positive integers, (n + m) > q, said multiplier circuit comprising:
an accumulator means, including a shift register having (n + m) bit locations for storing both the partial products and the final non-coded product of said first and second binary numbers, said register being preset to an initial binary value;
a (q - p) bit binary counter connected so as to increase its count by one, for every logic O input to said register, said counter being reset to zero at the occurrence of every logic 1 at the input of said register, wherein p is a positive integer, o < p < q;
a latch circuit connected so as to receive the bits stored in the p most significant bit locations of said register, said latch circuit being responsive to the input signal to said register so as to load the bits from said register into said latch circuit at every occurrence of a logic 1 at the input to said register;
the most significant bits of said coded product being the base-minus-one complement of the final count stored in said counter, and the least significant bits of said coded product being the final binary number stored in said latch circuit.
2. The multiplier circuit of claim 1 wherein the initial binary value to which said register is preset is:

(2 x 2P + 1) x 2[(n + m) - (2(q - p) + p + 1)]
3. The multiplier circuit of claim 1 or 2 wherein:
n = 12; m = 12; q = 7; and p = 4.
4. The multiplier circuit of claim 1 or 2 wherein:
n = 13; m = 13; q = 7; and p = 4.
5. The multiplier circuit of claim 1 wherein said initial binary value of said register is 000000010000100000000000 in base two notation, n = 12; m= 12; q = 7; and p = 4.
6. In a multiplier circuit for multiplying a first unsigned binary number having n bits by a second unsigned binary number having m bits and storing both the intermediate and final results in an accumulator means, including a shift register having (n + m) bit locations, a coding circuit for transforming the final linear product into an unsigned coded product having q bits, wherein n, m, and q are all positive integers, (n + m) > q, said coding circuit comprising:
means for adding a constant binary value to the contents of said shift register;
a (q - p) bit binary counter for counting the number of leading zeroes in said final linear product, wherein p is a positive integer, p < q;
inverter means for inverting the count stored in said counter, on a bit by bit basis, to thereby provide the base-minus-one complement of the count:
a p-bit latch circuit for receiving the p less significant bits of said final linear product, immediately adjacent the most significant logic 1;
the most significant bits of said coded product being the output from said inverter means, and the least significant bits of said coded product being the output from said p-bit latch circuit.
7. The multiplier circuit of claim 6 wherein the constant binary value is:

(2 x 2P + 1) x 2[(n + m) - (2(q - p) + p + 1)]
8. The multiplier circuit of claim 6 or 7 wherein:
n = 13; m = 13; q = 7; and p = 4.
9. A coding circuit for use in a multiplier circuit used for multiplying a first unsigned binary number having n binary bits by a second unsigned binary number having m binary bits and storing the intermediate and final results in an accumulator means, including a shift register having (n + m) bit locations, said coding circuit transforming the final linear product into an unsigned coded product having q bits, wherein n, m and q are all positive integers, (n + m) > q, said coding circuit comprising:
means for adding a constant binary value to the contents of said shift register;
a (q - p) bit binary counter connected so as to count the number of zeroes input to said shift register, said counter being reset to zero at the occurrence of every logic 1 at the input of said register, wherein p is a positive integer, p < q;
inverter means for inverting the digital signals stored in said counter, on a bit by bit basis, to thereby provide the base-minus-one complement of the count;
a p-bit latch circuit connected so as to receive the bits stored in the p most significant bit locations of said register, said latch circuit being responsive to the input signal to said register so as to load the bits from said register into said p-bit latch circuit at every occurrence of a logic 1 at the input to said register;
said coded product, in parallel format, being the output from said inverter means and the output from said p-bit latch circuit, with the (q - p) bits from said inverter being in the (q - p) most significant bit locations of said coded product and the p bits from said latch circuit being in the p least significant bit locations of said coded product.
10. The coding circuit of claim 9 wherein the constant binary value is 33 x 211 expressed in binary form.
11. The coding circuit of claim 9 or 10 wherein: n = 12;
m = 12; q = 7 and p = 4.
12. The coding circuit of claim 9 or 10 wherein: n = 13;
m = 13; q = 7 and p = 4.
13. A multiplier circuit for multiplying a first unsigned binary number by a second unsigned binary number and producing the desired product in companded format, said circuit comprising:
a first shift register, having 2n + 1 bit locations, for storing said first binary number, and a second shift register having n bit locations for storing said second binary number wherein said first and second binary numbers can each have a maximum of n bits, wherein n is a positive integer equal to or greater than four;
a first clock means for providing a first clock signal to said first shift register at a first rate, and a second clock means for providing a second clock signal to said second shift register at a second rate wherein the ratio of said first rate to said second rate is 2n:1;
said first shift register having its input responsive to its own output so that at each pulse of said first clock the information stored in each bit location is shifted to the next less significant bit location and the information stored in the least significant bit location is transferred to the most significant bit location of said first register;
one AND logic gate having a first input responsive to the output of said first shift register and having a second input responsive to the output of said second shift register;

accumulator means, including a third shift register having 2n bit locations, said accumulator having a first input responsive to the output of said AND gate;
means for initializing said accumulator to the value of:
(2 x 2P + 1) x 2[(2n) - (2(q - p) + p + 1)]
in binary format, wherein p and q are positive integers, o < p < q and q < (2n);
a three-bit binary counter, incrementing its stored count by one, every pulse of said first clock means, and being responsive to the input of said third register so as to reset its count to zero at every occurrence of a logic 1 on the input of said third register;
inverter means for inverting the digital signals stored in said counter, on a bit by bit basis, so as to form the base-minus-one complement of the count;
a four-bit latch means connected so as to receive the bits stored in the four most significant bit locations of said third register, said four-bit latch means being responsive to the input of said third register so as to load the bits from said third register into said four-bit latch means at every occurrence of a logic 1 at the input of said third register;
the most significant bits of said product, in companded format, being the output of said inverter means and the least significant bits of the companded product being the output of said four-bit latch means.
14. The multiplier circuit of claim 13 wherein: n = 12;
q = 7; and p = 4.
CA301,370A 1978-04-18 1978-04-18 Binary multiplier circuit including coding circuit Expired CA1089569A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CA301,370A CA1089569A (en) 1978-04-18 1978-04-18 Binary multiplier circuit including coding circuit
GB7911981A GB2020068B (en) 1978-04-18 1979-04-05 Binary multiplier circuit including coding circuit
JP54045522A JPS583252B2 (en) 1978-04-18 1979-04-16 Binary multiplication circuit including encoding circuit
SE7903354A SE440562B (en) 1978-04-18 1979-04-17 MULTIPLICATOR CIRCUIT FOR MULTIPLICATING A FIRST BINER NUMBER WITHOUT SIGN WITH ANOTHER BINERIC NUMBER WITHOUT SIGN AND CREATING A CODED BINER PRODUCT WITHOUT SIGN
FR7909666A FR2423821A1 (en) 1978-04-18 1979-04-17 BINARY MULTIPLIER CIRCUIT INCLUDING A CODING CIRCUIT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA301,370A CA1089569A (en) 1978-04-18 1978-04-18 Binary multiplier circuit including coding circuit

Publications (1)

Publication Number Publication Date
CA1089569A true CA1089569A (en) 1980-11-11

Family

ID=4111272

Family Applications (1)

Application Number Title Priority Date Filing Date
CA301,370A Expired CA1089569A (en) 1978-04-18 1978-04-18 Binary multiplier circuit including coding circuit

Country Status (5)

Country Link
JP (1) JPS583252B2 (en)
CA (1) CA1089569A (en)
FR (1) FR2423821A1 (en)
GB (1) GB2020068B (en)
SE (1) SE440562B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0452064U (en) * 1990-09-10 1992-05-01

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1086043A (en) * 1953-07-02 1955-02-09 Electronique & Automatisme Sa Improvements to multipliers for digital electric calculators
FR2276635A1 (en) * 1974-06-28 1976-01-23 Jeumont Schneider FAST DIGITAL MULTIPLIER AND ITS APPLICATIONS
GB1597468A (en) * 1977-06-02 1981-09-09 Post Office Conversion between linear pcm representation and compressed pcm

Also Published As

Publication number Publication date
SE440562B (en) 1985-08-05
FR2423821B1 (en) 1984-11-02
SE7903354L (en) 1979-10-19
JPS583252B2 (en) 1983-01-20
JPS54140434A (en) 1979-10-31
FR2423821A1 (en) 1979-11-16
GB2020068B (en) 1982-09-02
GB2020068A (en) 1979-11-07

Similar Documents

Publication Publication Date Title
Payne et al. Coding the Lehmer pseudo-random number generator
US4994997A (en) Pipeline-type serial multiplier circuit
US6148313A (en) Correlator method and apparatus
EP0029967A2 (en) Apparatus for generating an instantaneous FIFO binary arithmetic code string, apparatus for reconstructing a binary symbol string from such a code string, and a method for recursively encoding, and a method for recursively decoding, an instantaneous FIFO binary arithmetic number string
US4792793A (en) Converting numbers between binary and another base
US4163287A (en) Binary multiplier circuit including coding circuit
US3956622A (en) Two&#39;s complement pipeline multiplier
EP0238300B1 (en) Serial digital signal processing circuitry
US5181184A (en) Apparatus for multiplying real-time 2&#39;s complement code in a digital signal processing system and a method for the same
CA1089569A (en) Binary multiplier circuit including coding circuit
US6127863A (en) Efficient fractional divider
US3662160A (en) Arbitrary function generator
US3373269A (en) Binary to decimal conversion method and apparatus
US5258945A (en) Method and apparatus for generating multiples of BCD number
CN113031917A (en) High-speed probability calculation multiplier and calculation method
EP0281094A2 (en) Counter
US4744045A (en) Divider circuit for encoded PCM samples
JPH0831024B2 (en) Arithmetic processor
JPS5841532B2 (en) Sekiwa Keisan Cairo
EP0353041A2 (en) Signal processing apparatus and method using modified signed digit arithmetic
US5557227A (en) Economical generation of exponential and pseudo-exponential decay functions in digital hardware
US4716538A (en) Multiply/divide circuit for encoder PCM samples
US4716539A (en) Multiplier circuit for encoder PCM samples
GB816861A (en) Apparatus for conversion between binary and decimal notations
JP3029963B2 (en) Burst waveform generator

Legal Events

Date Code Title Description
MKEX Expiry