IP Library Granted Patent US 10,608,640
Granted Patent B1
US 10,608,640 · App. 16/409,146 · Granted Mar 31, 2020

On-chip network in programmable integrated circuit

Inventors: Kent Orthner (Santa Clara, CA); Travis Johnson (Santa Clara, CA); Sarma Jonnavithula (Bangalore, IN)
Assignee: Achronix Semiconductor Corporation
H03K19/17744G06F13/20G06F13/4282H03K19/1776H03K19/17728H03K19/17736H03K19/17796G06F2213/0026
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,608,640
App. No.
16/409,146
Filed
May 10, 2019
Granted
Mar 31, 2020
Kind
B1
Examiner
TAN, VIBOL
Art Unit
2844
USPC
326/39
Abstract

Methods, systems, and computer programs are presented for implementing a network on chip (NOC). One programmable integrated circuit comprises a plurality of clusters, an internal network on chip (iNOC), and an external network on chip (eNOC) outside the plurality of clusters. The plurality of clusters is disposed on a plurality of cluster rows and a plurality of cluster columns, each cluster comprising programmable logic. Further, the iNOC comprises iNOC rows and iNOC columns. Each iNOC row is configured for transporting data and comprising connections to clusters in a cluster row and the eNOC, and each iNOC column is configured for transporting data and comprising connections to clusters in a cluster column and the eNOC.

Claims (40)

1. A programmable integrated circuit comprising:

a plurality of clusters disposed on a plurality of cluster rows and a plurality of cluster columns, each cluster comprising programmable logic;

an internal network on chip (iNOC) comprising iNOC rows and iNOC columns; and

an external network on chip (eNOC) outside the plurality of clusters, each iNOC row configured for transporting data and comprising connections to clusters in a cluster row and the eNOC, each iNOC column configured for transporting data and comprising connections to clusters in a cluster column and the eNOC.

2. The programmable integrated circuit as recited in claim 1 , further comprising:

a plurality of communication modules with external interfaces for exchanging data external entities, the plurality of communication modules connected to the eNOC and configured for communication with the plurality of clusters via the eNOC.

3. The programmable integrated circuit as recited in claim 1 , wherein one of the iNOC rows or the iNOC columns comprise master connections to clusters and to the eNOC, and one of the iNOC rows or the iNOC columns comprise slave connections to clusters and to the eNOC.

4. The programmable integrated circuit as recited in claim 1 , wherein each cluster includes, for each direction of iNOC row traffic, a router and a network access point (NAP) that connects to user logic in the cluster.

5. The programmable integrated circuit as recited in claim 1 , wherein the iNOC is configured for communications of multiple traffic types including packet transfer, data streams, and raw user data.

6. The programmable integrated circuit as recited in claim 1 , wherein the iNOC is configured for transferring packets that are divided into one or more flits.

7. The programmable integrated circuit as recited in claim 1 , wherein a first user logic in master mode is configured for sending a read request to a slave memory controller in slave mode, the read request being sent through an iNOC row connected to the first user logic to the eNOC and from the eNOC to the slave memory controller.

8. The programmable integrated circuit as recited in claim 1 , wherein a combination of iNOC and eNOC communications enable any cluster to communicate to any other cluster and to communication modules with external interfaces coupled to the eNOC.

9. The programmable integrated circuit as recited in claim 1 , wherein an Ethernet controller is coupled to at least one iNOC column, wherein flits used for communication in the at least one iNOC column encapsulate Ethernet packets.

10. The programmable integrated circuit as recited in claim 1 , further comprising:

a PCIe controller connected to the eNOC, the PCIE controller being configured for sending a request to a second user logic in slave mode, the request being sent through the eNOC to an iNOC column, connected to the second user logic, which forwards the request to the second user logic.

11. The programmable integrated circuit as recited in claim 1 , further comprising:

a PCIe controller, connected to the eNOC, configured for communications to a memory controller, connected to the eNOC, via the eNOC without utilizing any programmable logic from the plurality of clusters.

12. A method comprising:

receiving, at a programmable integrated circuit, a configuration for the programmable integrated circuit, the programmable integrated circuit comprising:

a plurality of clusters disposed on a plurality of cluster rows and a plurality of cluster columns, each cluster comprising programmable logic;

an internal network on chip (iNOC) comprising iNOC rows and iNOC columns; and

an external network on chip (eNOC) outside the plurality of clusters, each iNOC row configured for transporting data and comprising connections to clusters in a cluster row and the eNOC, each iNOC column configured for transporting data and comprising connections to clusters in a cluster column and the eNOC;

configuring the programmable integrated circuit based on the configuration; and

providing communications, utilizing a combination of iNOC and eNOC communications, to enable any cluster to communicate to any other cluster and to communication modules with external interfaces coupled to the eNOC.

13. The method as recited in claim 12 , wherein the programmable integrated circuit further comprises a plurality of communication modules with external interfaces for exchanging data external entities, the plurality of communication modules connected to the eNOC and configured for communication with the plurality of clusters via the eNOC.

14. The method as recited in claim 12 , wherein one of the iNOC rows or the iNOC columns comprise master connections to clusters and to the eNOC, and one of the iNOC rows or iNOC columns comprise slave connections to clusters and to the eNOC.

15. The method as recited in claim 12 , wherein each cluster includes, for each direction of iNOC row traffic, a router and a network access point (NAP) that connects to user logic in the cluster.

16. The method as recited in claim 12 , wherein the iNOC is configured for communications of multiple traffic types including packet transfer, data streams, and raw user data.

17. The method as recited in claim 12 , further comprising:

transferring, by the iNOC, packets by dividing the packets into one or more flits.

18. The method as recited in claim 12 , further comprising:

sending, from a first user logic in master mode, a read request to a slave memory controller in slave mode, the read request being sent through an iNOC row connected to the first user logic to the eNOC and from the eNOC to the slave memory controller.

19. The method as recited in claim 12 , wherein an Ethernet controller is coupled to at least one iNOC column, wherein flits used for communication in the at least one iNOC column encapsulate Ethernet packets.

20. A non-transitory machine-readable storage medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:

receiving, at a programmable integrated circuit, a configuration for the programmable integrated circuit, the programmable integrated circuit comprising:

a plurality of clusters disposed on a plurality of cluster rows and a plurality of cluster columns, each cluster comprising programmable logic;

an internal network on chip (iNOC) comprising iNOC rows and iNOC columns; and

an external network on chip (eNOC) outside the plurality of clusters, each iNOC row configured for transporting data and comprising connections to clusters in a cluster row and the eNOC, each iNOC column configured for transporting data and comprising connections to clusters in a cluster column and the eNOC;

configuring the programmable integrated circuit based on the configuration; and

providing communications, utilizing a combination of iNOC and eNOC communications, to enable any cluster to communicate to any other cluster and to communication modules with external interfaces coupled to the eNOC.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2020
From: HERCULES CAPITAL, INC., AS AGENT
To: ACHRONIX SEMICONDUCTOR CORPORATION
Reel/Frame 054461/0220 →
SECURITY INTEREST Recorded Mar 16, 2020
From: ACHRONIX SEMICONDUCTOR CORPORATION
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 052121/0505 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2019
From: ORTHNER, KENT; JOHNSON, TRAVIS; JONNAVITHULA, SARMA
To: ACHRONIX SEMICONDUCTOR CORPORATION
Reel/Frame 050736/0511 →
Cited By (7)
US 50,504 US 12,277,255 US 12,393,538 US 12,406,186 US 12,470,518 US 12,664,105 US 12,681,893