Wires on demand: run-time communication synthesis for reconfigurable computing
First Claim
Patent Images
1. A method for reconfiguring an FPGA which has a static region and a dynamic region, the method comprising:
- (a) receiving an FPGA reconfiguration request at a server located externally of the FPGA;
(b) computing reconfiguration of the FPGA at the server, using the request and information of predetermined modules; and
(c) sending partial bitstreams from the server to the FPGA to reconfigure the FPGA;
wherein the dynamic region is configured such that the modules to be located in the dynamic region are not constrained to lie within regions defined within the dynamic region, but instead may be placed as resources in the dynamic region allow.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, and system, for reconfiguring an FPGA which has a static region and a dynamic region is provided. The method includes the steps of: (a) providing a dynamic module library having information of predetermined modules; (b) receiving a reconfiguration request external to the FPGA; (c) computing reconfiguration of the FPGA at a predetermined location using predetermined module information from the dynamic module library and the reconfiguration request, and generating reconfigurable partial bitstreams; and (d) sending partial bitstreams from the predetermined location to the FPGA to perform the reconfiguration.
-
Citations
19 Claims
-
1. A method for reconfiguring an FPGA which has a static region and a dynamic region, the method comprising:
-
(a) receiving an FPGA reconfiguration request at a server located externally of the FPGA; (b) computing reconfiguration of the FPGA at the server, using the request and information of predetermined modules; and (c) sending partial bitstreams from the server to the FPGA to reconfigure the FPGA; wherein the dynamic region is configured such that the modules to be located in the dynamic region are not constrained to lie within regions defined within the dynamic region, but instead may be placed as resources in the dynamic region allow. - View Dependent Claims (2, 3)
-
-
4. A method for reconfiguring an FPGA which has a static region and a dynamic region, the method comprising:
-
(a) receiving an FPGA reconfiguration request at a server located externally of the FPGA; (b) computing reconfiguration of the FPGA at the server, using the request and information of predetermined modules; and (c) sending partial bitstreams from the server to the FPGA to reconfigure the FPGA; wherein step (b) of computing the reconfiguration comprises; (b-1) selecting a list of modules using the predetermined module information; (b-2) determining placement of the modules in the dynamic region of the FPGA using the list of selected modules and the reconfiguration request; (b-3) determining connections among the selected modules; (b-4) determining channel routing between the selected modules in the dynamic region and the static region; (b-5) generating the reconfigurable partial bitstreams using information generated from steps (b-2), (b-3) and (b-4). - View Dependent Claims (5)
-
-
6. A method for reconfiguring an FPGA which has a static region and a dynamic region, the method comprising:
-
(a) providing a dynamic module library storing predetermined modules; (b) receiving a reconfiguration request external to the FPGA; (c) computing reconfiguration of the FPGA at a predetermined location using the reconfiguration request and the predetermined module information from the dynamic module library, and generating reconfigurable partial bitstreams; and (d) sending partial bitstreams from the predetermined location to the FPGA to perform the reconfiguration; wherein the dynamic region is configured such that the modules to be located in the dynamic region are not constrained to lie within regions defined within the dynamic region, but instead may be placed as resources in the dynamic region allow. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method for reconfiguring an FPGA which has a static region and a dynamic region, the method comprising:
-
(a) providing a dynamic module library storing predetermined modules; (b) receiving a reconfiguration request external to the FPGA; (c) computing reconfiguration of the FPGA at a predetermined location using the reconfiguration request and the predetermined module information from the dynamic module library, and generating reconfigurable partial bitstreams; and (d) sending partial bitstreams from the predetermined location to the FPGA to perform the reconfiguration; wherein the dynamic module library comprises a plurality of wrapper module structures, each module having a pre-processed module, a plurality of multiplexers, and a plurality of input and output ports, wherein the pre-processed module, the multiplexers and the input and output ports are interconnected.
-
-
12. A dynamic module system for reconfiguring an FPGA which has a static region and a dynamic region, comprising:
-
an interface for receiving a reconfiguration request; a manager for receiving the reconfiguration request and information of predetermined modules, and determining placement and connections of modules inside the dynamic region of the FPGA; and a bitstream toolbox connected to the manager and generating a reconfigurable partial bitstream to the FPGA via the interface; wherein the manager is configured such that the modules to be located in the dynamic region are not constrained to lie within regions defined within the dynamic region, but instead may be placed as resources in the dynamic region allow. - View Dependent Claims (13, 14)
-
-
15. A dynamic module system for reconfiguring an FPGA which has a static region and a dynamic region, comprising:
-
an interface for receiving a reconfiguration request; a manager for receiving the reconfiguration request and information of predetermined modules, and determining placement and connections of modules inside the dynamic region of the FPGA; a bitstream toolbox connected to the manager and generating a reconfigurable partial bitstream to the FPGA via the interface; and a reconfigurable supervisor connected between the interface and the datapath manager, the reconfigurable supervisor receiving the reconfiguration request from the interface and the predetermined module information, and generating a module request to the datapath manager; wherein the manager comprises; a datapath manager for determining the placement of the modules; and a channel routing manager for determining the connections of the modules; and wherein the datapath manager further receives bitstreams that define configuration of the static region in the FPGA. - View Dependent Claims (16, 17, 18, 19)
-
Specification