US20010038298A1 - Field programmable processor devices - Google Patents
Field programmable processor devices Download PDFInfo
- Publication number
- US20010038298A1 US20010038298A1 US09/891,847 US89184701A US2001038298A1 US 20010038298 A1 US20010038298 A1 US 20010038298A1 US 89184701 A US89184701 A US 89184701A US 2001038298 A1 US2001038298 A1 US 2001038298A1
- Authority
- US
- United States
- Prior art keywords
- memory cells
- switches
- memory cell
- group
- busses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17704—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural details for adapting physical parameters for physical disposition of blocks
Definitions
- This invention relates to field programmable devices.
- the invention relates to such a device comprising: a plurality of processing devices; a connection matrix interconnecting the processing devices and including a plurality of switches; a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix.
- the memory cells can be selectively used (a) for controlling the interconnections and (b) as user memory.
- the isolating means comprises means for isolating each of the memory cells in the group from the switches. This enables isolation without requiring additional switches to be introduced into the wiring of the connection matrix, which would increase signal propagation delay and so reduce circuit speed.
- a field programmable device comprising: a plurality of processing devices; a connection matrix interconnecting the processing devices and including a plurality of switches; a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix; and means for isolating each of the memory cells from the switch or switches controllable by that memory cell.
- the isolating means is preferably operable to set each of the switches in the group to a predetermined state upon isolation from the respective memory cell. Accordingly, when isolated, the switches may still provide a predetermined connection in the connection matrix, but they may all be set to “off”.
- the isolating means preferably comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell.
- a gate ensures that the switch is controlled by a well defined logic level at all times, whether it is being controlled by the memory cell or the control signal.
- Each gate may provided by four transistors, and one of the transistors of each gate may be common to a plurality of the gates, thus enabling an increased circuit density to be achieved.
- the isolating means comprises means for isolating each of the switches in the group from the remainder of the connection matrix.
- connection matrix may be in the form of plural-bit busses, with those of the switches for the busses each comprising a plurality of switch elements each for a respective bit of the bus.
- the positions of the memory cells are preferably distributed across the device to substantially the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell, thus enabling a high circuit density to be achieved.
- a field programmable device comprising: a plurality of processing devices; a connection matrix interconnecting the processing devices and including a plurality of switches; and a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix; wherein the positions of the memory cells are distributed across the device to substantially the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell.
- FIG. 1 shows part of a processor array, illustrating six switching sections and the locations of six arithmetic logic units
- FIG. 2 is a diagram of part of the arrangement shown in FIG. 1 on a larger scale, illustrating one of the switching sections and one of the locations of the arithmetic logic units;
- FIG. 3 shows part of the processor array shown in FIG. 1 on a smaller scale, illustrating the locations of the arithmetic logic units and “vertical” busses extending across them;
- FIG. 4 is similar to FIG. 3, but illustrating “horizontal” busses extending across the locations of the arithmetic logic units
- FIG. 5 shows the interconnections between the busses of FIGS. 2, 3 and 4 at the location of one of the arithmetic logic units
- FIG. 6A shows in detail the circuitry of one type of programmable switch in the switching sections, for connecting a pair of 4-bit busses which cross each other;
- FIG. 6B shows in detail the circuitry of another type of programmable switch in the switching sections, for connecting a pair of 4-bit busses which meet each other end to end;
- FIG. 6C shows in detail the circuitry of another type of programmable switch in the switching sections, for connecting carry-bit busses
- FIG. 7 shows the circuitry of a series of NOR gates which may be used in the programmable switches of FIGS. 5 and 6;
- FIG. 8 shows a modification to the circuitry of FIG. 7
- FIG. 9 shows a buffer and register which may be used in each switching section
- FIG. 10 is a schematic drawing illustrating how enable signals may be distributed to the programmable switches in the switching sections.
- FIG. 11 shows in more detail the circuitry of the arrangement shown in FIG. 10.
- the processor array which forms the embodiment of the invention is provided in an integrated circuit.
- the processor array is formed by a rectangular (and preferably square) array of “tiles” 10 , one of which is shown bounded by a thick line in FIG. 1. Any appropriate number of tiles may be employed, for example in a 16 ⁇ 16, 32 ⁇ 32 or 64 ⁇ 64 array.
- Each tile 10 is rectangular (and preferably square) and is divided into four circuit areas. It is preferable for these tiles to be logically square (to provide symmetry in connection), although it is of less significance that they be physically square (this may have some advantage in providing symmetry in timing, but this will generally be less likely to be of significance).
- Two of the circuit areas 12 which are diagonally opposed in the tile 10 , provide the locations for two arithmetic logic units (“ALUs”).
- the other two circuit areas, which are diagonally opposed in the tile 10 provide the locations for a pair of switching sections 14 .
- each ALU has a first pair of 4-bit inputs a, which are directly connected within the ALU, a second pair of 4-bit inputs b, which are also directly connected within the ALU, and four 4-bit outputs f, which are directly connected within the ALU.
- Each ALU also has an independent pair of 1-bit carry inputs hci, vci, and a pair of 1-bit carry outputs co, which are directly connected within the ALU.
- the ALU can perform standard operations on the input signals a, b, hci, vci to produce the output signals f, co, such as add, subtract, AND, NAND, OR, NOR, XOR, NXOR and multiplexing and optionally can register the result of the operation.
- the instructions to the ALUs may be provided from respective 4 -bit memory cells whose values can be set via the “H-tree” structure described below, or may be provided on the bus system which will be described below.
- a 4-gang programmable switch 16 is provided which can selectively connect the two busses at that crossing point.
- a 4-gang programmable switch 18 is provided which can selectively connect two busses which meet end to end at that crossing point, without any connection to the bus at right angles thereto.
- a programmable switch 20 (for example as shown in FIG. 6C) is provided which can selectively connect the carry busses vc, he which cross at right angles at that point.
- the busses h 2 s have a length of two tiles and are connectable end to end in every other switching section 14 by a programmable switch 18 at (4, 0).
- the ends of the busses be, fw are connectable by a programmable switch 18 at (4, 1).
- a bus hregs is connectable by programmable switches 16 to the vertical busses at X—1, 2.3, 5, 6, 7.
- a bus hco extends from the carry output co of the ALU to the West to a programmable switch 20 at (4, 3), which can connect the bus hco (a) to a carry bus hci extending to the carry input hci of the ALU to the East or (b) to a carry bus vci extending to the carry input vci of the ALU to the South.
- the busses h 1 have a length of one tile and are connectable end to end in each switching section 14 by a programmable switch 18 at (4, 5).
- the ends of the busses fe, aw are connectable by a programmable switch 18 at (4, 6).
- the busses h 2 n have a length of two tiles and are connectable end to end in every other switching section 14 by a programmable switch 18 at (4, 7), staggered with respect to the programmable switches 18 connecting the busses h 2 s at (4,0).
- the busses v 2 w have a length of two tiles and are connectable end to end in every other switching section 14 by a programmable switch 18 at (0, 3).
- the busses v 1 have a length of one tile and are connectable end to end in each switching section 14 by a programmable switch 18 at (2, 3).
- a bus vco extends from the carry output co of the ALU to the North to the programmable switch 20 at (4, 3), which can connect the bus vco (a) to the carry bus hci extending to the carry input hci of the ALU to the East or (b) to the carry bus vci extending to the carry input vci of the ALU to the South.
- the ends of the busses an, fs are connectable by a programmable switch 18 at (6, 3).
- the busses v 2 e have a length of two tiles and are connectable end to end in every other switching section 14 by a programmable switch 18 at (7, 3) staggered with respect to the programmable switches 18 connecting the busses v 2 w at (0. 3).
- the busses bs, vco, fs are connected to input b, output co and output f, respectively, of the ALU to the North of the switching section 14 .
- the busses fe, hco, be are connected to the output f, output co and input b of the ALU, respectively, to the West of the switching section 14 .
- the busses aw, hci, fw are connected to the input a, input ci and output f, respectively, of the ALU to the East of the switching section 14 .
- the busses m, vci, an are connected to the output f, input ci and input a, respectively, of the ALU to the south of the switching section 14 .
- busses vregw, vrege are connected via respective programmable switches 18 to 4-bit connection points vtsw, vtse, respectively, (shown by crosses in FIG. 2) in the area 12 of the ALU to the North of the switching section 14 .
- busses hregs, hregn are connected via respective programmable switches 18 to 4-bit connection points htse, htne, respectively, in the area 12 of the ALU to the West of the switching section 14 .
- busses hregs, hregn are connected via respective programmable switches 18 to 4-bit connection points htsw, htnw, respectively, in the area 12 of the ALU to the East of the switching section 14 .
- busses vregw, vrege are connected via respective programmable switches 18 to 4-bit connection points vtnw, vtne, respectively, in the area 12 of the ALU to the south of the switching section 14 .
- connection points vtnw, vtne, htne, htse, vtse, vtsw, htsw, htnw will be described below in further detail with reference to FIGS. 3 to 5 .
- busses hregn, vrege, hregs, vregw have respective 4-bit connection points 22 (shown by small squares in FIG. 2) which will be described below in further detail with reference to FIG. 9.
- FIG. 3 shows one level of interconnections between the locations of the arithmetic logic units, which are illustrated by squares with rounded corners.
- a group of four 4-bit busses v 8 , v 4 w , v 4 e , v 16 extend vertically across each column of ALU locations 12 .
- the leftmost bus v 8 in each group is in segments, each having a length generally of eight tiles.
- the leftmost but one bus v 4 w in each group is in segments, each having a length generally of four tiles.
- the rightmost but one bus v 4 e in each group is in segments, again each having a length generally of four tiles, but offset by two tiles from the leftmost but one bus v 4 w .
- the rightmost bus v 16 in each group is in segments, each having a length generally of sixteen tiles.
- the lengths of the segments may be slightly greater than or shorter than specified above.
- each group of four busses v 8 , v 4 w , v 4 e , v 16 crosses each ALU location 12 four 4-bit tap connections are made at the connection points htnw, htsw, htse, htne.
- the ends of the bus segments take priority in being so connected over a connection to a bus segment which crosses the ALU location.
- a group of four 4-bit busses h 8 , h 4 n , h 4 s , h 16 extend horizontally across each row of ALU locations 12 .
- the uppermost bus h 8 in each group is in segments, each having a length generally of eight tiles.
- the uppermost but one bus h 4 n in each group is in segments, each having a length generally of four tiles.
- the lowermost but one bus h 4 s in each group is in segments, again each having a length generally of four tiles, but offset by two tiles from the uppermost but one bus h 4 n .
- the lowermost bus h 16 in each group is in segments, each having a length generally of sixteen tiles.
- each group of busses h 8 , h 4 n , h 4 s , h 16 crosses each ALU location 12 , a further four 4-bit tap connections are made at the connection points vtnw, vtsw, vtse, vtne.
- the ends of the bus segments take priority in being so connected over a connection to a bus segment which crosses the ALU location.
- connection points htnw, htsw, htne, htse are connected via programmable switches to the busses hregn, hregs of the switching sections to the West and the East of the ALU location.
- connection points vtnw, vtne, vtsw, vtse are connected via programmable switches to the busses vregw, vrege of the switching sections to the North and the South of the ALU location.
- the gates of the transistors 160 , 161 , 162 , 163 are connected in common to the output of a NOR gate 16 g , which receives as its two inputs an inverted ENABLE signal from a single bit memory cell, which may be shared by a group of the switches, and the inverted content of a single bit memory cell 24 . Accordingly, only when the ENABLE signal is high and the content of the memory cell 24 is high, the conductors x 0 , x 1 , x 2 , x 3 are connected by the transistors 160 , 161 , 162 , 163 , respectively, to the conductors y 0 , y 1 , y 2 , y 3 , respectively.
- the programmable connections 18 between pairs of 4-bit busses which meet each other end to end in line will now be described with reference to FIG. 6B.
- the conductors of one bus are denoted as x 10 , x 11 , x 12 , x 13
- the conductors of the other bus are denoted as x 20 , x 21 , x 22 , x 23 .
- a respective transistor 180 , 181 , 182 , 183 is provided between each pair of conductors of the same bit significance.
- the gates of the transistors 180 , 181 , 182 , 183 are connected in common to the output of a NOR gate 18 g , which receives as its two inputs an inverted ENABLE signal from a single bit memory cell, which may be shared by a group of the switches, and the inverted content of a single bit memory cell 24 . Accordingly, only when the ENABLE signal is high and the content of the memory cell 24 is high, the conductors x 10 , x 11 , x 12 , x 13 are connected by the transistors 180 , 181 , 182 , 183 , respectively, to the conductors x 20 , x 21 , x 22 , x 23 , respectively.
- the programmable connections 20 between the carry conductors hco, vco, hci, vci will now be described with reference to FIG. 6C.
- the horizontal carry output conductor hco is connected to the horizontal carry input conductor hci and the vertical carry input conductor vci via transistors 20 hh , 20 hv , respectively.
- the vertical carry output conductor vco is connected to the vertical carry input conductor vci and the horizontal carry input conductor hci via transistors 20 vv , 20 vh , respectively.
- the gates of the transistors 20 hh , 20 vv are connected in common to the output of an inverter 20 i , and the gates of the transistors 20 hv , 20 vh and the input to the inverter 20 i are connected to the output of a NOR gate 20 g .
- the NOR gate 20 g receives as its two inputs an inverted ENABLE signal from a single bit memory cell. which may be shared by a group of the switches, and the inverted content of a single bit memory cell 24 .
- the conductors hco, vco are connected to the conductors hci, vci, respectively, or to the conductors vci, hci, respectively, in dependence upon the content of the memory cell 24 .
- each of the switchable connections 16 , 18 , 20 described with reference to FIGS. 6A to 6 C includes a NOR gate 16 g , 18 g , 20 g .
- a NOR gate 16 g is typically formed by four transistors 16 g 1 , 16 g 2 , 16 g 3 , 16 g 4 , two 16 g 1 , 16 g 3 of which are responsive to the inverted ENABLE signal, and two 16 g 2 , 16 g 4 of which are responsive to the inverted content of the memory cell 24 .
- a group of the switchable collections 16 , 18 , 20 may be disabled in common, without any need for only part of such a group to be disabled.
- Such a group might consist of all of the switchable connections in one switching section 14 , all of the switchable connections in the two switching sections 14 in a particular tile, or all of the switchable connections in a larger area of the array.
- the transistor 16 g 1 may be made common to all of the switchable connections 16 , 18 , 20 in the group, as shown in FIG. 8. This enables a 25 % less one saving in the number of transistors required for the gates, but does require a further conductor linking the gate, as shown in FIG. 8.
- FIGS. 7 and 8 can be modified for optimisation.
- the arrangement of FIGS. 7 and 8 would not fully exploit memory cells 24 designed to return both a stored value and a complement of that stored value.
- Use of the complement obtained from such cells 24 could be used to obviate any need for both the ENABLE and inverted ENABLE signals to be carried to all of the switchable connections in a group, as is the case in FIG. 8.
- busses hregn, hregs, vregw, vrege are connected by respective 4-bit connections 22 to a register or buffer circuit, and this circuit will now be described in more detail with reference to FIG. 9.
- the four connections 22 are each connected to respective inputs of a multiplexer 26 .
- the multiplexer 26 th selects one of the inputs as an output, which is supplied to a register or buffer 28 .
- the output of the register or buffer 28 is supplied to four tri-state buffers 30 s , 30 w , 30 n , 30 e , which are connected back to the connections 22 to the busses hregs, vregw, hregn, vrege, respectively.
- the 4-bit signal on a selected one of the busses hregs, vregw, hregn, vrege is amplified and supplied to another selected one of the busses hregs, vregw, hregn, vrege.
- the 4 -bit signal on a selected one of the busses hregs, vregw, hregn, vrege is amplified and supplied to any selected one of the busses hregs, vregw, hregn, vrege after the next active clock edge.
- busses can be joined together in line, or at right angles, by the switching sections 14 , with amplification by the registers or buffers 28 in order to reduce propagation delays, and with pipeline stages introduced by the registers 28 . Also, these busses can be tapped part way along their lengths, so that the siting of the ALUs to perform a particular processing operation is not completely dictated by the lengths of the busses, and so that signals can be distributed to more than one ALU. Furthermore, the shorter length busses described with reference to FIGS.
- 1 and 2 can be used to route signals between the switching sections 14 and the ALUs, and to send signals primarily over shorter distances, for example from one ALU to an adjacent ALU in the same row or column, or diagonally adjacent, even though the busses extend horizontally or vertically.
- the registers or buffers 28 can be used to amplify the signals or introduce programmable delays into them.
- the memory cells 24 are distributed across the array to the same extent as the switching sections 14 and the ALU locations 12 .
- Each memory cell 24 is disposed adjacent the switch or switches, multiplexer, register or buffer which it controls. This enables a high circuit density be achieved.
- the decoder 34 a determines which of the four branches from it leads to the address and supplies an ENABLE signal 30 b to a further decoder 34 b in that branch, together with a 4-bit address 32 b to the decoders 34 b in all four branches.
- the decoder 34 b receiving the ENABLE signal 30 b determines which of the four branches from it leads to the required address and supplies an ENABLE signal 30 c to a further decoder 34 c in that branch, together with a 4-bit address 32 c to the decoders 34 c in all four branches.
- the decoder 34 c receiving the ENABLE signal 30 c then supplies the ENABLE signal 34 d to the required address where it can be stored in a single bit memory cell.
- a great advantage of the arrangement described above is that groups of the memory cells 24 in for example one switching section 14 , or in the two switching sections in one tile, or in the switching sections in a sub-array of the tiles may be disabled en bloc by the inverted ENABLE signals so that the contents of those memory cells do not affect the associated switches. It is then possible for those memory cells 24 to be used as “user” memory by an application, rather than being used for configuring the wiring of the array.
- the embodiment of the invention has been described merely by way of example, and many modifications and developments may be made in keeping with the present invention.
- the embodiment employs ALUs as the processing units, but other processing units may additionally or alternatively be used, for example look-up tables, programmable logic arrays and/or self-contained CPUs which are able to fetch their own instructions.
- a sub-array might be composed of a 4 ⁇ 4 arrangement of tiles of ALUs and switching sections as described above, and the array might be composed of such sub-arrays and memory in a 4 x 4 array, or such sub-arrays and RISC CPUs in a 4 ⁇ 4 array.
- each ALU location is square, and each switching section is square and of the same size as the ALU locations, but it should be noted that the controllable switches 18 in the register busses vregw, vrege, hregn, hregs encroach into the square outline of the ALU locations.
- the ALU locations need not be of the same size as the switching sections, and in particular may be smaller, thus permitting one or more busses to pass horizontally or vertically directly from one switching section 14 to a diagonally adjacent switching section 14 , for example running between the busses h 2 s , h 2 n or between the busses v 2 e , v 2 w.
- each ALU has two independent carry inputs vci, hci and a connected pair of carry outputs co.
- the ALUs may be arranged to deal with two types of carry: a fast carry between adjacent ALUs which may be of particular use for multi-bit adding operations; and a slow carry which can be routed more flexibly and may be of particular use for digital serial arithmetic.
- the fast carry might be arranged in a similar manner to that described above with reference to the drawings, whereas the slow carry might employ programmable switches in the switching sections 14 between the carry conductor and particular bits of the 4-bit busses.
- the array is two-dimensional, but the principles of the invention are also applicable to three-dimensional arrays, for example by providing a stack of the arrays described above, with the switching sections in adjacent layers staggered with respect to each other.
- the stack might include just two layers, but preferably at least three layers, and the number of layers is preferably a power of two.
- the memory cells 24 can be isolated by the gates 16 g , 18 g , 20 g from the switches which they control so that the memory cells can be used for other purposes, that is put in the “user plane”.
- the ENABLE signal memory cells cannot be transferred to the user plane.
- the switches in a particular switching section 14 may be disconnectable from the remainder of the array by further switches in the busses at the boundary of that switching section 14 , with the further switches being controlled by a further memory cell which cannot be transferred to the user plane.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Multi Processors (AREA)
Abstract
A field programmable device comprising an array of processing devices, a connection matrix interconnecting the processing device and including switches, and memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix. In order to provide flexible use of memory and to enable higher memory densities, gates are provided which can be used to isolate the effect of the data stored in groups of the memory cells and switches on the configuration of the interconnections so that the memory cells in that group are available for storing other data.
Description
- This application is a continuation of U.S. patent application Ser. No. 09/341,565, filed Jul. 13, 1999, entitled FIELD PROGRAMMABLE PROCESSOR DEVICES, and naming Alan Marshall, Anthony Stansfield and Jean Vuillemin as joint inventors, which application is hereby incorporated by reference in its entirety, which application is itself a US counterpart to EP Patent Application 97300562.2, filed Jan. 29, 1997, entitled FIELD PROGRAMMABLE PROCESSOR DEVICES, and naming Alan Marshall, Anthony Stansfield and Jean Vuillemin as joint inventors, which application is hereby incorporated by reference in its entirety. This application claims the benefit of both above-cited applications.
- This invention relates to field programmable devices.
- In particular, the invention relates to such a device comprising: a plurality of processing devices; a connection matrix interconnecting the processing devices and including a plurality of switches; a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix.
- The problems with which the present invention (or at least preferred embodiments of it) is concerned are to provide more flexible use of memory, to enable higher memory density and higher circuit density.
- In accordance with a first aspect of the present invention, there is provided means for isolating the effect of the data stored in at least one group of the memory cells and switches on the configuration of the interconnections so that the memory cells in that group are available for storing other data. Accordingly, the memory cells can be selectively used (a) for controlling the interconnections and (b) as user memory. By providing this feature using the configuration memory for the switches, higher memory density can be achieved.
- In one embodiment, the isolating means comprises means for isolating each of the memory cells in the group from the switches. This enables isolation without requiring additional switches to be introduced into the wiring of the connection matrix, which would increase signal propagation delay and so reduce circuit speed.
- This latter feature may be provided in devices which do not require memory cells to be isolated in groups. Therefore, in accordance with a second aspect of the present invention, there is provided a field programmable device, comprising: a plurality of processing devices; a connection matrix interconnecting the processing devices and including a plurality of switches; a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix; and means for isolating each of the memory cells from the switch or switches controllable by that memory cell.
- The isolating means is preferably operable to set each of the switches in the group to a predetermined state upon isolation from the respective memory cell. Accordingly, when isolated, the switches may still provide a predetermined connection in the connection matrix, but they may all be set to “off”.
- The isolating means preferably comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell. The use of a gate ensures that the switch is controlled by a well defined logic level at all times, whether it is being controlled by the memory cell or the control signal. Each gate may provided by four transistors, and one of the transistors of each gate may be common to a plurality of the gates, thus enabling an increased circuit density to be achieved.
- In another embodiment, the isolating means comprises means for isolating each of the switches in the group from the remainder of the connection matrix.
- At least some of the interconnections provided by the connection matrix may be in the form of plural-bit busses, with those of the switches for the busses each comprising a plurality of switch elements each for a respective bit of the bus.
- The positions of the memory cells are preferably distributed across the device to substantially the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell, thus enabling a high circuit density to be achieved.
- This latter feature may be provided, whether or not the memory cells are isolatable. Therefore, in accordance with a third aspect of the present invention, there is provided a field programmable device, comprising: a plurality of processing devices; a connection matrix interconnecting the processing devices and including a plurality of switches; and a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix; wherein the positions of the memory cells are distributed across the device to substantially the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell.
- A specific embodiment of the present invention will now be described, by way of example, with reference to the accompanying drawings, in which:
- FIG. 1 shows part of a processor array, illustrating six switching sections and the locations of six arithmetic logic units;
- FIG. 2 is a diagram of part of the arrangement shown in FIG. 1 on a larger scale, illustrating one of the switching sections and one of the locations of the arithmetic logic units;
- FIG. 3 shows part of the processor array shown in FIG. 1 on a smaller scale, illustrating the locations of the arithmetic logic units and “vertical” busses extending across them;
- FIG. 4 is similar to FIG. 3, but illustrating “horizontal” busses extending across the locations of the arithmetic logic units;
- FIG. 5 shows the interconnections between the busses of FIGS. 2, 3 and4 at the location of one of the arithmetic logic units;
- FIG. 6A shows in detail the circuitry of one type of programmable switch in the switching sections, for connecting a pair of 4-bit busses which cross each other;
- FIG. 6B shows in detail the circuitry of another type of programmable switch in the switching sections, for connecting a pair of 4-bit busses which meet each other end to end;
- FIG. 6C shows in detail the circuitry of another type of programmable switch in the switching sections, for connecting carry-bit busses;
- FIG. 7 shows the circuitry of a series of NOR gates which may be used in the programmable switches of FIGS. 5 and 6;
- FIG. 8 shows a modification to the circuitry of FIG. 7;
- FIG. 9 shows a buffer and register which may be used in each switching section;
- FIG. 10 is a schematic drawing illustrating how enable signals may be distributed to the programmable switches in the switching sections; and
- FIG. 11 shows in more detail the circuitry of the arrangement shown in FIG. 10.
- In the following description, the terms “horizontal”, “vertical”, “North”, “South”, “East” and “West” have been used to assist in an understanding of relative directions, but their use is not intended to imply any restriction on the absolute orientation of the embodiment of the invention.
- The processor array which forms the embodiment of the invention is provided in an integrated circuit. At one level, the processor array is formed by a rectangular (and preferably square) array of “tiles”10, one of which is shown bounded by a thick line in FIG. 1. Any appropriate number of tiles may be employed, for example in a 16×16, 32×32 or 64×64 array. Each
tile 10 is rectangular (and preferably square) and is divided into four circuit areas. It is preferable for these tiles to be logically square (to provide symmetry in connection), although it is of less significance that they be physically square (this may have some advantage in providing symmetry in timing, but this will generally be less likely to be of significance). Two of thecircuit areas 12, which are diagonally opposed in thetile 10, provide the locations for two arithmetic logic units (“ALUs”). The other two circuit areas, which are diagonally opposed in thetile 10, provide the locations for a pair ofswitching sections 14. - Referring to FIGS. 1 and 2, each ALU has a first pair of 4-bit inputs a, which are directly connected within the ALU, a second pair of 4-bit inputs b, which are also directly connected within the ALU, and four 4-bit outputs f, which are directly connected within the ALU. Each ALU also has an independent pair of 1-bit carry inputs hci, vci, and a pair of 1-bit carry outputs co, which are directly connected within the ALU. The ALU can perform standard operations on the input signals a, b, hci, vci to produce the output signals f, co, such as add, subtract, AND, NAND, OR, NOR, XOR, NXOR and multiplexing and optionally can register the result of the operation. The instructions to the ALUs may be provided from respective4-bit memory cells whose values can be set via the “H-tree” structure described below, or may be provided on the bus system which will be described below.
- At the level shown in FIGS. 1 and 2, each
switching section 14 has eight busses extending across it horizontally, and eight busses extending across it vertically, thus forming an 8×8 rectangular array of 64 crossing points, which have been numbered in FIG. 2 with Cartesian co-ordinates. All of the busses have a width of four bits, with the exception of the carry bus vc at X=4 and the carry bus hc at Y=3, which have a width of one bit. At many of the crossing points, a 4-gangprogrammable switch 16 is provided which can selectively connect the two busses at that crossing point. At some of the crossing points, a 4-gangprogrammable switch 18 is provided which can selectively connect two busses which meet end to end at that crossing point, without any connection to the bus at right angles thereto. At the crossing point at (4, 3), a programmable switch 20 (for example as shown in FIG. 6C) is provided which can selectively connect the carry busses vc, he which cross at right angles at that point. - The horizontal busses in the
switching section 14 will now be described. - At Y=0, busses h2 s are connectable by
programmable switches 16 to the vertical busses at X=0, 1, 2, 5, 6. The busses h2 s have a length of two tiles and are connectable end to end in every other switchingsection 14 by aprogrammable switch 18 at (4, 0). - At Y=1, a bus be extending from an input b of the ALU to the West is connectable by
switches 16 to the vertical busses at X=0, 1, 2, 3. Also, a bus fw extending from an output f of the ALU to the East is connectable byswitches 16 to the vertical busses at X=5, 6, 7. The ends of the busses be, fw are connectable by aprogrammable switch 18 at (4, 1). - At Y=2, a bus hregs is connectable by
programmable switches 16 to the vertical busses at X—1, 2.3, 5, 6, 7. - At Y=3, a bus hco extends from the carry output co of the ALU to the West to a
programmable switch 20 at (4, 3), which can connect the bus hco (a) to a carry bus hci extending to the carry input hci of the ALU to the East or (b) to a carry bus vci extending to the carry input vci of the ALU to the South. - At Y=4, a bus hregn is connectable by
programmable switches 16 to the vertical busses at X=0, 1, 2, 3, 5, 6. - At Y=5, busses h1 are connectable to the vertical busses at X=0, 1, 2, 3, 5, 6, 7. The busses h1 have a length of one tile and are connectable end to end in each switching
section 14 by aprogrammable switch 18 at (4, 5). - At Y=6, a bus fe extending from an output f of the ALU to the West is connectable by
switches 16 to the vertical busses at X=0, 1, 2, 3. Also, a bus aw extending from an input a of the ALU to the East is connectable byswitches 16 to the vertical busses at X=5, 6, 7. The ends of the busses fe, aw are connectable by aprogrammable switch 18 at (4, 6). - At Y=7, busses h2 n are connectable by
programmable switches 16 to the vertical busses at X=1, 2, 3, 6, 7. The busses h2 n have a length of two tiles and are connectable end to end in every other switchingsection 14 by aprogrammable switch 18 at (4, 7), staggered with respect to theprogrammable switches 18 connecting the busses h2 s at (4,0). - The vertical busses in the
switching section 14 will now be described. - At X=0, busses v2 w are connectable by
programmable switches 16 to the horizontal busses at Y=0, 1, 4, 5, 6. The busses v2 w have a length of two tiles and are connectable end to end in every other switchingsection 14 by aprogrammable switch 18 at (0, 3). - At X=1, a bus fn extending from an output f of the ALU to the South is connectable by
programmable switches 16 to the horizontal busses at Y=0, 1, 2. Also, a bus bs extending from an input b of the ALU to the North is connectable byswitches 16 to the horizontal busses at Y=4, 5, 6, 7. The ends of the busses fn, bs are connectable by aprogrammable switch 18 at (1, 3). - At X=2, busses v1 are connectable to the horizontal busses at Y=0, 1, 2, 4, 5, 6, 7. The busses v1 have a length of one tile and are connectable end to end in each switching
section 14 by aprogrammable switch 18 at (2, 3). - At X=3, a bus vregw is connectable by
programmable switches 16 to the horizontal busses at Y=1, 2, 4, 5, 6, 7. - At X=4, a bus vco extends from the carry output co of the ALU to the North to the
programmable switch 20 at (4, 3), which can connect the bus vco (a) to the carry bus hci extending to the carry input hci of the ALU to the East or (b) to the carry bus vci extending to the carry input vci of the ALU to the South. - At X=5, a bus vrege is connectable by
programmable switches 16 to the horizontal busses at Y=0, 1, 2, 4, 5, 6. - At X=6, a bus an extending from an input a of the ALU to the South is connectable by
switches 16 to the horizontal busses at Y=0, 1, 2. Also, a bus fs extending from an output f of the ALU to the North is connectable byprogrammable switches 16 to the horizontal busses at Y=4, 5, 6, 7. The ends of the busses an, fs are connectable by aprogrammable switch 18 at (6, 3). - At X=7, busses v2 e are connectable by
programmable switches 16 to the horizontal busses at Y=1, 2, 5, 6, 7. The busses v2 e have a length of two tiles and are connectable end to end in every other switchingsection 14 by aprogrammable switch 18 at (7, 3) staggered with respect to theprogrammable switches 18 connecting the busses v2 w at (0. 3). - As shown in FIG. 2, the busses bs, vco, fs are connected to input b, output co and output f, respectively, of the ALU to the North of the
switching section 14. Also, the busses fe, hco, be are connected to the output f, output co and input b of the ALU, respectively, to the West of theswitching section 14. Furthermore, the busses aw, hci, fw are connected to the input a, input ci and output f, respectively, of the ALU to the East of theswitching section 14. Moreover, the busses m, vci, an are connected to the output f, input ci and input a, respectively, of the ALU to the south of theswitching section 14. - In addition to these connections, the busses vregw, vrege are connected via respective
programmable switches 18 to 4-bit connection points vtsw, vtse, respectively, (shown by crosses in FIG. 2) in thearea 12 of the ALU to the North of theswitching section 14. Also, the busses hregs, hregn are connected via respectiveprogrammable switches 18 to 4-bit connection points htse, htne, respectively, in thearea 12 of the ALU to the West of theswitching section 14. Furthermore, the busses hregs, hregn are connected via respectiveprogrammable switches 18 to 4-bit connection points htsw, htnw, respectively, in thearea 12 of the ALU to the East of theswitching section 14. Moreover, the busses vregw, vrege are connected via respectiveprogrammable switches 18 to 4-bit connection points vtnw, vtne, respectively, in thearea 12 of the ALU to the south of theswitching section 14. These connection points vtnw, vtne, htne, htse, vtse, vtsw, htsw, htnw will be described below in further detail with reference to FIGS. 3 to 5. - Also, as shown in FIG. 2, the busses hregn, vrege, hregs, vregw have respective 4-bit connection points22 (shown by small squares in FIG. 2) which will be described below in further detail with reference to FIG. 9.
- FIG. 3 shows one level of interconnections between the locations of the arithmetic logic units, which are illustrated by squares with rounded corners. A group of four 4-bit busses v8, v4 w, v4 e, v16 extend vertically across each column of
ALU locations 12. The leftmost bus v8 in each group is in segments, each having a length generally of eight tiles. The leftmost but one bus v4 w in each group is in segments, each having a length generally of four tiles. The rightmost but one bus v4 e in each group is in segments, again each having a length generally of four tiles, but offset by two tiles from the leftmost but one bus v4 w. The rightmost bus v16 in each group is in segments, each having a length generally of sixteen tiles. At the top edge of the array, which is at the top of FIG. 4, and at the bottom edge the lengths of the segments may be slightly greater than or shorter than specified above. - Referring to FIGS. 3 and 5, where each group of four busses v8, v4 w, v4 e, v16 crosses each
ALU location 12, four 4-bit tap connections are made at the connection points htnw, htsw, htse, htne. The ends of the bus segments take priority in being so connected over a connection to a bus segment which crosses the ALU location. - Similarly, as shown in FIGS. 4 and 5, a group of four 4-bit busses h8, h4 n, h4 s, h16 extend horizontally across each row of
ALU locations 12. The uppermost bus h8 in each group is in segments, each having a length generally of eight tiles. The uppermost but one bus h4 n in each group is in segments, each having a length generally of four tiles. The lowermost but one bus h4 s in each group is in segments, again each having a length generally of four tiles, but offset by two tiles from the uppermost but one bus h4 n. The lowermost bus h16 in each group is in segments, each having a length generally of sixteen tiles. At the left hand edge of the array, which is at the left of FIG. 4, and at the right hand edge the lengths of the segments may be slightly greater than or shorter than specified above. Where each group of busses h8, h4 n, h4 s, h16 crosses eachALU location 12, a further four 4-bit tap connections are made at the connection points vtnw, vtsw, vtse, vtne. The ends of the bus segments take priority in being so connected over a connection to a bus segment which crosses the ALU location. - As shown in FIG. 5, the connection points htnw, htsw, htne, htse are connected via programmable switches to the busses hregn, hregs of the switching sections to the West and the East of the ALU location. Also, the connection points vtnw, vtne, vtsw, vtse are connected via programmable switches to the busses vregw, vrege of the switching sections to the North and the South of the ALU location.
- The
programmable connections 16 between pairs of 4-bit busses which cross at right angles will now be described with reference to FIG. 6A. The conductors of the horizontal busses are denoted as x0, x1, x2, x3, and the conductors of me vertical busses are denoted as y0, y1, y2, y3. Between each pair of conductors of the same bit significance, arespective transistor transistors gate 16 g, which receives as its two inputs an inverted ENABLE signal from a single bit memory cell, which may be shared by a group of the switches, and the inverted content of a singlebit memory cell 24. Accordingly, only when the ENABLE signal is high and the content of thememory cell 24 is high, the conductors x0, x1, x2, x3 are connected by thetransistors - The
programmable connections 18 between pairs of 4-bit busses which meet each other end to end in line will now be described with reference to FIG. 6B. The conductors of one bus are denoted as x10, x11, x12, x13, and the conductors of the other bus are denoted as x20, x21, x22, x23. Between each pair of conductors of the same bit significance, arespective transistor transistors gate 18 g, which receives as its two inputs an inverted ENABLE signal from a single bit memory cell, which may be shared by a group of the switches, and the inverted content of a singlebit memory cell 24. Accordingly, only when the ENABLE signal is high and the content of thememory cell 24 is high, the conductors x10, x11, x12, x13 are connected by thetransistors - The
programmable connections 20 between the carry conductors hco, vco, hci, vci will now be described with reference to FIG. 6C. The horizontal carry output conductor hco is connected to the horizontal carry input conductor hci and the vertical carry input conductor vci viatransistors 20 hh, 20 hv, respectively. Furthermore, the vertical carry output conductor vco is connected to the vertical carry input conductor vci and the horizontal carry input conductor hci viatransistors 20 vv, 20 vh, respectively. The gates of thetransistors 20 hh, 20 vv are connected in common to the output of aninverter 20 i, and the gates of thetransistors 20 hv, 20 vh and the input to theinverter 20 i are connected to the output of a NORgate 20 g. The NORgate 20 g receives as its two inputs an inverted ENABLE signal from a single bit memory cell. which may be shared by a group of the switches, and the inverted content of a singlebit memory cell 24. Accordingly, when the ENABLE signal is high, the conductors hco, vco are connected to the conductors hci, vci, respectively, or to the conductors vci, hci, respectively, in dependence upon the content of thememory cell 24. - It will be noted that each of the
switchable connections gate gate 16 g is typically formed by fourtransistors 16g g g g 4, two 16g g 3 of which are responsive to the inverted ENABLE signal, and two 16g g 4 of which are responsive to the inverted content of thememory cell 24. In the embodiment of the invention, it is desirable that a group of theswitchable collections switching section 14, all of the switchable connections in the two switchingsections 14 in a particular tile, or all of the switchable connections in a larger area of the array. In this case, thetransistor 16g 1 may be made common to all of theswitchable connections - The man skilled in the art will appreciate that the structures depicted in FIGS. 7 and 8 can be modified for optimisation. For example, the arrangement of FIGS. 7 and 8 would not fully exploit
memory cells 24 designed to return both a stored value and a complement of that stored value. Use of the complement obtained fromsuch cells 24 could be used to obviate any need for both the ENABLE and inverted ENABLE signals to be carried to all of the switchable connections in a group, as is the case in FIG. 8. - As mentioned above with reference to FIGS. 1 and 2, at each switching
section 14, the busses hregn, hregs, vregw, vrege are connected by respective 4-bit connections 22 to a register or buffer circuit, and this circuit will now be described in more detail with reference to FIG. 9. The fourconnections 22 are each connected to respective inputs of amultiplexer 26. The multiplexer 26 th selects one of the inputs as an output, which is supplied to a register orbuffer 28. The output of the register or buffer 28 is supplied to fourtri-state buffers connections 22 to the busses hregs, vregw, hregn, vrege, respectively. In the case where abuffer 28 is used, the 4-bit signal on a selected one of the busses hregs, vregw, hregn, vrege is amplified and supplied to another selected one of the busses hregs, vregw, hregn, vrege. In the case where aregister 28 is used, the 4-bit signal on a selected one of the busses hregs, vregw, hregn, vrege is amplified and supplied to any selected one of the busses hregs, vregw, hregn, vrege after the next active clock edge. - It will be appreciated that the arrangement described above provides great flexibility in the routing of signals around and across the array. With appropriate setting of the
switches memory cells 24 and with appropriate setting of themultiplexers 26 and registers or buffers 28, signals can been sent over large distances, primarily using the busses v16, h16, v8, h8, v4 e, v4 w, h4 n, h4 s from the edge of the array to a particular ALU, between ALUs, and from a particular ALU to the edge of the array. These busses can be joined together in line, or at right angles, by the switchingsections 14, with amplification by the registers or buffers 28 in order to reduce propagation delays, and with pipeline stages introduced by theregisters 28. Also, these busses can be tapped part way along their lengths, so that the siting of the ALUs to perform a particular processing operation is not completely dictated by the lengths of the busses, and so that signals can be distributed to more than one ALU. Furthermore, the shorter length busses described with reference to FIGS. 1 and 2 can be used to route signals between the switchingsections 14 and the ALUs, and to send signals primarily over shorter distances, for example from one ALU to an adjacent ALU in the same row or column, or diagonally adjacent, even though the busses extend horizontally or vertically. Again, the registers or buffers 28 can be used to amplify the signals or introduce programmable delays into them. - In the arrangement described above, the
memory cells 24 are distributed across the array to the same extent as the switchingsections 14 and theALU locations 12. Eachmemory cell 24 is disposed adjacent the switch or switches, multiplexer, register or buffer which it controls. This enables a high circuit density be achieved. - A description will now be made of the manner in which data is written to or read from the
memory cells 24, the way in which the ENABLE signals for theprogrammable switches bit address 32 a for it are supplied to adecoder 34 a. Thedecoder 34 a determines which of the four branches from it leads to the address and supplies anENABLE signal 30 b to afurther decoder 34 b in that branch, together with a 4-bit address 32 b to thedecoders 34 b in all four branches. Thedecoder 34 b receiving theENABLE signal 30 b determines which of the four branches from it leads to the required address and supplies anENABLE signal 30 c to afurther decoder 34 c in that branch, together with a 4-bit address 32 c to thedecoders 34 c in all four branches. Thedecoder 34 c receiving theENABLE signal 30 c then supplies theENABLE signal 34 d to the required address where it can be stored in a single bit memory cell. An advantage of the H-tree structure is that the lengths of the signal paths to all of the destinations are approximately equal, which is particularly advantageous in the case of the clock signal. - A great advantage of the arrangement described above is that groups of the
memory cells 24 in for example oneswitching section 14, or in the two switching sections in one tile, or in the switching sections in a sub-array of the tiles may be disabled en bloc by the inverted ENABLE signals so that the contents of those memory cells do not affect the associated switches. It is then possible for thosememory cells 24 to be used as “user” memory by an application, rather than being used for configuring the wiring of the array. - The embodiment of the invention has been described merely by way of example, and many modifications and developments may be made in keeping with the present invention. For example, the embodiment employs ALUs as the processing units, but other processing units may additionally or alternatively be used, for example look-up tables, programmable logic arrays and/or self-contained CPUs which are able to fetch their own instructions.
- Furthermore, the embodiment has been described as if the whole array is covered by ALUs and switching sections. However, other types of section may be included in the array. For example, a sub-array might be composed of a 4×4 arrangement of tiles of ALUs and switching sections as described above, and the array might be composed of such sub-arrays and memory in a4 x 4 array, or such sub-arrays and RISC CPUs in a 4×4 array.
- In the embodiment described above, each ALU location is square, and each switching section is square and of the same size as the ALU locations, but it should be noted that the
controllable switches 18 in the register busses vregw, vrege, hregn, hregs encroach into the square outline of the ALU locations. The ALU locations need not be of the same size as the switching sections, and in particular may be smaller, thus permitting one or more busses to pass horizontally or vertically directly from oneswitching section 14 to a diagonallyadjacent switching section 14, for example running between the busses h2 s, h2 n or between the busses v2 e, v2 w. - In the embodiment described above, each ALU has two independent carry inputs vci, hci and a connected pair of carry outputs co. If required, the ALUs may be arranged to deal with two types of carry: a fast carry between adjacent ALUs which may be of particular use for multi-bit adding operations; and a slow carry which can be routed more flexibly and may be of particular use for digital serial arithmetic. The fast carry might be arranged in a similar manner to that described above with reference to the drawings, whereas the slow carry might employ programmable switches in the switching
sections 14 between the carry conductor and particular bits of the 4-bit busses. - In the embodiment described above, particular bit widths, sizes of switching section and sizes of array have been mentioned, but it should be noted that all of these values may be changed as appropriate. Also, the
programmable switches section 14, but other locations may be used as required and desired. - In the embodiment described above, the array is two-dimensional, but the principles of the invention are also applicable to three-dimensional arrays, for example by providing a stack of the arrays described above, with the switching sections in adjacent layers staggered with respect to each other. The stack might include just two layers, but preferably at least three layers, and the number of layers is preferably a power of two. In the embodiment described above, the
memory cells 24 can be isolated by thegates particular switching section 14 may be disconnectable from the remainder of the array by further switches in the busses at the boundary of thatswitching section 14, with the further switches being controlled by a further memory cell which cannot be transferred to the user plane. - Many other modifications and developments may also be made.
Claims (28)
1. A field programmable device, comprising:
a plurality of processing devices:
a connection matrix interconnecting the processing devices and including a plurality of switches:
a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix: and
an isolating element for isolating the effect of the data stored in at least one group of the memory cells on the configuration of the interconnections so that the memory cells in that group are available for storing other data, wherein the isolating element is adapted to isolate each of the memory cells in a group from switches which are controllable by those memory cells, and wherein the content of memory cells determines current configuration of the interconnections of the connection matrix except where isolated by the isolating element, in which case the current configuration of relevant parts of the connection matrix is determined by a predetermined default configuration.
2. A device as claimed in , wherein isolation by the isolating element comprises setting each of the switches controllable by a memory cell in the group to a predetermined state.
claim 1
3. A device as claimed in , wherein the isolating element comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell.
claim 2
4. A device as claimed in , wherein each gate, is provided by four transistors.
claim 3
5. A device as claimed in , wherein one of the transistors of each gate is common to a plurality of the gates.
claim 4
6. A device as claimed in , wherein at least some of the interconnections provided by the connection matrix are in the form of plural-bit busses; and those of the switches for the busses each comprise a plurality of switch elements each for a respective bit of the bus.
claim 1
7. A device as claimed in , wherein the positions of the memory cells are distributed across the device substantially to the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell.
claim 1
8. A device as claimed in claim l, wherein the isolating element comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell.
9. A field programmable device, comprising:
a plurality of processing devices,
a connection matrix interconnecting the processing devices and including a plurality of switches;
at least one group of memory cells, each comprising a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix, wherein the field programmable device is adapted such that data unrelated to the configuration of the interconnections can be stored in said at least one group of memory cells and can be read from said at least one group of memory cells for use by at least one of said processing devices, and
an isolating element for isolating the effect of the data stored in said at least one group of the memory cells on the configuration of the interconnections so that the memory cells in that group are available for storing said data unrelated to the configuration of the interconnections, wherein the content of said memory cells determines current configuration of the interconnections of the connection matrix except where isolated by the isolating element, in which case the current configuration of relevant parts of the connection matrix is determined by a predetermined default configuration.
10. A device as claimed in , wherein the isolating element is adapted to isolate each of the memory cells in a group from switches which are controllable by those memory cells.
claim 9
11. A device as claimed in , wherein isolation by the isolating element comprises setting each of the switches controllable by a memory cell in the group to a predetermined state.
claim 10
12. A device as claimed in , wherein the isolating element comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell.
claim 11
13. A device as claimed in , wherein each gate is provided by four transistors.
claim 12
14. A device as claimed in , wherein one of the transistors of each gate is common to a plurality of the gates.
claim 13
15. A device as claimed in , wherein the isolating element is adapted to isolate each of the switches controllable by the memory cells in the group from the remainder of the connection matrix.
claim 9
16. A device as claimed in , wherein at least some of the interconnections provided by the connection matrix are in the form of plural-bit busses- and those of the switches for the busses each comprise a plurality of switch elements each for a respective bit of the bus.
claim 9
17. A device as claimed in , wherein the positions of the memory cells are distributed across the device substantially to the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell.
claim 9
18. A device as claimed in , wherein the isolating element comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell.
claim 9
19. A field programmable device, comprising:
a plurality of processing devices,
a connection matrix interconnecting the processing devices and including a plurality of switches;
at least two groups of memory cells, each comprising a plurality of memory cells for storing data for controlling the switches to define the configuration of the interconnections of the connection matrix, wherein the device is adapted for either or both independently reading data from, or writing data to, said at least two groups of memory cells; and
an isolating element for each of said at least two groups of memory cells for isolating the effect of the data stored in the relevant group of the memory cells on the configuration of the interconnections so that the memory cells in that group are available for storing other data, wherein the content of memory cells determines current configuration of the interconnections of the connection matrix except where isolated by the isolating element, in which case the current configuration of relevant parts of the connection matrix is determined by a predetermined default configuration.
20. A device as claimed in , wherein the isolating element is adapted to isolate each of the memory cells in a group from switches which are controllable by those memory cells.
claim 19
21. A device as claimed in , wherein isolation by the isolating element comprises setting each of the switches controllable by a memory cell in the group to a predetermined state.
claim 20
22. A device as claimed in , wherein the isolating element comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be control led by that memory cell.
claim 21
23. A device as claimed in , wherein each gate is provided by four transistors.
claim 22
24. A device as claimed in , wherein one of the transistors of each gate is common to a plurality of the gates.
claim 23
25. A device as claimed in , wherein the isolating element is adapted to isolate each of the switches controllable by the memory cells in the group from the remainder of the connection matrix.
claim 19
26. A device as claimed in , wherein at least some of the interconnections provided by the connection matrix are in the form of plural-bit busses; and those of the switches for the busses each comprise a plurality of switch elements each for a respective bit of the bus.
claim 19
27. A device as claimed in , wherein the positions of the memory cells are distributed across the device substantially to the same extent as the switches, and each of the memory cells is disposed adjacent the switch or switches controllable by that memory cell.
claim 19
28. A device as claimed in , wherein the isolating element comprises, for each memory cell, a respective gate having inputs connected to the memory cell and to a control signal, and having an output connected to the or each switch which can be controlled by that memory cell.
claim 19
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/891,847 US20010038298A1 (en) | 1997-01-29 | 2001-06-25 | Field programmable processor devices |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97300562.2 | 1997-01-29 | ||
EP97300562A EP0858167A1 (en) | 1997-01-29 | 1997-01-29 | Field programmable processor device |
US09/341,565 US6262908B1 (en) | 1997-01-29 | 1998-01-28 | Field programmable processor devices |
US09/891,847 US20010038298A1 (en) | 1997-01-29 | 2001-06-25 | Field programmable processor devices |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/341,565 Continuation US6262908B1 (en) | 1997-01-29 | 1998-01-28 | Field programmable processor devices |
Publications (1)
Publication Number | Publication Date |
---|---|
US20010038298A1 true US20010038298A1 (en) | 2001-11-08 |
Family
ID=8229198
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/341,565 Expired - Fee Related US6262908B1 (en) | 1997-01-29 | 1998-01-28 | Field programmable processor devices |
US09/891,847 Abandoned US20010038298A1 (en) | 1997-01-29 | 2001-06-25 | Field programmable processor devices |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/341,565 Expired - Fee Related US6262908B1 (en) | 1997-01-29 | 1998-01-28 | Field programmable processor devices |
Country Status (5)
Country | Link |
---|---|
US (2) | US6262908B1 (en) |
EP (2) | EP0858167A1 (en) |
JP (1) | JP3885119B2 (en) |
DE (1) | DE69822796T2 (en) |
WO (1) | WO1998033276A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008154775A1 (en) * | 2007-06-20 | 2008-12-24 | Agate Logic, Inc. | A programmable interconnect network for logic array |
US20090261858A1 (en) * | 2006-08-31 | 2009-10-22 | Beijing Xizheng Microelectronics Co., Ltd. | Programmable interconnect network for logic array |
US8635378B1 (en) * | 2005-03-25 | 2014-01-21 | Tilera Corporation | Flow control in a parallel processing environment |
US8760191B2 (en) | 2010-02-01 | 2014-06-24 | Renesas Electronics Corporation | Reconfigurable semiconductor integrated circuit |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
DE19651075A1 (en) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like |
DE19654595A1 (en) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures |
DE59710317D1 (en) | 1996-12-27 | 2003-07-24 | Pact Inf Tech Gmbh | METHOD FOR THE INDEPENDENT DYNAMIC RE-LOADING OF DATA FLOW PROCESSORS (DFPs) AND MODULES WITH TWO OR MORE-DIMENSIONAL PROGRAMMABLE CELL STRUCTURES (FPGAs, DPGAs, or the like) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (en) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Repairing integrated circuits by replacing subassemblies with substitutes |
DE10081643D2 (en) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequence partitioning on cell structures |
EP1061439A1 (en) | 1999-06-15 | 2000-12-20 | Hewlett-Packard Company | Memory and instructions in computer architecture containing processor and coprocessor |
JP2004506261A (en) | 2000-06-13 | 2004-02-26 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | Pipeline CT protocol and CT communication |
US7383424B1 (en) | 2000-06-15 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Computer architecture containing processor and decoupled coprocessor |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US7581076B2 (en) * | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
WO2003060747A2 (en) | 2002-01-19 | 2003-07-24 | Pact Xpp Technologies Ag | Reconfigurable processor |
EP2043000B1 (en) | 2002-02-18 | 2011-12-21 | Richter, Thomas | Bus systems and reconfiguration method |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US6844757B2 (en) * | 2002-06-28 | 2005-01-18 | Lattice Semiconductor Corp. | Converting bits to vectors in a programmable logic device |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US7394284B2 (en) | 2002-09-06 | 2008-07-01 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US6980390B2 (en) * | 2003-02-05 | 2005-12-27 | Quantum Corporation | Magnetic media with embedded optical servo tracks |
EP1676208A2 (en) | 2003-08-28 | 2006-07-05 | PACT XPP Technologies AG | Data processing device and method |
US7219325B1 (en) * | 2003-11-21 | 2007-05-15 | Xilinx, Inc. | Exploiting unused configuration memory cells |
US8250503B2 (en) | 2006-01-18 | 2012-08-21 | Martin Vorbach | Hardware definition method including determining whether to implement a function as hardware or software |
EP2575597B1 (en) | 2010-05-25 | 2022-05-04 | The General Hospital Corporation | Apparatus for providing optical imaging of structures and compositions |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4236204A (en) | 1978-03-13 | 1980-11-25 | Motorola, Inc. | Instruction set modifier register |
US5233539A (en) | 1989-08-15 | 1993-08-03 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure, input/output structure and configurable logic block |
US5204556A (en) | 1991-05-06 | 1993-04-20 | Lattice Semiconductor Corporation | Programmable interconnect structure for logic blocks |
US5291431A (en) | 1991-06-03 | 1994-03-01 | General Electric Company | Array multiplier adapted for tiled layout by silicon compiler |
US5208491A (en) | 1992-01-07 | 1993-05-04 | Washington Research Foundation | Field programmable gate array |
US5498975A (en) * | 1992-11-19 | 1996-03-12 | Altera Corporation | Implementation of redundancy on a programmable logic device |
WO1995022205A1 (en) | 1994-02-15 | 1995-08-17 | Xilinx, Inc. | Tile based architecture for fpga |
US5453706A (en) * | 1994-04-01 | 1995-09-26 | Xilinx, Inc. | Field programmable gate array providing contention free configuration and reconfiguration |
GB2289354B (en) | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
US5426379A (en) * | 1994-07-29 | 1995-06-20 | Xilinx, Inc. | Field programmable gate array with built-in bitstream data expansion |
US5493239A (en) | 1995-01-31 | 1996-02-20 | Motorola, Inc. | Circuit and method of configuring a field programmable gate array |
US5659785A (en) | 1995-02-10 | 1997-08-19 | International Business Machines Corporation | Array processor communication architecture with broadcast processor instructions |
US5583450A (en) * | 1995-08-18 | 1996-12-10 | Xilinx, Inc. | Sequencer for a time multiplexed programmable logic device |
GB9611994D0 (en) | 1996-06-07 | 1996-08-07 | Systolix Ltd | A field programmable processor |
-
1997
- 1997-01-29 EP EP97300562A patent/EP0858167A1/en not_active Withdrawn
-
1998
- 1998-01-28 EP EP98901401A patent/EP0956645B1/en not_active Expired - Lifetime
- 1998-01-28 JP JP53175598A patent/JP3885119B2/en not_active Expired - Fee Related
- 1998-01-28 WO PCT/GB1998/000248 patent/WO1998033276A1/en active IP Right Grant
- 1998-01-28 DE DE69822796T patent/DE69822796T2/en not_active Expired - Lifetime
- 1998-01-28 US US09/341,565 patent/US6262908B1/en not_active Expired - Fee Related
-
2001
- 2001-06-25 US US09/891,847 patent/US20010038298A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635378B1 (en) * | 2005-03-25 | 2014-01-21 | Tilera Corporation | Flow control in a parallel processing environment |
US20090261858A1 (en) * | 2006-08-31 | 2009-10-22 | Beijing Xizheng Microelectronics Co., Ltd. | Programmable interconnect network for logic array |
US7928764B2 (en) * | 2006-08-31 | 2011-04-19 | Agate Logic (Beijing), Inc. | Programmable interconnect network for logic array |
WO2008154775A1 (en) * | 2007-06-20 | 2008-12-24 | Agate Logic, Inc. | A programmable interconnect network for logic array |
US20100171524A1 (en) * | 2007-06-20 | 2010-07-08 | Agate Logic, Inc. | Programmable interconnect network for logic array |
US7994818B2 (en) | 2007-06-20 | 2011-08-09 | Agate Logic (Beijing), Inc. | Programmable interconnect network for logic array |
US8760191B2 (en) | 2010-02-01 | 2014-06-24 | Renesas Electronics Corporation | Reconfigurable semiconductor integrated circuit |
Also Published As
Publication number | Publication date |
---|---|
WO1998033276A1 (en) | 1998-07-30 |
EP0956645B1 (en) | 2004-03-31 |
EP0956645A1 (en) | 1999-11-17 |
DE69822796T2 (en) | 2005-03-10 |
JP2001509336A (en) | 2001-07-10 |
US6262908B1 (en) | 2001-07-17 |
EP0858167A1 (en) | 1998-08-12 |
JP3885119B2 (en) | 2007-02-21 |
DE69822796D1 (en) | 2004-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6262908B1 (en) | Field programmable processor devices | |
US6542394B2 (en) | Field programmable processor arrays | |
US6553395B2 (en) | Reconfigurable processor devices | |
JP3434292B2 (en) | Programmable logic cell and array thereof | |
EP1143336B1 (en) | FPGA with increased cell utilization | |
US6567969B1 (en) | Configurable logic array including lookup table means for generating functions of different numbers of input terms | |
US5218240A (en) | Programmable logic cell and array with bus repeaters | |
US5371422A (en) | Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements | |
US5801546A (en) | Interconnect architecture for field programmable gate array using variable length conductors | |
EP0824791B1 (en) | Scalable multiple level interconnect architecture | |
EP0925649A1 (en) | Fpga architecture having ram blocks with programmable word length and width and dedicated address and data lines | |
JPH10233676A (en) | Method for arraying local mutual connection line inside logic array block and programmable logic circuit | |
EP0956646B1 (en) | Field programmable processor arrays | |
EP0924625B1 (en) | Configurable processing device and method of using said device to construct a central processing unit | |
US6429681B1 (en) | Programmable logic device routing architecture to facilitate register re-timing | |
US6104207A (en) | Programmable logic device | |
WO1998033182A1 (en) | Data routing devices | |
US6263482B1 (en) | Programmable logic device having macrocells with selectable product-term inversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |