WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Preprogramming testing in a field programmable gate array    
United States Patent5623501   
Link to this pagehttp://www.wikipatents.com/5623501.html
Inventor(s)Cooke; Laurence H. (San Jose, CA); Phillips; Christopher E. (San Jose, CA); Allen; William J. (Cupertino, CA)
AbstractA field programmable gate array integrated circuit which has numerous features for testing prior to programming the antifuses in the integrated circuit is provided. The circuits used to program the antifuses are also used for much of the preprogramming testing. The functionality of continuous series transistors and latch logic blocks may be tested together with the continuity of their programmable connections. Programmable input/output buffer circuits and clock circuits which set the desired clock network paths may be tested with signals on a serial scan path which passes through the input/output buffer circuits and clock circuits. Process characterization tests without the requirement of high-speed test equipment are also provided.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5623501
Preprogramming testing in a field programmable gate array - US Patent 5623501 Drawing
Preprogramming testing in a field programmable gate array
Inventor     Cooke; Laurence H. (San Jose, CA); Phillips; Christopher E. (San Jose, CA); Allen; William J. (Cupertino, CA)
Owner/Assignee     Crosspoint Solutions Inc. (Santa Clara, CA)
Patent assignment
All assignments
Publication Date     April 22, 1997
Application Number     08/285,544
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     August 3, 1994
US Classification     714/725
Int'l Classification     H04B 017/00
Examiner     Beausoliel Jr.; Robert W.
Assistant Examiner     Palys; Joseph E.
Attorney/Law Firm     Townsend and Townsend and Crew
Address
Parent Case     This application is a Division of application Ser. No. 07/801/237, filed Dec. 3, 1991, now U.S. Pat. No. 5,347,519.
Priority Data    
USPTO Field of Search     371/22.1 371/22.2 371/22.3 371/28 371/22.5 371/22.6
Patent Tags     preprogramming testing field programmable gate array
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5532441
Edwards, Jr.
200/16A
Jul,1996

[0 after 0 votes]
5373510
Ha
714/725
Dec,1994

[0 after 0 votes]
5365165
El-Ayat
324/158.1
Nov,1994

[0 after 0 votes]
5309091
El-Ayat
324/158.1
May,1994

[0 after 0 votes]
5231637
Tanagawa
714/725
Jul,1993

[0 after 0 votes]
5210759
DeWitt
714/731
May,1993

[0 after 0 votes]
5121394
Russell
714/724
Jun,1992

[0 after 0 votes]
5083083
El-Ayat

Jan,1992

[0 after 0 votes]
5023485
Sweeney
326/16
Jun,1991

[0 after 0 votes]
5001368
Cliff
326/40
Mar,1991

[0 after 0 votes]
4935734
Austin
326/39
Jun,1990

[0 after 0 votes]
4910417
El Gamal
326/41
Mar,1990

[0 after 0 votes]
4870302
Freeman
326/41
Sep,1989

[0 after 0 votes]
4857774
El-Ayat
326/16
Aug,1989

[0 after 0 votes]
4786904
Graham, III
326/38
Nov,1988

[0 after 0 votes]
4758745
Elgamal
326/16
Jul,1988

[0 after 0 votes]
4739250
Tanizawa
714/725
Apr,1988

[0 after 0 votes]
4692923
Poeppelman
714/702
Sep,1987

[0 after 0 votes]
4689654
Brockmann
257/209
Aug,1987

[0 after 0 votes]
4642487
Carter
326/41
Feb,1987

[0 after 0 votes]
4609830
Brandman
326/38
Sep,1986

[0 after 0 votes]
4495629
Zasio
377/70
Jan,1985

[0 after 0 votes]
4380811
Gotze
714/710
Apr,1983

[0 after 0 votes]
3958110
Hong
714/725
May,1976

[0 after 0 votes]
5015885
El Gamal
326/38
Dec,1969

[0 after 0 votes]
4873459
El Gamal
326/41
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. An integrated circuit having a plurality of terminals for providing electrical paths to and from said integrated circuit, said integrated circuit comprising

an array of MOS transistors, each MOS transistor having a first source/drain, a second source/drain, and a gate;

a plurality of line segments connected to said source/drains and gate of each MOS transistor; and

means for accessing a selected MOS transistor from selected ones of said terminals responsive to address signals to others of said terminals to create a first path between a first selected one of said terminals and a first selected line segment connected to the first source/drain of said selected MOS transistor, a second path between a second selected one of said terminals and a second selected line segment connected to the second source/drain of said MOS transistor, and a third path between a third selected one of said terminals and a third selected line segment connected to the gate of said MOS transistor, so that said first, second, and third selected line segments are accessible via said first, second, and third paths respectively.

