|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates to semiconductor logic devices. More
particularly, the present invention relates to a method and apparatus for
providing increased routing capacity in programmable logic devices, e.g.,
field programmable gate array devices.
BACKGROUND OF THE INVENTION
Programmable integrated circuits such as field programmable gate arrays
(FPGAs) and complex programmable logic devices (CPLDs) are examples of
integrated circuit devices that have an array of programmable logic blocks
surrounded by peripheral input/output blocks. Also located within the
array are signal routing resources that are programmable. Programmable
logic blocks are often referred to as configurable logic blocks (CLBs).
CLBs may be configured to implement specific logic functions selected from
a macro cell library. Many manufacturers of ASICs, FPGAs or CPLDs have
developed extensive libraries of logic functions that may be implemented
in the CLBs. As is well understood in the art, FPGAs and CPLDs may be
configured to rapidly perform desired logic functions to shorten the
design and fabrication time schedule of a custom integrated circuit
device.
Typically, each CLB has a plurality of input ports (for example, 15 inputs)
which may include signals, clock and control inputs, and a plurality of
output ports (for example, 5 outputs). Using the programmable routing
resources discussed above, each CLB input and output port (e.g., "input"
and "output") can be programmably connected by interconnect segments to
other selected CLB outputs and its input or to the input/output blocks. In
this manner, circuit designers can implement complex logic functions on
the integrated circuit device. These interconnect segments are laid out in
areas of the device between the CLBs and between the CLBs and the
input/output blocks reserved for such interconnections. The segments are
typically routed in either a horizontal or vertical direction with, by way
of example, the horizontal metal segments routed in a layer of metal
either above or below the vertical metal segments.
As manufacturing techniques improve, the size of the CLBs decreases and
thereby the number of CLBs that can be placed within a programmable logic
device increases. As the number of CLBs that can be provided within an
array increases, the complexity of logic functions that can programmed
onto the integrated circuit device also increases. However, as the number
of CLBs increases, signal routing between CLBs and input/output blocks
becomes a major problem for circuit designers. As is well known in the
art, routing the interconnections between large numbers of CLBs is a very
difficult task that: (1) requires sophisticated placement and routing
application software; and (2) demands large amounts of routing resources,
(e.g., routing time is a function of the routing resources).
In prior art programmable logic devices, the locations of the signal
routing resources are predefined. In effect, unlike the CLBS, the signal
routing resources of the prior art are not modular, e.g., they are not
provided in discrete "cells" that can be placed within the array.
Therefore, a signal routing resource allocation or design that is operable
for an N.times.N array can supply extremely insufficient amount of
interconnects for a larger array (e.g., 2N.times.2N).
Therefore, a significant limitation on the complexity of logic functions
that can be implemented on the integrated circuit device is attributed to
a lack of sufficient routing resources for interconnecting CLBs within a
programmable logic array. In view of this limitation, it is a common
practice to fully utilize all routing resources within a programmable
logic array long before all of the available CLBs can be utilized. As will
be appreciated by one skilled in the art, routing congestion usually
occurs worst in the middle of the circuit or in other known areas of the
circuit. CLB "under-utilization" is expensive because the price of
integrated circuit devices is highly dependent on the physical dimension
of the device and full CLB utilization is desired.
One method to increase CLB utilization is to manually lay-out a portion of
the routing resources ("interconnects"). For instance, this method would
provide for manually redesigning the predefined routing resource design
for a programmable logic device based on its array size. However, manual
lay-out is a time consuming and expensive task that is prone to mistakes.
Further, it is difficult and time consuming to run design verification and
simulation software on circuits having at least a portion of the
interconnections manually redone thereby increasing the possibility that
design errors will not be detected until after release of the circuit.
Lastly, since the number of array sizes is only limited by semiconductor
fabrication equipment, this method can require a new interconnect design
for each array size.
One method to increase signal routing resources within a programmable array
is to increase the resource allotment within the macro cell defining the
CLB. However, doing so can require modification of the macro cell library
of logic functions when the macro cells include the interconnect segments.
Modification of the macro cell library is a time consuming effort and,
once modified, each macro cell must be resimulated and proper operation
verified, which is an expensive and time consuming task. Also, modifying
each macro cell can be unnecessary because routing congestion usually
occurs in particular selected targeted areas, as indicated above. If the
above is done, then the die size increases as well as the cost thereof
and, in addition, many routing resources may be left unused.
Accordingly, it would be desirable to provide a signal routing design that
provides a more modular mechanism for providing signal routing resources
to a programmable logic array. Further, it would be desirable to provide,
in a system as above, additional routing channels in selected areas of the
programmable arrays where signal congestion typically is encountered.
Finally, it would be desirable to provide the above within a circuit
design that does not require modification of the CLB macro cell design so
that existing libraries can be used to provide new, high density, device
families that have significant numbers of CLBs on the device.
SUMMARY OF THE INVENTION
The present invention relates to signal routing resource tiles that can be
manipulated as circuit "cells" in that they can be readily characterized
and implemented on a programmable logic device, such as application
specific integrated circuits (ASICs) or field programmable gate arrays
(FPGAs). Specifically, the present invention provides signal routing
resource tiles that, when coupled with existing routing resources of
programmable gate arrays, allows increased CLB utilization by alleviating
signal routing limitations, especially in large sized arrays. Therefore,
the routing tiles of the present invention are in addition to the existing
routing resources provided by the existing macro cell library.
The routing resource tiles of the present invention are modular. In effect,
they are resource "cells" that can be freely placed by the FPGA designer
within the FPGA array. The tiles are easily replicated so that gate array
devices can have one, two or more tiles associated with selected rows or
columns of the semiconductor device to significantly increase routing
resources in areas of the array where logic designers expect routing
congestion to occur upon programming. Since the tiles of the present
invention are modular, it is possible to replicate the tiles across the
array of the integrated circuit. Use of modular tiles can thus increase
routing resources including high speed transmission lines even as process
improvements permit an increase in CLB density or as new families of
devices are introduced. By providing a separate routing resource tile,
rather than modifying the CLB structure, the present invention allows CLB
array size to be significantly increased for new FPGA families (developed
in a relatively short period of time) while advantageously using existing
logic function libraries.
Since routing resource tiles are modular, it is possible to minimize the
size of the integrated circuit device and at the same time utilize a
higher percentage of the available CLBS. With only minor modification to
existing placement and routing application software it is possible to
utilize the additional routing resources to optimize placement of the
logic functions and maximize CLB utilization.
Specifically, the added tiles can be positioned either horizontally or
vertically either in the core of the chip or along the periphery with
programmable connections to the input or output ports of existing CLBS. A
corner tile is also provided that permits interconnection between
horizontal and vertical tiles or between adjacent horizontal tiles or
adjacent vertical tiles to form a contiguous routing channel. It is a
particular advantage of the present invention that routing resources can
be selectively added in high density and congested areas of the device,
such as in the array middle, to increase routing capacity and speed up
routing time for complex logic functions in a cost effective manner.
In one embodiment, the tiles provide a plurality of lines (e.g., signal and
clock lines), including, for example, long lines, quad lines, octal lines,
local lines and clock lines that can be added into the programmable logic
device. Long lines may be used to route clock and other signals having
high fan-out requirements. Quad and octal lines can be used to route
signals from one CLB to another CLB that is up to four or eight CLBs away
from the originating CLB, respectively. Local lines may be used to route
signals between adjacent CLBs. Further, one embodiment of the present
invention includes a plurality of switch matrices, buffers, or other
active gates in addition to signal line interconnections to facilitate
signal communication.
It is possible to create a family of arrays with selected amounts of
routing resources. As new arrays are developed, existing macro cell
libraries may be utilized with the necessary routing resources provided by
the addition of the plurality of tiles to overcome the restricted routing
capability often encountered in large arrays while minimizing the size of
the integrated circuit device. Further, the electrical parameters of the
tiles can be characterized on test chips and the data incorporated into
the design library so that new arrays having a variety of routing capacity
can be quickly and economically brought to market.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A illustrates one embodiment of a semiconductor device having logic
elements arranged in matrix form together with vertical and horizontal
tiles of the present invention.
FIG. 1B illustrates a second embodiment of a semiconductor device having
logic elements arranged in matrix form together with vertical and
horizontal tiles of the present invention including various input/output
blocks (IOBs).
FIG. 2 illustrates a representative interconnect structure of a
configurable logic block (CLB) interfacing with interconnecting tiles
(e.g., vertical (VSI), horizontal (HSI) and corner routing resource tiles)
of the present invention.
FIG. 3 is a detailed view of a horizontal signal routing resource tile
(HSI) in accordance with the present invention.
FIG. 4A and FIG. 4B illustrate a circuit schematic of a programmable
interconnect point (PIP) used in accordance with the present invention.
FIG. 5 illustrates a circuit schematic of a switch matrix circuit used in
accordance with the present invention.
FIG. 6 is a detailed view of a vertical signal routing resource tile (VSI)
in accordance with the present invention.
FIG. 7 illustrates a representative CLB interfaced with vertical (VSI),
horizontal (HSI) and corner routing resource tiles of the present
invention.
FIG. 8 is a block diagram of an exemplary logic element of a CLB.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1A illustrates a representative field programmable gate array (FPGA)
110 having an (n.times.m) array of configurable logic blocks (CLBs) 112
where n may equal m. The logic functions performed by FPGA 110 can be
implemented by appropriately configuring and interconnecting the CLBs
using a number of well known techniques. In this embodiment, FPGA 110 is
shown having an 8.times.8 array of configurable logic blocks (CLBs) 112
although it will be appreciated that arrays of various sizes are
contemplated herein. Although the routing resource tiles of the present
invention are well suited to application with different types of CLBs, one
particular implementation is described with respect to FIG. 8 below.
With reference to FIG. 1A, FPGA 110 further includes a number of horizontal
routing resource tiles 114 and a number of vertical routing resource tiles
116 for distributing signals horizontally and vertically, respectively,
across the array. The horizontal and vertical routing resource tiles 114
and 116 are also referred to, respectively, as horizontal standard
interconnects (HSI) 114 and vertical standard interconnects (VSI) 116. It
is appreciated that the routing resources added by the tiles of the
present invention are in addition to any routing resources provided within
a CLB of a conventional FPGA. A plurality of horizontal, vertical and
corner tiles 114, 116 and 118, respectively, are located between selected
rows and columns of CLBs 112 respectively. Corner tiles 118 allow
connection between individual adjacent HSIs 114 and VSIs 116. Tiles 114,
116 and 118 of the present invention are used to increase routing
resources in FPGA 110 so that a high percentage of available CLBs 112 can
be configured for high density logic circuit designs.
In accordance with the present invention, to relieve routing congestion,
HSIs 114, VSIs 116 and corner tiles 118 are added to portions of the array
in which the FPGA designer expects routing congestion to occur. In effect,
the routing tiles of the present invention can be placed in any position,
in any configuration within the FPGA array to relieve signal congestion,
and do not necessarily need to span the entire length of the programmable
device. If the routing tiles do not span the entire length (or width), the
space normally occupied by the tiles would be replaced with additional
logic or with tiles having limited conductive segments to facilitate
interconnection between adjacent CLBs. In FIG. 1A, the central portion of
the array includes two adjacent VSI lines (double width line 116') and
also two adjacent HSI lines (double width line 114') wherein a line is a
continuous section of coupled tiles of a similar type with corner tile
junctions, where needed. In this embodiment, single width VSI lines 116
and single width HSI lines 114 are provided in a uniform distribution grid
across the array. It is appreciated that the routing resource lines
(horizontal and vertical) can be made of any desired width, e.g., single,
double, triple, etc., depending on the amount of expected signal
congestion in their locations.
An advantage of the present invention is that additional routing resources
(tiles) can be added to a particular FPGA design to create a "custom"
routing structure using modular circuit elements that are pre-designed and
can readily be replicated, thereby reducing the design time required to
add the routing structure. In effect, routing resources of the present
invention can be selectively added throughout the FPGA (to create a
semi-custom layout) without requiring custom circuitry and the lengthy
design and development time required of custom circuitry.
FIG. 1B illustrates an FPGA device 110' similar to FPGA device 110 of FIG.
1A with the addition of routing resource tiles disposed around the
perimeter of the array of CLBs 112 in a routing resource ring 121.
Wherever possible in the discussion to follow, the same reference numbers
will be used throughout in the drawings to refer to the same or like
components. Ring 121 is composed of lines of VSI tiles 116 and lines of
HSI tiles 114 coupled at their corners with corner tiles 118. Since
input/output blocks typically are disposed along the perimeter of the CLB
array, routing resource ring 121 facilitates signal communication into and
out of the CLB array via the input/output blocks. Although shown as a
single width ring, routing resource ring 121 of FIG. 1B could also be
double width, triple width, etc. In accordance with the present invention,
many different FPGA configurations can be realized using different routing
resource layouts.
FIG. 1B illustrates a plurality of input/output blocks (IOBs) 117 disposed
along the periphery of device 110'. IOBs 117 provide an input/output
interface between CLBs 112 and other circuitry either internal or external
to device 110'. It is appreciated that VSI tiles 116 and HSI tiles 114 can
be connected in sequence (e.g. in lines) and used to provide communication
channels between IOBs 117 of device 110'.
As shown in FIG. 2, the dashed line 200 defines a boundary of each CLB 112.
CLB 112 includes logic elements 210 such as buffers, latches, function
generators, flip/flops, memory cells, other high level circuits, or other
discrete components (described with reference to FIG. 8), as well as
routing resources such as vertical conductor segments 214, 214a, 214b,
215, 215a, 216, 216a, and 216b and horizontal conductor segments 217,
217a, 217b, 218, 218a, 219, 219a, and 219b. The conductor segments can be
programmably connected or coupled to logic elements 210 to form input or
output ports of CLB 112. These output ports can be programmably
interconnected to various logic elements of other CLBs such as CLB 112b of
FPGA 110 (FIG. 1A). In one embodiment, switch matrices 220 are disposed in
the four corners of CLB 112 and can be used to selectively interconnect
vertical conductor segments (214a, 214, 214b, 216a, 216, and 216b) to
horizontal conductor segments (217a, 217, 217b, 219a, 219, and 219b)
Each switch matrix 220 contains a number of programmable interconnection
points (PIPs) and/or buffers (FIG. 5) located at the intersection of the
conductor segments. FIG. 4A shows a typical representation of a PIP. As
shown in FIG. 4B, each PIP 354 comprises a pass transistor 354a that can
be configured by programming a memory unit 354b whose programmed state
determines whether or not the two intersecting signal lines (lines 31 and
33) are to be electrically coupled. Switch matrices of the kind described
above are well known in the art, and are described, for example, in "The
Programmable Logic Data Book" by Xilinx, Inc. of San Jose, Calif., (1994)
on pages 2-14 to 2-16.
In one embodiment, the area of an exemplary CLB 112 is approximately
625-650.mu..sup.2. However, the area of the CLB should be considered for
reference purposes only since improvements in design rules will permit
reduction in device geometry and thus provide denser circuit structures.
In FIG. 2, CLB 112 is shown having an HSI 114 disposed adjacent to the top
boundary of CLB 112 and two VSI tiles 116 disposed adjacent to the right
vertical boundary of CLB 200. By interconnecting segments 214a, 215 and
216a to the vertical conductor segments of HSI tile 114, the present
invention significantly increases resources for routing signals because
HSI tiles 114 of the present invention are in addition to segments 217,
217a, 217b and 219, 219a and 219b of CLB 112. Similarly, by
interconnecting segments 217b, 218a and 219b to the routing resources of
VSI tiles 116, the present invention provides even more valuable routing
resources. Corner tiles 118 are used to couple routing resources of HSI
tiles 114 with VSI tiles 116 or to another HSI tile 114 (not shown)
juxtaposed to the right of corner tiles 118. Analogously, corner tiles 118
are used to couple routing resources of VSI tiles 116 with HSI tiles 114
or to another VSI tile 116 (not shown).
FIG. 3 shows an exemplary embodiment of an HSI tile 114 in greater detail.
Specifically, HSI tile 114 includes a plurality of horizontal conductive
segments 310, 312, 314, 316, 318, 320, 322, and 324 (e.g., 310-324).
Segments 310-324 can be interconnected with adjacent HSI tiles 114 (not
shown), or corner tiles 118 (also not shown), to form local, octal, and
quad signal lines. For example, in one embodiment, segments 310, 312, 314,
and 316 are interconnect quad lines ("segments"), and segments 318, 320,
322, and 324 are interconnected with adjacent HSI tiles 114 or corner
tiles 118 (neither shown) to form long lines which are useful for routing
clock or other control signals. Note that lines 326, 328, 330, 332, 334,
336, 338, 340,342, 344, 346, and 348 (e.g. 326-348) although present
within HSI tile 114 represent existing interconnect structure of a CLB 112
and thus are not "added" routing resources of HSI tile 114. However,
interconnection circuitry is added by the present invention which
interfaces with these existing interconnect structures. In one embodiment,
segments 326, 328, 330, and 332 are quad lines, segments 334, 336, 338,
and 340 are local lines, and segments 342, 344, 346, and 348 are long
lines. The layout positioning of these segments 326-348 permit interface
with the input and output ports of the adjoining CLBs or adjoining tiles
above or below tile 114. By way of example, lines 326, 328, 330, and 332
interface with lines 214a (see FIG. 2), lines 334, 336, 338, and 340
interface with lines 215, while lines 342, 344, 346, and 348 interface
with lines 216a.
Within HSI tile 114, a programmable bi-directional buffer 350 is provided
on horizontal conductive segment 316 of interconnect quad lines 310, 312,
314, and 316. With this buffer 350, and the interconnection "jog," a
signal on any segment of quad lines 310, 312, 314, and 316 can be buffered
in either direction, once every four adjacently coupled HSI tiles 114.
This feature is useful if a signal output of a CLB has a high fan-out.
Alternatively, bi-directional buffer 350 can also be configured to isolate
conductive segment 316 from interconnecting segments of adjoining tiles.
Bi-directional buffers 350 are well known in the art and any number of
buffer designs can be used as buffer 350 in accordance with the present
invention.
Within exemplary tile 114, long line segments 318, 320, 322, and 324, and
segments 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, and 348
can be selectively interconnected using disposed programmable
interconnects 356 to form logic networks. In an alternative embodiment,
the interconnects can also be metal vias programmed during the
manufacturing process. In one embodiment of the present invention,
programmable interconnects 356 are buffers that, when programmed, act to
buffer a signal onto a long line and connect but normally do not buffer
the signals off of a long line.
Within exemplary tile 114, quad segments 310, 312, 314, and 316 and
segments 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, and 348
can be selectively interconnected using a combination of: (1) disposed
programmable interconnect points (PIPs), e.g., 354, 354a, 354b, and 354c;
(2) disposed programmable six-transistor matrices, e.g., 352a-352e; and
(3) disposed buffers, e.g., 356a and 356. Each of the programmable
six-transistor matrices 352a-352e comprises a collection of six
programmable transistors allowing the transfer of signals from one line to
any other line. For example, segment 326 can be coupled to segment 314 by
programming six-transistor matrix 352d. A representative design of a
buffered six-transistor matrix 352 is disclosed in pending commonly
assigned U.S. patent application, Ser. No. 08/548,926 filed Oct. 16, 1995,
the disclosure of which is hereby incorporated herein by reference. Other
six-transistor matrices are described in detail in U.S. Pat. No. 4,713,557
(incorporated herein by reference) entitled "Bidirectional Buffer
Amplifier" issued Dec. 15, 1987 to Carter. Note that bi-directional buffer
350 of the present invention is also described in U.S. Pat. No. 4,713,557.
Referring to FIGS. 1A and 3, a signal from CLB 112b can be transmitted to
CLB 112c using HSI tile 114a and adjacently located HSI tile 114b by
appropriately configuring one of six-transistor matrix 352a-d (of HSI tile
114a). Specifically, signals are passed from, by way of example, a segment
of segments 326, 328, 330, and 332 to a metal segment of segments 310,
312, 314, and 316 of horizontal tile 114a to one or more of the following
segments: segment 326, 328, 330, and 332 (of an adjacently located HSI
tile 114b) if a six-transistor matrix 352a-352d, respectively, is
programmed; segments 334, 336, and 338 (of an adjacently located HSI tile
114b) if PIPs 354a-354c are programmed; or segment 342, 344, 346, and 348
(of an adjacently located HSI tile 114b) if a buffer of buffers 356 is
properly configured.
Quad lines 310, 312, 314, and 316 can be selectively connected to segments
334, 336, 338, and 340 by programming PIPs 354 in a manner described with
reference to FIG. 4B. Further, signals on segments 326, 328, 330, 332,
334, 336, 338, 340, 342, 344, 346, and 348 can be programmably buffered
onto long lines 318, 320, 322, and 324 and routed to remotely located CLBs
in a manner that is well understood in the art. Due to loading
constraints, it is desirable to buffer clock and non-clock control signals
before providing such signals onto segments 310, 312, 314, and 316 or long
line segments 318, 320, 322, and 324. Accordingly, buffers 356 may
selectively couple segments 342, 344, 346, and 348 to segments 310, 312,
314, 316, 318, 320, 322, and 324.
With reference to FIG. 5, a diagram of a programmable switch matrix 220 is
shown. At the top, eight lines 214a pass through matrix 220 and at the
left eight lines 217a pass through matrix 220. At each intersection of a
line 214a and a line 217a, a six-transistor matrix 352 is placed. In this
manner, switch matrix 220 allows a signal originating from vertical lines
214a (or lines 214) to be placed onto lines 217a or 217. Similarly, switch
matrix 220 allows a signal originating from horizontal lines 217a (or
lines 217) to be placed onto lines 214a or 214.
Referring now to FIG. 6, a VSI tile 116 of the present invention is shown
in greater detail. VSI tile 116 comprises a plurality of vertical
conductive segments 410, 412, 414, 416, 418, 420, 422, and 424. In this
embodiment, segments 410, 412, 414, and 416 are quad line segments, and
segments 418, 420, 422, and 424 are long line segments. In one preferred
embodiment, quad line segments 410, 412, 414, and 416 can be
interconnected with adjacent vertical tiles 116 (and corners 118) to form
local, octal and quad signal lines, and segments 418, 420, 422, and 424
can be interconnected with adjacent tiles to form long lines which are
useful for routing clock or other control lines.
Also passing through vertical tile 116 of the present invention are a
plurality of horizontal conductive segments 426, 428, 430, 432, 434, 436,
438, 440, 442, 444, 446, and 448 which are part of the existing
interconnect structure of the CLB array and are not considered
"additional" routing resources added by the tiles of the present
invention. The layout positioning of segments 426, 428, 430, 432, 434,
436, 438, 440, 442, 444, 446, and 448 permit interface with input/output
ports of the adjoining CLBs to the left or right of VSI tile 116 as will
be described in more detail below.
As with HSI tile 114 of FIG. 3, VSI tile 116 of FIG. 6 includes active
elements such as bi-directional buffer 350 and programmable interconnects
comprising a plurality of six-transistor matrices 352, PIPs 354, and line
buffers 356 which permit the selective coupling of segments 410-424 to CLB
interconnect segments 426, 428, 430, 432, 434, 436, 438, 440, 442, 444,
446, and 448. With reference to the position of an exemplary vertical tile
116 in FIG. 2: lines (CLB ports) 426, 428, 430, and 432 correspond to
lines 217b; lines (CLB ports) 434, 436, 438, and 440 correspond to lines
218a; and lines (CLB ports) 442, 444, 446, and 448 correspond to lines
219b.
Referring now to FIG. 7, HSI tile 114 and VSI tile 116 are shown positioned
along the lower horizontal boundary of CLB 112 and along the left vertical
boundary of CLB 112, respectively. Selective interconnection capability
between tiles 114 and 116 is provided by corner tile 118 which, in one
preferred embodiment, includes a first plurality of disposed
six-transistor matrices 510, a second plurality of disposed PIPs 512, and
a third plurality of disposed line buffers 514. In one embodiment, the
vertical conductors are in a layer insulated from the horizontal
conductors with electrical connections there-between.
One skilled in the art will appreciate that additional (or fewer)
six-transistor matrices, buffers, or PIPs could be added to (or removed
from) tiles 114, 116 or 118 to alter the programmable capability of the
present invention. However, since each six-transistor matrix, buffer or
PIP will increase line loading and affect transmission rates, designers
skilled in the art can opt for a minimum configuration of interconnections
that permits flexible design options while minimizing degradation of
circuit parameters. Accordingly, corner tile 118 can, in some embodiments,
entirely omit interconnection capability and act as a jumper or
feed-through between adjacent horizontal tiles 114 and adjacent vertical
tiles 116.
FIG. 8 illustrates an exemplary logic element portion 210 of an exemplary
CLB 112 within one embodiment of the present invention. The logic element
210 contains two programmable look-up tables (e.g., RAMS) 714 and 716 that
are addressed by input signals 710 and 712, respectively. The data outputs
of tables 714 and 716 are input to programmable look-up table 720. The
data outputs of tables 714 and 716 and look-up table 720 are output to
various inputs of multiplexer (mux) 740, mux 742, mux 744, and mux 745.
Other inputs at 730 are also received by logic element 210. Outputs YQ and
XQ are taken from latches 750 and 752 respectively and outputs Y and X are
taken from mux 742 and 745, respectively. CLB 112 is also described on
pages 2-9 to 2-10 of "The Programmable Logic Data Book" by Xilinx, Inc. of
San Jose, Calif., (1994).
Generally, it is a particular advantage of the present invention that line
buffering and CLB interconnections can be configured in HSI tiles 114
and/or VSI tiles 116 rather than solely relying on connections set up by
switch matrices 220 (FIG. 2). It is a further advantage of the | | |