Claims
- 1. In an integrated circuit having an FPGA core with core cells, each FPGA core cell comprising
a plurality of core cell input terminals and one or more core cell output terminals; one or more LUTs, each LUT having an output terminal and a plurality of input terminals, each input terminal of each LUT connected to one of said core cell input terminals; a selectable logic gate having an output terminal and a plurality of input terminals, each input terminal connected to one of said LUT output terminals or to any remaining core cell input terminal not connected to an LUT input terminal; and circuitry selectably connecting said output terminals of said LUTs and said selectable logic gate to said core cell output terminals; whereby said core cell is programmed by setting configuration bits in said one or more LUTs, selecting said logic gate and selectably connecting said output terminals of said one or more LUTs and of said selectable logic gate to said core cell output terminals.
- 2. The integrated circuit of claim 1 wherein said one or more LUTs comprise a plurality of LUTs, each LUT having an equal number of input terminals.
- 3. The integrated circuit of claim 2 wherein each LUT has four input terminals.
- 4. The integrated circuit of claim 3 wherein each FPGA core cell comprises eight input terminals.
- 5. The integrated circuit of claim 4 wherein said selectable logic gate is selected from a group of logic gates, said group comprising AND, OR and XOR logic gates.
- 6. The integrated circuit of claim 1 wherein said selectable logic gate is selected from a group of logic gates, said group comprising AND, OR and XOR logic gates.
- 7. The integrated circuit of claim 1 wherein said selectably connecting circuitry comprises clocked latches and multiplexers for clocked and unclocked signals through said core cell output terminals.
- 8. A method of mapping a given Boolean network into an FPGA, said FPGA having a plurality of core cells, each core cell having a predetermined number of input terminals and one or more output terminals; one or more LUTs, each LUT having a plurality of input terminals, each input terminal of each LUT connected to one of said core cell input terminals, and an output terminal; a selectable logic gate having a plurality of input terminals, each input terminal connected to one of said LUT output terminals or to any remaining core cell input terminal not connected to an LUT input terminal, and an output terminal; and circuitry selectably connecting said output terminals of said LUTs and said selectable logic gate to said core cell output terminals; whereby said core cell is programmed by setting configuration bits in said one or more LUTs, selecting said logic gate and selectably connecting said output terminals of said one or more LUTs and of said selectable logic gate to said core cell output terminals, said method comprising
partitioning said logic network into a plurality of cuts, each partitioning cut having no more than said predetermined number of core cell input terminals and mapping into logic of said partitioned cut; generating a network graph of each partitioning cut; partitioning input terminals of each partitioning cut into input sets corresponding to input terminals of said LUTs of said core cell in different combinations; generating a network graph for each input partitioning cut for all input combinations; determining equivalence between said network graphs of each partitioning cut, and logic combinations of said partitioning cuts for different logic; and finding an equivalence match for a mapping for logic of each partitioning cut into a logic cell core configured for matching input combination and selected logic gate; whereby said Boolean network is mapped into said FPGA with said matched configured core cells.
- 9. The method of claim 8 wherein said determining equivalence step includes logic combinations with inverted outputs.
- 10. The method of claim 8 wherein said determining equivalence step includes logic combinations with inverted inputs.
- 11. The method of claim 8 wherein said determining equivalence step includes logic combinations selected from the group comprising AND, OR, XOR, NAND, NOR, and XNOR logic.
- 12. The integrated circuit of claim 8 wherein said selectable logic gate is selected from a group of logic gates, said group comprising AND, OR and XOR logic gates.
- 13. The method of claim 8 wherein said one or more LUTs of said core cells comprise a plurality of LUTs, each LUT having an equal number of input terminals.
- 14. The method of claim 12 wherein each LUTs has four input terminals.
- 15. The method of claim 13 wherein each FPGA core cell comprises eight input terminals.
- 16. An integrated circuit having an FPGA core having a Boolean network mapped thereinto, said FPGA having a plurality of core cells, each core cell having a predetermined number of input terminals and a plurality of output terminals; one or more LUTs, each LUT having a plurality of input terminals, each input terminal of each LUT connected to one of said core cell input terminals, and an output terminal; a selectable logic gate having a plurality of input terminals, each input terminal connected to one of said LUT output terminals or to any remaining core cell input terminal not connected to an LUT input terminal, and an output terminal; and circuitry selectably connecting said output terminals of said LUTs and said selectable logic gate to said core cell output terminals; whereby said core cell is programmed by setting configuration bits in said one or more LUTs, selecting said logic gate and selectably connecting said output terminals of said one or more LUTs and of said selectable logic gate to said core cell output terminals, said FPGA core cells configured by:
partitioning said logic network into a plurality of cuts, each partitioning cut having no more than said predetermined number of core cell input terminals and mapping into logic of said partitioned cut; generating a network graph of each partitioning cut; partitioning input terminals of each partitioning cut into input sets corresponding to input terminals of said LUTs of said core cell in different combinations; generating a network graph for each input partitioning cut for all input combinations; determining equivalence between said network graphs of each partitioning cut, and logic combinations of said partitioning cuts for different logic; finding an equivalence match for a mapping for logic of each partitioning cut into a logic cell core configured for matching input combination and selected logic, gate; and configuring said core cells for said equivalence matches whereby said Boolean network is mapped into said FPGA.
- 17. The integrated circuit of claim 16 wherein said determining equivalence step includes logic combinations with inverted outputs.
- 18. The integrated circuit of claim 16 wherein said determining equivalence step includes logic combinations with inverted inputs.
- 19. The integrated circuit of claim 16 wherein said determining equivalence step includes logic combinations selected from the group comprising AND, OR, XOR, NAND, NOR, and XNOR logic.
- 20. The integrated circuit of claim 16 wherein said selectable logic gate is selected from a group of logic gates, said group comprising AND, OR and XOR logic gates
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This patent application claims priority from U.S. Provisional Patent Application No. 60/329,892, filed Oct. 16, 2001, and which is incorporated herein for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60329892 |
Oct 2001 |
US |