2. The integrated circuit of claim 1 wherein said MOS transistors comprise continuous series transistors.

3. The integrated circuit of claim 2 wherein said accessing means comprises

a plurality of grids substantially spanning said array; and

circuits connected between each line segment and at least one of said grids, and between each grid and at least one of said terminals, said circuits connecting selected line segments to said one terminal responsive to said address signals.

4. The integrated circuit of claim 3 wherein said circuits comprise

a plurality of logic gates, each logic gate generating output signals responsive to said address signals;

a plurality of transistors, each line segment and at least one of said grids having a first transistor connected therebetween, each grid and at least one of said terminals having a second transistor connected therebetween, each transistor responsive to said output signals of one of said logic gates.

5. The integrated circuit of claim 4 wherein said first transistors comprise banks of first transistors, each transistor of a bank connected to line segments proximate to each other and responsive to output signals of one of said logic gates.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The invention relates generally to the field of testing of integrated circuit devices and, more particularly, to the testing of user-programmable or field programmable gate arrays (FLAGS).

In a field programmable gate array (FAA), the connections between the transistors, logic blocks, and input and output circuits are made by the user of this type of integrated circuit. The transistors, logic blocks, and input and output circuits are connected to line segments which intersect or abut each other at various points. At most of these points programmable elements known as antifuses are located to make a connection between the line segments if desired.

In an unprogrammed state, each antifuse remains in a high impedance, or "open circuit" state. When programmed, the antifuse is in a low impedance, or "closed circuit" state. The antifuses in the FPGA are selectively programmed by the user to make desired interconnections between the transistors, logic blocks and input and output circuits of the FPGA for a particular application. In this manner an FPGA is configured for a particular application.

It is thus highly desirable for a FPGA to be tested prior to its programming to check the functionality of the various elements of the FPGA, including its line segments and antifuses. Heretofore, if provisions had been made for the testing of a FPGA, special test transistors and circuits were added to the integrated circuit. These additions increased the complexity and space requirements for what is typically an already complex and crowded integrated circuit.

A typical FPGA integrated circuit has specified programming pins by which large voltages are introduced into the circuit for the programming of antifuses. In the FPGA of the present invention, the input/output buffer circuits are provided with a serial scan path for test signals according to the IEEE 1149.1 test standards. During the programming of the antifuses, signals in the 1149.1 serial scan path become control signals for the programming circuits which address wiring segments to specify the particular antifuses to be programmed while the programming voltages are supplied through the specified pins.

In accordance to the present invention, the programming circuits controlled by signals in the serial scan path and the specified programming pins are used to provide paths for testing the FPGA prior to the programming of the antifuses. In this manner the present invention is able to achieve the goals of testing the elements and functions of an FPGA with a minimal amount of additional transistors and circuits.

SUMMARY OF THE INVENTION

Thus the present invention provides for an integrated circuit which has a plurality of terminals for providing electrical paths to and from said integrated circuit. The integrated circuit also has an array of functional units and a plurality of line segments connected to the functional units. Programmable elements are located between two line segments. These elements are programmable by a programming voltage across the two line segments. The integrated circuit has address circuits connected to each of the line segments for connecting a selected line segment responsive to address signals to a voltage supply or to one of the terminals. The units may be tested by selecting line segments connected to a unit and monitoring the unit through the line segments. The address circuits may also program the elements by selecting line segments having the elements between the selected line segments. Thus the address circuits may be used for programming the programmable elements and for testing units in the array.

The array of functional units include continuous series transistors and circuit blocks which may be configured for memory and logic functions.

Testing also includes testing of the functionality of each of these functional units, and the electrical continuity of various line segments.

The integrated circuit also has input/output buffer circuits which are programmable to set various operating parameters of the input/output buffer circuit. The present invention incorporates a serial scan path which is used nominally for testing an integrated circuit for carrying control signals to temporarily set the various operating parameters of the input/output buffer circuit for testing prior to programming.

The integrated circuit has clock circuits which are programmable to set or define the desired clock network path for the integrated circuit. In the serial scan path, the clock circuits are temporarily set by signals on the serial scan path so that the various network clock paths may be tested prior to programming. In this clock network testing the address circuits used for programming are also used.

