Cascade communications between FPGA tiles

US11288220B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11288220-B2
Application numberUS-201916656685-A
CountryUS
Kind codeB2
Filing dateOct 18, 2019
Priority dateOct 18, 2019
Publication dateMar 29, 2022
Grant dateMar 29, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A tile of an FPGA provides memory, arithmetic functions, or both. Connections directly between multiple instances of the tile are 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 and memory circuits are increased, operand sizes are increased, or both. By using the cascade connections, multiple tiles can be used together as a single, larger tile. Thus, implementations that need memories of different sizes, arithmetic functions operating on different sized operands, or both, can use the same FPGA without additional programming or waste. Using cascade communications, more tiles are used when a large memory is needed and fewer tiles are used when a small memory is needed and the waste is avoided.

First claim

Opening claim text (preview).

What is claimed is: 1. A circuit comprising: a first tile of a field programmable gate array (FPGA) comprising a first integer multiply and accumulate (MAC) circuit, a first floating-point MAC circuit, and a first memory circuit, the first integer MAC circuit coupled to a set of inputs from a connection fabric of the FPGA; and a second tile of the FPGA comprising a second integer MAC circuit, a second floating-point MAC circuit, and a second memory circuit, the second integer MAC circuit coupled to the set of inputs from the connection fabric of the FPGA, the first memory circuit coupled to the second memory circuit by a bidirectional cascade communication channel. 2. The circuit of claim 1 , wherein: the second floating-point MAC circuit of the FPGA is coupled to a second set of inputs from the connection fabric of the FPGA; and the second floating-point MAC circuit of the FPGA is configured to generate a result based on a subset of the second set of inputs. 3. The circuit of claim 1 , wherein: the second floating-point MAC circuit of the FPGA is coupled to a second set of inputs from the connection fabric of the FPGA; in response to a first configuration signal, the second floating-point MAC circuit is configured to generate a result based on a subset of the set of inputs and the subset of the second set of inputs; and in response to a second configuration signal, the second floating-point MAC circuit is configured to perform operations on the second set of inputs and data stored in the second memory circuit. 4. The circuit of claim 1 , wherein: the second floating-point MAC circuit is configured to provide a result as a cascade output of the second tile of the FPGA. 5. The circuit of claim 1 , wherein: in response to a configuration signal, the second floating-point MAC circuit is configured to receive a second set of inputs from a second cascade output of the first tile of the FPGA. 6. The circuit of claim 1 , wherein: the second memory circuit of the second tile of the FPGA is configured to store data received from the bidirectional cascade communication channel with the first tile. 7. The circuit of claim 6 , wherein: the second memory circuit of the second tile of the FPGA is configured to simultaneously perform a first operation and a second operation, the first operation providing first data to the second floating-point MAC circuit of the second tile of the FPGA, the second operation storing the data received from the bidirectional cascade communication channel with the first tile. 8. The circuit of claim 6 , wherein the second memory circuit is configured to provide a first set of outputs to a third tile of the FPGA via a second cascade output. 9. The circuit of claim 1 , wherein the second floating-point MAC circuit is further configured to provide a first set of outputs to a third tile of the FPGA via a second cascade output. 10. The circuit of claim 1 , wherein: the first memory circuit of the first tile of the FPGA has a block address; the set of inputs comprises an input block address and a mask; and the first memory circuit of the first tile of the FPGA is configured to: generate a modified block address based on the block address of the first memory circuit and the mask; and store a subset of the set of inputs based on the modified block address matching the input block address. 11. A method comprising: receiving, by a first integer multiply and accumulate (MAC) circuit of a first tile of a field programmable gate array (FPGA), a set of inputs from a connection fabric of the FPGA; receiving, by a second integer MAC circuit of a second FPGA tile, the set of inputs from the connection fabric of the FPGA; receiving, by a floating-point MAC circuit of the second FPGA tile, a second set of inputs from the connection fabric of the FPGA; and communicating between a first memory circuit of the first FPGA tile and a second memory circuit of the second FPGA tile via a bidirectional cascade communication channel. 12. The method of claim 11 , further comprising: generating, by the floating-point MAC circuit, a result based on a subset of the second set of inputs. 13. The method of claim 11 , wherein: in response to a configuration signal, the second integer MAC circuit of the second tile of the FPGA is configured to receive, via a multiplexer, the set of inputs from a cascade output of the first tile of the FPGA. 14. The method of claim 11 , further comprising: storing, by the second memory circuit of the second tile of the FPGA, data received from the bidirectional cascade communication channel. 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 first tile of the FPGA comprising a first integer multiply and accumulate (MAC) circuit, a first floating-point MAC circuit, and a first memory circuit, the first integer MAC circuit coupled to a set of inputs from a connection fabric of the FPGA; and a second tile of the FPGA comprising a second integer MAC circuit, a second floating-point MAC circuit, and a second memory circuit, the second integer MAC circuit coupled to the set of inputs from the connection fabric of the FPGA, the first memory circuit coupled to the second memory circuit by a bidirectional cascade communication channel. 16. The non-transitory storage medium of claim 15 , wherein: the second integer MAC circuit of the FPGA is coupled to a second set of inputs from the connection fabric of the FPGA; and the second integer MAC circuit of the FPGA is configured to generate a result is based on a subset of the second set of inputs. 17. The non-transitory storage medium of claim 15 , wherein: in response to a configuration signal, the second integer MAC circuit is configured to receive a second set of inputs from a second cascade output of the first tile of the FPGA. 18. The non-transitory storage medium of claim 15 , wherein: in response to a first configuration signal, the second integer MAC circuit is configured to generate a result based on a subset of the set of inputs; and in response to a second configuration signal, the second integer MAC circuit is configured to perform operations on data stored in the second memory circuit. 19. The non-transitory storage medium of claim 15 , wherein: the second integer MAC circuit is configured to provide a result as a cascade output of the second tile of the FPGA. 20. The non-transitory storage medium of claim 15 , wherein: the second memory circuit of the second tile of the FPGA is configured to store data received from the bidirectional cascade communication channel with the first tile.

Assignees

Inventors

Classifications

  • using bus bridges (G06F13/4022 takes precedence) · CPC title

  • with reconfigurable architecture · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11288220B2 cover?
A tile of an FPGA provides memory, arithmetic functions, or both. Connections directly between multiple instances of the tile are 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 and memory circuits are increased, operand sizes are in…
Who is the assignee on this patent?
Achronix Semiconductor Corp
What technology area does this patent fall under?
Primary CPC classification G06F13/4027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 29 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).