« 上一頁繼續 »
PROGRAMMABLE LOGIC DEVICE HAVING
LOGIC ARRAY BLOCK INTERCONNECT
LINES THAT CAN INTERCONNECT LOGIC
ELEMENTS IN DIFFERENT LOGIC BLOCKS
1. Field of the Invention
The present invention generally relates to Logic Array Block (LAB) based Programmable Logic Devices (PLDs), 10 and more particularly, LAB interconnect lines that have the ability to be interconnect Logic Elements (LEs) in two different LABs.
2. Description of Related Art
A Programmable Logic Device (PLD) is a semiconductor integrated circuit that contains fixed logic circuitry that can be programmed to perform a host of logic functions. In the semiconductor industry, PLDs are becoming increasingly popular for a number of reasons. Due to the advances of chip 2Q manufacturing technology, application specific integrated circuits (ASICs) designs have become incredibly complex. This complexity not only adds to design costs, but also the duration of time needed to develop an application specific design. To compound this problem, product life cycles are 25 shrinking rapidly. As a result, it is often not feasible for original equipment manufacturers (OEMs) to design and use ASICs. OEMs are therefore relying more and more on PLDs. The same advances in fabrication technology have also resulted in PLDs with improved density and speed perfor- 3Q mance. Sophisticated programming software enables complex logic functions to be rapidly developed for PLDs. Furthermore, logic designs generally can also be easily migrated from one generation of PLDs to the next, further reducing product development times. The closing of the price-perfor- 35 mance gap with ASICs and reduced product development times makes the use of PLDs compelling for many OEMs.
The architecture of most PLDs defines a two-dimensional array of logic blocks. Row and column inter-logic block lines, typically of varying length and speed, provide signal and 40 clock interconnects between the blocks of logic in the array. The blocks of logic are often referred to by various names, for example as Logic Array Blocks or LABs by the Altera Corporation, assignee of the present application, or Complex Logic Blocks (CLBs), as used by Xilinx Corporation. In the 45 Altera architectures, the LABs are further broken into a plurality of individual logic elements referred to as Logic Elements (LEs) or Adaptive Logic Modules (ALMs). With the Xilinx architecture, the CLBs also include a group of logic elements called Logic Cells or (LCs). The LEs, LCs, or 50 ALMS each typically include such elements as look up tables (LUTs), registers for generating registered outputs, adders and other circuitry to implement various logic and arithmetic functions. For the sake of simplicity, any block of logic containing multiple LEs or ALMs, regardless if organized into a 55 LAB or CLBs, is hereafter generically referred to as a "LABs". In no way should the term "LAB" be construed as limiting the present invention to a particular PLD architecture and is intended to cover any PLD architecture that uses any type of logic elements grouped together in a block. 60
The interconnect of most PLDs includes at least two levels: (i) inter-LAB lines that provide the routing between LABs; and (ii) an intra-LAB lines that provide routing within the LABs. For detailed explanation of a two level interconnect hierarchy for a PLD, see U.S. Pat. No. 6,970,014, incorpo- 65 rated herein for all purposes. A brief summary of a two level architecture, however, is provided below.
The inter-LAB interconnect typically includes a plurality of horizontal and vertical lines having a length spanning a predetermined number of LABs. In various PLDs, the interLAB lines are not necessarily the same length. For example, it has been known to use global, half, quarter length lines as well as staggered lines each that run a fixed number of LABs (e.g., 4 LABs). "Stitching" buffers and switching multiplexers are periodically provided along the inter-LAB lines. The stitching buffers are provided to stitch together the lines of a given channel and to buffer the signals propagating between the stitched lines. The switching multiplexers are typically provided at the intersection of horizontal and vertical lines and are provided to switch a signal from a horizontal line to a vertical line or vice-versa.
The lower level of interconnect, often referred to as "LAB lines", provide dedicated routing within a given LAB. In other words, LAB lines interconnect the LEs within a given LAB, but cannot directly communicate with other LEs in other LABs in the array. With this arrangement, the LEs within the same LAB can directly communicate with one another at a relatively high speed. Communication between LEs in different LABs, however, is slower because signals have to be first routed and propagate through the inter-LAB interconnect to the LAB lines of the second LAB.
The issue with the aforementioned interconnect hierarchy is there is no way for an LE in one LAB to directly communicate with an LE in another LAB. The strict hierarchy of limiting intra LAB lines to only within a given LAB means that there is a hard boundary between the individual LABs in known PLD architectures. Consequently, with complex logic designs where many LABs are used, performance is often compromises by the propagation time required to send signals between LABs.
A PLD with LAB interconnect lines that span adjacent LABs in the array and that have the ability to interconnect two LEs in the different LABs is therefore needed.
SUMMARY OF THE INVENTION
A PLD with LAB interconnect lines that span adjacent LABs in the array and that have the ability to interconnect two logic elements in the different LABs is disclosed. The PLD includes a plurality of LABs arranged in an array and a plurality of inter-LAB lines interconnecting the LABs of the array. Each of the LABs include a predetermined number of logic elements, one or more control signals distributed among the predetermined number of logic elements in the LAB, and LAB lines spanning between logic elements in different LABs in the array. In various embodiments, the LAB lines are arranged in a staggered pattern with a predetermined pitch between the lines. In other embodiments, the control signals of adjacent LABs can overlap, allowing control signals to be routed to the logic elements of adjacent LABs.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings, which illustrate specific embodiments of the present invention.
FIG. 1 is a block diagram of a Programmable Logic Device (PLD) architecture having LAB lines that run between adjacent LABs in accordance with the present invention.
FIG. 2A is a logic diagram of a standard LAB.
FIG. 2B is an alternative programmable interconnect pattern between the LAB lines and the input of an LE.
FIG. 3 illustrates a multiplexer arrangement for providing inputs to a LAB.
FIG. 4 is a logic diagram of a LAB according to one embodiment of the present invention.
FIG. 5 is a logic diagram of a LAB according to another 5 embodiment of the present invention.
It should be noted that like reference numbers refer to like elements in the figures.
DETAILED DESCRIPTION OF SPECIFIC 10
The present invention will now be described in detail with reference to a various embodiments thereof as illustrated in the accompanying drawings. In the following description, 15 specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without using some of the implementation details set forth herein. It should also be understood that well 20 known operations have not been described in detail in order to not unnecessarily obscure the present invention. Further, it should be noted that the techniques of the present invention could be applied to a variety of systems or electronic devices such as programmable devices and application-specific inte- 25 grated circuit (ASIC) devices.
Referring to FIG. 1, a block diagram of a Programmable Logic Device (PLD) having LAB lines that run between adjacent LABs in accordance with the present invention is shown. The PLD 10 includes a plurality of LABs 12 arranged 30 in a two dimensional array. Each of the LABs 12 includes a plurality of logic elements 14 and LAB lines 16. The PLD 10 also includes a plurality of horizontal and vertical inter-LAB lines 18, which are used to route signals between the LABs 12. (For the sake of simplicity, the individual LAB lines 16 35 and the inter-LAB lines 18 are not illustrated in the figure.)
In accordance with different embodiments of the invention, the number of logic elements 14 per LAB 12 may vary, from two to sixteen for example. Similarly, the length of the horizontal and vertical intra-LAB lines 18 may also vary. For 40 example, the lines 18 may span the entire height or width of the array, half or a quarter of the array, or some other arbitrary length. In some embodiments, the lines 18 may span a predetermined number of LABs 12, such as two, four, eight, sixteen or more. The individual lines 18 may also be arranged 45 in a staggered pattern with respect to one another. In other embodiments, inter-Lab lines 18 of a given channel may be stitched together by stitching buffers and switching multiplexers may be used to route signals from horizontal lines to vertical lines and vice versa. In yet another embodiment, the 50 lines 18 may be L-shaped and run in both the horizontal and vertical directions. For more details on the inter-LAB lines 18, see U.S. Pat. No. 6,970,014, incorporated herein for all purposes.
With the present invention, the individual LAB lines 16 are 55 not exclusively aligned or included within the boundaries of the corresponding LAB 12. As described and illustrated in more detail below, the individual LAB lines 16 have different start and end points with respect to their corresponding LAB 12. Accordingly, some of the LAB lines 16 may span more 60 than one LAB 12. Individual LAB lines 16 may therefore connect logic elements 14 in different LABs 12. For this reason, the lab lines 16 in FIG. 1 are illustrated as being "continuous", i.e., not terminating at the boundary of each LAB 12. 65
Prior to explaining the details of the LAB lines 16 in accordance with the present invention, a brief review of a
typical prior art LAB is provided. By contrasting a prior art LAB, the features and advantages of the present invention can be better appreciated.
Referring to FIG. 2A, a logic diagram of a standard LAB is shown. With a standard LAB 12, the boundary (as designated by the dashed line around the LAB) is well defined. The LAB 12 includes a plurality of logic elements 14 interconnected by a plurality of LAB lines 16. As illustrated, the individual LAB lines 16 all have the same start and termination point at the top most and bottom most logic elements 14 respectively. A programmable interconnect pattern 22 is provided at the intersection between the inputs to the logic elements 14 the LAB lines 16. Each logic element generates one or more outputs 25. The LAB 14 also includes one or more control signal generators 24, which generate control signals 26 that are distributed to each of the logic elements 14 within the LAB 12. In various embodiments, the control signals include, but are not limited to, the following: clock signals, clock enable signals, clear signals and load signals. Since the individual LAB lines 16 span only the logic elements 16 within the LAB 12, signals can be routed only within the LAB 12. If a signal is to be routed to a logic element 14 in another LAB 12, the inter-LAB interconnects 18 must be used. For more information on the control signals, see The Stratix II Architecture, Functional Description, pages 2-1 through 2-106, Altera Corporation document number SII1002-4.2, August, 2006 for example, incorporated by reference herein for all purposes.
The programmable interconnect pattern 22 is made up of a plurality of programmable connections (as represented by black dots in the figures). A single programmable connection is provided at the intersection of the inputs to the logic elements 14 and the LAB lines 16. According to various embodiments, the programmable connections may include multiplexers, pass transistors, configuration RAM storage cells, ROM storage cells, fuses, or any other known programmable elements used in the art.
Referring to FIG. 2B, an alternative programmable interconnect pattern 22 between the LAB lines 16 and the input of an LE14 is shown. In FIG. 2A, the interconnect pattern shows a pattern where alternating LAB lines 16, starting from left to right, are connected to the second and forth or the first and third inputs to each logic element 14 respectively. In FIG. 2B, the pattern shows, starting from the left to right, the LAB lines 16 connected to the first and third, first and fourth, second and third, and second and fourth inputs of the logic element 14. With the next four lines 16, again moving from left to right, the above-defined pattern is repeated. It should be noted that the patterns 22 shown in FIGS. 2A and 2B are examples and should not be construed as limiting the present invention. Any suitable pattern 22 may be used.
In FIG. 2, the routing drivers 28 for driving the LAB 12 is a simplified logic diagram. In actual embodiments, the driver functions represented by element 28 includes a number of LAB Input Multiplexers (LIMs) or Driver Input Multiplexers (DIMs), which may connect to either Horizontal or Vertical wires (HDIMs) and (VDIMs).
Referring to FIG. 3, a detailed logic diagram forthe routing drivers 28 is shown according to one embodiment of the invention. The routing drivers 28 include a number of LIMs and DIMs, each designated with either an "L" (i.e., LIM), "V" (i.e., HDIM) or "V" (i.e., VDIM). Each of these multiplexers has inputs that may include one or more routing inter-LAB lines 18 (both horizontal and vertical), or outputs from one or more logic elements 14. The HDIM drives horizontal interLAB lines 18 and is capable of receiving inputs from logic elements 14 from the adjacent LABs 12 (i.e., the LABs 12 on the left and the right of the HDIM multiplexer) as well as both