This invention relates to the general area of Field Programmable Gate Arrays (FPGA) In particular, it relates to the architecture of FPGA building blocks, arrays of modularized blocks, and their interconnection resources.
A digital logic circuit, generally formed as a cascade of separate logic functions, is a circuit that produces a digital output as a result of some logical operation on its digital inputs. Digital logic circuits are typically implemented on various types of integrated semiconductor chips. One widely known type of integrated chip is the Application Specific Integrated Circuit (ASIC), which is a custom-made integrated chip. Each ASIC is manufactured to implement a specific digital logic circuit.
Programmable chips are another type of integrated chips, but differ from ASICs because of their ability to implement any number of different complex digital logic circuits by configuring the underlying integrated chip. The programmable integrated chips are less costly, usually in a limited volume, than ASICs because a large number of similar integrated chips may be manufactured from a single design, which can later be configured to implement a wide variety of digital logic circuits. For this reason the cost of design and manufacturing is distributed over a large number of integrated chips.
An FPGA is one type of programmable integrated chips. The FPGA can either be permanently programmed by the user, such as in U.S. Pat. No. 4,758,745 by El Gamal, et al., or can be temporarily programmed by the user, as described in U.S. Pat. No. 4,870,302, by Freeman.
Typically, an FPGA consists of an array of modularized logic units and interconnection resources. It is an array of uncommitted gates with uncommitted wiring channels. Each logic unit can be programmed to implement a particular logic function. Various digital circuits may be implemented to execute desired functions by programming a number of logic blocks and interconnecting them using interconnection resources. In other words, to implement a particular circuit function, the circuit is mapped into the array and the wiring channels and appropriate connections are programmed to implement the necessary wiring connections that form the circuit function. A gate array circuit can be programmed to implement virtually any set of functions.
Of utmost importance in designing an FPGA is the topology of the logic units and the interconnection resources since different FPGA architecture provides different performance characteristics. Also, the programming of a gate array and the mapping of a desired functionality onto it depend upon the topology of the gate array. If the logic units of the gate array are high-level blocks, such as counters, parity generators, and the like, then the amount of programming required is limited to the interconnections among these large- or coarse-grain units.
If, on the other hand, the logic units of the gate array are low-level blocks, such as gates, latches, and the like, then the amount of programming is significantly higher, because these smaller, or fine-grain, units need to be interconnected to affect the higher-level functions. In some designs the use of the fine-grain units results in higher circuit densities because the desired functions can be implemented more efficiently with small low-level units rather than with larger high-level units whose high-level functionality is useless in the particular circumstances.
A highly complex logic unit may be able to perform a large number of complex operations, but if a relatively simple operation is desired, much of the functionality and semiconductor real estate will be wasted. At the same time, a logic unit consisting of basic logic gates requires extensive wiring to perform sophisticated operations. In other words, some complex designs cannot be efficiently embodied in a fine-grain gate array because the amount of interconnection required among the low-level units exceeds the capacity of the gate array.
The traditional implementations of the FPGA logic element units have predominantly focused on a single logic element producing a combinatorial function with arithmetic, sequential, and register packing capabilities. With such architecture, and in many applications, many of the capabilities of an FPGA logic element may remain unused. Various architectures have been proposed to optimize the tradeoffs among circuit building blocks, routing efficiency, performance limits, and the like. There is a need for logic units or a cluster of logic units that optimizes flexibility and functionality of the FPGAs.
Various embodiments of the invention will now be described. The following description provides specific details for a thorough understanding and enabling description of these embodiments. One skilled in the art will understand, however, that the invention may be practiced without many of these details. Additionally, some well-known structures or functions may not be shown or described in detail, so as to avoid unnecessarily obscuring the relevant description of the various embodiments.
The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments of the invention. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
The described embodiments illustrate significant performance enhancement by split-mode dual combinatorial capabilities, combined synchronous control logic, independent and fully swappable outputs, dividable D flip-flop, and a fast data processing path based on such possibilities.
The present invention relates to the general area of Field Programmable Gate Arrays (FPGAs), and, in particular, to the architecture of the logic units that are the building blocks of the FPGAs, hereinafter called “logic heads,” and the cascade of such logic heads. A cascade of the proposed logic heads does not require traditional channel-based routing resources and, as such, improves efficiency in several areas. In the detailed description provided below, different embodiments of the proposed logic head are disclosed, and some of their functional capabilities are illustrated. In addition, some of the advantages of cascading logic heads are described, and a few of the functional capabilities of such cascades will be presented.
In an embodiment illustrated in
The LUT3 look-up tables are universal function generators and not necessarily limited to 3-inputs as shown in the logic diagrams. The two D-latches are triggered by opposite clock levels, and if combined together, they can form an edge-triggered D flip-flop. Without requiring channel-based or any external routing resources, required by most traditional FPGAs, a fast data processing path can be formed by directly linking the logic heads.
The logic function of each logic head is determined by the content of its look-up table and the appropriate routing of its internal signals. As illustrated by the embodiments of this invention, each logic head can operate in a split mode, and perform two separate functions in parallel or in series. Each logic head can also perform 2-bit arithmetic functions, and while in a cascading chain the logic heads perform multiple other functions. A cascading chain of logic heads improves logic efficiency in addition to significantly enhancing the performance without requiring traditional channel-based routing resources.
On the other hand, the logic units of most of the prior art FPGAs require 4-input look-up tables, dedicated carry logic, and multiple registers, which make them more complicated while performing the same or fewer functions. A few of the presently available commercial logic unit structures use 3-input look-up tables to implement logic functions, as indicated in U.S. Pat. No. 6,476,636 by Jung-Cheun Lien and U.S. Pat. No. 6,236,229 by Zvi Or-Bach. Also, regarding the cascading techniques, some prior arts include Altera's 10K family, which uses an AND gate, and Xilinx Virtex-architecture, which uses dedicated 2-to-1 multiplexers.
The embodiments of the present invention have expanded the flexibility of the logic units by, among other advantages, providing for split-mode dual combinatorial capabilities, which are supported by the two independent logic head outputs, and by the possibility of the formation of cascading logic chains, which employ dynamic multiplexers.
The two LUT3s of each logic head can implement a LUT4 with the help of a 2-to-1 dynamic multiplexer. The two LUT3s can also produce two LUT3s, two LUT2s, or one LUT3 and one LUT2, in parallel. The registered or the non-registered outputs of the two LUT3s, LUT2s, LUT4, or some of the inputs of the logic head can be routed to either of its two outputs, OP1 or OP2. Feeding back one or both of the outputs helps implement additional functionality such as counting, accumulating, finite state machines, or multi-level random logic. The provided D-latches, in addition to serving the logic head or its neighboring logic heads, may be used along with the D-latches of other logic heads to form a register chain.
In the following paragraphs, different embodiments of the invention will demonstrate how a logic head is programmed to implement any mentioned function. In the figures, the internal signal flow of the logic head, related to its function, is illustrated with a broken line. Based on these examples, and their associated figures, a person of ordinary skill in the relevant art will be able to program and configure such circuits and control or hard-wire, the multiplexers, to perform a desired function mentioned herein. (Hereinafter “hard-wiring” of a multiplexer will be referred to as “programming” the multiplexer.)
In the arrangement of
If the registered version of the output of multiplexer 107 is desired, appropriate control of multiplexer 108, by Sload and Syn_Rst lines, routes the multiplexer 107 output to multiplexers 109 and 110 and from multiplexers 109 and 110, by appropriate programming, to D-latch 112 and/or 114. Programming of multiplexers 116 and/or 118 will make the latched outputs of D-latch 112 and/or 114 available at OP1 and/or OP2. Proper programming of multiplexers 109, 110, 116, and 118 will route the output of the D-latch 114 through the D-latch 112 before it appears at OP1 and/or OP2. With this arrangement the logic head is a LUT4 combined with a D flip-flop.
The embodiment illustrated in
The top row cascade chain of
In this embodiment the outputs of the two D-latches 112 and 114 of any stage can be connected to any of the three inputs of the corresponding LUT3 of the next stage. For example, the output of the D-latch 112 of stage n can be connected to IP1, IP2, or IP3 of the LUT3 101 of stage (n+1) and the output of the D-latch 114 of stage n can be connected to IP4, IP5, or IP6 of the LUT3 102 of stage (n+1). This embodiment is possible through appropriate programming of multiplexers 109, 110, 116, and 118.
In an alternative embodiment, similar to the one shown in
The embodiment illustrated in
In this embodiment every other stage uses D-latch 112 and the remaining in-between stages use D-latch 114. In this embodiment the output of the employed D-latch of any stage can be connected to any of the four inputs of the corresponding LUT4 of the next stage. For example, the output of the D-latch 112 of stage n shown in
In yet another embodiment shown in
In general, among other functions, a single or a cascade of logic heads can be utilized as:
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. When the claims use the word “or” in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
The above detailed description of embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. Also, the teachings of the invention provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various embodiments described above can be combined to provide further embodiments.
All of the above patents and applications and other references, including any that may be listed in accompanying filing papers, and U.S. patent application Ser. No. 10/883,901 filed Jul. 2, 2004, titled “LOGIC CELL FOR FIELD PROGRAMMABLE GATE ARRAY,” AND U.S. patent application Ser. No. 10/916,232 filed Aug. 11, 2004, titled “FIELD PROGRAMMABLE GATE ARRAY LOGIC UNIT AND ITS CLUSTER,” are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further embodiments of the invention.
Changes can be made to the invention in light of the above Detailed Description. While the above description details certain embodiments of the invention and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Therefore, implementation details may vary considerably while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the invention under the claims.
While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as an embodied in computer-readable medium, other aspects may likewise be embodied in a computer-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
Number | Name | Date | Kind |
---|---|---|---|
3634929 | Yoshida et al. | Jan 1972 | A |
4322822 | McPherson | Mar 1982 | A |
4488262 | Basire et al. | Dec 1984 | A |
4490900 | Chiu | Jan 1985 | A |
4502208 | McPherson | Mar 1985 | A |
4507757 | McElroy | Mar 1985 | A |
4543594 | Mohsen et al. | Sep 1985 | A |
4546273 | Osman | Oct 1985 | A |
4599705 | Holmberg et al. | Jul 1986 | A |
4613886 | Chwang | Sep 1986 | A |
4677742 | Johnson | Jul 1987 | A |
4758745 | El Gamal et al. | Jul 1988 | A |
4758986 | Kuo | Jul 1988 | A |
4794562 | Kato et al. | Dec 1988 | A |
4823181 | Mohsen et al. | Apr 1989 | A |
4870302 | Freeman | Sep 1989 | A |
4876220 | Mohsen et al. | Oct 1989 | A |
4899205 | Hamdy et al. | Feb 1990 | A |
4943538 | Mohsen et al. | Jul 1990 | A |
4962342 | Mead et al. | Oct 1990 | A |
5138410 | Takebuchi | Aug 1992 | A |
5150179 | Gill | Sep 1992 | A |
5303185 | Hazani | Apr 1994 | A |
5304871 | Dharmarajan et al. | Apr 1994 | A |
5323342 | Wada et al. | Jun 1994 | A |
5412244 | Hamdy et al. | May 1995 | A |
5455525 | Ho et al. | Oct 1995 | A |
5477499 | Van Buskirk et al. | Dec 1995 | A |
5496756 | Sharma et al. | Mar 1996 | A |
5576568 | Kowshik | Nov 1996 | A |
5578848 | Kwong et al. | Nov 1996 | A |
5586270 | Rotier et al. | Dec 1996 | A |
5587603 | Kowshik | Dec 1996 | A |
5600265 | El Gamal et al. | Feb 1997 | A |
5650336 | Eriguchi et al. | Jul 1997 | A |
5675541 | Leterrier | Oct 1997 | A |
5675547 | Koga | Oct 1997 | A |
5745417 | Kobayashi et al. | Apr 1998 | A |
5781032 | Bertolet et al. | Jul 1998 | A |
5784636 | Rupp | Jul 1998 | A |
5825200 | Kolze | Oct 1998 | A |
5825201 | Kolze | Oct 1998 | A |
5880512 | Gordon et al. | Mar 1999 | A |
5889411 | Chaudhary | Mar 1999 | A |
5892962 | Cloutier | Apr 1999 | A |
5909049 | McCollum | Jun 1999 | A |
5929482 | Kawakami | Jul 1999 | A |
5949712 | Rao et al. | Sep 1999 | A |
5986931 | Caywood | Nov 1999 | A |
5986939 | Yamada | Nov 1999 | A |
6016268 | Worley | Jan 2000 | A |
6031761 | Ghilardelli et al. | Feb 2000 | A |
6034893 | Mehta | Mar 2000 | A |
6040968 | Duvvury et al. | Mar 2000 | A |
6044012 | Rao et al. | Mar 2000 | A |
6047243 | Bang | Apr 2000 | A |
6055205 | Rao et al. | Apr 2000 | A |
6064225 | Andrews et al. | May 2000 | A |
6064595 | Logie et al. | May 2000 | A |
6077719 | Koike | Jun 2000 | A |
6084428 | Kolze et al. | Jul 2000 | A |
6097077 | Gordon et al. | Aug 2000 | A |
6153463 | Wei et al. | Nov 2000 | A |
6157568 | Schmidt | Dec 2000 | A |
6166954 | Chern | Dec 2000 | A |
6177830 | Rao | Jan 2001 | B1 |
6198652 | Kawakubo | Mar 2001 | B1 |
6214666 | Mehta | Apr 2001 | B1 |
6215140 | Reisinger et al. | Apr 2001 | B1 |
6218274 | Komatsu | Apr 2001 | B1 |
6232631 | Schmidt et al. | May 2001 | B1 |
6236229 | Or-Bach | May 2001 | B1 |
6249809 | Bro | Jun 2001 | B1 |
6282123 | Mehta | Aug 2001 | B1 |
6294809 | Logie | Sep 2001 | B1 |
6297103 | Ahn et al. | Oct 2001 | B1 |
6304666 | Warren et al. | Oct 2001 | B1 |
6337250 | Furuhata | Jan 2002 | B2 |
6351428 | Forbes | Feb 2002 | B2 |
6421293 | Candelier et al. | Jul 2002 | B1 |
6431456 | Nishizawa et al. | Aug 2002 | B2 |
6445619 | Mihnea et al. | Sep 2002 | B1 |
6456535 | Forbes et al. | Sep 2002 | B2 |
6459634 | Sher | Oct 2002 | B1 |
6476636 | Lien et al. | Nov 2002 | B1 |
6515509 | Baxter | Feb 2003 | B1 |
6556481 | Hsu et al. | Apr 2003 | B1 |
6602729 | Lin | Aug 2003 | B2 |
6633182 | Pileggi et al. | Oct 2003 | B2 |
6650143 | Peng | Nov 2003 | B1 |
6674670 | Jeung | Jan 2004 | B2 |
6678646 | McConnell et al. | Jan 2004 | B1 |
6700151 | Peng | Mar 2004 | B2 |
6753590 | Fifield et al. | Jun 2004 | B2 |
6754881 | Kuhlmann et al. | Jun 2004 | B2 |
6777757 | Peng et al. | Aug 2004 | B2 |
6862205 | Agata et al. | Mar 2005 | B2 |
20010003374 | Bohmer et al. | Jun 2001 | A1 |
20030218920 | Harari | Nov 2003 | A1 |
20040155677 | Lewis et al. | Aug 2004 | A1 |
20050275427 | Wang et al. | Dec 2005 | A1 |
Number | Date | Country |
---|---|---|
0 295 935 | Dec 1988 | EP |
61292295 | Dec 1986 | JP |
Number | Date | Country | |
---|---|---|---|
20060232296 A1 | Oct 2006 | US |