Claims
- 1. An interconnect structure for a programmable logic device, the programmable logic device including a plurality of substantially identical tiles, each tile including a logic block, the interconnect structure in each tile comprising:a plurality of single-length buses for coupling the logic block to any adjacent logic blocks; a plurality of vertical intermediate-length buses for coupling the logic block to non-adjacent logic blocks in a vertical direction; a plurality of horizontal intermediate-length buses for coupling the logic block to non-adjacent logic blocks in a horizontal direction; and a switching structure for selectively coupling the vertical intermediate-length buses and the horizontal intermediate-length buses to the logic block via the single-length buses.
- 2. The interconnect structure of claim 1, wherein the switching structure includes a plurality of programmable interconnect points for coupling each line in at least one intermediate-length bus to N single-length buses, wherein N is less than the total number of single-length buses.
- 3. The interconnect structure of claim 1, wherein the switching structure includes a plurality of programmable interconnect points for coupling each line in each intermediate-length bus to N single-length buses, wherein N is less than the total number of single-length buses.
- 4. The interconnect structure of claim 1, wherein each vertical intermediate-length bus traverses at least two logic blocks without coupling to the at least two logic blocks.
- 5. The interconnect structure of claim 1, wherein each horizontal intermediate-length bus traverses at least two logic blocks without coupling to the at least two logic blocks.
- 6. The interconnect structure of claim 1, wherein at least one vertical intermediate-length bus includes a line that is abutting another line in another vertical intermediate-length bus, and wherein said switching structure includes a programmable connection for connecting the abutting lines.
- 7. The interconnect structure of claim 1, wherein at least one horizontal intermediate-length bus includes a line that is abutting another line in another intermediate-length bus, and wherein said switching structure includes a programmable connection for connecting the abutting lines.
- 8. The interconnect structure of claim 1, wherein the logic block includes an input multiplexer for receiving inputs from the single-length buses.
- 9. The interconnect structure of claim 8, wherein the input multiplexer further receives inputs from one of the horizontal intermediate-length buses and the vertical intermediate-length buses.
- 10. The interconnect structure of claim 8, further including a plurality of long lines, wherein the input multiplexer provides outputs to at least one of the plurality of long lines.
- 11. The interconnect structure of claim 1, wherein the logic block includes an output multiplexer for providing outputs to the single-length buses.
- 12. The interconnect structure of claim 11, wherein the switching structure includes a plurality of programmable connections for coupling the outputs to each single-length bus.
- 13. A method of designing an interconnect structure for a programmable logic device, the programmable logic device including a plurality of substantially identical tiles, each tile including a logic block, the method comprising:providing a plurality of single-length buses for coupling the logic block to any adjacent logic blocks; providing a plurality of vertical intermediate-length buses for coupling the logic block to non-adjacent logic blocks in a vertical direction; providing a plurality of horizontal intermediate-length buses for coupling the logic block to non-adjacent logic blocks in a horizontal direction; and providing a switching structure for selectively coupling the vertical intermediate-length buses and the horizontal intermediate-length buses to the first logic block via the single-length buses.
- 14. The method of claim 13, further including providing a plurality of programmable interconnect points in the switching structure for coupling each line in at least one intermediate-length bus to N single-length buses, wherein N is less than the total number of single-length buses.
- 15. The method of claim 13, further including providing a plurality of programmable interconnect points in the switching structure for coupling each line in each intermediate-length bus to N single-length buses, wherein N is less than the total number of single-length buses.
- 16. The method of claim 13, further including providing that each vertical intermediate-length bus traverses at least two logic blocks without coupling to the at least two logic blocks.
- 17. The method of claim 13, further including providing that each horizontal intermediate-length bus traverses at least two logic blocks without coupling to the at least two logic blocks.
- 18. The method of claim 13, further including providing a line in at least one vertical intermediate-length bus that is abutting another line in another vertical intermediate-length bus, and programmably connecting the abutting lines.
- 19. The method of claim 13, further including providing a line in at least one horizontal intermediate-length bus that is abutting another line in another intermediate-length bus, and programmably connecting the abutting lines.
- 20. The method of claim 13, further including providing means for receiving inputs from the single-length buses and selectively providing the inputs to the logic block.
- 21. The method of claim 13, further including providing means for receiving inputs from one of the horizontal intermediate-length buses and the vertical intermediate-length buses and selectively providing the inputs to the logic block.
- 22. The method of claim 13, further including providing a plurality of long lines and allowing the logic block to drive outputs to at least one of the plurality of long lines.
- 23. The method of claim 13, further including driving a plurality of outputs from the logic block onto each single-length bus.
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a divisional application of commonly assigned, U.S. patent application Ser. No. 09/574,741, invented by Steven P. Young, Kamal Chaudhary, and Trevor J. Bauer, filed May 18, 2000 now U.S. Pat. No. 6,204,690;
which is a divisional application of commonly assigned U.S. patent application Ser. No. 09/311,782, invented by Steven P. Young, Kamal Chaudhary, Trevor J. Bauer, Bernard J. New, and Shekhar Bapat, filed May 13, 1999 and issued Aug. 22, 2000 as U.S. Pat. No. 6,107,827;
which is a divisional application of commonly assigned U.S. patent application Ser. No. 08/823,265, invented by Steven P. Young, Bernard J. New, Nicholas J. Camilleri, Trevor J. Bauer, Shekhar Bapat, Kamal Chaudhary, and Sridhar Krishnamurthy, filed Mar. 24, 1997 and issued Oct. 5, 1999 as U.S. Pat. No. 5,963,050;
which is a continuation-in-part application of commonly assigned U.S. patent application Ser. No. 08/806,997, invented by Steven P. Young, Kamal Chaudhary, and Trevor J. Bauer, filed Feb. 26, 1997 and issued Jun. 22, 1999 as U.S. Pat. No. 5,914,616,
all of which are incorporated herein by reference.
This application further relates to the following commonly assigned co-pending U.S. patent application:
Ser. No. 08/786,818, invented by Kenneth D. Chapman and Steven P. Young, entitled “CONFIGURABLE LOGIC BLOCK WITH AND GATE FOR EFFICIENT MULTIPLICATION IN FPGAs” and filed Jan. 21, 1997,
which is incorporated herein by reference.
US Referenced Citations (64)
Foreign Referenced Citations (10)
Number |
Date |
Country |
0461798A2 |
Jun 1991 |
EP |
0451798A2 |
Jun 1991 |
EP |
0 630 115 A2 |
Dec 1994 |
EP |
0748049 |
Nov 1996 |
EP |
0748049 A |
Nov 1996 |
EP |
746107A2 |
Dec 1996 |
EP |
2295738A |
Jun 1996 |
GB |
WO 9305577 |
Aug 1992 |
WO |
WO9410754 |
May 1994 |
WO |
GB2300951A |
Nov 1996 |
WO |
Non-Patent Literature Citations (9)
Entry |
Xilinx, Inc., “The Programmable Logic Data Book” 1996, available from Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, pp. 4-11 to 4-23 and 4-32 to 4-37. |
Lucent Technologies, Microelectronics Group, ORCA, “Field-Programmable Gate Arrays Data Book,” Oct. 1996, pp. 2-9 to 2-20. |
Altera Corporation, “FLEX 10K Embedded Programmable Logic Family Data Sheet” from the Altera Digital Library, 1996, available from Altera Corporation, 2610 Orchard Parkway, San Jose, CA 95134-2020, pp. 31-53. |
“The Programmable Logic Data Book”, 1996, available from Zilinx Inc., 2100 Logic Drive, San Jose, California, 95134, pp. 4-1 to 4-49. |
Neil H. E. Weste and Kamran Eshraghian, “Principles of CMOS VLSI: A Systems Approach”, by AT&T Bell Laboratories, Inc, published by Addison-Wesley Publishing Company, copyright 1985, pp. 56. |
“The Programmable Gate Array Data Book”, 1989, available from Xilinx Inc., 2100 Logic Drive, San Jose, California, 95124, pp. 6-30 through 6-44. |
“The Programmable Logic Data Book”, 1993, available from Xilinx Inc., 2100 Logic Drive, San Jose, California, 95124, pp. 1-1 through 1-7; 2-1 through 2-42; 2-97 through 2-130; and 2-177 through 2-204. |
Luis Morales, “Boundary Scan in XC4000 Devices”, XAPP 017.001, Oct. 1992, pp. 2-108 and 2-180. |
Xilinx, Inc., “The Programmable Logic Data Book”, Sept. 1996, available from Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, pp. (4-188 to 4-190); (4-294 to 4-295); and (13-13 to 13-15). |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08/806997 |
Feb 1997 |
US |
Child |
08/823265 |
|
US |