IP Library › Granted Patent US 8,918,445
Granted Patent B2
US 8,918,445 · App. 13/239,076 · Granted Dec 23, 2014

Circuit which performs split precision, signed/unsigned, fixed and floating point, real and complex multiplication

Inventors: Timothy David Anderson (Dallas, TX); Mujibur Rahman (Plano, TX)
Assignee: Texas Instruments Incorporated
G06F13/366
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 8,918,445
App. No.
13/239,076
Granted
Dec 23, 2014
Kind
B2
Abstract

An integrated multiplier circuit that operates on a variety of data formats including integer fixed point, signed or unsigned, real or complex, 8 bit, 16 bit or 32 bit as well as floating point data that may be single precision real, single precision complex or double precision. The circuit uses a single set of multiplier arrays to perform 16×16, 32×32 and 64×64 multiplies, 32×32 and 64×64 complex multiplies, 32×32 and 64×64 complex multiplies with one operand conjugated.

Claims (35)

1. A multiplier circuit comprising:

a first source input receiving a plurality of N bits of a first instruction specified operand;

a second source input receiving a plurality of N bits of a second instruction specified operand;

a multiply cluster including

a first multiplier having a first input receiving N/2 lower half bits of said first instruction specified operand and a second input receiving N/2 lower half bits of said second instruction specified operand (L×L), a first output generating a first Wallace tree output of a product of said first multiplier (L×La) and a second output generating a second Wallace tree output of said product of said first multiplier (L×Lb),

a second multiplier having a first input receiving N/2 upper half bits of said first instruction specified operand and a second input receiving N/2 upper half bits of said second instruction specified operand (H×H), a first output generating a first Wallace tree output of a product of said second multiplier (H×Ha) and a second output generating a second Wallace tree output of said product of said second multiplier (H×Hb),

a third multiplier having a first input receiving N/2 lower half bits of said first instruction specified operand and a second input receiving N/2 upper half bits of said second instruction specified operand (L×H), a first output generating a first Wallace tree output of a product of said third multiplier (L×Ha) and a second output generating a second Wallace tree output of said product of said third multiplier (L×Hb),

a fourth multiplier having a first input receiving N/2 upper half bits of said first instruction specified operand and a second input receiving N/2 lower half bits of said second instruction specified operand (H×L), a first output generating a first Wallace tree output of a product of said fourth multiplier (H×La) and a second output generating a second Wallace tree output of said product of said fourth multiplier (H×Lb),

first, second, third, fourth, fifth and sixth multiplexers, each having inputs connected to said first and second outputs of each of said first, second, third and fourth multipliers and an output, each selecting for output an instruction specified set of bits of said first and second outputs of each of said first, second, third and fourth multipliers, and

a first 6:2 compressor having inputs connected to said outputs of said six multiplexers for adding said outputs of said six multiplexers, generating on a first output a first Wallace tree output of an instruction specified product and generating on a second output a second Wallace tree output of said instruction specified product;

a second compressor having inputs connected to said first and second outputs of said first 6:2 compressor, having an output of a sum of said first Wallace tree output and said second Wallace tree output forming said desired product.

2. The multiplier circuit of claim 1 wherein:

upon an instruction selection of an N×N multiply of said first instruction specified operand and said second instruction specified operand

said first multiplexer outputs said first Wallace tree output of said product of said second multiplier (H×Ha) left shifted N bits concatenated with said first Wallace tree output of a product of said first multiplier (L×La) of said first multiplier,

said second multiplexer outputs said first Wallace tree output of a product of said first multiplier (L×Ha) left shifted N/2 bits,

said third multiplexer outputs said first Wallace tree output of a product of said fourth multiplier (H×La) left shifted N/2 bits,

said fourth multiplexer outputs said second output generating a second Wallace tree output of said product of said second multiplier (H×Hb) left shifted N bits concatenated with said second Wallace tree output of said product of said first multiplier (L×Lb),

said fifth multiplexer outputs said second output of said third multiplier (L×Hb) left shifted N/2 bits, and

said sixth multiplexer outputs said second Wallace tree output of said product of said fourth multiplier (H×Lb) left shifter N/2 bits.

3. The multiplier circuit of claim 1 wherein:

upon an instruction selection of a complex multiply of said first instruction specified operand and said second instruction specified operand, where for each operand an upper N/2 bits are a real component and a lower N/2 bits are an imaginary component

said first multiplexer outputs said first Wallace tree output of a product of said fourth multiplier (H×La) left shifted N bits concatenated with an inverse of said first Wallace tree output of a product of said first multiplier (L×La),

said second multiplexer outputs said first Wallace tree output of a product of said third multiplier (L×Ha) left shifted N bits concatenated with said first Wallace tree output of a product of said second multiplier (H×Ha),

said third multiplexer outputs a rounding vector,

said fourth multiplexer outputs said second Wallace tree output of said product of said fourth multiplier (H×Lb) left shifted N bits concatenated with an inverse of said second Wallace tree output of said product of said first multiplier (L×Lb),

said fifth multiplexer outputs said second Wallace tree output of said product of said third multiplier (L×Hb) left shifted N bits concatenated with said first Wallace tree output of a product of said second multiplier (H×Ha), and

said sixth multiplexer outputs all 0s.

4. The multiplier circuit of claim 1 wherein:

upon an instruction selection of a complex multiply of said first instruction specified operand and said second instruction specified operand with one operand conjugated, where for each operand an upper N/2 bits are a real component and a lower N/2 bits are an imaginary component

said first multiplexer outputs an inverse of said first Wallace tree output of a product of said fourth multiplier (H×La) left shifted N bits concatenated with said first Wallace tree output of a product of said first multiplier (L×La),

said second multiplexer outputs said first Wallace tree output of a product of said third multiplier (L×Ha) left shifted N bits concatenated with said first Wallace tree output of a product of said second multiplier (H×Ha),

said third multiplexer outputs a rounding vector,

said fourth multiplexer outputs an inverse of said second Wallace tree output of said product of said fourth multiplier (H×Lb) left shifted N bits concatenated with said second Wallace tree output of said product of said first multiplier (L×Lb),

said fifth multiplexer outputs said second Wallace tree output of said product of said third multiplier (L×Hb) left shifted N bits concatenated with said first Wallace tree output of a product of said second multiplier (H×Ha), and

said sixth multiplexer outputs all 0s.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: ANDERSON, TIMOTHY DAVID; RAHMAN, MUJIBUR
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 027989/0555 →
Continuity (2)
Provisional Application 61384932 · Sep 21, 2010
Related Publication 20120191767A1 · Jul 26, 2012