IP Library Granted Patent US 9,935,637
Granted Patent B2
US 9,935,637 · App. 14/619,888 · Granted Apr 3, 2018

Systems and methods for FPGA development and operation

Inventors: Chen Chang (Fremont, CA); Kevin B. Camera (Walnut Creek, CA); Alexander Williams (Oakland, CA); Brian Jenkins (Walnut Creek, CA); Ellery Cochell (Hayward, CA); Robert W. Brodersen (Berkeley, CA); John C. Wawrzynek (Berkeley, CA)
Assignee: NATIONAL INSTRUMENTS CORPORATION
H03K19/17728G06F17/5054H03K19/17756
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 9,935,637
App. No.
14/619,888
Granted
Apr 3, 2018
Kind
B2
Abstract

A design environment for FPGA applications enables configuration of an FPGA platform to include a user design and one or more interface units, which the user design can use to access one or more external modules/devices without needing any particular knowledge of the structure and operation of such modules/devices. The interface unit corresponding to an external device/module, under the control of an operating environment, can establish a communication between the user design and the external module/device. An external processing module can use an interface unit to monitor and/or control a user design.

Claims (39)

1. A field programmable gate array (FPGA)-based scalable system, comprising:

a first FPGA unit, comprising:

a partition for a user design;

a reconfigurable interface that is: (i) implemented using FPGA reconfigurable circuits, and (ii) configured to exchange data with the user design and each of a first interface unit and a second interface unit; and

a control interface configured to establish a first communication channel between the first interface unit and a first external module and a second communication channel between the second interface unit and a second external module; and

a processing module configured to run an operating environment that interfaces with the user design and observes and controls the user design during execution of the user design by the first FPGA unit.

2. The system of claim 1 , wherein the first interface unit comprises at least one of a register, a first in first out (FIFO) buffer, and a random access memory (RAM).

3. The system of claim 1 , wherein the first interface unit is customized for the first FPGA unit.

4. The system of claim 3 , wherein the first interface unit comprises at least one of a network input/output device, a serial communication device, a buffer, and a memory controller.

5. The system of claim 1 , wherein the control interface communicates with the first external module via an Ethernet switch.

6. The system of claim 1 , wherein the processing module comprises an FPGA based soft processor core or a hard processor core.

7. The system of claim 1 , wherein the first FPGA unit further comprises an input/output (I/O) interface, the system further comprising:

a second FPGA unit; and

an external controller in electrical communication with the first FPGA unit and with the second FPGA unit.

8. The system of claim 7 , wherein the external controller is configured to access the reconfigurable interface of the first FPGA unit and a reconfigurable interface of the second FPGA unit.

9. The system of claim 7 , wherein the external controller is configured to establish a communication link between the first and second FPGA units through respective I/O interfaces thereof.

10. A method for analyzing a field programmable gate array (FPGA)-based user design, the method comprising the steps of:

designating a first part of an FPGA unit to execute a user design;

configuring a second part of the FPGA unit as a first interface unit a second interface unit for accessing a data element of the user design, wherein the second part of the FPGA unit is included in an operating environment executing on the FPGA unit;

establishing, by a control interface, a communication channel between each of the first interface unit and a first external module and a second interface unit and a second external module; and

running, by a processing module, the operating environment, wherein the operating environment interfaces with the user design and observes and controls the user design during execution of the user design by the FPGA unit.

11. The method of claim 10 , wherein:

the first interface unit is configured to read a value of the data element; and

establishing the communication channel comprises allowing the processing module to read the value of the data element from the first interface unit.

12. The method of claim 10 , further comprising configuring, by the processing module, the first interface unit to read or write a value of the data element.

13. A method for accessing a first and a second external module by a field programmable gate array (FPGA)-based user design, the method comprising the steps of:

designating a first part of a first FPGA unit to execute at least a portion of a user design;

configuring a first portion of a second part of the first FPGA unit as a first interface unit for exchanging data between the user design and a first external module, wherein the second part of the FPGA unit is included in an operating environment executing on the FPGA unit;

configuring a second portion of the second part of the first FPGA unit as a second interface unit for exchanging data between the user design and a second external module;

establishing, by a control interface of the first FPGA unit, a first communication channel between the first interface unit and the first external module;

establishing, by the control interface of the first FPGA unit, a second communication channel between the second interface unit and the second external module; and

running, by a processing module, the operating environment, wherein the operating environment interfaces with the user design and observes and controls the user design during execution by the FPGA unit.

14. The method of claim 13 , wherein:

the user design is independent of a structure and an operation of the first external module.

15. The method of claim 13 , further comprising:

designating a first part of a second FPGA unit to execute at least a portion of the user design;

configuring a first portion of a second part of the second FPGA unit as a second interface unit for exchanging data between the user design and a second external module;

establishing, by a control interface of the second FPGA unit, a second communication channel between the second interface unit and the second external module; and

establishing, by an external controller, a communication link between the first and second FPGA units through respective input/output (I/O) interfaces thereof.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2016
From: BEECUBE, INC.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 037979/0248 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2015
From: CHANG, CHEN; CAMERA, KEVIN B.; WILLIAMS, ALEXANDER; JENKINS, BRIAN; COCHELL, ELLERY; BRODERSEN, ROBERT W.; WAWRZYNEK, JOHN C.
To: BEECUBE, INC.
Reel/Frame 035111/0975 →
Continuity (2)
Provisional Application 61938639 · Feb 11, 2014
Related Publication 20150229310A1 · Aug 13, 2015