Method for design implementation of routing in an FPGA using placement directives such as local outputs and virtual buffers
First Claim
1. A method of designing interconnections in a field programmable gate array (FPGA) of the type having a plurality of configurable logic blocks, each such configurable logic block having a plurality of primitive cells, each such primitive cell having at least one input and at least one output;
- the method comprising the following steps;
a) establishing a library of primitive cells;
b) defining which primitive cell outputs may be connected to respective primitive cell inputs;
c) defining a set of connection classes;
d) determining which connection classes are attributed to the inputs and outputs of primitive cells in said library; and
e) deriving timing and power parameters for the primitive cells in said library;
wherein steps a) to e) are performed prior to placement and routing in said FPGA.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of computer aided design of coarse grain FPGA'"'"'s by employing a library of selected primitive cells, defining the connection classes useful in the FPGA design, and assigning appropriate connection classes to the inputs and outputs of the respective primitive cells. The primitive cells and defined interconnections used therein have accurately established timing and power parameters thereby enabling more accurate assessments of static timing and power consumption for the entire FPGA design. Moreover, the method of the present invention results in placement directives which then serve as connection criteria in carrying out subsequent place and route algorithms. One such placement directive is implemented as a "local output" (LO) of some of the primitive cells which implies that that particular output must be connected to another primitive cell input within the local configurable logic block (CLB). Another such placement directive is obtained by using a plurality of virtual buffers. They'"'"'re referred to as virtual buffers because they serve only a design function and do not actually exist in a CLB. The virtual buffers provide placement directives such as to connect a primitive cell output to another CLB input within some prescribed geographical limit such as within 4 or 6 CLBs of the one in which the buffer is "located".
59 Citations
16 Claims
-
1. A method of designing interconnections in a field programmable gate array (FPGA) of the type having a plurality of configurable logic blocks, each such configurable logic block having a plurality of primitive cells, each such primitive cell having at least one input and at least one output;
- the method comprising the following steps;
a) establishing a library of primitive cells; b) defining which primitive cell outputs may be connected to respective primitive cell inputs; c) defining a set of connection classes; d) determining which connection classes are attributed to the inputs and outputs of primitive cells in said library; and e) deriving timing and power parameters for the primitive cells in said library; wherein steps a) to e) are performed prior to placement and routing in said FPGA. - View Dependent Claims (2, 3, 4, 5, 6, 7, 15)
- the method comprising the following steps;
-
8. A method of designing interconnections in a field programmable gate array (FPGA) of the type having a plurality of input/output blocks, each such input/output block having a plurality of primitive cells, each such primitive cell having at least one input and at least one output;
- the method comprising the following steps;
a) establishing a library of primitive cells; b) defining which primitive cell outputs may be connected to respective primitive cell inputs; c) defining a set of connection classes; d) determining which connection classes are attributed to the inputs and outputs of primitive cells in said library; and e) deriving timing and power parameters for the primitive cells in said library; wherein steps a) to e) are performed prior to placement and routing in said FPGA. - View Dependent Claims (9, 10, 11, 12, 13, 16)
- the method comprising the following steps;
-
14. In a field programmable gate array (FPGA) of the type having a plurality of configurable logic blocks, each such configurable logic block having a plurality of primitive cells, each such primitive cell having at least one input and at least one output, said configurable logic blocks being arranged in logic block groups, said logic blocks being interconnectable by local lines within one of said logic block groups and by long lines extending between said logic block groups;
- a method of evaluating a user'"'"'s design for placement into said configurable logic blocks comprising the following steps;
a) establishing a library of said primitive cells, including library elements representing said primitive cells and virtual buffers representing selected ones of said lines; b) defining which primitive cell outputs may be connected to respective primitive cell inputs; c) defining a set of connection classes; d) determining which connection classes are attributed to the inputs and outputs of primitive cells and virtual buffers in said library; and e) deriving timing and power parameters for the primitive cells and virtual buffers in said library; wherein steps a) to e) are performed prior to placement and routing in said FPGA.
- a method of evaluating a user'"'"'s design for placement into said configurable logic blocks comprising the following steps;
Specification