IP Library Granted Patent US 10,790,830
Granted Patent B1
US 10,790,830 · App. 16/417,152 · Granted Sep 29, 2020

Fused memory and arithmetic circuit

Inventors: Daniel Pugh (Los Gatos, CA); Raymond Nijssen (San Jose, CA); Michael Philip Fitton (Menlo Park, CA)
Assignee: Achronix Semiconductor Corporation
H03K19/1776H03K19/17744
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 10,790,830
App. No.
16/417,152
Granted
Sep 29, 2020
Kind
B1
Abstract

A tile of an FPGA fuses memory and arithmetic circuits. Connections directly between multiple instances of the tile are also available, allowing multiple tiles to be treated as larger memories or arithmetic circuits. By using these connections, referred to as cascade inputs and outputs, the input and output bandwidth of the arithmetic circuit is further increased. The arithmetic unit accesses inputs from a combination of: the switch fabric, the memory circuit, a second memory circuit of the tile, and a cascade input. In some example embodiments, the routing of the connections on the tile is based on post-fabrication configuration. In one configuration, all connections are used by the memory circuit, allowing for higher bandwidth in writing or reading the memory. In another configuration, all connections are used by the arithmetic circuit.

Claims (112)

1. A circuit comprising:

a memory circuit that:

receives a first set of inputs from a first connection fabric of a field programmable gate array (FPGA);

provides a first set of outputs within a tile of the FPGA; and

in response to a configuration signal, is configured to receive a second set of inputs from a second connection fabric of the FPGA; and

an arithmetic circuit that:

receives the first set of outputs within the tile of the FPGA;

receives the second set of inputs from the second connection fabric of the FPGA; and

generates a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

2. A circuit comprising:

a memory circuit that:

receives a first set of inputs from a first connection fabric of a field programmable gate array (FPGA); and

provides a first set of outputs within a tile of the FPGA;

a second memory circuit that:

stores data received from a second set of inputs from a second connection fabric of the FPGA; and

provides a second set of outputs within the tile of the FPGA; and

an arithmetic circuit that:

receives the first set of outputs within the tile of the FPGA;

receives the second set of inputs from the second connection fabric of the FPGA;

receives the second set of outputs within the tile of the FPGA; and

generates a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

3. The circuit of claim 2 , wherein:

in response to a first configuration signal, the arithmetic circuit is configured to perform operations on the first set of outputs and the second set of inputs; and

in response to a second configuration signal, the arithmetic circuit is configured to perform operations on the second set of outputs and the second set of inputs.

4. The circuit of claim 2 , wherein:

in response to a first configuration signal, the arithmetic circuit is configured to perform multiplication operations on the second set of outputs; and

in response to a second configuration signal, the arithmetic circuit is configured to perform addition operations on the second set of outputs.

5. A circuit comprising:

a memory circuit that:

receives a first set of inputs from a first connection fabric of a field programmable gate array (FPGA); and

provides a first set of outputs within a tile of the FPGA; and

an arithmetic circuit that:

receives the first set of outputs within the tile of the FPGA;

receives a second set of inputs from a second connection fabric of the FPGA;

receives a third set of inputs directly from a cascade output of a second tile of the FPGA; and

generates a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

6. The circuit of claim 5 , wherein the arithmetic circuit further provides a third set of outputs to a third tile of the FPGA via a second cascade output.

7. A circuit comprising:

a block random access memory (BRAM) that:

receives a first set of inputs from a first connection fabric of a field programmable gate array (FPGA);

provides a first set of outputs within a tile of the FPGA; and

provides a second set of outputs to a second connection fabric of the FPGA; and

an arithmetic circuit that:

receives the first set of outputs within the tile of the FPGA;

receives a second set of inputs from a second connection fabric of the FPGA; and

generates a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

8. A method comprising:

receiving, by a memory circuit, a first set of inputs from a first connection fabric of a field programmable gate array (FPGA);

providing, by the memory circuit, a first set of outputs within a tile of the FPGA;

receiving, by an arithmetic circuit, the first set of outputs within the tile of the FPGA;

receiving, by the arithmetic circuit, a second set of inputs from a second connection fabric of the FPGA;

generating, by the arithmetic circuit, a result based on a first subset of the first set of outputs and a second subset of the second set of inputs; and

in response to a configuration signal, configuring the memory circuit to receive the second set of inputs from the second connection fabric of the FPGA.

9. A method comprising:

receiving, by a first memory circuit, a first set of inputs from a first connection fabric of a field programmable gate array (FPGA);

providing, by the first memory circuit, a first set of outputs within a tile of the FPGA;

storing, by a second memory circuit, data received from a second set of inputs from a second connection fabric of the FPGA;

providing, by the second memory circuit, a second set of outputs within the tile of the FPGA;

receiving, by an arithmetic circuit, the first set of outputs within the tile of the FPGA;

