The present application relates to devices, methods and systems related to the testing of non-volatile memories.
System-on-Chips (SoC) provide various functionalities on a single chip. Typical components of a such System-on-Chips may comprise a processor, an oscillator, output drivers, and/or analog or digital input. Furthermore, System-on-Chips often comprise embedded non-volatile memories, for example flash memories. Such non-volatile memories are used e.g. for storing program parts or data for a processor of the System-on-Chip. Non-volatile memories also allow the usage of device feature configuration by updating the non-volatile memory, storage of permanent data and application codes. Typical non-volatile memories include flash memories, EPROMS (electrically programmable read only memories) or EEPROMS (electrically erasable programmable read only memories), but are not limited thereto.
The size of such non-volatile memories provided on System-on-Chips has been increasing over time. For example, new features like safety features and software frameworks in the automotive industry like AUTOSAR (automotive open system architecture) require increasing memory space for data and software code.
System-on-Chips generally are tested during a production test. Non-volatile memories like flash memories have comparatively slow access times, in particular slow write access, compared to other memory types like random access memories (RAM), read-only memories (ROM) or dynamic random access memories (DRAM). Therefore, testing of flash memories takes quite a long time. For example, for an embedded power integrated circuit SoC with 128 kB flash memory a test time for the flash memory in a backend test flow may be up to about 30% of the total test time. Increased test times result in increased production costs.
It is therefore an object to provide devices and methods enabling a reduction of an overall test time.
According to an embodiment, a device is provided, comprising:
According to another embodiment, a System-on-Chip is provided, comprising:
According to another embodiment, a method is provided, comprising:
The above summary is merely intended to give a brief overview over some features of some embodiments and is not to be construed as limiting. In particular, other embodiments may have other features than the ones discussed above.
In the following, various embodiments will be described in detail referring to the attached drawings. These embodiments are given by way of example only and are not to be construed as limiting. For example, while embodiments may be described as comprising a plurality of features or elements, this is not to be construed as indicating that all those features or elements are necessary for an implementation. Instead, in other embodiments, some of these features or elements may be omitted and/or may be replaced by alternative features or elements. Furthermore, in addition to the features or elements explicitly shown in the drawings or described herein further features or elements may be provided, for example features or elements used in conventional System-on-Chip devices.
Features from different embodiments may be combined to form further embodiments. Variations and modifications described with respect to one of the embodiments may also be applied to other embodiments.
Any direct electrical connection or coupling shown in the drawings or described herein, i.e. any connection or coupling without any intervening elements, may also be realized by an indirect connection or coupling, i.e. a connection or coupling with one or more additional intervening elements, as long as the general purpose of the connection or coupling, for example to transmit a certain kind of signal or a certain kind of information or to provide a certain kind of control, is essentially maintained.
Some embodiments described in the following relate to the testing of non-volatile memories (NVM). A non-volatile memory generally is to be understood as a memory into which data may be written, and which maintains the data even if not supplied with current or voltage. Examples for such non-volatile memories include flash memories, EPROMs or EEPROMs. Testing in this respect relates to any act with which correct operation of a device may be evaluated. For memories like non-volatile memories, testing may involve writing of test data to the memory, and reading the test data from the memory.
Some embodiments relate to Systems-on-Chip. A System-on-Chip, also sometimes referred to as a System-on-a-Chip and generally abbreviated SoC is an integrated circuit that integrates all or at least most of the components of a computer or other electronic system into a single chip, i.e. on a single chip die. A System-on-Chip may contain digital, analog, mixed signal and/or radio-frequency functions on such a single chip die. A typical application is in the area of embedded systems.
Turning now to the figures,
Device 10 of
A multiplexing entity 16 is provided. In a test mode, multiplexing entity 16 couples built-in self-test circuit 14 to non-volatile memory 15 and decouples built-in self-test circuit 14 and non-volatile memory 15 from bus 13. In regular operation, multiplexer 16 couples non-volatile memory 15 to bus 13, such that processor 11 can access non-volatile memory 15.
In the test mode, processor 11 may run programs to test other circuit parts 12. Moreover, BIST circuit 14 may test non-volatile memory 15 during at least some of the tests of other circuit parts 12 by processor 11, such that the testing is effectively performed in parallel and/or concurrently. In some embodiments, this may reduce the overall time needed for testing compared to cases where processor 11 performs testing of other circuit parts 12 and non-volatile memory 15 sequentially.
In some embodiments optionally, as indicated by a dashed line 17, processor 11 may suspend testing by BIST circuit 14 during certain parts of the testing of other circuit parts 12. This instructing may be via a dedicated communication connection in some embodiments, but in other embodiments may be performed via bus 13. In particular, during some phases of testing other circuit parts 12, conditions in device 10 may be taken outside an ordinary operating range (for example lowering or increasing of supply voltages to perform certain stress tests, changing a clocking of device 10 etc). Testing non-volatile memory 15 during such phases may distort the test results, as for example negative test results may not only result from faults of non-volatile memory 15, but may be caused by such test conditions used for testing other circuit parts 12. Therefore, during phases where such conditions are applied, testing by BIST circuit 14 may be suspended. In this suspension, a state of BIST circuit 14 may be “frozen”, such that after the suspension of the testing the testing of non-volatile memory 15 may be resumed.
It should be noted that while BIST circuit 14 and non-volatile memory 15 are depicted as separate blocks in
Nevertheless, for better understanding the method of
At 20 in
At 21, the method comprises testing a non-volatile memory concurrently during part of the testing of the system parts at 20. In other parts of the testing of the system parts, testing of the non-volatile memory may be suspended, as explained referring to
The device of
During normal operation, a bus multiplexer/arbiter 39 couples bus 310 to a bus portion 310″, such as to couple a non-volatile memory to the microcontroller. The non-volatile memory in the embodiment of
In a test mode of operation, bus multiplexer/arbiter 39 decouples bus 310 and couples a bus portion 310′ to bus portion 310″. This couples a built-in self-test (BIST) controller 31 which is provided for testing non-volatile memory 37, 38 to the non-volatile memory via a sequencer 36. BIST controller 38 is coupled to an instruction memory 30 comprising instructions to be executed in BIST controller 31 for testing non-volatile memory 37, 38. Examples for such instructions will be discussed later referring to
Furthermore, in the embodiment of
In particular, BIST controller 31 for testing may perform write operations and read operations, thus testing NVM cell array 38. For example, a value may be written to the cell array 38 and then read again, and check if the data are consistent. Generally, during execution read-write commands may operate with four different data topologies in some embodiments, namely data reg/inverted data reg/solid 0/solid 1. In data reg, the content of data register 35 is written to the memory cell, and then e.g. read again and compared to the value in the data register. In inverted data reg, the inverted content of data register 35 is used. The content of the data register for this may be user configurable. In solid 0 or solid 1, fixed values of 0 and 1, respectively, are written to the cells (and then e.g. read out again and compared to the value originally written). The testing may be performed in different patterns over NVM cell array 38.
Furthermore, as indicated at 312, BIST controller 31 may be instructed to suspend testing during certain periods of time, in particular during certain phases of testing performed by a microcontroller for other circuit parts, as already explained with reference to
Furthermore, the embodiment of
In the embodiment of
In the embodiment of
In the embodiment of
To control NVM cell array 41 in a test mode, flash controller 43 is coupled to an instruction memory 42 comprising instructions for testing, and comprises a BIST sequencer 44 to output appropriate signals for testing to NVM cell array 41. Furthermore, flash controller 43 is coupled to a base register 45 comprising a storage for sector address (46), page address (47) and data (48) which for testing has the same function as base register 32 of
Furthermore, as indicated by 410, testing by flash controller 43 may be suspended for example upon instructions from a microcontroller or other processor, in particular during phases where the microcontroller or other processor performs a testing of other circuit parts in a manner that could negatively influence testing of NVM test cell array 41, as explained previously.
Apart from the fact that for testing and internal flash controller of NVM access logic and power generation 40 is used and no bus multiplexer/arbiter is needed, testing using the embodiment of
The system of
For further illustration,
In
At 64, the testing comprises testing measurement units, for example analog-to-digital converters, of the System-on-Chip. At 65, the testing comprises testing linear serial interfaces of the System-on-Chip. At 66, the testing comprises testing a flash memory like flash memory 53 of
All the testing of
Next, example commands and an example test procedure for a non-volatile memory will be discussed with reference to
Various data topologies may be used for such testing, like a checkerboard/inverse checkerboard pattern where values of 0 and 1 are written to a cell array in an alternating manner may be used. Generally, any conventional testing algorithms and data topologies may also be used in conjunction with the BIST testing discussed above.
The specific commands and the specific testing illustrated in
In view of the variations and various embodiments discussed above, it is evident that these embodiments serve as examples only and are not to be construed as limiting.
The following Examples are preferred embodiments of the inventions:
A device, comprising:
The device of Example 1, wherein the device is implemented as a System-on-Chip.
The device of Example 1, wherein the test controller is separate from the non-volatile memory.
The device of Example 3, further comprising a bus system coupling the processor, the non-volatile memory and the at least one further circuit part, the device further comprising a multiplexer configured to the decouple the non-volatile memory from the processor during the test mode.
The device of any one of Examples 1 or 2, wherein the test controller is incorporated in a memory controller of the non-volatile memory.
The device of any one of Examples 1 to 5, wherein the test controller is configured to be suspended in order to suspend testing of the non-volatile memory.
The device of Example 6, wherein the processor is configured to suspend the test controller during some phases of testing of the at least one further circuit part.
The device of Example 7, wherein the some phases of testing comprise operating conditions negatively influencing testing of the non-volatile memory.
The device of any one of Examples 1 to 8, wherein the non-volatile memory comprises a flash memory.
A System-on-Chip, comprising:
The system of Example 10, wherein the built-in self-test controller is incorporated in a memory controller of the flash memory.
The system of Example 10, wherein the built-in self-test controller is separate from the flash memory.
The system of Example 12, further comprising a multiplexer decoupling the microcontroller from the flash memory during said testing.
The system of any one of Examples 10 to 13, wherein the built-in self-test controller comprises a suspend input to temporarily suspend testing.
A method, comprising:
The method of Example 15, further comprising temporarily suspending testing the non-volatile memory during another part of the testing of the system parts.
The method of Example 16, further comprising, by the processor, setting testing conditions for the system parts during the another part of the testing which adversely affect testing of the non-volatile memory.
The method of any one of Examples 15 to 17, wherein testing the non-volatile memory comprises testing the non-volatile memory according to one of a checkerboard pattern, an inverse checkerboard pattern, a March pattern and/or a block write/read.
The method of any one of Examples 15 to 18, wherein testing the non-volatile memory comprises writing test data to the non-volatile memory, reading the test data from the non-volatile memory and comparing the read test data to test data to be written.
Number | Date | Country | Kind |
---|---|---|---|
10 2016 114 795 | Aug 2016 | DE | national |
Number | Name | Date | Kind |
---|---|---|---|
6728916 | Chen | Apr 2004 | B2 |
20020178414 | Roohparvar | Nov 2002 | A1 |
20040268181 | Wang | Dec 2004 | A1 |
20110066872 | Miller | Mar 2011 | A1 |
20130036254 | Fai | Feb 2013 | A1 |
20180047458 | Bucksch | Feb 2018 | A1 |
Number | Date | Country |
---|---|---|
60212962 | Jan 2007 | DE |
Entry |
---|
Office Action, in the German language, from counterpart German Application No. 102016114795.8, dated Jun. 8, 2017, 6 pp. |
Number | Date | Country | |
---|---|---|---|
20180047458 A1 | Feb 2018 | US |