IP Library Granted Patent US 8,930,434
Granted Patent B2
US 8,930,434 · App. 11/531,074 · Granted Jan 6, 2015

Integrated multiply and divide circuit

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,930,434
App. No.
11/531,074
Granted
Jan 6, 2015
Kind
B2
Abstract

The principles of the present invention relate to a multiply and divide circuit configured to interactively multiply and/or divide. The circuit may handle signed and unsigned values. The circuit comprises an instruction register configured to store a multiply or divide instruction, at one input register configured to store the multiply or divide operands, an Arithmetic Logic Unit (“ALU”) configured to add provided values, and configuration circuitry. The configuration circuitry responds to the instructions and performs the multiply or divide operation by iteratively providing values to the ALU.

Claims (31)

1. A circuit capable of multiplication and division, the circuit comprising:

an instruction register configured to store an instruction to perform an operation, the circuit being configured to support instructions for operations that include at least a multiply operation, a divide operation, and a combined multiply and divide operation;

an input register configured to store first and second operands of the operation;

an adding unit including one or more adders, the adding unit configured to add two non-constant input values and a carry-over bit, wherein at least one of the non-constant input values is at least a portion of one of the first and second operands of the operation; and

configuration circuitry configured to iteratively provide the two non-constant input values to the adding unit in response to the instruction, the configuration circuitry including:

a first multiplexer for selecting a c-value to provide to the adding unit as the carry-over bit based on whether the first operand is signed or unsigned and the operation being performed;

a second multiplexer configured to provide an a-value, the second multiplexer being configured to select the a-value to provide from a plurality of potential a-values, the a-value being selected based on the operation being performed and the plurality of potential a-values that include a shifted and extended first operand, an extended second operand, a signed extended second operand, and previous outputs of the adding unit;

a third multiplexer configured to select the a-value or an inverse of the a-value to provide to the adding unit as one of the two non-constant input values based on whether the first operand is signed or unsigned and the operation being performed;

a fourth multiplexer configured to select a b-value to provide to the adding unit as another of the two non-constant input values based on the operation being performed, the b-value being selected from a plurality of potential b-values based on the previous outputs of the adding unit;

a fifth multiplexer that receives a first portion of the output of the adding unit at a first fifth multiplexer input port and a second portion of the output of the adding unit at a second fifth multiplexer input port; and

a sixth multiplexer that receives the first portion of the output of the adding unit at a first sixth multiplexer input port.

2. The circuit of claim 1 , wherein the configuration circuitry includes one or more extenders that are configured to perform signed or unsigned extensions on the first and second operands.

3. The circuit of claim 1 , wherein the configuration circuitry includes one or more shifters that are configured to shift one of the first and second operands a number of bits determined by other components of the configuration circuitry.

4. The circuit of claim 1 , wherein the configuration circuitry includes one or more registers for storing different values that are used by other components of the configuration circuitry to perform the operation.

5. The circuit of claim 1 , wherein the configuration circuitry includes one or more decoders configured to decode the instruction to perform the operation.

6. The circuit of claim 1 , wherein the first operand is a signed value and the second operand is one of a signed value or an unsigned value when the operation is the multiple operation.

7. The circuit of claim 1 , wherein the first operand is a signed value and the second operand is one of a signed value or an unsigned value when the operation is the divide operation.

8. The circuit of claim 1 , wherein the circuit is part of an optical transceiver which includes a system clock.

9. The circuit of claim 1 , wherein the sixth multiplexer further receives a previous output of the sixth multiplexer at a second sixth multiplexer input port, wherein for a selected operation an output of the sixth multiplexer is selected based on the operation being performed and a sum of the bits of the second portion of the output of the adding unit.

10. An optical transceiver including a circuit, the circuit comprising:

an instruction register configured to store an instruction to perform an operation, the circuit being configured to support instructions for operations that include at least a multiply operation, a divide operation, and a combined multiply and divide operation;

an input register configured to store first and second operands of the operation;

an adding unit including one or more adders, the adding unit configured to add two non-constant input values and a carry-over bit, wherein at least one of the non-constant input values is at least a portion of one of the first and second operands of the operation;

configuration circuitry configured to iteratively provide the two non-constant input values to the adding unit in response to the instruction, the configuration circuitry including:

a first multiplexer for selecting a c-value to provide to the adding unit as the carry-over bit based on whether the first operand is signed or unsigned and the operation being performed;

a second multiplexer configured to provide an a-value, the second multiplexer being configured to select the a-value to provide from a plurality of potential a-values, the a-value being selected based on the operation being performed and the plurality of potential a-values that include a shifted and extended first operand, an extended second operand, a signed extended second operand, and previous outputs of the adding unit;

a third multiplexer configured to select the a-value or an inverse of the a-value to provide to the adding unit as one of the two non-constant input values based on whether the first operand is signed or unsigned and the operation being performed;

a fourth multiplexer configured to select a b-value to provide to the adding unit as another of the two non-constant input values based on the operation being performed, the b-value being selected from a plurality of potential b-values based on the previous outputs of the adding unit;

a fifth multiplexer that receives a first portion of the output of the adding unit at a first fifth multiplexer input port and a second portion of the output of the adding unit at a second fifth multiplexer input port; and

a sixth multiplexer that receives the first portion of the output of the adding unit at a first sixth multiplexer input port; and

a state machine configured to control states of the configuration circuitry and to direct the selection of the c-value by the first multiplexer, the states including a DONE state in which the circuit resets and waits for one or more cycles of a synchronous clock to synchronize the circuit with a system clock of the optical transceiver.

Assignments (5)
PATENT RELEASE AND REASSIGNMENT Recorded Jul 5, 2022
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: II-VI INCORPORATED; MARLOW INDUSTRIES, INC.; EPIWORKS, INC.; LIGHTSMYTH TECHNOLOGIES, INC.; KAILIGHT PHOTONICS, INC.; COADNA PHOTONICS, INC.; OPTIUM CORPORATION; FINISAR CORPORATION; II-VI OPTICAL SYSTEMS, INC.; M CUBED TECHNOLOGIES, INC.; II-VI PHOTONICS (US), INC.; II-VI DELAWARE, INC.; II-VI OPTOELECTRONIC DEVICES, INC.; PHOTOP TECHNOLOGIES, INC.
Reel/Frame 060574/0001 →
SECURITY INTEREST Recorded Jul 1, 2022
From: II-VI INCORPORATED; II-VI DELAWARE, INC.; M CUBED TECHNOLOGIES, INC.; II-VI PHOTONICS (US), INC.; PHOTOP TECHNOLOGIES, INC.; COHERENT, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 060562/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2020
From: FINISAR CORPORATION
To: II-VI DELAWARE, INC.
Reel/Frame 052286/0001 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Sep 25, 2019
From: II-VI INCORPORATED; MARLOW INDUSTRIES, INC.; EPIWORKS, INC.; LIGHTSMYTH TECHNOLOGIES, INC.; KAILIGHT PHOTONICS, INC.; COADNA PHOTONICS, INC.; OPTIUM CORPORATION; FINISAR CORPORATION; II-VI OPTICAL SYSTEMS, INC.; M CUBED TECHNOLOGIES, INC.; II-VI PHOTONICS (US), INC.; II-VI DELAWARE, INC.; II-VI OPTOELECTRONIC DEVICES, INC.; PHOTOP TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 050484/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2006
From: DYBSETTER, GERALD L.
To: FINISAR CORPORATION
Reel/Frame 018355/0153 →