IP Library Granted Patent US 9,026,688
Granted Patent B2
US 9,026,688 · App. 13/530,052 · Granted May 5, 2015

Systems and methods for programming configurable logic devices via USB

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,026,688
App. No.
13/530,052
Granted
May 5, 2015
Kind
B2
Abstract

A system for programming one or more configurable logic devices (e.g., FPGA or CPLD) via universal serial bus (USB) may include one or more CLDs; a microcontroller coupled to the one or more CLDs via a parallel data bus; a processor coupled to the microcontroller via a USB interface, the processor having access to CLD access logic and one or more CLD images; and instructions executable by the processor to program at least one of the CLDs by loading the CLD access logic onto the microcontroller, using the CLD access logic loaded on the microcontroller to set each of the at least one CLD to a programming mode, and forwarding a particular CLD image from the processor to the microcontroller via the USB interface and from the microcontroller to each of the at least one CLD via the parallel data bus.

Claims (47)

1. A system for programming two or more configurable logic devices (CLDs) via universal serial bus (USB), comprising:

two or more CLDs;

a microcontroller coupled to the two or more CLDs via a shared parallel data bus coupled between the microcontroller and each of the two or more CLDs;

a processor coupled to the microcontroller via a USB interface, the processor having access to CLD access logic and one or more CLD images;

instructions executable by the processor to program the CLDs by:

loading the CLD access logic onto the microcontroller;

using the CLD access logic loaded on the microcontroller to set at least one CLD to a programming mode;

forwarding a CLD image from the processor to the microcontroller via the USB interface and from the microcontroller to the at least one CLD via the shared parallel data bus;

using the CLD access logic loaded on the microcontroller to the at least one additional CLD to a programming mode; and

forwarding a CLD image from the microcontroller to the at least one additional CLD via the shared parallel data bus.

2. The system of claim 1 , wherein the microcontroller comprises a USB microcontroller.

3. The system of claim 1 , wherein the two or more CLDs comprise two or more field programmable gate arrays (FPGAs).

4. The system of claim 1 , wherein the microcontroller is coupled to the CLDs via individual control signal lines.

5. The system of claim 1 , wherein the CLD image forwarded to the at least one additional CLD is

a different CLD image from the CLD image forwarded to the at least one additional CLD, and wherein the different CLD image is forwarded from the processor to the microcontroller via the USB interface.

6. A method of programming configurable logic devices (CLD)s, comprising:

loading control instructions on a processor from an attached tangible, non-transitory computer-readable medium;

copying contents of a program image file by the processor from the computer-readable medium across a first bus to the programmable device;

signaling the programmable device to program a first CLD;

copying contents of a configuration image file from the computer-readable medium to the programmable device via the first bus and from the programmable device to the first CLD via a second shared programming bus;

signaling the programmable device to program a second CLD; and

copying contents of a configuration image file from the programmable device to the second CLD via the second shared programming bus, the second shared programming bus being coupled between the programmable device and each of the first and second CLDs.

7. The method of claim 6 , wherein the configuration image file copied to the second CLD is a different configuration image file from the configuration image file copied to the first CLD, and further comprising copying contents of a different configuration image file from the computer-readable medium to the programmable device via the first bus.

8. The method of claim 6 , wherein the first bus is a universal serial bus (USB).

9. The method of claim 6 , wherein the second shared programming bus is a shared parallel data bus connected to a fast parallel programming input for each of the first and second CLDs.

10. The method of claim 6 , wherein the CLDs are field programmable gate arrays (FPGAs).

11. The method of claim 6 , further comprising, upon signaling the programmable device to program the first CLD, sending a first individual control signal to the first CLD to enable programming, and upon signaling the programmable device to program the second CLD, sending a second individual control signal to the second CLD to enable programming.

12. A computing system comprising:

a first configurable logic device (CLD);

a second CLD;

a programmable device; and

a processor programmed to:

load control instructions from an attached tangible, non-transitory computer-readable medium;

copy contents of a program image file from the computer-readable medium across a first bus to the programmable device;

signal the programmable device to program the first CLD with a first configuration file, the first CLD being coupled to the programmable device via a second shared programming bus;

copy contents of the first configuration image file from the computer-readable medium to the programmable device via the first bus;

signal the programmable device to program a second CLD with a second configuration file, the second CLD being coupled to the programmable device via the second shared programming bus, and the second shared programming bus being coupled between the programming device and each of the first and second CLDs; and

copy contents of the second configuration image file from the computer-readable medium to the programmable device via first bus.

13. The system of claim 12 , wherein the programmable device is programmed to:

control a first output pin of the programmable device connected to an input pin of the first CLD to enable a programming mode on the first CLD; and

copy the contents of the first configuration image file to the first CLD via the second shared programming bus.

14. The system of claim 13 , wherein the programmable device is programmed to:

control a second output pin of the programmable device connected to an input of the second CLD to enable a programming mode on the second CLD; and

copy the contents of the second configuration image file to the second CLD via the second shared programming bus.

15. The system of claim 12 , wherein the first bus is a universal serial bus (USB).

16. The system of claim 12 , wherein the second shared programming bus is a shared parallel data bus connected to a fast parallel programming input for each of the first and second CLDs.

17. The system of claim 12 , wherein the CLDs are field programmable gate arrays.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2017
From: BREAKINGPOINT SYSTEMS, INC.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 043898/0980 →
RELEASE OF SECURITY INTEREST Recorded Apr 24, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: BREAKINGPOINT SYSTEMS, INC.
Reel/Frame 042126/0181 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: BREAKINGPOINT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2012
From: STROUD, JONATHAN
To: BREAKINGPOINT SYSTEMS, INC.
Reel/Frame 029415/0354 →