Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
First Claim
1. 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.
3 Assignments
0 Petitions
Accused Products
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.
209 Citations
75 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A plurality of configurable input/output cells IOi, for i equal to 1 through Z, providing configurable interconnection between input/output pads and internal portions of a configurable logic array, the configurable logic array including a configuration memory for storing program data, an array of configurable logic cells and a programmable interconnect, each input/output cell IOi, comprising:
-
(a) first storage means, having a first-storage input and a first-storage output, for storing a signal supplied to the first-storage input and supplying the stored signal to the first-storage output; (b) second storage means, having a second-storage input and a second-storage output, for storing a signal supplied to the second-storage input and supplying the stored signal to the second-storage output; (c) first selecting means, having a first-select output coupled to the first-storage input and having a plurality of first-select inputs, the first selecting means being coupled to the configuration memory, for connecting one of its first-select inputs to its first-select output in response to program data in the configuration memory; (d) second selecting means, having a second-select output coupled to the second-storage input and having a plurality of second-select inputs, the second selecting means being coupled to the configuration memory, for connecting one of its second-select inputs to its second-select output in response to program data in the configuration memory; (e) third selecting means, having a third-select output coupled to a corresponding input/output pad and having a plurality of third-select inputs, the third selecting means being coupled to the configuration memory, for connecting one of its third-select inputs to its third-select output in response to program data in the configuration memory; and (f) fourth selecting means, having a fourth-select output coupled to the programmable interconnect and having a plurality of fourth-select inputs, the fourth selecting means being coupled to the configuration memory, for connecting one of its fourth-select inputs to its fourth-select output in response to program data in the configuration memory; and
whereinthe plurality of first-select inputs belonging to the first selecting means includes a first input connected to the input/output pad, a second input connected to the first-storage output of the first storage means in input/output cell IOi-1, and a third input connected to the second-storage output of the second storage means in input/output cell IOi+1 ; and the plurality of second-select inputs belonging to the second selecting means includes a first input connected to the programmable interconnect, a second input connected to the first-storage output of the first storage means in input/output cell IOi-1, and a third input connected to the second-storage output of the second storage means in input/output cell IOi+1, and a fourth input connected to the first-storage output of the first storage means in the present input/output cell IOi ; the plurality of third-select inputs belonging to the third selecting means includes a first input connected to the first-storage output of the first storage means, a second input connected to the second-storage output of the second storage means, and a third input connected to the programmable interconnect; and the plurality of fourth-select inputs belonging to the fourth selecting means includes a first input connected to the first-storage output of the first storage means, a second input connected to the second-storage output of the second storage means, and a third input connected to the input/output pad.
-
-
21. 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 (f) storage-chaining means, coupled to the storage elements in the second subset of configurable input/output means and to the configuration storage means, for selectively connecting the register output of a storage element in a first selected configurable input/output means in the second subset to the register input of a storage element in a second selected configurable input/output means in the second subset. - View Dependent Claims (22, 23, 24, 25)
-
-
26. 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. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A configurable logic array, comprising:
-
configuration storage means for storing program data specifying a user defined data processing function; a plurality of configurable logic means CLc,r, arranged in an array consisting of C columns and R rows, where c designates a column in the range 1 to C, and r designates a row in the range 1 to R, each of the configurable logic means CLc,r having a plurality of inputs and outputs, and coupled to the configuration storage means, for generating cell output signals at the respective plurality of outputs in response to cell input signals supplied to the respective plurality of inputs and in response to program data in the configuration storage means; a plurality of configurable input/output means, each coupled to an input/output pad and having an input and an output, and coupled to the configuration storage means, for providing configurable interface between the respective input/output pads and the respective inputs and outputs in response to program data in the configuration storage means; and configurable interconnect means, coupled to the plurality of configurable logic means, the plurality of configurable input/output means and the configuration storage means, and connecting inputs and outputs of configurable logic means and configurable input/output means into logical networks in response to program data in the configuration storage means; wherein each configurable input/output means in a subset of the plurality of configurable input/output means includes a storage element having an input and an output, and further including means, coupled to the storage elements in the subset of configurable input/output means and to the configuration storage means, for connecting the input of the storage element in a selected configurable input/output means in the subset to the respective input/output pad, and for connecting the output of the storage element in the selected configurable input/output means in the subset to the respective input/output pad, in response to program data in the configuration storage means. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A configurable logic array, comprising:
-
configuration storage means for storing program data specifying a user defined data processing function; a plurality of configurable logic means CLc,r, arranged in an array consisting of C columns and R rows, where c designates a column in the range 1 to C, and r designates a row in the range 1 to R, each of the configurable logic means CLc,r having a plurality of inputs and outputs, and coupled to the configuration storage means, for generating cell output signals at the respective plurality of outputs in response to cell input signals supplied to the respective plurality of inputs and in response to program data in the configuration storage means; a plurality of configurable input/output means, each coupled to an input/output pad and having an input and an output, and coupled to the configuration storage means, for providing configurable interfaces between the respective input/output pads and the respective inputs and outputs in response to program data in the configuration storage means; and configurable interconnect means, coupled to the plurality of configurable logic means, the plurality of configurable input/output means and the configuration storage means, for connecting inputs and outputs of configurable logic means and configurable input/output means into logical networks in response to program data in the configuration storage means; wherein at least one of the configurable input/output means includes; a first storage element, having an input and an output and receiving a first clock signal, for storing data from its input in response to the first clock signal for supply to its output; a second storage element, having an input and an output and receiving a second clock signal, for storing data from its input in response to the second clock signal for supply to its output; and means, coupled to the first and second storage elements, to the respective input/output pad and to the configurable interconnect means, for connecting the respective input/output pad to the input of the first storage element, the output of the first storage element to the input of the second storage element, and the output of the second storage element to the configurable interconnect means. - View Dependent Claims (37, 38, 39, 40)
-
-
41. 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, CL11 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; and (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; wherein at least one of the configurable input/output means includes; a tristate buffer means, having a buffer output connected to the configurable interconnect means, for either driving an output signal into the configurable interconnect means or presenting a high impedance state to the configurable interconnect means at its buffer output in response to a supplied tristate control signal; and configurable control supply means for supplying the tristate control signal, said control supply means being configurable i response to program data stored in the configuration storage means. - View Dependent Claims (42, 43, 44, 45, 46)
-
-
47. A configurable logic array, comprising:
-
configuration storage means for storing program data specifying a user defined data processing function; a plurality of configurable logic means CLc,r, arranged i an array consisting of C columns and R rows, where c designates a column in the range 1 to C, and r designates a row in the range 1 to R, each of the configurable logic means CLc,r having a plurality of inputs and outputs, and coupled to the configuration storage means, for generating cell output signals at the respective plurality of outputs in response to cell input signals supplied to the respective plurality of inputs and in response to program data in the configuration storage means; a plurality of configurable input/output means, each coupled to an input/output pad and having an input and an output, and coupled to the configuration storage means, for providing configurable interfaces between the respective input/output pads and the respective inputs and outputs in response to program data in the configuration storage means; and configurable interconnect means, coupled to the plurality of configurable logic means, the plurality of configurable input/output means and the configuration storage means, for connecting inputs and outputs of configurable logic means and configurable input/output means into logical networks in response to program data in the configuration storage means; wherein each configurable input/output means in a subset of the plurality of configurable input/output means includes a control signal input, and wherein the configurable interconnect means includes; a firs horizontal bus between row 1 and configurable input/output means along the top of the array, a second horizontal bus between row R and configurable input/output means along the bottom of the array, a first vertical bus between column 1 and configurable input/output means along the left side of the array, a second vertical bus between column C an configurable input/output means along the right side of the array; a long line extending across the array in each of the first horizontal bus, the second horizontal bus, the first vertical bus and the second vertical bus; a first plurality of programmable interconnect points, coupled to the configuration storage means and coupled to the long lines in the first horizontal bus, the second horizontal bus, the first vertical bus and the second vertical bus, for interconnecting the long lines to establish a signal path around the array in response to program data in the configuration storage means; and a second plurality of programmable interconnect points, coupled to the long lines in the first horizontal bus, the second horizontal bus, the first vertical bus and the second vertical bus and to the configurable input/output means in the subset adjacent the respective long lines, for interconnecting the respective long lines to the control signal inputs of adjacent configurable input/output means in response to program data in the configuration storage means. - View Dependent Claims (48, 49, 50, 51, 52)
-
-
53. A plurality of configurable input/output cells IOi, for i equal to 1 through Z, providing configurable interconnection between 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 input/output cell IOi in the plurality, comprising:
-
storage means having an input and an output, for storing a signal supplied to its input and supplying the stored signal to its output; first selecting means, having an output coupled to the input of the storage means and having a plurality of inputs, and coupled to the configuration memory, for selectively connecting one of its plurality of inputs to its output; second selecting means, having an output coupled to the input/output pad and having a plurality of inputs, and coupled to the configuration memory, for selectively connecting one of its plurality of inputs to its output; third selecting means, having an output coupled to the programmable interconnect and having a plurality of inputs, and coupled to the configuration memory, for selectively connecting one of its plurality of inputs to its output;
whereinthe plurality of inputs to the first selecting means includes a first input connected to the input/output pad, a second input connected form the programmable interconnect and a third input connected to the output of the storage means in iocell IOi-1 ; the plurality of inputs to the second selecting means includes a first input connected to the output of the storage means and a second input connected to the programmable interconnect; and the plurality of inputs to the third selecting means includes a first input connected to the output of the storage means and a second input connected to the input/output pad. - View Dependent Claims (54, 55, 56, 57, 58, 59)
-
-
60. 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 form 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; and a 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; and second means, coupled to the adjacent input/output pad, for supplying a data signal to the data input of the second tristate buffer means. - View Dependent Claims (61, 62, 63)
-
-
64. 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; and first means, coupled to the programmable interconnect, for supplying a data signal to the data input of the array output means; array light 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; and a 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. - View Dependent Claims (65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75)
-
Specification