Nova Patents
EP0744835A2

Improved programmable gate array

Abstract

A programmable gate array with an improved interconnect structure facilitates multi-source networks, communication of signals long distances across the array, and creation of networks in a symmetrical interconnect structure. The interconnect includes direct connections for each configurable logic block in the array to eight neighbors, including adjacent configurable logic blocks and next adjacent configurable logic blocks. Also, the interconnect includes uncommitted long lines which are driven by outputs of configurable logic blocks but not committed through the interconnect to inputs of any specific logic block. Rather, the uncommitted long lines are committed to connections to other segments of the interconnect. The interconnect structure also includes staggered switching matrices at the intersections of the horizontal and vertical buses in the interconnect. Repowering buffers that are configurable in both directions are associated with bidirectional lines in the interconnect, and include a bypass path. The interconnect provides for communication of control signals from off the chip, from any configurable logic block in the array, and from the input/output structures in the array to any or all other configurable logic blocks and input/output blocks in the array.

EP0744835A2, drawing sheet 1
Sheet 1 of 62

Term

Term ended

Projected expiry passed 20 July 2010, 16.2 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

27 claims: 27 independent, 0 dependent

  1. 1
    A programmable integrated circuit chip comprising:a first row of spaced-apart logic blocks extending over a first distance, the first row including, in succession, at least first through third logic blocks;a first interconnect bus co-extensive with the first row of logic blocks, the first bus including a plurality of short-haul line segments for carrying signals over distances less than the first distance where each short-haul line segment is substantially shorter than the first distance but equal to or longer than a second distance, the second distance being that spanned by at least two neighbouring logic blocks in said first row of spaced-apart logic blocks;where a first of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the first and second logic blocks;and    where a second of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the second and third logic blocks.
  2. 2
    A programmable integrated circuit chip comprising:a first row of spaced-apart logic blocks extending over a first distance, the first row including, in succession, at least first through third logic blocks;a first interconnect bus co-extensive with the first row of logic blocks, the first bus including a plurality of short-haul line segments for carrying signals over distances less than the first distance, where each short-haul line segment is substantially shorter than the first distance but equal to or longer than a second distance, the second distance being that spanned by at least two neighbouring logic blocks in said first row of spaced-apart logic blocks;anda plurality of programmable switch matrices distributed along the first interconnect bus and connected to ends of the short-haul line segments for programmably coupling the short-haul line segments one to another;wherein a first of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the first and second logic blocks.    wherein a second of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the second and third logic blocks;wherein a first of the programmable switch matrices connects to an end of said first of the short-haul line segments but is bypassed by said second of the short-haul line segments;and    wherein a second of the programmable switch matrices connects to an end of said second of the short-haul line segments but is bypassed by said first of the short-haul line segments.
  3. 3
    A programmable integrated circuit chip comprising:a first row of spaced-apart logic blocks extending over a first distance, the first row including, in succession, at least first through third logic blocks;a first interconnect bus co-extensive with the first row of logic blocks, the first bus including a plurality of short-haul line segments for carrying signals over distances less than the first distance, where each short-haul line segment is substantially shorter than the first distance but equal to or longer than a second distance, the second distance being that spanned by at least two neighboring logic blocks in said first row of spaced-apart logic blocks;anda plurality of programmable switch matrices distributed along the first interconnect bus and connected to ends of the short-haul line segments for programmably coupling the short-haul line segments one to another;wherein a first of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the first and second logic blocks;wherein a second of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the second and third logic blocks;wherein the plurality of short-haul line segments includes a first multiplicity of short-haul line segments co-extensive with one another and of substantially equal length, said first multiplicity including the first of the short-haul line segments that is co-extensive with, and coupled to, the first and second logic blocks;wherein the plurality of short-haul line segments includes a second multiplicity of short-haul line segments co-extensive with one another and of substantially equal length, said second multiplicity including the second of the short-haul line segments that is co-extensive with, and coupled to, the second and third logic blocks;wherein a first of the programmable switch matrices connects to ends of said first multiplicity of short-haul line segments but is bypassed by said second multiplicity of short-haul line segments;and    wherein a second of the programmable switch matrices connects to ends of said second multiplicity of short-haul line segments but is bypassed by said first multiplicity of short-haul line segments.
  4. 4
    A programmable integrated circuit chip comprising:a first row of spaced-apart logic blocks extending over a first distance, the first row including, in succession, at least first through third logic blocks;a first interconnect bus co-extensive with the first row of logic blocks, the first bus including a plurality of short-haul line segments for carrying signals over distances less than the first distance, where each short-haul line segment is substantially shorter than the first distance but equal to or longer than a second distance, the second distance being that spanned by at least two neighboring logic blocks in said first row of spaced-apart logic blocks;anda plurality of programmable switch matrices distributed along the first interconnect bus and connected to ends of the short-haul line segments for programmably coupling the short-haul line segments one to another;wherein a first of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the first and second logic blocks;wherein a second of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the second and third logic blocks;and    wherein the programmable switch matrices are bidirectional switch matrices including bidirectional interconnect means for bidirectionally coupling signals between said short-haul line segments, said bidirectional coupling being capable of carrying signals in either direction, from a first short-haul line segment to a second or from the second short-haul line segment to the first.
  5. 5
    A programmable integrated circuit chip comprising:a first row of spaced apart logic blocks extending over a first distance, the first row including, in succession, at least first through third logic blocks;a first interconnect bus co-extensive with the first row of logic blocks, the first bus including a plurality of short-haul line segments for carrying signals over distances less than the first distance, where each short-haul line segment is substantially shorter than the first distance but equal to or longer than a second distance, the second distance being that spanned by at least two neighboring logic blocks in said first row of spaced-apart logic blocks;wherein a first of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the first and second logic blocks.    wherein a second of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the second and third logic blocks;wherein the first interconnect bus further includes a plurality of longlines of length substantially greater than that of a short-haul line segment for transferring signals quickly over distances substantially greater than the length of a short-haul line segment;and    wherein at least one of the longlines is co-extensive with, and programmably coupled or fixedly coupled to, the first through third logic blocks.
  6. 6
    A programmable integrated circuit chip comprising:a first row of spaced-apart logic blocks extending over a first distance, the first row including, in succession, at least first through third logic blocks;a first interconnect bus co-extensive with the first row of logic blocks, the first bus including a plurality of short-haul line segments for carrying signals over distances less than the first distance, where each short-haul line segment is substantially shorter than the first distance but equal to or longer than a second distance, the second distance being that spanned by at least two neighboring logic blocks in said first row of spaced-apart logic blocks;wherein a first of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the first and second logic blocks;and    wherein a second of the short-haul line segments in the first bus is co-extensive with, and programmably coupled or fixedly coupled to, the second and third logic blocks;said programmable integrated circuit chip further comprising:a second row of spaced-apart logic blocks extending over the first distance parallel to the first row, the second row including, in succession, at least fourth through sixth logic blocks;wherein one of the short-haul line segments is co-extensive with, and programmably coupled to, the first, second, fourth and fifth logic blocks;and    wherein another one of the short-haul line segments is co-extensive with, and programmably coupled to, the second, third, fifth and sixth logic blocks.
  7. 7
    A configurable logic array, comprising:(a) configuration storage means for storing program data specifying a user defined data processing function;(b) a plurality of configurable logic means, CL1,1-CLC,R, arranged as an array consisting of C columns and R rows, each of said configurable logic means being designated by CLc,r where c designates a column in the range 1 to C, and r designates a row in the range 1 to R,(b.1) each of the configurable logic means CLc,r being coupled to the configuration storage means and having a plurality of inputs and outputs, and(b.2) each of the configurable logic means CLc,r being for generating cell output signals at a respective one or more signal outputs thereof in response to cell input signals supplied to a respective one or more signal inputs thereof and in response to program data in the configuration storage means;(c) a plurality of input/output terminals;(d) a plurality of configurable input/output means, each being coupled to an input/output terminal, each having an input and an output, and each being coupled to the configuration storage means, for providing configurable interfaces between the respective input/output terminals and the respective inputs and outputs thereof in response to program data in the configuration storage means;and(e) configurable interconnect means, coupled to the configuration storage means and having first interconnect resources and second interconnect resources extending respectively in first and second different directions, the first and second interconnect resources of the configurable interconnect means being coupled to the inputs and outputs of the plurality of configurable logic means and of the plurality of configurable input/output means for programmably interconnecting respective inputs and outputs of said plurality of configurable logic means with one another and with respective inputs and outputs of said plurality of configurable input/output means in response to program data in the configuration storage means to thereby define one or more logical networks configured according to said program data;wherein the first interconnect resources of the configurable interconnect means include:first double-wide direct-connect means for directly connecting one output of each given configurable logic means to one input of a next adjacent configurable logic means which is spaced apart by one row from the given configurable logic means;and    wherein the second interconnect resources of the configurable interconnect means include:second double-wide direct-connect means for directly connecting one output of each given configurable logic means to one input of a next adjacent configurable logic means which is spaced apart by one column from the given configurable logic means.
  8. 8
    A configurable logic array, comprising:(a) configuration storage means for storing program data specifying a user defined data processing function;(b) a plurality of configurable logic means, CL1,1- CLC,R, arranged as an array consisting of C columns and R rows, each of said configurable logic means being designated by CLc,r where c designates a column in the range 1 to C, and r designates a row in the range 1 to R,(b.1) each of the configurable logic means CLc,r being coupled to the configuration storage means and having a plurality of inputs and outputs, and(b.2) each of the configurable logic means CLc,r being for generating cell output signals at a respective one or more signal outputs thereof in response to cell input signals supplied to a respective one of more signal inputs thereof and in response to program data in the configuration storage means;(c) a plurality of input/output pads;(d) a plurality of configurable input/output means, each being coupled to an input/output pad, each having an input and an output, and each being coupled to the configuration storage means, for providing configurable interfaces between the respective input/output pads and the respective inputs and outputs thereof in response to program data in the configuration storage means;and(e) configurable interconnect means, coupled to the configuration storage means and to the inputs and outputs of the plurality of configurable logic means and to the inputs and outputs of the plurality of configurable input/output means, for programmably interconnecting respective inputs and outputs of said plurality of configurable logic means with one another and with respective inputs and outputs of said plurality of configurable input/output means in response to program data in the configuration storage means to thereby define one or more logical networks configured according to said program data;wherein the configurable interconnect means includes:direct-connect means for directly connecting a subset of the plurality of signal outputs of each given configurable logic means CLc,r to corresponding signal inputs of more than four other configurable logic means in the logic array.
  9. 9
    A programmable integrated circuit comprising:(a) a plurality of programmably configurable logic blocks for carrying out program-defined logic functions, each of said configurable logic blocks having longline input means for inputting signals to the respective configurable logic block, and general output means for outputting signals from the respective logic block;and(b) a programmably configurable interconnect network for providing program-defined routing of signals between the plurality of programmably configurable logic blocks,    wherein said configurable interconnect network includes:(b.1) a first group of at least four longlines, said first group of longlines extending by a first subset of at least four of the configurable logic blocks;and(b.2) a first symmetrical distribution of programmable interconnect means provided along the first group of longlines for providing program-defined coupling between respective combinations of more than one but not all of the first group of longlines and corresponding combinations of more than one but not all of the first subset of configurable logic blocks, the first symmetrical distribution of the programmable interconnect means being such that a substantially same signal propagation delay develops for each longline in said first group when intercoupling a corresponding one or more of the first subset of configurable logic blocks.
  10. 10
    A programmable integrated circuit comprising:(a) a plurality of programmably configurable logic blocks for carrying out program-defined logic functions;(b) a plurality of input/output blocks for providing an interface between the plurality of configurable logic blocks and points outside said integrated circuit, each of said input/output blocks having input means for inputting signals to the plurality of programmably configurable logic blocks, and output means for outputting signals from the plurality of programmably configurable logic blocks;and(c) a programmably configurable interconnect network for providing program-defined routing of signals between the plurality of programmably configurable logic blocks and the plurality of input/output blocks, wherein said configurable interconnect network includes:(c.1) a first group of at least four longlines, said first group of longlines extending by a first subset of at least four of the configurable logic blocks and extending to, and coupling to a corresponding first subset of at least two of the input/output blocks;and(c.2) a first symmetrical distribution of programmable interconnect means provided along the first group of longlines for providing program-defined coupling between respective combinations of more than one but not all of the first group of longlines and corresponding combinations of more than one but not all of the first subset of configurable logic blocks, the first symmetrical distribution of the programmable interconnect means being such that a substantially same signal propagation delay develops for each longline in said first group when coupling a corresponding one or more of the first subset of configurable logic blocks to a corresponding one or more of the first subset of input/output blocks.
  11. 11
    A configurable logic array comprising:a substrate;a plurality of logic areas defined on the substrate, each logic area having a perimeter and programmable logic circuitry positioned within the perimeter for performing logic operations therein in accordance with user-provided configuration data;andan interconnect network defined on the substrate for carrying signals from one logic area to another;wherein each logic area includes four or more input terminals distributively and symmetrically positioned about the perimeter of the logic area for respectively receiving four or more input signals supplied from outside the perimeter and for conducting the four or more externally supplied input signals into the logic area;and    wherein the programmable logic circuitry of each logic area includes combinatorial logic means, operatively coupled to the four or more input terminals of the logic area, for producing one or more combinatorial logic signals, each combinatorial logic signal being a function of one or more of the externally supplied input signals.
  12. 12
    A configurable logic array comprising:a substrate;a configuration memory defined on the substrate for storing user-provided configuration data;a plurality of pads defined on the substrate, the pads being provided for conducting signals flowing between points on the substrate and points off the substrate;a plurality of logic areas defined on the substrates, each logic area having a perimeter and top, bottom, left and right portions within the perimeter, each logic area further having:four or more input terminals distributively positioned about its perimeter for distributively supplying four or more input signals received from outside the perimeter into the top, bottom, left and right portions, of the logic area;a programmable logic circuit, positioned within the perimeter and operatively coupled to the four or more input terminals, for producing two or more combinatorial logic signals, each combinatorial logic signal being a combinatorial function of one or more of the supplied input signals;andfour output macrocells, operatively coupled to the logic circuit for distributively outputting the combinatorial logic signals produced by the programmable logic circuit out of the logic area perimeter respectively from the top, bottom, left and right portions of the logic area;wherein the programmable logic circuit of each logic area logic is programmably divisible to function as a plurality of independent logic circuits each producing a corresponding one of the two or more combinatorial logic signals in accordance with independent logic functions specified by said user-provided configuration data.
  13. 13
    A configurable logic array comprising:a substrate;a plurality of logic areas defined on the substrate, each logic area having a perimeter and programmable logic circuitry positioned within the perimeter for performing logic operations therein in accordance with user-provided configuration data;andan interconnect network defined on the substrate for carrying signals from one logic area to another;wherein each logic area includes eight or more input terminals distributively positioned about the perimeter of the logic area for respectively receiving eight or more input signals supplied from outside the perimeter and for conducting the eight of more externally suppled input signals into the logic area;and    wherein the programmable logic circuitry of each logic area includes combinatorial logic means, programmably coupled to the eight or more input terminals of the logic area, for producing one or more combinatorial logic signals, each combinatorial logic signal being a function of a programmable number of the eight of more externally supplied input signals.
  14. 14
    A configurable logic element coupled to a configuration memory storing program data specifying a user defined data processing function, comprising:input means for receiving a plurality of J input signals;input select means, coupled to the configuration memory and the input means for receiving, for selecting a subset of K signals of the plurality of J input signals, where K is less than or equal to J, in response to program data in the configuration memory;logic means, coupled to the configuration memory and the input select means, for generating a plurality of L logic signals in response to the subset of K signals and in response to program data in the configuration memory;output select means, coupled to the logic means and the configuration memory, for selecting a subset of P signals of the plurality of L logic signals, where P is less than or equal to L, in response to program data in the configuration memory;andoutput means for supplying the subset of P signals as element output signals, the output means including a plurality of Q tristate output buffers receiving respective ones of a subset of Q signals of the subset of P signals, where Q is less than or equal to P, for supplying the subset of Q signals as output or presenting a high impedance state in response to program data in the configuration memory and to at least one of the plurality of J input signals or the plurality of L logic signals.
  15. 15
    A configurable logic element, where the configurable logic element is coupled to a configuration memory including:a plurality of storage elements for storing program data specifying a user defined data processing function, the plurality of storage elements including a first set of storage elements for storing data representative of a first set of data signals and a second set of storage elements for storing data representative of a second set of data signals;the configurable logic element comprising:(a) input means for receiving a set of K input signals;(b) multiplexing means, coupled to the input means and the first set of storage elements in the configuration memory, for selecting and outputting a first set of P data signals and a second set of Q data signals from data stored in the first set of storage elements, in response to a first subset of the set of K input signals;(c) special output means, coupled to the multiplexing means and the second set of storage elements in the configuration memory, for selecting and outputting a set of S special output data signals from data stored in the second set of storage elements in response to the set of Q data signals output by said multiplexing means;and(d) output means, coupled to the multiplexing means and the special output means, for selecting and outputting a first subset of data signals from the first set of P data signals and the set of S special output data signals, as element output signals.
  16. 16
    A configurable logic element, where the configurable logic element is coupled to a configuration memory including:a plurality of storage elements for storing program data specifying a user defined data processing function, the plurality of storage elements including a first set of storage elements for storing data representative of a first set of data signals;the configurable logic element comprising(a) input means for receiving a set of K input signals;(b) multiplexing means, coupled to the input means and the first set of storage elements in the configuration memory, for selecting and outputting a set of P data signals from data stored in the first set of storage elements, in response to a first subset of the set of K input signals;(c) output enable means for supplying a plurality of output enable signals;(d) output means, coupled to the multiplexing means and the output enable means, for selecting and outputting a first subset of data signals from the set of P data signals as element output signals in response to a second subset of the set of K input signals;and(e) a plurality of output terminals;and    wherein the output means includes:a plurality of tristate output buffers, coupled to a first subset of the output terminals and receiving respective ones of a first subset of the element output signals and respective ones of the output enable signals, for presenting to respective ones of the first subset of output terminals either the received first subset of element output signals or high impedance states in response to respective ones of the output enable signals;anda plurality of direct output buffers, coupled to a second subset of the output terminals and receiving respective ones of a second subset of the element output signals, for presenting to respective ones of the second subset of output terminals the received second subset of element output signals as output.
  17. 17
    A configurable logic element coupled to a configuration memory including a plurality of storage elements storing program data specifying a user defined data processing function, comprising:input means for supplying a set of K input signals;multiplexing means, coupled to the input means and a first set of storage elements in the configuration memory, for selecting a set of P signals from the first set of storage elements, in response to a first subset of the set of K input signals;output means, coupled to the multiplexing means, for selecting a first subset from the set of P signals as element output signals in response to a second subset of the set of K input signals;wherein the configuration memory includes means for loading the program data in an initialize mode, and wherein the output means includes:storage means, connected to receive one signal of the set of P signals and a clock signal, for storing the one signal in response to the clock signal and supplying a stored signal for selection as an element output signal;and    means, coupled to the storage means and the means for loading and responsive to the initialize mode, for supplying a signal from the means for loading in place of the one signal to preload the storage means with program data.
  18. 18
    A configurable logic element coupled to a configuration memory including a plurality of storage elements storing program data specifying a user defined data processing function, comprising:input means for supplying a set of K input signals;multiplexing means, coupled to the input means and a set of storage elements in the configuration memory, for selecting a set of P signals from the set of storage elements in response to a first subset of the set of K input signals, and a set of Q signals from the set of storage elements in response to a second subset of the set of K input signals, wherein the first subset of the set of K input signals includes fewer members than the second subset of the set of K input signals;output means, coupled to the multiplexing means and a plurality of buses, for selecting element output signals for supply to the plurality of buses from a subset of a union of the set of Q signals and the set of P signals;wherein the output means includes:a plurality of configurable output macrocells, at least one macrocell coupled to each bus in the plurality of buses, and each macrocell comprising:a first configurable path connected to receive at least one member of the set of P output signals, for providing with a first signal delay, an element output signal in response to program data in the configuration memory,a second configurable path connected to receive at least one member of the set of Q output signals, for providing with a second signal delay longer than the first signal delay, an element output signal in response to program data in the configuration memory, andbuffering means, connected to receive the element output signals from the first and second configurable paths and to one of the plurality of buses, for driving the element output signals on the one bus.
  19. 19
    A configurable logic array comprising:a substrate;anda plurality of logic areas defined on the substrate, each logic area having a perimeter and programmable logic circuitry positioned within the perimeter for performing logic operations therein in accordance with user-provided configuration data;an interconnect network defined on the substrate for carrying signals between the logic areas, wherein said interconnect network is configurable in response to user-supplied configuration data;wherein each logic area is symmetrically divisible into at least first through fourth logic area portions;wherein each logic area includes four or more input terminals distributively and symmetrically positioned about the perimeter of the logic area for receiving four or more input signals supplied from outside the perimeter and for conducting the four or more externally supplied input signals into the logic area;wherein the programmable logic circuitry of each logic area includes combinatorial logic means, operatively coupled to the four or more input terminals of the logic area, for producing a plurality of combinatorial logic signals, each combinatorial logic signal being a function of one or more of the externally supplied input signals;wherein each logic area further includes a plurality of output macrocells, operatively coupled to the corresponding combinatorial logic means of the logic area and positioned for distributively outputting the combinatorial logic signals produced by the corresponding combinatorial logic means out of the logic area from at least two of the four or more area portions of the logic area;and    wherein the interconnect network has nodes symmetrically distributed about each logic area for supplying input signals to corresponding input terminals of the logic area and for receiving the combinatorial logic signals output from the output macrocells of the logic area.
  20. 20
    A configurable logic array comprising:a substrate;a configuration memory defined on the substrate;a plurality of pads defined on the substrate, the pads being provided for conducting signals flowing between points on the substrate and points off the substrate;a plurality of logic areas defined on the substrate, each logic area having a perimeter and top, bottom, left and right portions within the perimeter, each logic area further having:four or more input terminals positioned about its perimeter for distributively supplying four or more input signals received from outside the perimeter into the top, bottom, left and right portions, of the logic area;a combinatorial logic circuit, positioned within the perimeter and operatively coupled to the four or more input terminals, for producing a plurality of combinatorial logic signals, each combinatorial logic signal being a combinatorial function of one or more of the supplied input signals;andfour output macrocells, operatively coupled to the logic circuit and positioned for distributively outputting the combinatorial logic signals produced by the logic circuit out of the logic area perimeter respectively from the top, bottom, left and right portions of the logic area;and where said configurable logic array further comprises:a configurable interconnect network defined on the substrate for carrying signals between the logic areas, the interconnect network being symmetrically disposed relative to the top, bottom, left and right portions of each logic area logic.
  21. 21
    A programmable integrated circuit having one or more cascaded-function generating modules, each module comprising:(a) input means for receiving a plurality of input signals including first-level input signals;(b) first look-up table means for storing a first plurality of N bits that encode a programmably-defined first function-defining pattern;(c) second look-up table means for storing a second plurality of M bits that encode a programmably-defined second function-defining pattern;(d) first function defining means, operatively coupled to the input means and to the first look-up table means, for defining a plurality of first function signals from a combination of the first-level input signals and plural ones of the bits stored in the first look-up table means;and(e) second function defining means, operatively coupled to the second look-up table means and to the first function defining means, for generating a cascaded function signal from a combination of the first function signals and plural ones of the bits stored in the second look-up table means.
  22. 22
    A programmable integrated circuit comprising:(a) a plurality of programmably configurable logic blocks for carrying out program-defined logic functions;(b) a programmably configurable interconnect network for providing program-defined routing of signals between the plurality of programmably configurable logic blocks,    wherein said configurable logic blocks each includes:(a.1) a programmable first memory area for storing a function-defining first set of lookup bits;(a.2) a programmable second memory area for storing a function-defining second set of lookup bits;(a.3) first select means coupled to the first memory area and responsive to a supplied first plurality of input signals for selecting and outputting a subset of the first set of lookup bits in accordance with the first plurality of input signals, wherein the combination of the first memory area and the first select means defines a first lookup table (first LUT);(a.4) second select means coupled to the second memory area and responsive to a supplied second plurality of input signals for selecting and outputting a subset of the second set of lookup bits in accordance with the second plurality of input signals, wherein the combination of the second memory area and the second select means defines a second lookup table (second LUT);(a.5) function substituting means, coupled to receive the output of the second LUT and responsive to a supplied substitution control signal, for selectively outputting in accordance with the substitution control signal one or another member of a group comprising the output of the second LUT and an alternate output;(a.6) first internal connect means for coupling the output of the first LUT such that said coupled output of the first LUT defines the substitution control signal and thereby the output of the first LUT determines whether one or another member of said group comprising the output of the second LUT and the alternate output is output by the function substituting means.
  23. 23
    A programmable integrated circuit comprising:(a) a plurality of programmably configurable logic blocks for carrying out program-defined logic functions;(b) a programmably configurable interconnect network for providing program-defined routing of signals between the plurality of programmably configurable logic blocks, said interconnect network including direct-interconnect means for providing direct-connections between prespecified subsets of the logic blocks;wherein each given configurable logic block of said plurality of programmably configurable logic blocks includes:(a.1) a programmable first memory area for storing a function-defining first set of lookup bits;(a.2) a programmable second memory area for storing a function-defining second set of lookup bits;(a.3) first select means coupled to the first memory area and responsive to a supplied first plurality of input signals for selecting and outputting a subset of the first set of lookup bits in accordance with the first plurality of input signals, wherein the combination of the first memory area and the first select means defines a first lookup table (first LUT);(a.4) second select means coupled to the second memory area and responsive to a supplied second plurality of input signals for selecting and outputting a subset of the second set of lookup bits in accordance with the second plurality of input signals, wherein the combination of the second memory area and the second select means defines a second lookup table (second LUT);(a.5) function substituting means, coupled to receive the output of the second LUT and responsive to a supplied substitution control signal, for selectively outputting in accordance with the substitution control signal one or another member of a group comprising the output of the second LUT and an alternate output;(a.6) direct connect output means for coupling an output of the first LUT to a direct-connect output of the given configurable logic block;and(a.7) direct connect input means for receiving a direct-connect LUT output of another configurable logic block in said plurality of programmably configurable logic blocks via said direct-interconnect means and for coupling the received direct-connect output to the function substituting means as said substitution control signal of said given configurable logic block thereby providing direct-connect cascading from the received direct-connect LUT output of said another configurable logic block to the function substituting means of the given configurable logic block.
  24. 24
    A configurable logic array, comprising:(a) configuration storage means for storing program data specifying a user defined data processing function;(b) a plurality of logic means, CL1,1 to CLC,R arranged in an array consisting of C columns and R rows, each of said logic means being designated by CLc,r where c designates a column in the range 1 to C, and r designates a row in the range 1 to R,    each logic means CLc,r being provided with a plurality of inputs for receiving cell input signals and a plurality of outputs for generating cell output signals in response to the received cell input signals;(c) a plurality of input/output pads;(d) a plurality of configurable input/output means, each being coupled to an input/output pad, each having an I/O input and an I/O output, and each being further coupled to the configuration storage means, for providing configurable interfaces between the respective input/output pads and respective I/O inputs and outputs in response to program data in the configuration storage means,    wherein the plurality of configurable input/output means includes a first subset without storage elements and a second subset with storage elements;(e) configurable interconnect means, coupled to the plurality of logic means, the plurality of configurable input/output means and the configuration storage means, for programmably connecting respective inputs and outputs of the logic means and of the configurable input/output means to thereby form logical networks in response to program data in the configuration storage means.
  25. 25
    A configurable logic array, comprising:(a) configuration storage means for storing program data specifying a user defined data processing function;(b) a plurality of logic means, CL1,1 to CLC,R arranged in an array consisting of C columns and R rows, each of said logic means being designated by CLc,r where C designates a column in the range 1 to C, and r designates a row in the range 1 to R,    each logic means CLc,r being provided with a plurality of inputs for receiving cell input signals and a plurality of outputs for generating cell output signals in response to the received cell input signals;(c) a plurality of input/output pads;(d) a plurality of configurable input/output means, each being coupled to an input/output pad, each having a plurality of I/O inputs and a plurality of I/O outputs, and each being further coupled to the configuration storage means, for providing configurable interfaces between the respective input/output pads and respective I/O inputs and outputs in response to program data in the configuration storage means,    wherein the plurality of configurable input/output means includes a first subset without storage elements and a second subset with storage elements, each storage element of the second subset having a register input and a register output;(e) configurable interconnect means, coupled to the plurality of logic means, the plurality of configurable input/output means and the configuration storage means, for programmably connecting respective inputs and outputs of the logic means and of the configurable input/output means to thereby form logical networks in response to program data in the configuration storage means;and    wherein each configurable input/output means of the second subset includes:configurable storage-connecting means, coupled to the respective storage elements in the second subset of configurable input-output means and to the configuration storage means, for connecting the register input of the respective storage element to a first part of the configurable interconnect means, and for connecting the register output of the respective storage element to a second part of the configurable interconnect means, in response to program data in the configuration storage means.
  26. 26
    A configurable input/output cell providing configurable interconnection between an adjacent input/output pad and a configurable logic array including an array of configurable logic cells a programmable interconnect, and a configuration memory storing program data for configuring logical networks in the configurable logic array, comprising:first tristate buffer means, having a data input, a control input, and an output connected to the adjacent input/output pad, for buffering data from the data input to its output or presenting a high impedance state to its output in response to a tristate control signal from the control input;anda first programmable interconnect point, coupled to the control input of the first tristate buffer means and to the programmable interconnect, for supplying the tristate control signal in response to program data in the configuration memory;first means, coupled to the programmable interconnect, for supplying a data signal to the data input of the first tristate buffer means;second tristate buffer means, having a data input, a control input, and an output connected to the programmable interconnect, for buffering data from the data input to its output or presenting a high impedance state to its output in response to a second tristate control signal from the control input;a second programmable interconnect point, coupled to the control input of the second tristate buffer means and to the programmable interconnect, for supplying the second tristate control signal in response to program data in the configuration memory;andsecond means, coupled to the adjacent input/output pad, for supplying a data signal to the data input of the second tristate buffer means.
  27. 27
    A plurality of configurable input/output cells providing configurable interconnection between adjacent input/output pads and a configurable logic array including an array of configurable logic cells, a programmable interconnect, and a configuration memory storing program data for configuring logical networks in the configurable logic array, each cell in the plurality comprising:array output means, having a data input and an output connected to the adjacent input/output pad, for supplying data from the data input to its output;andfirst means coupled to the programmable interconnect, for supplying a data signal to the data input of the array output means;array input means, having a data input and an output connected to the programmable interconnect, for supplying data from the data input to its output;second means, coupled to the adjacent input/output pad, for supplying a data signal to the data input of the array input means;a first storage element, having a data input, a clock input and an output, for storing data from its data input for supply to its output, in response to a clock signal at its clock input;anda second storage element, having a data input, a clock input and an output, for storing data from its data input for supply to its output, in response to a clock signal at its clock input;third means, coupled to the programmable interconnect, for supplying a signal to the data input of the first storage element;fourth means, coupled to the adjacent input/output pad, for supplying a signal to the data input of the second storage element;and    wherein the first means for supplying includes an array output selecting means, having a plurality of inputs and an output connected to the data input of the array output means, for selecting a signal from one of its plurality of inputs for supply to its output, its plurality of inputs including the output of the first storage element, the output of the second storage element and the programmable interconnect;and    the second means for supplying includes an array input selecting means, having a plurality of inputs and an output connected to the data input of the array input means, for selecting a signal from one of its plurality of inputs for supply to its output, its plurality of inputs including the output of the first storage element, the output of the second storage element and the adjacent input/output pad.
Independent claims27