IP Library Granted Patent US 9,098,426
Granted Patent B2
US 9,098,426 · App. 13/847,798 · Granted Aug 4, 2015

Digital serial multiplier

Inventor: Herve Le-Gall (Saint-Martin d'Uriage, FR)
Assignee: STMICROELECTRONICS (GRENOBLE 2) SAS
G06F17/10G06F7/525
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,098,426
App. No.
13/847,798
Granted
Aug 4, 2015
Kind
B2
Abstract

A multiplier of a binary number A by a binary number B may be configured to add each term A i B j with a left shift by i+j bits, where A i is the bit of weight i of number A, and B j the bit of weight j of number B. The multiplier may include a first counter associated with the number A and may count modulo n and be paced by a clock. The multiplier may include a second counter associated with the number B and paced by the clock. Switching circuitry may produce the terms A i B j by taking the content of the first and second counters respectively as weights i and j. Shifting circuitry is configured to shift the content of one of the first and second counters when the other counter has achieved a revolution.

Claims (55)

1. A multiplier for multiplying a binary number A of n bits by a binary number B of p bits and configured to add each term A i B j with a left shift by i+j bits, where A i is a bit of weight i of the binary number A, and B j a bit of weight j of the binary number B, with i varying between 0 and n−1, and j varying between 0 and p−1, the multiplier comprising:

a first counter associated with the binary number A and configured to count modulo n and be clocked by a clock;

a second counter associated with the binary number B and configured to be clocked by the clock;

switching circuitry configured to sequentially produce terms A i B j by at least defining the weights i and j based upon contents of said first and second counters respectively; and

shifting circuitry configured to shift the content of one of said first and second counters by an increment when the other of said first and second counters has executed a revolution.

2. The multiplier according to claim 1 , further comprising, to add the terms A i B j , a programmable increment counter of n+p bits and configured to be clocked by the clock and receive a current term A i B j as a setpoint to program an increment of 2 i+j .

3. The multiplier according to claim 2 , wherein said programmable increment counter comprises a series of cascade-connected flip-flops configured to, if the programming input of rank i+j is active, toggle the flip-flop of rank i+j systematically, and toggle any flip-flop of rank k>i+j if flip-flops of ranks between i+j and k−1 are active.

4. The multiplier according to claim 1 , wherein said second counter is configured to count modulo p+1; and wherein the multiplier further comprises logic circuitry configured to exclude a current term A i B j when said second counter has the bit weight j being equal to the bit weight p.

5. The multiplier according to claim 4 , wherein said logic circuitry comprises a logic gate configured to cancel the term A i B j when said second counter includes p.

6. The multiplier according to claim 1 , wherein said second counter is configured to count modulo p; and wherein said shifting circuitry is configured to increment said first counter by an increment greater than or equal to 2 upon each revolution of said second counter.

7. The multiplier according to claim 1 , wherein said first counter is configured to count up and wherein said second counter is configured to count down.

8. The multiplier according to claim 1 , wherein said switching circuitry further comprises:

two multiplexers configured to respectively receive the binary numbers A and B, and to receive select commands respectively from said first and second counters, said two multiplexers each having a respective output; and

an AND gate configured to combine the outputs of said two multiplexers.

9. The multiplier according to claim 8 wherein, one of said two multiplexers associated with the binary number B comprises a (p+1)-th input receiving a value 0 and configured to be selectable based upon the content of said second counter.

10. A multiplier for multiplying a binary number A of n bits by a binary number B of p bits and configured to add each term A i B j with a left shift by i+j bits, where A i is a bit of weight i of the binary number A, and B j a bit of weight j of the binary number B, the multiplier comprising:

a first counter associated with the binary number A;

a second counter associated with the binary number B;

switching circuitry configured to sequentially produce terms A i B j by at least defining the weights i and j based upon contents of said first and second counters respectively; and

shifting circuitry configured to shift the content of one of said first and second counters when the other of said first and second counters has executed a revolution.

11. The multiplier according to claim 10 , wherein said first counter is configured to count modulo n; and wherein said multiplier further comprises, to add the terms A i B j , a programmable increment counter of n+p bits and configured to operate based upon a clock and program an increment of 2 i+j based upon a current term A i B j .

12. The multiplier according to claim 11 , wherein said programmable increment counter comprises a series of cascade-connected flip-flops configured to, if the programming input of rank i+j is active, toggle the flip-flop of rank i+j, and toggle any flip-flop of rank k>i+j if flip-flops of ranks between i+j and k−1 are active.

13. The multiplier according to claim 10 , wherein said second counter is configured to count modulo p+1; and wherein the multiplier further comprises logic circuitry configured to exclude a current term A i B j when said second counter has the bit weight j being equal to the bit weight p.

14. The multiplier according to claim 13 , wherein said logic circuitry comprises a logic gate configured to cancel the term A i B j when said second counter includes p.

15. The multiplier according to claim 10 , wherein said second counter is configured to count modulo p; and wherein said shifting circuitry is configured to increment said first counter by an increment greater than or equal to 2 upon each revolution of said second counter.

16. The multiplier according to claim 10 , wherein said first counter is configured to count up and wherein said second counter is configured to count down.

17. The multiplier according to claim 10 , wherein said switching circuitry further comprises:

two multiplexers configured to respectively receive the binary numbers A and B, and to receive select commands respectively from said first and second counters, said two multiplexers each having a respective output; and

an AND gate configured to combine the outputs of said two multiplexers.

18. The multiplier according to claim 17 wherein, one of said two multiplexers associated with the binary number B comprises a (p+1)-th input configured to be selectable based upon the content of said second counter.

19. A method of multiplying a binary number A of n bits by a binary number B of p bits and by adding each term A i B j with a left shift by i+j bits, where A i is a bit of weight i of the binary number A, and B j a bit of weight j of the binary number B, the method comprising:

using switching circuitry to produce terms A i B j by at least defining the weights i and j based upon contents of first and second counters respectively, the first and second counters being associated with the binary number A and the binary number B, respectively; and

using shifting circuitry to shift the content of one of the first and second counters when the other of the first and second counters has executed a revolution.

20. The method according to claim 19 , wherein the first counter counts modulo n; and wherein the method further comprises, to add the terms A i B j , operating a programmable increment counter of n+p bits based upon a clock and program an increment of 2 i+j based upon a current term A i B j .

21. The method according to claim 20 , wherein operating the programming increment counter comprises operating a series of cascade-connected flip-flops to, if the programming input of rank i+j is active, toggle the flip-flop of rank i+j, and toggle any flip-flop of rank k>i+j if flip-flops of ranks between i+j and k−1 are active.

22. The method according to claim 19 , wherein the second counter counts modulo p+1; and wherein the method further comprises using logic circuitry to exclude a current term A i B j when the second counter has the bit weight j being equal to the bit weight p.

23. The method according to claim 19 , wherein the second counter is configured to count modulo p; and wherein using the shifting circuitry comprises incrementing the first counter by an increment greater than or equal to 2 upon each revolution of the second counter.

24. The method according to claim 19 , wherein using the switching circuitry further comprises:

using two multiplexers to respectively receive the binary numbers A and B, and receive select commands respectively from the first and second counters; and

combine outputs of the two multiplexers using an AND gate.

25. A multiplier for multiplying a binary number A of n bits by a binary number B of p bits and configured to add each term A i B j with a left shift by i+j bits, where A i is a bit of weight i of the binary number A, and B j a bit of weight j of the binary number B, with i varying between 0 and n−1, and j varying between 0 and p−1, the multiplier comprising:

a first counter associated with the binary number A and connected to be clocked by a clock;

a second counter associated with the binary number B;

switching circuitry configured to sequentially produce terms A i B j by at least defining the weights i and j based upon contents of said first and second counters respectively; and

for adding the terms A i B j , a programmable increment counter of n+p bits, configured to be clocked by the clock and receive a current term A i B j as a setpoint to program an increment of 2 i+j .

26. The multiplier according to claim 25 , wherein said programmable increment counter comprises a series of cascade-connected flip-flops configured to, if the programming input of rank i+j is active, toggle the flip-flop of rank i+j systematically, and toggle any flip-flop of rank k>i+j if flip-flops of ranks between i+j and k−1 are active.

27. The multiplier according to claim 25 , wherein the second counter is configured to count modulo n and is clocked by the clock, the multiplier further comprising shifting circuitry configured to shift the content of one of said first and second counters by an increment when the other of said first and second counters has executed a revolution.

28. The multiplier according to claim 27 , wherein said second counter is configured to count modulo p+1; and wherein the multiplier further comprises logic circuitry configured to exclude a current term A i B j when said second counter has the bit weight j being equal to the bit weight p.

29. The multiplier according to claim 28 , wherein said logic circuitry comprises a logic gate configured to cancel the term A i B j when said second counter includes p.

30. The multiplier according to claim 27 , wherein said second counter is configured to count modulo p; and wherein said shifting circuitry is configured to increment said first counter by an increment greater than or equal to 2 upon each revolution of said second counter.

31. The multiplier according to claim 27 , wherein said first counter is configured to count up and wherein said second counter is configured to count down.

32. The multiplier according to claim 25 , wherein said switching circuitry further comprises:

two multiplexers configured to respectively receive the binary numbers A and B, and to receive select commands respectively from said first and second counters, said two multiplexers each having a respective output; and

an AND gate configured to combine the outputs of said two multiplexers.

33. The multiplier according to claim 32 wherein, the multiplexer associated with the binary number B comprises a (p+1)-th input receiving a value 0 and configured to be selectable based upon the content of said second counter.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: STMICROELECTRONICS (GRENOBLE 2) SAS
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 060475/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2013
From: LE-GALL, HERVE
To: STMICROELECTRONICS (GRENOBLE 2) SAS
Reel/Frame 030055/0173 →
Priority Claims (1)
FR 1254421 · May 15, 2012 · national
Continuity (1)
Related Publication 20130304787A1 · Nov 14, 2013