The present invention also provides for process characterization tests of the integrated circuit without the requirement of high-speed test equipment. A small portion of the programmable elements is programmed to form a series of inverters. A ring oscillator loop is formed with the serial scan path through the input/output buffer circuits and the programmed series of inverters. A counter operating at much lower speeds than if the counter were testing the programmed inverter series by itself is sufficient for the process characterization.

Thus the present invention provides for these and other features which will be apparent below.

BRIEF DESCRIPTION OF THE DRAWINGS

A detailed understanding of the present invention may be attained by a perusal of the following Description of the Specific Embodiments with reference to the drawings below:

FIG. 1 is a general top view of a FPGA integrated circuit implementing the present invention.

FIG. 2 is a general top view of the core array of the integrated circuit of FIG. 1.

FIG. 3 is a detailed view of a CST row in the core array in FIG. 2.

FIG. 4 is a logic circuit schematic of a latch/logic block (LLB) in the core array in FIG. 2.

FIG. 5 shows how the LLBs are arranged with respect to each other in the core array.

FIGS. 6A to 6C show representationally different combinations of programming voltages in a grid of wiring segments.

FIG. 7 shows representationally X, Y addressing of wiring segments in the core array.

FIG. 8 illustrates the general arrangement of the programming circuits for each wiring segment in the core array of the FPGA.

FIG. 9 is a table of wiring segments of a four-tile section in a CST row, its programming grid, .+-.Y control line for a given .+-.Y address.

FIG. 10 details the isolation transistor circuitry for the transistors in the CST rows in the core array.

FIG. 11 is a logic circuit schematic of an input/output buffer circuit if the I/O section in FIG. 1.

FIG. 12 illustrates the general connection between the input/output buffer circuits of the I/O section and the core array of FIG. 1.

FIG. 13 is a logic circuit schematic of a programming unit in the input/output buffer circuit of FIG. 11.

FIG. 14A is a general view of the clock network of the FPGA integrated circuit; FIG. 14B illustrates the general serial scan path connection between the input/output buffer circuits of FIG. 11 and the various clock circuits of FIG. 14A.

FIG. 15 is a logic circuit schematic of the input clock enable circuit of FIG. 14A.

FIG. 16A illustrates the connection between a + programming grid and the V.sub.pp programming pin through a programming transistor; FIG. 16B illustrates the circuit which allows a + programming grid to be pulled low during testing; FIG. 16C illustrates the circuit which allows a -programming grid to be pulled high during testing.

FIG. 17 illustrates a representative group of PMOS transistors in a CST

FIGS. 18A-18D show the sequential steps for testing the PMOS transistors in FIG. 17.

FIG. 19 is a representative signal path through the core array in the testing of the clock network of the FPGA.

FIG. 20 is a representative signal path around the periphery in the testing of the clock network of the FPGA.

FIG. 21 illustrates the logic gate signal path used for characterizing the process used to manufacture the FPGA.

DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

For an understanding of the various test operations of the FPGA according to the present invention, an understanding of the various parts of the FPGA is very helpful. Thus an explanation of the organization of the FPGA and its parts follows. It should be understood, though, that many of the test operations described herein have applications beyond FPGAS.

Organization of the FPGA

A top view of an field programmable gate array (FPGA) integrated circuit according to the present invention is illustrated in FIG. 1. The drawing shows the general organizational layout of the FPGA. On a semiconductor substrate 10 the FPGA has a central core array section 11, which contains continuous-series transistors (CST), latch/logic blocks (LLB) and antifuses which are programmed to configure the transistors and blocks for the user's application.

Surrounding the core array section 11 is a programming section 12, here shown as four separate areas, which contain the circuits for programming the antifuses in the core array 11. Included in this section 12 is circuitry for controlling the special programming voltages, V.sub.pp and V.sub.ss, in the array 11 for programming the antifuses. On the outside of this programming section 12 is a control section 13, again shown as four separate areas, which contains the control circuitry used for addressing the wiring segments in programming the selected antifuses and for testing.

Finally, an input/output section 14 is located on the periphery of the substrate 10. The section 14 contains the input and output circuitry for receiving signals from the outside world into the FPGA interior and for driving signals from the interior of the FPGA to the outside world.

An antifuse is a programmable element which is placed between two conducting layers of the FPGA integrated circuit. The type of antifuse contemplated in the present invention has a high resistance of several giga-ohms in the unprogrammed state and a low resistance, say, 100-150 ohms, in the programmed state. The unprogrammed antifuses have a very low parasitic capacitance, below 2 fF.

A specific example of an antifuse useful in the present invention is a structure made of amorphous silicon which fits into a normal contact between a metal 1 layer and a polysilicon layer. This structure is disclosed in U.S. Pat. No. 4,796,074, issued to B. Roesner on Jun. 3, 1989. Another useful antifuse structure is formed between any two metal interconnection layers of an integrated circuit. This structure is disclosed in U.S. patent application Ser. No. 07/642,617, entitled, "AN IMPROVED ANTIFUSE CIRCUIT STRUCTURE FOR USE IN A FIELD PROGRAMMABLE GATE ARRAY AND METHOD 0F MANUFACTURE THEREOF," filed by M. R. Holzworth et al. on Jan. 17, 1991, and assigned to the present assignee.

The Core Array

FIG. 2 shows a representational view of the FPGA core array 11. The array 11 has horizontal CST rows 15 and LLB rows 16 which are interleaved with horizontal wiring channels 17 between the CST and LLB rows 15 and 16. The CST rows 15 are used to implement different logic cells, from standard drive to high drive inverters, from multiple input NAND and NOR gates, to more complex AOI (AND-or-invert) cells. These rows 15 can also implement multiplexer-based logic cells. However, the adjacent LLB rows 16, each of which contains a row of preconfigured logic blocks as indicated by the vertical lines in the rows 16, are more efficient for implementing such cells.

In the rows 15 and 16 and channel 17 are horizontal and vertical wiring segments. At the intersection of many of the segments are antifuses, which, when programmed, electrically connect intersecting segments together. These antifuses are located mostly at the intersection of the wiring segments in the CST rows 15 and the channels 17. The CST rows 15 can be flexibly configured into the desired logic cells and the channels 17 can make the required intercell connections.

Thus cell functions and circuit connections are defined by programming the appropriate antifuse element which then forms a low resistance connection between intersecting horizontal and vertical wiring segments. The CST rows 15 and LLB rows 16 are logically and interconnectedly configurable and can implement nearly any combinatorial logic or storage logic cell possible in present MPGAs. This is discussed in more detail below.

The Wiring Channels and Vertical Routing

For purposes of explanation, some terms are now defined. The term "column" is used to indicate a vertical slice in the core array 11 having a width occupied by an opposing pair of transistors, i.e. a PMOS and a NMOS transistor, in a CST row 15. The term "tile" refers to that portion of a column in a CST row 15.

Broadly speaking, the wiring channels 17 are used to make the horizontal connections between the configured cells in the CST rows 15 and the LLB rows 16. The channels 17, which are interleaved with the CST rows 15 and LLB rows 16, contain horizontal segmented wiring tracks of different segment lengths. These horizontal wiring track segments vary from a minimum length of eight columns to the entire width of the array 11. The different segment lengths serve different purposes and increase the utility of the channels 17. For example, the horizontal track segments which minimally span eight columns primarily are used to make feedback connections to the latch/logic blocks in the LLB rows 16 to configure the blocks into latches, flip-flops, and RAM cells, as explained below.

Included within each channel 17 are also clock lines to be used as global clock signals, global enable or reset signals, or any other high fanout signal in the user's application. The clocks are driven from driver circuits along the sides of each channel 17 of the array 11, as discussed more fully below.

Intersecting the horizontal segments in the channels 17 are vertical wiring segments to accommodate vertical connections between circuit nodes in the CST rows 15 and LLB rows 16. Antifuse elements, indicated by a square at the intersection of two lines in the drawings of this patent application, are located at the intersections of the horizontal and vertical wire segments in the channel 17. Each channel 17 is a grid of horizontal and vertical wiring segments which have an antifuse at nearly every intersection.

Three types of vertical wiring are used in the core array 11. The first type is formed by a segment connected to a PMOS or NMOS transistor gate or a latch segment. Both are described in more detail below with respect to FIG. 3. This type of vertical segment forms a route from a horizontal wire segment in an adjacent channel 17 to the cell in the CST row 16 or LLB row 15.

The second type of vertical wiring is a vertical chevron. As illustrated in FIG. 2, each of these vertical wiring segments 31 span four CST rows 15 and intervening LLB rows 16. The chevrons 31 start and end on the CST rows 15. The term "chevron" is used because these wiring segments have a diagonal wire portion (or half chevron) in the rows 15 in which the vertical chevrons 31 start and end. The diagonal wire portions horizontally span five tiles. The central vertical portion of each vertical chevron passes through three wiring channels 17 and two rows 15. As symbolically indicated in FIG. 2, each vertical chevron 31 may be connected through antifuses along either diagonal end portion to vertical segments in the rows 15 or along the center portion of the segment 31 which passes through the channels 17 and rows 15 to horizontal segments in the channels 17 and rows 15. In passing, it should be noted that the horizontal segments in the rows 15 are actually diagonal.

FIG. 3 described below with respect to the CST row 15 also shows how the vertical chevrons 31 are mapped on to the core array 11. The pattern is regular and repeats horizontally every four tiles and vertically every row 15. A full vertical chevron exists for every two tiles, with a diagonal segment every tile. Two vertical chevrons feed through every two CST tiles and end on different rows.

The third type of vertical wiring segment is a long line. Long lines extend long distances from the top to the bottom of the core array to make long vertical connections primarily. Generally these wiring segments extend either the entire distance, 1/2 the distance, or 1/3 (2/3 ) the distance of the core array height. Long lines are horizontally spaced so that a long line passes through a CST row 15 every two tiles. These line segments are lightly loaded since they are intended to be used to route signals over long distances. The primary means for driving a long line is with a standard or high drive inverter.

The CST Row

The CST rows 15 offer the configurability of a MPGA with nearly matching performance. Small logic gates, such as NAND, NOR, AND, OR and inverters, are efficiently configured in the CST rows 15. Each of the transistors in the rows 15 have wiring segments connected to its source/drains and gate electrode. Other wiring segments travel to different parts of the core array. All of these wiring segments intersect with each other and antifuses are placed between these intersecting segments. By programming selected antifuses, the transistors of the CST rows 15 may be configured into the desired block.

FIG. 3 illustrates the arrangement of a portion of a CST row 15 and related wiring segments. Each row 15 contains two strings of continuous-series transistors with one string formed from NMOS transistors and the other with PMOS transistors. In the drawings a PMOS transistor is denoted by a circle on the gate of the MOS transistor symbol. Furthermore, in FIG. 3 the merging of the source/drain of one CST transistor into the source/drain of another transistor is indicated by the double line connecting the source/drains of the transistors.

Four NMOS transistors 20A-20D and four PMOS transistors 21A-21D are shown. It should be understood that these transistors 20A-20D and 21A-21B are connected by their source/drains to other transistors in the row 15 which are not shown in the drawing.

Each of the gates of the NMOS transistors 20A-20D are connected to N gate wiring segments 22A-22D. Correspondingly, P gate wiring segments 23A-23D are respectively connected to each of the gates of the P transistors 21A-21D. These wiring segments 22A-22D and 23A-23D are run perpendicularly, or vertically, with respect to the alignment of the CST transistors 20A-20D and 21A-21D.

Wiring segments 24A-24D and 25A-25D are also connected to the respective source/drains (SD) of the NMOS and PMOS transistors 20A-20D and 21A-21D. For illustrative and labelling purposes, in FIG. 3 the source/drain to the fight of each MOS transistor 20A-20D and 21A-21D is associated with the transistor. Thus each NMOS transistor 20A-20D has N SD wiring segments 24A-24D respectively connected to the source/drain of each NMOS transistor and each PMOS transistor 21A-21D has P SD wiring segments 25A-25D respectively connected to the source/drain of each PMOS transistor. These SD wiring segments 24A-24D and 25A-25D also run vertically. All the P gate and P SD segments 22A-22D and 24A-24D can be connected to a V.sub.cc power supply wire 28 running along the length of each CST row 15. Likewise, all N gate and N SD segments 23A-23D and 25A-25D can be connected to a V.sub.ss power supply wire 29 running along the length of each CST row 15. As in some CMOS integrated circuits, V.sub.cc is at +3.5 volts and V.sub.ss is at ground, or O volts, but other voltages could be used.

All P gate segments 22A-22D and latch segments 33-36, which are connected to input and output terminals of the LLBs 40, discussed below, extend up into the channel 17 above and have connections to all wiring segments in the channel.

Running diagonally are an array of wiring segments 30 and 31. One half of these segments are vertical chevrons 31, mentioned previously, used for intercell routing. The other half are local chevrons 30 for intracell routing. The local chevrons 30 horizontally span nine tiles of a CST row 15. There is one local chevron 30 horizontally for every two tiles. The vertical chevrons 31 horizontally span five tiles and there is one diagonal portion of a vertical chevron 31 for each tile. The local and vertical chevrons 30 and 31 intersect the P gate wiring segments 22A-22D, P SD segments 24A-24D, vertical sections of vertical chev