Claims
- 1. A programmable logic device including a plurality of logic blocks and routing resources for transmitting signals between the blocks, a logic block comprising:
a plurality of product term circuits each operable in logic mode to provide a product term at an output terminal and operable in memory mode to provide a data bit at the output terminal, each product term circuit including a first stage of configuration cells each operable in logic mode to store a configuration bit and operable in memory mode to store the data bit and a second stage of logic gates operable to combine signals passed from the first stage; and a mode select circuit operable in logic mode to select a source of input signals for the configuration cells and in memory mode to select a source of address signals for the configuration cells.
- 2. The programmable logic device of claim 1, wherein the source of input signals comprises a driver circuit, the source of address signals comprises an address decoder, and the mode select circuit comprises a multiplexer coupled at its input terminals to the driver circuit and address decoder and at its output terminals to the product term circuits.
- 3. The programmable logic device of claim 1, wherein the mode select circuit is a first mode select circuit coupled to a first group of the product term circuits, the programmable logic device including a second, independent mode select circuit coupled to a second group of the product term circuits, to the input signal source, and to the address signal source,
wherein the first and second mode select circuits enable the first and second groups of the product terms to be independently operable in logic mode or memory mode.
- 4. The programmable logic device of claim 1, wherein the configuration cells and logic gates of the product term circuits are implemented in CMOS circuits.
- 5. The programmable logic device of claim 1, wherein the product term circuit plurality is a first plurality of product term circuits, the logic block including a second plurality of product term circuits operable in logic mode with the first product term circuit plurality to generate product terms and operable in memory mode to provide a source of address signals to the first product term circuit plurality.
- 6. The programmable logic device of claim 5, including a logic gate coupled to the output terminals of the first and second product term circuit pluralities and operable to combine the product terms from the second plurality with the product terms from the first plurality.
- 7. The programmable logic device of claim 1, wherein each product term circuit includes a configuration cell for each input signal line coupled to the product term circuit.
- 8. The programmable logic device of claim 1, including a data decoder coupled to the output terminals of the product term circuits and operable in memory mode to read data words of various widths from the data bits output by the product term circuits.
- 9. The programmable logic device of claim 8, wherein the data bits output by the product term circuits form a maximum-length data word, and the data decoder is operable to read specified widths of the maximum-length data word.
- 10. The programmable logic device of claim 8, including a second mode select circuit coupled to data decoder and to the output terminals of the product term circuits, the second mode select circuit operable in memory mode to couple the data decoder through the second mode select circuit and operable in logic mode to couple the output terminals of the product term circuits through the second mode select circuit.
- 11. The programmable logic device of claim 1, wherein each of the plurality of logic blocks comprises a plurality of such product term circuits and such mode select circuit, each logic block configurable to operate independently or in tandem in logic mode or memory mode.
- 12. The programmable logic device of claim 1, wherein the configuration cell comprises:
a logic gate; a first latch coupled to a first input terminal of the logic gate and operable to store a bit; a first pass gate coupled to the latch and responsive to a first gate control signal; a first write bit line coupled through the pass gate to the latch; and an input signal line coupled to a second input terminal of the logic gate, the mode select circuit operable in logic mode to couple the source of input signals to the input signal line and in memory mode to couple the source of address signals to the input signal line.
- 13. The programmable logic device of claim 12 wherein the logic gate is a NAND gate.
- 14. The programmable logic device of claim 12 including:
a second pass gate coupled to the latch but not to the first pass gate, the second pass gate responsive to a second gate control signal independent of the first gate control signal; and a second write bit line coupled through the second pass gate to the latch.
- 15. The programmable logic device of claim 14, including a pair of third pass gates responsive to a third gate control signal, one of the pair coupled to the first write bit line and first pass gate and the other of the pair coupled to the second write bit line and second pass gate.
- 16. The programmable logic device of claim 12 including:
a second pass gate coupled to the latch and also responsive to the first gate control signal; and a second write bit line coupled through the second pass gate to the latch, the second write bit line operable to provide to the latch the complement of the bit provided by the first write bit line to the latch.
- 17. The programmable logic device of claim 12 including:
a second logic gate; a second latch coupled to a first input terminal of the second logic gate and operable to store a bit; a second pass gate, coupled to the second latch and responsive to a second gate control signal independent of the first gate control signal; the first write bit line coupled through the second pass gate to the second latch; a second input signal line coupled to a second input terminal of the second logic gate; and a third pass gate coupled between the second latch and the first latch.
- 18. A programmable logic device including a plurality of logic blocks and routing resources for transmitting signals between the blocks, a logic block comprising:
an array of product term circuits operable in logic mode to generate product terms from input signals received on the input signal lines and operable in memory mode to act as a memory, the array in memory mode having a first array portion operable to store data bits and a second array portion operable to receive data bits and memory address signals on the input signal lines and to provide such data bits and memory address signals to the first array portion; and a mode select circuit coupled between output terminals of the second array portion and input terminals of the first array portion, and operable in logic mode to couple the input signal lines to the input terminals of the first array portion and in memory mode to couple the output terminals of the second array portion to the input terminals of the first array portion.
- 19. The programmable logic device of claim 18, wherein the product term circuits of the second array portion include memory output terminals operable to provide data bits and memory address signals and logic output terminals operable to provide product terms.
- 20. The programmable logic device of claim 18, including an address decoder coupled between the mode select circuit and the second array portion, the address decoder operable to decode a memory address signal received from the second array portion.
- 21. The programmable logic device of claim 18, including a data decoder coupled to the first array portion and to the second array portion, the data decoder responsive in memory mode to memory address signals from the second array portion to read data words of various widths from the data bits output by the first array portion.
- 22. The programmable logic device of claim 21, wherein the data bits output by the first array portion form a maximum-length data word, and the data decoder is operable to read specified widths of the maximum-length data word.
- 23. The programmable logic device of claim 21 including a second mode select circuit coupled to the data decoder and to the first and second array portions, the second mode select circuit operable in memory mode to couple the data decoder through the second mode select circuit and operable in logic mode to couple the first and second array portions through the second mode select circuit.
- 24. A programmable logic device including a plurality of logic blocks and routing resources for transmitting signals between the blocks, a logic block comprising:
a plurality of product term circuits operable in logic mode to generate product terms from multiple input signals and operable in memory mode to store data bits, each product term circuit including a configuration cell operable to store a configuration bit in logic mode and a data bit in memory mode; a first mode select circuit operable to select input signals for a first group of the product term circuits in logic mode and to select a first memory address signal for the first group of product term circuits in memory mode; and a second mode select circuit operable to select input signals for a second group of the product term circuits in logic mode and to select a second memory address signal for the second group of product term circuits in memory mode.
- 25. The programmable logic device of claim 24, wherein the product term circuits are each operable in logic mode to provide a product term at an output terminal and operable in memory mode to provide a data bit at the output terminal, each product term circuit including a first stage of configuration cells each operable in logic mode to store a configuration bit and operable in memory mode to store the data bit and a second stage of logic gates operable to combine signals passed from the first stage.
- 26. The programmable logic device of claim 24, including:
a first address decoder coupled to the first mode select circuit and operable to provide thereto a first read address signal and coupled to the first and second groups of product term circuits and operable to provide thereto a first write address signal; and a second address decoder coupled to the second mode select circuit and operable to provide thereto a second read address signal and coupled to the first and second groups of product term circuits and operable to provide thereto a second write address signal.
- 27. The programmable logic device of claim 26 including a third group of product term circuits operable in logic mode to generate product terms and operable in memory mode to provide the read and write address signals for the first and second address decoders.
- 28. The programmable logic device of claim 24, wherein each of the first and second groups of product terms circuits has output terminals, the device including:
a first data decoder coupled to the output terminals of the first group and operable in memory mode to read data words of various widths from the data bits output by the product term circuits therein; a second data decoder coupled to the output terminals of the second group and operable in memory mode to read data words of various widths from the data bits output by the product term circuits therein; and a third group of product term circuits operable in logic mode with the first and second groups to generate product terms and operable in memory mode to provide address signals to the first and second data decoders.
- 29. The programmable logic device of claim 24, including a third mode select circuit coupled to the first and second data decoders and to the first, second, and third groups of product term circuits, the third mode select circuit operable in memory mode to couple the data decoders through the third mode select circuit and operable in logic mode to couple the first, second, and third groups of product term circuits through the third mode select circuit.
- 30. A programmable logic device including a plurality of logic blocks and routing resources for transmitting signals between the blocks, a logic block comprising:
a plurality of product term circuits operable in logic mode to generate product terms from multiple input signals and operable in memory mode to act as a first-in-first-out (FIFO) memory that stores and retrieves data bits in a FIFO order, each product term circuit including a configuration cell operable to store a configuration bit in logic mode and a data bit in memory mode; a mode select circuit operable in logic mode to select input signals for the product term circuits and in memory mode to select a read address signal for the product term circuits; a read counter operable to provide the read address signal to the mode select circuit; a write counter operable to provide a write address signal to the product term circuits; and FIFO flag logic operable to compare the value of the read address signal to the value of the write address signal and generate one or more flags in response to the comparison.
- 31. The programmable logic device of claim 30 including:
a read data line coupled to the product term circuits and operable to obtain data bits from the product term circuits addressed by the read address signal; a write data line coupled to the product term circuits and operable to provide data bits to the product term circuits addressed by the write address signal; and a second plurality of product term circuits operable in logic mode to generate product terms and operable in memory mode to provide a read clock signal for the read counter, a write clock signal for the write counter, and the data bits for the write data line.
- 32. The programmable logic device of claim 30 wherein the product term circuit plurality is a first plurality of product term circuits, the logic block including a second plurality of product term circuits operable in logic mode with the first product term circuit plurality to generate product terms and operable in memory mode to provide a source of read data signals to the first product term circuit plurality.
- 33. A programmable logic device including a plurality of logic blocks and routing resources for transmitting signals between the blocks, a logic block comprising:
a plurality of product term circuits operable in logic mode to generate product terms from multiple input signals and operable in memory mode to act as a content addressable memory (CAM) that compares data bits in each product term circuit against an input word, each product term circuit including a configuration cell operable in logic mode to store a configuration bit and in memory mode to store a data bit; a mode select circuit operable in logic mode to select a source of input signals for the configuration cells and in memory mode to select a source of input words for the configuration cells; and an address encoder operable to obtain results of the input word-data bits comparison performed by the product term circuits and to encode the results into an address.
- 34. The programmable logic device of claim 33 wherein the address encoder is a priority encoder.
- 35. The programmable logic device of claim 33 wherein the product term circuit plurality is a first plurality of product term circuits, the logic block including a second plurality of product term circuits operable in logic mode with the first product term circuit plurality to generate product terms and operable in memory mode to provide a source of read address signals to the first product term circuit plurality.
- 36. A programmable device comprising a plurality of logic blocks, each logic block comprising an array of product term circuits, each product term circuit comprising a plurality of CMOS circuits, each array of product term circuits being configurable to perform product term logic functions and a memory function.
- 37. The programmable device of claim 36 wherein the array of product term circuits is configurable to be a memory with independently configurable data widths and address widths.
- 38. The programmable device of claim 36 wherein a logic block is configurable to function as a random access memory (RAM).
- 39. The programmable device of claim 36 wherein a logic block is configurable to function as a content addressable memory (CAM).
- 40. The programmable device of claim 36 wherein a logic block is configurable to function as a first-in-first-out memory (FIFO).
- 41. The programmable device of claim 36 wherein a logic block is configurable to function as a cross-point switch.
- 42. The programmable device of claim 36 wherein a logic block is cascadable with at least one other logic block to form wider input product term logic functions and wider memory functions.
- 43. The programmable device of claim 36 wherein a logic block comprises product term chaining logic configured to expand product terms available for each macrocell in the logic block to implement a wide OR function.
INCORPORATION BY REFERENCE
[0001] The following co-assigned U.S. Patent Applications and Patents are hereby incorporated by reference in their entireties: (1) U.S. patent application Ser. No. 09/704487, entitled “Wide Input Programmable Logic System And Method” (Attorney Docket Number M-9200), filed on Nov. 2, 2000; and (2) U.S. Pat. No. 6,067,252, entitled “Electrically Erasable Non-Volatile Memory Cell With Virtually No Power Dissipation” (Attorney Docket Number M-7435), filed on May 26, 1999.
[0002] This patent application claims priority to co-owned U.S. Provisional Patent Application No. 60/356,507, entitled “DEVICE AND METHOD WITH GENERIC LOGIC BLOCKS,” filed on Feb. 11, 2002, which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60356507 |
Feb 2002 |
US |