receiving, by the arithmetic circuit, the second set of inputs from the second connection fabric of the FPGA;

receiving, by the arithmetic circuit, the second set of outputs within the tile of the FPGA; and

generating, by the arithmetic circuit, a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

10. The method of claim 9 , further comprising:

in response to a first configuration signal, configuring the arithmetic circuit to perform operations on the first set of outputs and the second set of inputs; and

in response to a second configuration signal, configuring the arithmetic circuit to perform operations on the second set of outputs and the second set of inputs.

11. The method of claim 9 , further comprising:

in response to a first configuration signal, configuring the arithmetic circuit to perform multiplication operations on the second set of outputs; and

in response to a second configuration signal, configuring the arithmetic circuit to perform addition operations on the second set of outputs.

12. A method comprising:

receiving, by a memory circuit, a first set of inputs from a first connection fabric of a field programmable gate array (FPGA);

providing, by the memory circuit, a first set of outputs within a tile of the FPGA;

receiving, by an arithmetic circuit, the first set of outputs within the tile of the FPGA;

receiving, by the arithmetic circuit, a second set of inputs from a second connection fabric of the FPGA;

receiving, by the arithmetic circuit, a third set of inputs directly from a cascade output of a second tile of the FPGA; and

generating, by the arithmetic circuit, a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

13. The method of claim 12 , further comprising:

providing, by the arithmetic circuit, a third set of outputs to a third tile of the FPGA via a second cascade output.

14. A method comprising:

receiving, by a block random access memory (BRAM), a first set of inputs from a first connection fabric of a field programmable gate array (FPGA);

providing, by the BRAM, a first set of outputs within a tile of the FPGA;

providing, by the BRAM, a second set of outputs to a second connection fabric of the FPGA;

receiving, by an arithmetic circuit, the first set of outputs within the tile of the FPGA;

receiving, by the arithmetic circuit, a second set of inputs from the second connection fabric of the FPGA; and

generating, by the arithmetic circuit, a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

15. A non-transitory machine-readable storage medium containing instructions that, when executed by one or more processors, cause the one or more processors to control configuration of a field programmable gate array (FPGA) comprising:

a memory circuit that:

receives a first set of inputs from a first connection fabric of a field programmable gate array (FPGA); and

provides a first set of outputs within a tile of the FPGA;

a second memory circuit that:

stores data received from a second set of inputs from a second connection fabric of the FPGA; and

provides a second set of outputs within the tile of the FPGA; and

an arithmetic circuit that:

receives the first set of outputs within the tile of the FPGA;

receives the second set of inputs from the second connection fabric of the FPGA;

receives the second set of outputs within the tile of the FPGA; and

generates a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

16. The non-transitory machine-readable storage medium of claim 15 , wherein:

in response to a first configuration signal, the arithmetic circuit is configured to perform operations on the first set of outputs and the second set of inputs; and

in response to a second configuration signal, the arithmetic circuit is configured to perform operations on the second set of outputs and the second set of inputs.

17. The non-transitory machine-readable storage medium of claim 15 , wherein:

in response to a first configuration signal, the arithmetic circuit is configured to perform multiplication operations on the second set of outputs; and

in response to a second configuration signal, the arithmetic circuit is configured to perform addition operations on the second set of outputs.

18. A non-transitory machine-readable storage medium containing instructions that, when executed by one or more processors, cause the one or more processors to control configuration of a field programmable gate array (FPGA) comprising:

a memory circuit that:

receives a first set of inputs from a first connection fabric of a field programmable gate array (FPGA); and

provides a first set of outputs within a first tile of the FPGA;

an arithmetic circuit that:

receives the first set of outputs within the first tile of the FPGA;

receives a second set of inputs from a second connection fabric of the FPGA;

receives a third set of inputs directly from a cascade output of a second tile of the FPGA; and

generates a result based on a first subset of the first set of outputs and a second subset of the second set of inputs.

19. The non-transitory machine-readable storage medium of claim 18 , wherein the arithmetic circuit further provides a third set of outputs to a third tile of the FPGA via a second cascade output.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2020
From: HERCULES CAPITAL, INC., AS AGENT
To: ACHRONIX SEMICONDUCTOR CORPORATION
Reel/Frame 054461/0220 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2020
From: PUGH, DANIEL; NIJSSEN, RAYMOND; FITTON, MICHAEL P.
To: ACHRONIX SEMICONDUCTOR CORPORATION
Reel/Frame 052173/0153 →
SECURITY INTEREST Recorded Mar 16, 2020
From: ACHRONIX SEMICONDUCTOR CORPORATION
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 052121/0505 →
Cited By (8)
US 12,423,058 US 12,468,506 US 12,517,700 US 12,554,465 US 12,567,863 US 12,645,425 US 12,663,966 US 12,681,693