An improved interconnect structure in programmable devices gives a new dimension to the routing architecture, where architecture is divided into various domains. It includes at least one set of input lines, each set having predetermined number of input lines; an equal number of sets of routing lines, each set of routing lines being connected to a corresponding set of input lines using a switch box; thereby forming domain based routing structures, each domain being disjoint with the other domain. Segregating FPGA routing resources into various independent routing domains is done; each domain providing connectivity to route a signal to a set of sinks.
|
16. An interconnect structure comprising: a plurality of mutually exclusive routing domains, wherein each routing domain includes at least one group of input lines and at least one group of routing lines; and a structure operable to connect input lines in each said group of input lines to routing lines in a corresponding group of routing lines, and to connect routing lines in each said group of routing lines with other routing lines within their routing line group, wherein there is no connectivity between the plurality of mutually exclusive routing domains.
9. An interconnect structure for a programmable device, comprising:
a plurality of domains, wherein each domain includes at least one group of input lines and at least one group of routing lines; and
a structure operable to connect input lines in each said group of input lines to routing lines in a corresponding group of routing lines, and to connect routing lines in each said group of routing lines with other routing lines within their routing line group;
wherein there is no connectivity between the input and routing lines of each said domain to the input and routing lines of other domains in the interconnect structure.
7. A method for interconnecting programmable devices, comprising:
forming at least one independent group of input lines, wherein each group of input lines comprises a predefined number of input lines;
forming an equal number of groups of routing lines, wherein each group of routing lines comprises a plurality of routing lines; and
connecting said input lines in each group of input lines to a corresponding group of routing lines and connecting said routing lines in each group of routing lines with other routing lines within their routing line group to form multiple domains, wherein there is no connectivity between the multiple domains.
10. An electronic system, comprising:
a programmable device, wherein the programmable device includes an interconnect structure that comprises a plurality of domains, and wherein each domain includes at least one group of input lines and at least one group of routing lines; and
a structure operable to connect input lines in each said group of input lines to routing lines in a corresponding group of routing lines, and to connect routing lines in each said group of routing lines with other routing lines contained within their routing line group, wherein there is no connectivity between the input and routing lines of each said domain to the input and routing lines of other domains.
1. An interconnect structure for programmable devices, comprising:
one or more independent groups of input lines, wherein each said group of input lines has a predetermined number of input lines;
an equal number of groups of routing lines; and
a switch box cluster for connecting said input lines in each input group to routing lines in each corresponding group of routing lines and connecting each said routing line in each group of routing lines with other routing lines within their routing line group to form multiple domains, wherein there is no connectivity between the multiple domains, and wherein the switch box cluster includes at least one disjoint switch box and at least one Universal, Wilton, or Hyper-Universal switch box.
12. A method of interconnecting components within a programmable device, the method comprising:
defining at least one independent group of input lines, wherein each group of input lines comprises a number of input lines;
defining an equal number of groups of routing lines, wherein each group of routing lines comprises a number of routing lines;
generating instructions for interconnecting each said group of input lines to a corresponding group of routing lines;
generating instructions for interconnecting said routing lines in each group of routing lines to other routing lines within their routing line group;
using the corresponding instructions, interconnecting each said group of input lines to said corresponding group of routing lines to form domains, wherein there is no connectivity between the domains; and
using the corresponding instructions, interconnecting said routing lines in each group of routing lines to other routing lines within their routing line group.
2. The interconnect structure as recited in
3. The interconnect structure as recited in
4. The interconnect structure as recited in
5. The interconnect structure as recited in
6. The interconnect structure as recited in
8. The method recited in
11. The electronic system as recited in
13. The method as recited in
14. The method as recited in
15. The method as recited in
|
This application claims priority from Indian patent application No. 2114/Del/2004, filed Oct. 27, 2004, which is incorporated herein by reference.
When Integrated Circuits (ICs) were first introduced, they were extremely expensive and were limited in their functionality. Rapid strides in semiconductor technology have vastly reduced the cost while simultaneously increasing the performance of IC chips. However, the design, layout, and fabrication process for a dedicated, custom built IC remains quite costly. This is especially true for those instances where only a small quantity of a custom designed IC is to be manufactured. Moreover, the turn-around time (i.e., the time from initial design to a finished product) can frequently be quite lengthy, especially for complex circuit designs. For electronic and computer products, it is critical to be the first to market. Furthermore, for custom ICs, it is rather difficult to effect changes to the initial design. It takes time, effort, and money to make any necessary changes.
In view of the shortcomings associated with custom IC's, field programmable gate arrays (FPGAs) offer an attractive solution in many instances. Basically, FPGAs are standard, high-density, off-the-shelf ICs, which can be programmed by the user to a desired configuration. Circuit designers first define the desired logic functions, and the FPGA is programmed to process the input signals accordingly. Thereby, FPGA implementations can be designed, verified, and revised in a quick and efficient manner. Depending on the logic density requirements and production volumes, FPGAs are superior alternatives in terms of cost and time-to-market.
An FPGA essentially consists of an outer ring of I/O blocks surrounding an interior matrix of configurable logic blocks. The I/O blocks residing on the periphery of an FPGA are user programmable, such that each block can be programmed independently to be an input or an output and can also be tri-stated. Each logic block typically contains programmable combinatorial logic and storage registers. The combinatorial logic is used to perform Boolean functions on its input variables. Often, the registers are loaded directly from a logic block input, or they can be loaded from the combinatorial logic.
Interconnect resources occupy the channels between the rows and columns of the matrix of logic blocks and also between the logic blocks and the I/O blocks. These interconnect resources provide the flexibility to control the interconnection between two designated points on the chip. Usually, a metal network of lines runs horizontally and vertically in the rows and columns between the logic blocks. Programmable switches connect the inputs and outputs of the logic blocks and I/O blocks to these metal lines (called input & output connection boxes). Crosspoint switches and interchanges at the intersections of rows and columns are used to switch signals from one line to another (called switch boxes). Often, long lines are used to run the entire length and/or breadth of the chip.
The functions of the I/O blocks, logic blocks, and their respective interconnections are all programmable. Typically, a configuration program stored in an on-chip memory controls these functions. The configuration program is loaded automatically from an external memory upon power-up, on command, or programmed by a microprocessor as part of system initialization.
A typical symmetrical FPGA architecture is shown in the
With further developments taking place, the connection boxes of a logic cluster shown in
The disjoint switch box is very popular because of its simplicity and easy layoutability. A disjoint switch box is shown in
A typical configurable logic block would be as shown in
Another structure is given in G. Lemieux, P. Leventis, and D. Lewis. Generating highly-routable sparse crossbars for PLDs. In ACM/SIGDA Int. Symp. on FPGAs, pages 155-164, Monterey, Calif., February 2000.
But unlike universal switch-boxes, disjoint switch boxes are better with respect to predicting routing and are easy to layout on silicon.
Various embodiments provide for a domain based routing architecture where routing architecture is divided into various domains.
Various embodiments provide easy routing predictability and improved routing flexibility as well as improved compile times for EDA tools.
In one embodiment, an interconnect structure in programmable devices includes one or more independent groups of input lines, each said group having predetermined number of said input lines; an equal number of groups of routing lines; and a connection mechanism for connecting lines in each input group to the lines in each corresponding group of routing lines and lines of each group of routing lines with the routing lines of their routing line group, thereby forming domain based routing structures, each said domain being disjoint with the other domains.
The output lines of a logic block may be connected to any group of routing lines. The group of routing lines may contain a plurality of routing lines. The connection mechanism may include switch box (s) and connection boxes. Each group of input lines can drive a domain using connection boxes. The one or more independent groups of input lines can drive at least one domain using the routing lines. Each domain may include a switch box. All domains may include a common switch box. The group of input lines may be connected to the address/data lines of a memory in programmable devices. The routing lines may be unidirectional/bi-directional. The switch box may include disjoint switch boxes. The switch box may include universal switch boxes. The switch box may include Wilton switch boxes. The switch box may include hyper universal switch boxes. The programmable device may include an FPGA.
In another embodiment, a method for interconnecting programmable devices includes forming at least one independent group of input lines, each group having a predefined number of said input lines; providing equal number of groups of routing lines, each group comprising plurality of routing lines; and connecting each said group of input lines to a corresponding group of routing lines and lines of each group of routing lines with the routing lines of same group thereby forming a domain based routing structure enhancing software implementation as well as layouts. The group of input lines may be formed depending upon logical equivalence or functionality of input lines.
The invention will now be described with reference to the accompanying drawings.
The following discussion is presented to enable a person skilled in the art to make and use the invention. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Embodiments combine the features of a disjoint switch-box and various other switch-boxes to give a balanced tradeoff of routability, easy layoutability & software friendliness. The shortcomings of disjoint switch box have been overcome by a combination of disjoint and other types of switch boxes to yield a switch-box cluster with ease of layoutability, software friendly structure & increased routability.
Referring to
The domains may not necessarily be created by the connectivity to input matrices but could also be possible in other cases. For example, direct connectivity to the cluster of LUTs can lead to domain formation on the bases of connectivity to a particular LUT, i.e., tracks connected to a particular LUT are of the same domain. In memories, domains can be formed on different criteria, e.g., there could be one domain of data lines, another domain of address lines, yet another domain of control signals and the like.
However in
Connection box 51 is designed in such a way that different sets interact with different logic block input sets. In
The switch box 52 is disjoint in nature, i.e., line number 1 of left is always connected to line number 1 of top, bottom and right and so on for each line and side.
The connection between the lines of input multiplexer, say set A, and routing lines is as follows. The required number of routing lines of the first side are connected to set A of the connection box 51 which, in turn, are connected to the corresponding lines on all other sides of a switch box 52. Thus, all these lines are connected to set A in connection box. In brief, line number 1 will always remain connected to set A on all sides even after passing through switch box and connection box. All lines interacting with set A belong to domain 1, all lines interacting with set B belong to domain 2, all lines interacting with set C belong to domain 3 and all lines interacting with set D belong to domain 4.
The combination of “set definition at logic block”, “connection box topology” and “switch box topology” forms routing domains and divides the complete routing structure into various domains, which are mutually exclusive.
The biggest benefit of routing domains is achieved during software implementation and silicon implementations. Routing domains have much less connectivity (none in this case as all routing domains are mutually exclusive) with each other, hence logic related to a particular domain can be placed at one place while logic related to another domain can be placed at another place. It gives a high degree of flexibility during silicon routing or “floorplanning.” Different domains can be placed separately keeping different silicon issues into consideration and thereby provide better performance of silicon in terms of delay and/or area and/or development efforts.
Also, an FPGA implementation toolset can utilize this feature to improve performance. During routing, software routes nets between source and sink as per track availability of the routing tracks. The sink is available on a particular routing domain (usually just one), which is valid throughout the chip on all sides; the source need not search the track availability on other domains. Rather the source needs to search the track availability in a particular domain, which belongs to sink. Thus, domain based routing architecture reduces search space for software considerably.
To enhance routability, other switch boxes like Wilton, Universal & Hyper-Universal can be used in place of a disjoint switch box. Another embodiment of invention makes a tradeoff between Disjoint and other high routability switch boxes to get the best of both types of switch boxes.
In
Said figure is only an example of a possible structure of a “Clustered switch box” which preserves the domain concept. Instead of a universal switch box a Wilton, Hyper-Universal or a combination of such switch boxes or a new switch box can be used.
Embodiments of the invention can be applied to a routing fabric for FPGAs based on LUTs, multiplexers, ULMs, or CPLDs etc., or memory elements. Anyone skilled in the art can easily see its applicability to afore mentioned architectures.
FPGAs or other programmable devices including embodiments of the present invention may be contained in a variety of different types of electronic systems, such as computer systems.
From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention.
Digari, Kailash, Ayodhyawasi, Manuj
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5498975, | Nov 19 1992 | ALTERA CORPORATION, A DELAWARE CORPORATION | Implementation of redundancy on a programmable logic device |
5880598, | Jan 10 1997 | XILINX, Inc.; Xilinx, Inc | Tile-based modular routing resources for high density programmable logic device |
6282627, | Jun 29 1998 | Intel Corporation | Integrated processor and programmable data path chip for reconfigurable computing |
6477688, | Jul 17 1998 | Mentor Graphics Corporation | Logic equivalence leveraged placement and routing of an IC design |
6631510, | Oct 29 1999 | Intel Corporation | Automatic generation of programmable logic device architectures |
6870396, | Sep 02 2000 | MICROSEMI SOC CORP | Tileable field-programmable gate array architecture |
6934927, | Mar 06 2000 | MICROSEMI SOC CORP | Turn architecture for routing resources in a field programmable gate array |
7071732, | Dec 09 2003 | XILINX, Inc. | Scalable complex programmable logic device with segmented interconnect resources |
20030201795, | |||
20060139055, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 07 2005 | AYODHYAWASI, MANUJ | STMICROELECTRONICS PVT LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017356 | /0033 | |
Nov 07 2005 | DIGARI, KAILASH | STMICROELECTRONICS PVT LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017356 | /0033 | |
Nov 12 2007 | STMICROELECTRONICS PVT, LTD | STMicroelectronics NV | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020385 | /0574 | |
Dec 28 2007 | STMICROELECTRONICS N V | Sicronic Remote KG, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020385 | /0581 | |
Aug 11 2015 | Sicronic Remote KG, LLC | Mineral Lassen LLC | MERGER SEE DOCUMENT FOR DETAILS | 036940 | /0693 |
Date | Maintenance Fee Events |
Feb 14 2011 | ASPN: Payor Number Assigned. |
Dec 30 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 15 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 09 2021 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 06 2013 | 4 years fee payment window open |
Jan 06 2014 | 6 months grace period start (w surcharge) |
Jul 06 2014 | patent expiry (for year 4) |
Jul 06 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 06 2017 | 8 years fee payment window open |
Jan 06 2018 | 6 months grace period start (w surcharge) |
Jul 06 2018 | patent expiry (for year 8) |
Jul 06 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 06 2021 | 12 years fee payment window open |
Jan 06 2022 | 6 months grace period start (w surcharge) |
Jul 06 2022 | patent expiry (for year 12) |
Jul 06 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |