US20010039634A1 - Method of reducing test time for NVM cell-based FPGAs - Google Patents
Method of reducing test time for NVM cell-based FPGAs Download PDFInfo
- Publication number
- US20010039634A1 US20010039634A1 US09/880,628 US88062801A US2001039634A1 US 20010039634 A1 US20010039634 A1 US 20010039634A1 US 88062801 A US88062801 A US 88062801A US 2001039634 A1 US2001039634 A1 US 2001039634A1
- Authority
- US
- United States
- Prior art keywords
- testing
- programming
- memory
- fpga
- tiles
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title description 8
- 238000010998 test method Methods 0.000 claims abstract description 18
- 230000000694 effects Effects 0.000 claims abstract description 14
- 230000014759 maintenance of location Effects 0.000 claims abstract description 11
- 230000008672 reprogramming Effects 0.000 claims description 4
- 238000007667 floating Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
Definitions
- the present invention is related to the field of the testing of integrated circuits and, more particularly, to the testing of NVM-based FPGAs (non-volatile memory-based field programmable gate arrays).
- NVM-based FPGAs non-volatile memory-based field programmable gate arrays
- the present invention is particularly suitable to flash memory-based FPGAs.
- an FPGA is an array of logic elements and wiring interconnections with many thousands, or even hundreds of thousands, of programmable switches so that the FPGA can be configured by the user into an integrated circuit with defined functions.
- Each programmable switch, or interconnect can connect two circuit nodes in the integrated circuit to make (or break) a wiring interconnection, or to set the function or functions of a logic element.
- each programmable switch is formed by a reprogrammable memory cell which is interconnected with a switching transistor which has its source and drain connected to the two circuit nodes. These circuit nodes are part of the integrated circuit which can be configured by a user of the FPGA.
- the configurable circuit has an array of logic elements and interconnections which are set by the state of a memory cell and hence its interconnected switching transistor.
- An example of such a reprogrammable switch is described in U.S. Pat. No. 5,633,518, entitled “Nonvolatile Reprogrammable Interconnect Cell With FN Tunneling and Programming Method Thereof,” and which issued May 27, 1997 to the present assignee.
- a flash memory is a type of NVM (non-volatile memory).
- NVM non-volatile memory
- the memory cell of each programmable switch is part of a homogeneous two-dimensional memory array by which electric charge on floating gates in the memory cells is programmed or erased.
- the floating gate of a memory cell is also shared with the corresponding switching transistor so that the transistor is turned on or off.
- each switching transistor is connected by its source and drain is programmed to make (or break) a wiring interconnection, or to set the function or functions of a logic element.
- the flash memory array is typically programmed by one initial erase step which erases all the memory cells of the array at once and then followed by a sequence of programming steps, which apply a data word to all columns in parallel and a selected row at a time.
- the whole array is usually programmed by one programming step per row.
- the FPGA must be tested after being manufactured to determine whether the FPGA is operative or not.
- NVM-based including a flash memory-based
- the FPGA must be programmed several times into different test circuit configurations. Each test circuit configuration must tested in order to achieve a good fault-coverage by using almost every switch in the configurable portion of the FPGA at least one time in one of these test circuit configurations.
- the total test time of a NVM-based FPGA is approximately the time required to erase and reprogram the FPGA a certain number of times until every switch is used once.
- the present invention is directed toward solving this testing problem and provides for the reduction of the total test time of an NVM-based FPGA and for the corresponding lowering of testing costs.
- the present invention provides for a method of testing an FPGA having a plurality of programmable interconnects, or switches.
- Each programmable interconnect has an NVM memory cell interconnected with a switching transistor.
- Each NVM memory cell is arranged as part of a memory array of rows and columns.
- Each of the switching transistors is connected to the nodes of a plurality of logic elements and interconnections, which are organized into identical and/or differing tiles, the tiles organized into an array of rows and columns superimposed upon the memory array.
- the testing method has the steps of: selecting test circuit configurations by which identical tiles are identically programmed as much as possible; and simultaneously programming and simultaneously erasing pluralities of the memory rows corresponding to the tiles into the test circuit configurations. In this manner, the time for testing the FPGA is considerably reduced.
- test circuit configurations programmed into the FPGA are tested at a lower supply voltage than that of normal operation.
- Programming of the memory cells (and hence the switching transistors) are performed at reduced programming and erasing pulse voltages and times by substantially ignoring retention and disturb effect margin amounts.
- FIG. 1 illustrates the portion of a memory array corresponding to one type of tile in an exemplary flash memory-based FPGA, according to the present invention
- FIG. 2 illustrates the memory cell transistor in a programmable interconnect of the FPGA of FIG. 1;
- FIG. 3 shows the switching transistor of the programmable interconnect of the FPGA of FIG. 1;
- FIG. 4 is a diagram of the logic elements and interconnections of one type of tile corresponding to the memory array portion of FIG. 1;
- FIG. 5 illustrates the memory array portion of another type of tile in the flash memory-based FPGA
- FIG. 6 is a diagram of the interconnections of the tile corresponding to the memory array portion of FIG. 5;
- FIG. 7 is a diagram of the logic elements and interconnections of an array of FIG. 4 and FIG. 6 tiles, as programmed into a test circuit configuration according to the present invention.
- FIG. 8 illustrates the programmed memory array portion corresponding to the array of tiles in FIG. 7.
- a flash-based FPGA architecture may be considered as two arrays superimposed over each other.
- the first array is a two-dimensional, homogeneous array of reprogrammable memory cells described previously.
- the second array which is used to implement the user-configured integrated circuit with defined functions, is a two-dimensional, heterogeneous array of logic elements and interconnections organized into blocks called “tiles.”
- tiles There are different types of tile with different hardwired circuits used within the FPGA architecture. Every tile type contains a number of programmable switches and is thus connected to a certain number of rows and columns of the memory cell array.
- the states of the memory cells associated with a tile set the states of the switching transistors in the tile to control the tile's function.
- a tile may contain only a logic function, only programmable interconnects which are part of the routing network of the FPGA, or both.
- Each row of tiles consists usually only of tiles with the same number of memory rows.
- Each column of tiles consists usually of tiles with the same number of memory columns.
- FIGS. 1 - 6 illustrate the components of a simplified flash-based FPGA architecture for purposes of explanation of the present invention.
- FIG. 1 shows the memory array portion of an exemplary tile type A as delineated by a dotted line in the drawing and labeled by the letter, A.
- the A tile type has 6 rows and 2 columns of memory cells. Each memory cell, drawn as a bubble 10 , is located at the intersection of one of the row lines 11 and one of the column lines 12 .
- the row lines 11 are numbered 0 - 6 and the column lines 12 are numbered 0 - 1 .
- the memory cell which is formed by a single NVM transistor 20 , is illustrated by FIG. 2.
- the memory transistor 20 has a source 21 and a drain 22 which are connected to a pair of column lines 12 A and 12 B respectively. Each pair of column lines 12 A and 12 B is simplified as one column line 12 in FIG. 1.
- the memory transistor 20 also has a floating gate 23 and a control gate 24 .
- the control gate 24 is connected to a row line 11 .
- the floating gate 23 stores information in the form of charge to determine whether the corresponding switching transistor, shown in FIG. 3, to which the memory transistor 20 is interconnected is turned on or off.
- the switching transistor 30 which has a floating gate 27 connected to the floating gate 23 of the memory transistor 20 of FIG. 2, has a source 26 and drain 25 , which are connected respectively to routing net lines 32 and 31 .
- the switching transistor 30 also has a control gate 28 which is connected to the control gate 24 of the memory transistor 20 .
- the routing net lines 32 and 31 are part of the heterogeneous user-configurable array of logic elements and interconnections which are organized into tiles.
- FIG. 4 shows the elements of the A tile type, which has a D flip-flop 33 and a buffer 34 implemented in CMOS logic. Horizontal and vertical connections are provided by the routing net lines 31 and 32 respectively.
- a solid dot indicates a connection to a routing net line, such as the Reset terminal of the D flip-flop 33 to rightmost vertical net routing line 32 .
- Each programmable interconnection, drawn as a bubble 35 at the intersection of two routing net lines 31 and 32 is one of the switching transistors 30 . See FIG. 3 above.
- the two digits next to each bubble 35 specify the memory array location of the memory cell 20 which corresponds to that switching transistor 30 .
- the first digit is the row number and the second digit is the column number of the memory cell 20 in the memory array portion of that tile. See FIG. 1.
- FIG. 5 shows the memory array portion of a second exemplary tile type, again delineated by a dotted line and labeled with the letter, B.
- This B tile type has only two memory row lines 11 , numbered 0 - 1 , and two column lines 12 , also numbered 0 - 1 .
- the intersections of each of the row lines 11 and the column lines 12 have a bubble 10 , indicative of an interconnected memory cell. Again refer to FIG. 2.
- FIG. 6 The logic elements and interconnections which are configured by the user for the FIG. 5 memory array portion are illustrated in FIG. 6.
- the B tile type consists only of four horizontal routing net lines 31 and two vertical routing net lines 32 .
- the two digits next to each bubble 35 specify the memory array location of the memory cell 20 which corresponds to that switching transistor 30 .
- the first digit is the row number and the second digit is the column number in the memory array portion illustrated by FIG. 5.
- FIG. 7 shows an array of logic elements and interconnections which consists of A and B types of tile. In this example, there is one row of B type tiles and three rows of A type tiles, arranged in three columns. The array of A and B tiles are programmed into a test circuit configuration. The programmable interconnections which are turned on, i.e., the connection is made, are indicated by crossed bubbles 35 A. Uncrossed bubbles 35 indicate no connection. The resulting test paths is indicated by darkened portions 36 of certain net routing lines 31 and 32 .
- the test circuit configuration uses the flip-flops 33 of all A tiles and connects them in diagonal shift-register paths, as marked by the portions 36 .
- the two programmed switches in each B tile type select one of two clock nets and one of two Reset nets for the flip-flops 33 in the A tiles.
- Test signals can sent through the variously programmed logic elements, i.e., the D flip-flops 33 and buffers 34 , and the interconnections which make up the test paths.
- FIG. 8 shows the memory array portion which corresponds the configured A and B tiles of FIG. 7.
- the memory transistors 20 which are programmed to turn on their corresponding switching transistors 30 are indicated by crossed bubbles 10 A.
- test circuit configurations are selected by which tiles of the same type are identically programmed as much as possible, as illustrated by the test circuit configuration in FIGS. 7 and 8.
- Each tile type A and each tile type B are programmed identically.
- the FPGA is programmed (and erased) for testing with the following time-saving steps:
- the architecture of the FPGA is fine-grain, i.e., the logic elements in a tile are elementary, the number of different types of tile within each row of tiles is small and identical tile-types are programmed identically, there should be several identically programmed memory rows for each row of tiles. Since each memory row within a row of tiles is likely to be associated with a different function of the configured circuit, the identically programmed memory rows will be located irregularly within the tile row.
- these memory rows which are to be programed identically within a tile row are programmed simultaneously.
- memory rows 1 and 2 are programmed identically.
- just one programming step is necessary to program both rows.
- the row select logic for the memory array is capable of selecting any combination of memory rows within a tile row. Such select logic designs are well-known to integrated circuit designers.
- FIG. 8 shows that the three rows 0 , 4 and 5 of the A tiles do not have any turned-on memory cells. Three programming steps can be skipped within an A tile row. Also, memory row 0 in the B tiles need not be programmed, since no memory cells are programmed in that row either.
- the sequence of rows by which the FPGA is programmed is flexible to include the skipping of rows.
- the row select logic of identical tile rows may be shared by all the tile rows. This saves the area occupied by the select logic in the integrated circuit.
- the tiles are likely to be programmed differently. Nonetheless, if the selected test circuit configuration and the tile rows with differing tiles are sufficiently regular, there may be memory rows for one tile type which are to be programmed identically to other memory rows for different tile types.
- the corresponding switching transistors 30 in the user-configurable tiles are not necessarily located at the same positions, nor are the resulting configured functions or interconnections necessarily the same, in the differing tile types. Only the memory rows happen to be programmed identically. For example, FIG. 8 shows that memory row 1 for the B tile row is programmed identically to memory row 3 for the A tile row, though the functions of the switching transistors 30 associated with the memory rows of the two types of tile are different.
- the present invention simultaneously programs these identically programmed memory rows for different tiles. Consequently, memory row 1 of the B tile row can be programmed simultaneously with memory row 3 of A tile row. Each row of completely different tiles have a separate row select logic for this programming step.
- the result of the present invention is the reduction of the number of programming steps.
- the present invention reduces the twenty programming steps in the conventional programming methodology to only two programming steps.
- the programming steps of both methods are listed in the table below:
- step1 000000 0/0 111111 0/1, 1/3, 2/3, 3/3 step2 111111 0/1 010101 1/1, 1/2, 2/1, 2/2, 3/1, 3/2 step3 000000 1/0 step4 010101 1/1 step5 010101 1/2 step6 111111 1/3 step7 000000 1/4 step8 000000 1/5 step9 000000 2/0 step10 010101 2/1 step11 010101 2/2 step12 111111 2/3 step13 000000 2/4 step14 000000 2/5 step15 000000 2/0 step16 010101 2/1 step17 010101 2/2 step18 111111 2/3 step19 000000 2/4 step20 000000 2/5
- the other two programmable interconnects in the B tiles in FIGS. 7 and 8 should tested by a different test circuit configuration.
- memory row 0 of the B tiles need to be erased and the two switches in memory row 1 of the B tiles can be programmed in one programming step.
- the same test circuit configuration remains in the A tiles, but a different clock net and a different Reset net are selected for the flip-flops 33 in the A tiles.
- any integrated circuit including NVM-based FPGAs, operates in a selected supply voltage range.
- a common voltage range for normal operation is 5 volts, i.e., between +5 volts and ground (0 volts).
- the switching transistors 30 which are turned off require a negative voltage on the floating gate 27 (assuming, of course, that the transistors 30 are NMOS transistors). To ensure that the switching transistors 30 to be turned on, a more positive voltage than that of the supply voltage is required on the floating gate 27 .
- the final programming range specifies the minimum floating gate voltage of a turned-on switching transistor 30 , as well as the minimum negative floating gate voltage of a turned-off switching transistor 30 .
- the floating gates 27 of the switching transistors 30 must to be programmed through their interconnected memory transistors 20 to a higher initial programming range in order to guarantee the final programming range after charge disturb and retention effects are considered.
- a retention effect margin is necessary to compensate for a floating gate voltage loss by leakage currents over the expected lifetime of a programmed state.
- the required floating gate voltage for turned-on switching transistors 30 might be 1.5V higher than the supply voltage of +5V in order to guarantee correct operations.
- the initial programmed voltage on the floating gate 27 might be +7V, if the sum of disturb and retention margins is 0.5V.
- the disturb margin is necessary to compensate for a floating gate voltage loss by leakage currents during programming operations.
- Erased switching transistors 30 and their corresponding memory transistors 20 which are not supposed to be programmed and are unselected within a memory row, are subject to row disturb effects during the programming of the row.
- Programmed and erased switching transistors 30 are also subject to memory column disturb effects with every programming step of other memory rows.
- the amount of row disturb effects depends on the magnitude of the row programming pulse, i.e., the programming time and the programming voltage.
- the amount of column disturb effects depends on the number of programming steps, as well as the magnitude of the row programming pulses. The required length of the erase and programming pulses are strongly dependent upon the required initial programming range.
- testing is performed at a reduced voltage supply. This reduces the final programming voltage range.
- the programming and erasing pulse voltages and times are reduced with the recognition that the retention and disturb margins may be essentially ignored.
- There is no need for the retention margin in testing since a test circuit configuration is only required for a few seconds, as compared to a possible lifetime of years for a user-configured circuit.
- the row and column disturb effects are significantly reduced.
- the reduced supply voltages during testing operations reduce the required programming voltages, row, as well as column, disturb effects are reduced. Hence the margin to avoid the disturb effects may also be nearly eliminated.
- the device is still operative for testing at a 3V supply voltage.
- the initial floating gate voltage need only be +4.5V, which avoids programming an additional +2.5V. Smaller and shorter programming pulses can easily achieve +4.5V on the floating gates 27 of the switching transistors 30 . In this manner, the time to program and erase memory rows are reduced.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
The present invention provides for a method of testing an FPGA using NVM memory cells for programmable interconnects. The NVM memory cells are arranged as a memory array of rows and columns. User-configurable logic elements and interconnections, which are programmed by the stored states of the memory cells, are organized into identical and/or differing tiles. The tiles organized into an array of rows and columns superimposed upon the memory array. The testing method includes: selecting test circuit configurations by which identical tiles are identically programmed as much as possible; and simultaneously programming and simultaneously erasing pluralities of the memory rows corresponding to the tiles into the test circuit configurations. Additionally, the test circuit configurations programmed into the FPGA are tested at a lower supply voltage than that of normal operation. Programming is performed at reduced programming and erasing pulse voltages and times by substantially ignoring retention and disturb effect margin amounts for the NVM memory cells. In this manner, the time for testing the FPGA is considerably reduced.
Description
- The present invention is related to the field of the testing of integrated circuits and, more particularly, to the testing of NVM-based FPGAs (non-volatile memory-based field programmable gate arrays). The present invention is particularly suitable to flash memory-based FPGAs.
- Typically, an FPGA is an array of logic elements and wiring interconnections with many thousands, or even hundreds of thousands, of programmable switches so that the FPGA can be configured by the user into an integrated circuit with defined functions. Each programmable switch, or interconnect, can connect two circuit nodes in the integrated circuit to make (or break) a wiring interconnection, or to set the function or functions of a logic element.
- In a reprogrammable FPGA, each programmable switch is formed by a reprogrammable memory cell which is interconnected with a switching transistor which has its source and drain connected to the two circuit nodes. These circuit nodes are part of the integrated circuit which can be configured by a user of the FPGA. The configurable circuit has an array of logic elements and interconnections which are set by the state of a memory cell and hence its interconnected switching transistor. An example of such a reprogrammable switch is described in U.S. Pat. No. 5,633,518, entitled “Nonvolatile Reprogrammable Interconnect Cell With FN Tunneling and Programming Method Thereof,” and which issued May 27, 1997 to the present assignee.
- A flash memory is a type of NVM (non-volatile memory). In a flash memory-based FPGA, the memory cell of each programmable switch is part of a homogeneous two-dimensional memory array by which electric charge on floating gates in the memory cells is programmed or erased. The floating gate of a memory cell is also shared with the corresponding switching transistor so that the transistor is turned on or off. Hence each switching transistor is connected by its source and drain is programmed to make (or break) a wiring interconnection, or to set the function or functions of a logic element.
- The flash memory array is typically programmed by one initial erase step which erases all the memory cells of the array at once and then followed by a sequence of programming steps, which apply a data word to all columns in parallel and a selected row at a time. The whole array is usually programmed by one programming step per row.
- As for all integrated circuits, the FPGA must be tested after being manufactured to determine whether the FPGA is operative or not. However, there are problems in testing an NVM-based (including a flash memory-based) FPGA. Since only a small percentage of the switching transistors are turned on in the FPGA for a user-configured circuit, the FPGA must be programmed several times into different test circuit configurations. Each test circuit configuration must tested in order to achieve a good fault-coverage by using almost every switch in the configurable portion of the FPGA at least one time in one of these test circuit configurations. The total test time of a NVM-based FPGA is approximately the time required to erase and reprogram the FPGA a certain number of times until every switch is used once. Even in a flash memory-based FPGA in which a global erase is performed only once, it may take hours to test a part completely by using the standard programing method since one erase and programming cycle typically requires a few minutes. In comparison, the typical test time of other types of integrated circuits is a few seconds.
- It should be evident that a test time of hours for one integrated circuit creates a serious problem. The manufacturer can either sell the NVM-based FPGA with either no or rudimentary testing and the hope that the integrated circuit is functional, or with full testing of the FPGA at a correspondingly high price. Neither alternative is acceptable.
- On the other hand, the present invention is directed toward solving this testing problem and provides for the reduction of the total test time of an NVM-based FPGA and for the corresponding lowering of testing costs.
- The present invention provides for a method of testing an FPGA having a plurality of programmable interconnects, or switches. Each programmable interconnect has an NVM memory cell interconnected with a switching transistor. Each NVM memory cell is arranged as part of a memory array of rows and columns. Each of the switching transistors is connected to the nodes of a plurality of logic elements and interconnections, which are organized into identical and/or differing tiles, the tiles organized into an array of rows and columns superimposed upon the memory array. The testing method has the steps of: selecting test circuit configurations by which identical tiles are identically programmed as much as possible; and simultaneously programming and simultaneously erasing pluralities of the memory rows corresponding to the tiles into the test circuit configurations. In this manner, the time for testing the FPGA is considerably reduced.
- Additionally, the test circuit configurations programmed into the FPGA are tested at a lower supply voltage than that of normal operation. Programming of the memory cells (and hence the switching transistors) are performed at reduced programming and erasing pulse voltages and times by substantially ignoring retention and disturb effect margin amounts.
- FIG. 1 illustrates the portion of a memory array corresponding to one type of tile in an exemplary flash memory-based FPGA, according to the present invention;
- FIG. 2 illustrates the memory cell transistor in a programmable interconnect of the FPGA of FIG. 1;
- FIG. 3 shows the switching transistor of the programmable interconnect of the FPGA of FIG. 1;
- FIG. 4 is a diagram of the logic elements and interconnections of one type of tile corresponding to the memory array portion of FIG. 1;
- FIG. 5 illustrates the memory array portion of another type of tile in the flash memory-based FPGA;
- FIG. 6 is a diagram of the interconnections of the tile corresponding to the memory array portion of FIG. 5;
- FIG. 7 is a diagram of the logic elements and interconnections of an array of FIG. 4 and FIG. 6 tiles, as programmed into a test circuit configuration according to the present invention; and
- FIG. 8 illustrates the programmed memory array portion corresponding to the array of tiles in FIG. 7.
- The present invention is described in terms of a flash memory-based FPGA, but is applicable to more general NVM-based FPGAs. A flash-based FPGA architecture may be considered as two arrays superimposed over each other. The first array is a two-dimensional, homogeneous array of reprogrammable memory cells described previously. The second array, which is used to implement the user-configured integrated circuit with defined functions, is a two-dimensional, heterogeneous array of logic elements and interconnections organized into blocks called “tiles.” There are different types of tile with different hardwired circuits used within the FPGA architecture. Every tile type contains a number of programmable switches and is thus connected to a certain number of rows and columns of the memory cell array. The states of the memory cells associated with a tile set the states of the switching transistors in the tile to control the tile's function. A tile may contain only a logic function, only programmable interconnects which are part of the routing network of the FPGA, or both. U.S. Pat. No. 5,594,363, entitled “Logic Cell and Routing Architecture in a Field Programmable Gate Array,” which issued Jan. 14, 1997 to the present assignee, describes exemplary tiles with logic elements and interconnections.
- Each row of tiles consists usually only of tiles with the same number of memory rows. Each column of tiles consists usually of tiles with the same number of memory columns.
- FIGS.1-6 illustrate the components of a simplified flash-based FPGA architecture for purposes of explanation of the present invention.
- FIG. 1 shows the memory array portion of an exemplary tile type A as delineated by a dotted line in the drawing and labeled by the letter, A. The A tile type has 6 rows and 2 columns of memory cells. Each memory cell, drawn as a
bubble 10, is located at the intersection of one of therow lines 11 and one of thecolumn lines 12. Therow lines 11 are numbered 0-6 and thecolumn lines 12 are numbered 0-1. - The memory cell, which is formed by a
single NVM transistor 20, is illustrated by FIG. 2. Thememory transistor 20 has asource 21 and adrain 22 which are connected to a pair ofcolumn lines column lines column line 12 in FIG. 1. Thememory transistor 20 also has a floatinggate 23 and acontrol gate 24. Thecontrol gate 24 is connected to arow line 11. The floatinggate 23 stores information in the form of charge to determine whether the corresponding switching transistor, shown in FIG. 3, to which thememory transistor 20 is interconnected is turned on or off. - The switching
transistor 30, which has a floatinggate 27 connected to the floatinggate 23 of thememory transistor 20 of FIG. 2, has asource 26 anddrain 25, which are connected respectively to routingnet lines transistor 30 also has acontrol gate 28 which is connected to thecontrol gate 24 of thememory transistor 20. - The routing
net lines flop 33 and abuffer 34 implemented in CMOS logic. Horizontal and vertical connections are provided by the routingnet lines flop 33 to rightmost verticalnet routing line 32. Each programmable interconnection, drawn as abubble 35 at the intersection of two routingnet lines transistors 30. See FIG. 3 above. The two digits next to eachbubble 35 specify the memory array location of thememory cell 20 which corresponds to that switchingtransistor 30. The first digit is the row number and the second digit is the column number of thememory cell 20 in the memory array portion of that tile. See FIG. 1. - FIG. 5 shows the memory array portion of a second exemplary tile type, again delineated by a dotted line and labeled with the letter, B. This B tile type has only two
memory row lines 11, numbered 0-1, and twocolumn lines 12, also numbered 0-1. The intersections of each of the row lines 11 and the column lines 12 have abubble 10, indicative of an interconnected memory cell. Again refer to FIG. 2. - The logic elements and interconnections which are configured by the user for the FIG. 5 memory array portion are illustrated in FIG. 6. In this example, the B tile type consists only of four horizontal routing
net lines 31 and two vertical routing net lines 32. There are four programmable interconnection, drawn asbubbles 35 at the different intersections of two sets of routingnet lines bubble 35 specify the memory array location of thememory cell 20 which corresponds to that switchingtransistor 30. The first digit is the row number and the second digit is the column number in the memory array portion illustrated by FIG. 5. - FIGS. 7 and 8 illustrate how an FPGA based on those components is programmed into an exemplary test circuit configuration, according to the present invention. FIG. 7 shows an array of logic elements and interconnections which consists of A and B types of tile. In this example, there is one row of B type tiles and three rows of A type tiles, arranged in three columns. The array of A and B tiles are programmed into a test circuit configuration. The programmable interconnections which are turned on, i.e., the connection is made, are indicated by crossed
bubbles 35A. Uncrossed bubbles 35 indicate no connection. The resulting test paths is indicated bydarkened portions 36 of certainnet routing lines flops 33 of all A tiles and connects them in diagonal shift-register paths, as marked by theportions 36. The two programmed switches in each B tile type select one of two clock nets and one of two Reset nets for the flip-flops 33 in the A tiles. Test signals can sent through the variously programmed logic elements, i.e., the D flip-flops 33 and buffers 34, and the interconnections which make up the test paths. - To configure the A and B tiles as illustrated by FIG. 7, the corresponding
memory transistors 20 of the switchingtransistors 30 must be appropriately programmed. FIG. 8 shows the memory array portion which corresponds the configured A and B tiles of FIG. 7. In a manner similar to FIG. 7, thememory transistors 20 which are programmed to turn on theircorresponding switching transistors 30 are indicated by crossedbubbles 10A. - In comparison to the test circuit configuration, a circuit configured by a user is most likely to be programmed differently at almost every tile position. Because of this, almost every row in a user-configured circuit must be programmed with a different pattern. Thus all rows must be programmed separately.
- In accordance to the present invention, test circuit configurations are selected by which tiles of the same type are identically programmed as much as possible, as illustrated by the test circuit configuration in FIGS. 7 and 8. Each tile type A and each tile type B are programmed identically. Then, the FPGA is programmed (and erased) for testing with the following time-saving steps:
- a) simultaneously programming several memory rows within a tile row;
- b) skipping the programming of memory rows having no programmed memory cells;
- c) simultaneously programming of rows of identical or nearly identical tiles;
- d) simultaneously programming rows of completely different tiles; and
- e) incrementally erasing and reprogramming memory rows of a test circuit configuration to obtain a variation of the test circuit configuration.
- These steps are explained in detail below.
- If the architecture of the FPGA is fine-grain, i.e., the logic elements in a tile are elementary, the number of different types of tile within each row of tiles is small and identical tile-types are programmed identically, there should be several identically programmed memory rows for each row of tiles. Since each memory row within a row of tiles is likely to be associated with a different function of the configured circuit, the identically programmed memory rows will be located irregularly within the tile row.
- According to the present invention, these memory rows which are to be programed identically within a tile row are programmed simultaneously. For example, in all A type tiles in FIG. 8,
memory rows - Since the percentage of programmed interconnections in an FPGA is small, there should always be blank memory rows, i.e., where none of the programmable interconnects are programmed, in each tile. According to the present invention, the programming of all blank memory rows is simply skipped. For example, FIG. 8 shows that the three
rows memory row 0 in the B tiles need not be programmed, since no memory cells are programmed in that row either. - With the present invention, the sequence of rows by which the FPGA is programmed is flexible to include the skipping of rows.
- In most of the test circuit configurations, it has been observed that rows of identical and nearly identical tiles are programmed with the same pattern. With the present invention, all rows of tiles which are to be programmed identically are programmed simultaneously. Again returning to the example of FIG. 8, it should be noted that all A tile rows are programmed identically. Instead of programming all three tile rows sequentially, the rows of A tiles are be programmed simultaneously.
- The row select logic of identical tile rows may be shared by all the tile rows. This saves the area occupied by the select logic in the integrated circuit.
- If the architecture of the FPGA has tile rows with completely different types of tile, the tiles are likely to be programmed differently. Nonetheless, if the selected test circuit configuration and the tile rows with differing tiles are sufficiently regular, there may be memory rows for one tile type which are to be programmed identically to other memory rows for different tile types. Of course, the corresponding switching
transistors 30 in the user-configurable tiles are not necessarily located at the same positions, nor are the resulting configured functions or interconnections necessarily the same, in the differing tile types. Only the memory rows happen to be programmed identically. For example, FIG. 8 shows thatmemory row 1 for the B tile row is programmed identically tomemory row 3 for the A tile row, though the functions of the switchingtransistors 30 associated with the memory rows of the two types of tile are different. - The present invention simultaneously programs these identically programmed memory rows for different tiles. Consequently,
memory row 1 of the B tile row can be programmed simultaneously withmemory row 3 of A tile row. Each row of completely different tiles have a separate row select logic for this programming step. - The result of the present invention is the reduction of the number of programming steps. In the example of FIG. 8, the present invention reduces the twenty programming steps in the conventional programming methodology to only two programming steps. The programming steps of both methods are listed in the table below:
- The address is specified as “tile row”/“tile internal memory row,” and the values are binary numbers.
Conventional Present Invention Step Value Address Value Addresses step1 000000 0/0 111111 0/1, 1/3, 2/3, 3/3 step2 111111 0/1 010101 1/1, 1/2, 2/1, 2/2, 3/1, 3/2 step3 000000 1/0 step4 010101 1/1 step5 010101 1/2 step6 111111 1/3 step7 000000 1/4 step8 000000 1/5 step9 000000 2/0 step10 010101 2/1 step11 010101 2/2 step12 111111 2/3 step13 000000 2/4 step14 000000 2/5 step15 000000 2/0 step16 010101 2/1 step17 010101 2/2 step18 111111 2/3 step19 000000 2/4 step20 000000 2/5 - To further reduce testing time, only a few memory rows are erased and reprogrammed. In some tests it is useful to incrementally alter only a part of the test circuit configuration. By erasing and reprogramming only one or only some memory rows, a variation of the previous test circuit configuration may be obtained. A single erase and programming step may be sufficient to test one additional switch in each tile.
- For example, the other two programmable interconnects in the B tiles in FIGS. 7 and 8 should tested by a different test circuit configuration. Instead of erasing the entire FPGA and programming again a completely new test circuit configuration (which can be performed in two programming steps as discussed above),
memory row 0 of the B tiles need to be erased and the two switches inmemory row 1 of the B tiles can be programmed in one programming step. The same test circuit configuration remains in the A tiles, but a different clock net and a different Reset net are selected for the flip-flops 33 in the A tiles. - Besides the techniques discussed above for reducing testing time, the present invention provides for additional time savings in testing the FPGA. Any integrated circuit, including NVM-based FPGAs, operates in a selected supply voltage range. A common voltage range for normal operation is 5 volts, i.e., between +5 volts and ground (0 volts). For the flash memory-based FPGA, the switching
transistors 30 which are turned off require a negative voltage on the floating gate 27 (assuming, of course, that thetransistors 30 are NMOS transistors). To ensure that the switchingtransistors 30 to be turned on, a more positive voltage than that of the supply voltage is required on the floatinggate 27. - To ensure proper operation of each programmed interconnect of an FPGA over the expected lifetime of its programmed state, the final programming range specifies the minimum floating gate voltage of a turned-on switching
transistor 30, as well as the minimum negative floating gate voltage of a turned-off switchingtransistor 30. Initially, the floatinggates 27 of the switchingtransistors 30 must to be programmed through theirinterconnected memory transistors 20 to a higher initial programming range in order to guarantee the final programming range after charge disturb and retention effects are considered. A retention effect margin is necessary to compensate for a floating gate voltage loss by leakage currents over the expected lifetime of a programmed state. For example, in a 5V technology, for example, the required floating gate voltage for turned-on switchingtransistors 30 might be 1.5V higher than the supply voltage of +5V in order to guarantee correct operations. The initial programmed voltage on the floatinggate 27 might be +7V, if the sum of disturb and retention margins is 0.5V. - The disturb margin is necessary to compensate for a floating gate voltage loss by leakage currents during programming operations. Erased switching
transistors 30 and theircorresponding memory transistors 20, which are not supposed to be programmed and are unselected within a memory row, are subject to row disturb effects during the programming of the row. Programmed and erased switchingtransistors 30 are also subject to memory column disturb effects with every programming step of other memory rows. The amount of row disturb effects depends on the magnitude of the row programming pulse, i.e., the programming time and the programming voltage. The amount of column disturb effects depends on the number of programming steps, as well as the magnitude of the row programming pulses. The required length of the erase and programming pulses are strongly dependent upon the required initial programming range. - In accordance with the present invention, testing is performed at a reduced voltage supply. This reduces the final programming voltage range. The programming and erasing pulse voltages and times are reduced with the recognition that the retention and disturb margins may be essentially ignored. There is no need for the retention margin in testing, since a test circuit configuration is only required for a few seconds, as compared to a possible lifetime of years for a user-configured circuit. With the reduction in the number of programming steps for a test circuit configuration, as described above, the row and column disturb effects are significantly reduced. Furthermore, since the reduced supply voltages during testing operations reduce the required programming voltages, row, as well as column, disturb effects are reduced. Hence the margin to avoid the disturb effects may also be nearly eliminated.
- For example, with 5V FPGA mentioned above, the device is still operative for testing at a 3V supply voltage. Utilizing aspects of the present invention described immediately above, the initial floating gate voltage need only be +4.5V, which avoids programming an additional +2.5V. Smaller and shorter programming pulses can easily achieve +4.5V on the floating
gates 27 of the switchingtransistors 30. In this manner, the time to program and erase memory rows are reduced. - The advantages of the present invention have been demonstrated empirically. For the same flash memory-based FPGA, conventional testing which took three hours has been reduced to 10 seconds by using all of the techniques in accordance with the present invention.
- While the description above provides a full and complete disclosure of the preferred embodiments of the present invention, various modifications, alternate constructions, and equivalents will be obvious to those with skill in the art. Thus, the scope of the present invention is limited solely by the metes and bounds of the appended claims.
Claims (16)
1. In an FPGA having a plurality of programmable interconnects, each programmable interconnect having an NVM memory cell interconnected with a switching transistor, each NVM memory cell arranged as part of a memory array of rows and columns, each of said switching transistors is connected to nodes of a plurality of logic elements and interconnections, said logic elements and interconnections organized into identical and/or differing tiles, said tiles organized into an array of rows and columns, a method of testing said FPGA comprising:
selecting test circuit configurations by which tiles are identically programmed as much as possible; and
simultaneously programming and simultaneously erasing pluralities of said memory rows corresponding to said tiles into said test circuit configurations;
whereby time for testing said FPGA is reduced.
2. The method of testing an NVM cell-based FPGA of wherein said simultaneously programming and simultaneously erasing step comprises:
claim 1
simultaneously programming a plurality of said memory rows within a row of tiles.
3. The method of testing an NVM cell-based FPGA of further comprising:
claim 1
skipping programming of memory rows having no memory cells to be programmed.
4. The method of testing an NVM cell-based FPGA of further comprising:
claim 2
skipping programming of memory rows having no memory cells to be programmed.
5. The method of testing an NVM cell-based FPGA of wherein said simultaneously programming and simultaneously erasing step comprises:
claim 1
simultaneously programming memory rows corresponding to rows of identical or nearly identical tiles.
6. The method of testing an NVM cell-based FPGA of wherein said simultaneously programming and simultaneously erasing step comprises:
claim 1
simultaneously programming memory rows corresponding to rows of different tiles.
7. The method of testing an NVM cell-based FPGA of comprising:
claim 1
incrementally erasing and reprogramming memory rows of a test circuit configuration to obtain a variation of said test circuit configuration.
8. The method of testing an NVM cell-based FPGA of comprising:
claim 1
testing said test circuit configurations at a lower supply voltage than that of normal operation.
9. The method of testing an NVM cell-based FPGA of comprising:
claim 8
reducing programming and erasing pulse voltages and times by a retention margin amount.
10. The method of testing an NVM cell-based FPGA of comprising:
claim 1
reducing programming and erasing pulse voltages and times by a retention margin amount.
11. The method of testing an NVM cell-based FPGA of comprising:
claim 1
reducing programming and erasing pulse voltages and times by a disturb effect margin amount.
12. A method of testing an NVM cell-based FPGA comprising:
testing test circuit configurations at a lower supply voltage than that of normal operation.
13. The method of testing an NVM cell-based FPGA of comprising:
claim 12
reducing programming and erasing pulse voltages and times by a retention margin amount.
14. The method of testing an NVM cell-based FPGA of comprising:
claim 13
reducing programming and erasing pulse voltages and times by a disturb effect margin amount.
15. The method of testing an NVM cell-based FPGA of comprising:
claim 12
reducing programming and erasing pulse voltages and times by a disturb effect margin amount.
16. A method of testing an NVM cell-based FPGA comprising:
reducing programming and erasing pulse voltages and times by a retention margin amount.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/880,628 US20010039634A1 (en) | 1998-06-11 | 2001-06-12 | Method of reducing test time for NVM cell-based FPGAs |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/096,142 US6272655B1 (en) | 1998-06-11 | 1998-06-11 | Method of reducing test time for NVM cell-based FPGA |
US09/880,628 US20010039634A1 (en) | 1998-06-11 | 2001-06-12 | Method of reducing test time for NVM cell-based FPGAs |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/096,142 Division US6272655B1 (en) | 1998-06-11 | 1998-06-11 | Method of reducing test time for NVM cell-based FPGA |
Publications (1)
Publication Number | Publication Date |
---|---|
US20010039634A1 true US20010039634A1 (en) | 2001-11-08 |
Family
ID=22255737
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/096,142 Expired - Fee Related US6272655B1 (en) | 1998-06-11 | 1998-06-11 | Method of reducing test time for NVM cell-based FPGA |
US09/880,628 Abandoned US20010039634A1 (en) | 1998-06-11 | 2001-06-12 | Method of reducing test time for NVM cell-based FPGAs |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/096,142 Expired - Fee Related US6272655B1 (en) | 1998-06-11 | 1998-06-11 | Method of reducing test time for NVM cell-based FPGA |
Country Status (3)
Country | Link |
---|---|
US (2) | US6272655B1 (en) |
JP (1) | JP2000067596A (en) |
DE (1) | DE19926663A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006072142A1 (en) * | 2005-01-06 | 2006-07-13 | Justin Martin Spangaro | A reprogrammable integrated circuit |
US20080066040A1 (en) * | 2006-08-18 | 2008-03-13 | Taylor Stuart A | Integrated Circuit Chip With Repeater Flops and Method for Automated Design of Same |
US7937601B2 (en) | 2003-07-31 | 2011-05-03 | Actel Corporation | Programmable system on a chip |
CN102116840A (en) * | 2009-12-30 | 2011-07-06 | 中国科学院沈阳自动化研究所 | Method for testing local interconnection of field programmable gate array (FPGA) based on greedy strategy |
CN103000230A (en) * | 2011-09-09 | 2013-03-27 | 上海华虹Nec电子有限公司 | Nonvolatile memory IP core test and verify exploitation system |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6429681B1 (en) * | 2000-08-23 | 2002-08-06 | Altera Corporation | Programmable logic device routing architecture to facilitate register re-timing |
US6531887B2 (en) * | 2001-06-01 | 2003-03-11 | Macronix International Co., Ltd. | One cell programmable switch using non-volatile cell |
US6577161B2 (en) * | 2001-06-01 | 2003-06-10 | Macronix International Co., Ltd. | One cell programmable switch using non-volatile cell with unidirectional and bidirectional states |
US6545504B2 (en) | 2001-06-01 | 2003-04-08 | Macronix International Co., Ltd. | Four state programmable interconnect device for bus line and I/O pad |
US7127550B1 (en) * | 2001-10-31 | 2006-10-24 | Sandisk Corporation | Multi-module simultaneous program, erase test, and performance method for flash memory |
US6977520B1 (en) | 2002-08-13 | 2005-12-20 | Altera Corporation | Time-multiplexed routing in a programmable logic device architecture |
US8352724B2 (en) * | 2003-07-23 | 2013-01-08 | Semiconductor Energy Laboratory Co., Ltd. | Microprocessor and grid computing system |
US20050102573A1 (en) * | 2003-11-03 | 2005-05-12 | Macronix International Co., Ltd. | In-circuit configuration architecture for embedded configurable logic array |
US20050097499A1 (en) * | 2003-11-03 | 2005-05-05 | Macronix International Co., Ltd. | In-circuit configuration architecture with non-volatile configuration store for embedded configurable logic array |
US7827433B1 (en) | 2007-05-16 | 2010-11-02 | Altera Corporation | Time-multiplexed routing for reducing pipelining registers |
JP5318597B2 (en) * | 2009-01-29 | 2013-10-16 | フリースケール セミコンダクター インコーポレイテッド | Semiconductor device and semiconductor device manufacturing method |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03252998A (en) * | 1990-02-28 | 1991-11-12 | Sharp Corp | Semiconductor memory device |
JPH0469700A (en) * | 1990-07-11 | 1992-03-04 | Hitachi Ltd | Device and method for information storage and reproduction |
JPH0492298A (en) * | 1990-08-08 | 1992-03-25 | Hitachi Ltd | Semiconductor storage device |
JPH0449400U (en) * | 1990-08-24 | 1992-04-27 | ||
JPH04368018A (en) * | 1991-06-14 | 1992-12-21 | Kawasaki Steel Corp | Field programmable gate array and manufacture of the same |
JPH0587879A (en) * | 1991-09-25 | 1993-04-06 | Fujitsu Ltd | Electric test device and trouble remedying method |
JPH06318864A (en) * | 1993-05-07 | 1994-11-15 | Toshiba Corp | Field programmable gate array |
JP3410811B2 (en) * | 1993-05-10 | 2003-05-26 | 株式会社東芝 | Field programmable gate array and semiconductor integrated circuit |
US5469396A (en) * | 1994-06-07 | 1995-11-21 | Actel Corporation | Apparatus and method determining the resistance of antifuses in an array |
US5594363A (en) * | 1995-04-07 | 1997-01-14 | Zycad Corporation | Logic cell and routing architecture in a field programmable gate array |
US5633518A (en) * | 1995-07-28 | 1997-05-27 | Zycad Corporation | Nonvolatile reprogrammable interconnect cell with FN tunneling and programming method thereof |
JP2888512B2 (en) * | 1995-09-22 | 1999-05-10 | 三菱電機マイコン機器ソフトウエア株式会社 | Emulation device |
KR970029333A (en) * | 1995-11-24 | 1997-06-26 | 김광호 | Apparatus and method for recording / reproducing compressed audio signal using bad memory device |
DE69619939T2 (en) * | 1995-11-29 | 2002-11-21 | Texas Instruments Inc | Method and device for testing semiconductor memory devices |
US5867507A (en) * | 1995-12-12 | 1999-02-02 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
US5717340A (en) * | 1996-01-17 | 1998-02-10 | Xilink, Inc. | Circuit for testing pumped voltage gates in a programmable gate array |
JP3828222B2 (en) * | 1996-02-08 | 2006-10-04 | 株式会社日立製作所 | Semiconductor memory device |
US5744980A (en) * | 1996-02-16 | 1998-04-28 | Actel Corporation | Flexible, high-performance static RAM architecture for field-programmable gate arrays |
JP3597972B2 (en) * | 1997-07-25 | 2004-12-08 | 富士通株式会社 | Programmable logic device, test method therefor, and test data creation method |
-
1998
- 1998-06-11 US US09/096,142 patent/US6272655B1/en not_active Expired - Fee Related
-
1999
- 1999-06-11 DE DE19926663A patent/DE19926663A1/en not_active Withdrawn
- 1999-06-11 JP JP16547799A patent/JP2000067596A/en active Pending
-
2001
- 2001-06-12 US US09/880,628 patent/US20010039634A1/en not_active Abandoned
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937601B2 (en) | 2003-07-31 | 2011-05-03 | Actel Corporation | Programmable system on a chip |
WO2006072142A1 (en) * | 2005-01-06 | 2006-07-13 | Justin Martin Spangaro | A reprogrammable integrated circuit |
US20080309370A1 (en) * | 2005-01-06 | 2008-12-18 | Justin Martin Spangaro | Reprogrammable Integrated Circuit |
US7750669B2 (en) | 2005-01-06 | 2010-07-06 | Justin Martin Spangaro | Reprogrammable integrated circuit |
US20080066040A1 (en) * | 2006-08-18 | 2008-03-13 | Taylor Stuart A | Integrated Circuit Chip With Repeater Flops and Method for Automated Design of Same |
US8607178B2 (en) | 2006-08-18 | 2013-12-10 | Advanced Micro Devices, Inc. | Integrated circuit chip with repeater flops and methods for automated design of same |
CN102116840A (en) * | 2009-12-30 | 2011-07-06 | 中国科学院沈阳自动化研究所 | Method for testing local interconnection of field programmable gate array (FPGA) based on greedy strategy |
CN103000230A (en) * | 2011-09-09 | 2013-03-27 | 上海华虹Nec电子有限公司 | Nonvolatile memory IP core test and verify exploitation system |
Also Published As
Publication number | Publication date |
---|---|
JP2000067596A (en) | 2000-03-03 |
US6272655B1 (en) | 2001-08-07 |
DE19926663A1 (en) | 1999-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272655B1 (en) | Method of reducing test time for NVM cell-based FPGA | |
JP2818803B2 (en) | Programmable logic device | |
US5732207A (en) | Microprocessor having single poly-silicon EPROM memory for programmably controlling optional features | |
US7707368B2 (en) | Memory device trims | |
KR100555243B1 (en) | Semiconductor memory device and control method thereof | |
CN107924703B (en) | Multi-time programmable non-volatile memory cell | |
CN1897160B (en) | Semiconductor device including memory cells and current limiter | |
US7336537B2 (en) | Handling defective memory blocks of NAND memory devices | |
US5970005A (en) | Testing structure and method for high density PLDs which have flexible logic built-in blocks | |
JPH0737984A (en) | Structure and method for anti fuse, testing method for logical device, method and structure for measuring anti fuse resistance | |
JPH0774621A (en) | Programmable integrated logical device | |
KR910004788B1 (en) | Semiconductor programmable memory device | |
US20060250857A1 (en) | Non-volatile memory cell integrated with a latch | |
KR100223623B1 (en) | Test circuit for non-volatile storage cell | |
US5453696A (en) | Embedded fuse resistance measuring circuit | |
EP1573745B1 (en) | Programmable interconnect cell for configuring a field programmable gate array | |
US6198659B1 (en) | Defective address data storage circuit for nonvolatile semiconductor memory device having redundant function and method of writing defective address data | |
US7463060B1 (en) | Programmable logic device and method of testing | |
EP0655743A1 (en) | Integrated circuit for the programming of a memory cell in a non-volatile memory register | |
US6618298B2 (en) | Semiconductor memory device | |
EP0698890B1 (en) | Testing an integrated circuit device | |
US5535157A (en) | Monolithically integrated storage device | |
JPWO2004093091A1 (en) | Nonvolatile semiconductor memory device | |
JPH08148000A (en) | Memory circuit | |
US7016219B1 (en) | Single transistor non-volatile memory system, design, and operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ACTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HECHT, VOLKER;SAXE, TIMOTHY;REEL/FRAME:013004/0377;SIGNING DATES FROM 20020412 TO 20020419 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |