LOW-POWER FPGA CIRCUITS AND METHODS
First Claim
1. An integrated circuit field programmable gate array (FPGA), comprising:
- a plurality of logic blocks configured for performing combinational or sequential logic operations based on programming of said FPGA in response to one or more logic inputs;
a plurality of programmable routing channels configured for interconnecting said logic blocks for routing input signals to said logic blocks and output signals from said logic blocks based on programming of said FPGA;
a plurality of memory cells within said FPGA for configuring logic block operation and signal routing within said programmable routing channels; and
supply voltage selection means for operating said logic blocks and/or switching elements within said programmable routing channels which are either or both taken from a supply voltage Vdd selected from a plurality of discrete supply voltage levels.
2 Assignments
0 Petitions
Accused Products
Abstract
Field Programmable Logic Arrays (FPGAs) are described which utilize multiple power supply voltages to reduce both dynamic power and leakage power without sacrificing speed or substantially increasing device area. Power reduction mechanisms are described for numerous portions of the FPGA, including logic blocks, routing circuits, connection blocks, switch blocks, configuration memory cells, and so forth. Embodiments describe circuits and methods for implementing multiple supplies as sources of Vdd, multiple voltage thresholding Vt, signal level translators, and power gating of circuitry to deactivate portions of the circuit which are inactive. The supply voltage levels can be fixed, or programmable. Methods are described for performing circuit CAD in the routing and assignment process on FPGAs, in particular for optimizing FPGA use having the power reduction circuits taught. Routing methods describe utilizing slack timing, power sensitivity, trace-based simulations, and other techniques to optimize circuit utilization on a multi Vdd FPGA.
89 Citations
38 Claims
-
1. An integrated circuit field programmable gate array (FPGA), comprising:
-
a plurality of logic blocks configured for performing combinational or sequential logic operations based on programming of said FPGA in response to one or more logic inputs;
a plurality of programmable routing channels configured for interconnecting said logic blocks for routing input signals to said logic blocks and output signals from said logic blocks based on programming of said FPGA;
a plurality of memory cells within said FPGA for configuring logic block operation and signal routing within said programmable routing channels; and
supply voltage selection means for operating said logic blocks and/or switching elements within said programmable routing channels which are either or both taken from a supply voltage Vdd selected from a plurality of discrete supply voltage levels. - View Dependent Claims (2, 3)
-
-
4. An integrated circuit field programmable gate array (FPGA) containing an array of gates adapted for being programmed after manufacture for implementing desired electronic functionality, comprising:
-
logic blocks configured for performing combinational or sequential logic operations based on programming of said FPGA in response to one or more logic inputs;
said logic blocks configured for operating at a supply voltage Vdd selected from multiple discrete supply voltage levels;
programmable routing channels configured for interconnecting said logic blocks for routing input signals to said logic blocks and output signals from said logic blocks based on programming of said FPGA; and
memory cells within said FPGA for configuring logic block operation and signal routing within said programmable routing channels. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of placing and routing application logic within an FPGA fabric having multiple supply voltage levels, Vddx, levels, comprising:
-
(a) receiving a net list;
(b) assigning critical circuit paths defined within said net list to high supply voltage levels within the FPGA;
(c) determining timing slack on non-critical circuit paths defined in said net list;
(d) determining power sensitivity of circuit non-critical circuit paths;
(e) assigning circuit paths with high power sensitivity and sufficient timing slack to logic blocks operating at a low supply voltage level;
(f) updating timing information;
(g) reversing assignment to logic blocks operating at a low supply voltage level if delay constraints are not met; and
(h) continuing, iteratively, to execute steps (e) through (g) until all circuit paths within said net list have been assigned to blocks and routes within said FPGA. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
-
Specification