Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR ACCESS CONTROL OF A PLURALITY OF INSTRUMENTS EMBEDDED IN A SEMICONDUCTOR DEVICE
Document Type and Number:
WIPO Patent Application WO/2021/069666
Kind Code:
A1
Abstract:
The present disclosure relates to a system for accessing a plurality of instruments embedded in a semiconductor device. The system comprising: a hardware interface and a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments. The test controller is configured to perform the steps of: testing at least one functionality of each of the plurality of instruments, thereby receiving a fault status of each of the plurality of instruments; and based on the fault status of the plurality of instruments, configuring a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

Inventors:
LARSSON ERIK (SE)
Application Number:
PCT/EP2020/078417
Publication Date:
April 15, 2021
Filing Date:
October 09, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
LARSSON ERIK (SE)
International Classes:
G01R31/317; G01R31/3185
Foreign References:
US20120137186A12012-05-31
US20130159799A12013-06-20
US20100138706A12010-06-03
US20140298125A12014-10-02
Attorney, Agent or Firm:
HØIBERG P/S (DK)
Download PDF:
Claims:
Claims

1. A system for accessing a plurality of instruments embedded in a semiconductor device, the system comprising:

- a hardware interface, such as a test access port or a functional port, configured to access a control mechanism for controlling the plurality of instruments;

- a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments, the test controller being configured to perform the steps of: o testing at least one functionality of each of the plurality of instruments by accessing the control mechanism for controlling the plurality of instruments through the hardware interface, thereby receiving a fault status of each of the plurality of instruments; and o based on the fault status of the plurality of instruments, configuring a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

2. The system for accessing a plurality of instruments embedded in a semiconductor device according to claim 1 , wherein the control mechanism for controlling the plurality of instruments through the hardware interface comprises segment insertion bits for the plurality of instruments.

3. The system for accessing a plurality of instruments embedded in a semiconductor device according to claim 2, wherein the segment insertion bits are configurable to include or exclude the instruments. 4. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the proceeding claims, wherein the test block in the semiconductor device is configured to exclude faulty hardware parts for specific instruments based on the fault status.

5. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the preceding claims, wherein the test block in the semiconductor device is configured to replace a faulty hardware part for a specific instrument with a corresponding repair part.

6. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the preceding claims, wherein the instruments are reconfigurable scan networks and the testing is scan testing. 7. The system for accessing a plurality of instruments embedded in a semiconductor device according to claim 6, wherein the step of testing at least one functionality of each of the plurality of instruments comprises generating and shifting a test sequence through scan chains of all instruments.

8. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of claims 6-7, wherein faulty scan chains are automatically excluded from the scan testing.

9. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of claims 6-8, wherein the test block comprises a repair component configured to exclude specific faulty scan registers from a scan-path.

10. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the preceding claims, wherein an active scan-path is configured such that only instruments without faulty scan chains are included in the testing.

11. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the preceding claims, wherein the test controller is configurable to send a test command to the test block through the hardware interface and/or wherein the test controller is configurable to send a repair command to the test block through the hardware interface.

12. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the preceding claims, wherein the system comprises an implementation of a IEEE Std. 1687 for accessing the instruments.

13. The system for accessing a plurality of instruments embedded in a semiconductor device according to any of the preceding claims, wherein the hardware interface is a JTAG interface or a UART interface.

14. A method for testing a semiconductor device, the method comprising:

- configuring a test by defining interconnections of a plurality of instruments in the semiconductor device using an instrument connectivity language and defining operations of the instruments using a procedural description language;

- accessing access a control mechanism for controlling the plurality of instruments through a hardware interface to test at least one functionality of each of a plurality of instruments, thereby receiving a fault status of each of the plurality of instruments;

- configuring a test block in the semiconductor device to exclude faulty hardware parts for specific instruments based on the fault status of the plurality of instruments, or excluding a procedural description language command specifically related to the faulty hardware parts; and

- performing a full test using all the plurality of instruments in the semiconductor device without updating the defined interconnections and operations of the instruments in the test.

15. A method for accessing a plurality of instruments embedded in a semiconductor device, the method comprising the steps of:

- providing a hardware interface, such as a test access port or a functional port, configured to access a control mechanism for controlling the plurality of instruments;

- providing a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments;

- testing at least one functionality of each of the plurality of instruments by accessing the control mechanism for controlling the plurality of instruments through the hardware interface, thereby receiving a fault status of each of the plurality of instruments; and - based on the fault status of the plurality of instruments, configure a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

Description:
System and method for access control of a plurality of instruments embedded in a semiconductor device

The present disclosure relates to a system and a corresponding method for accessing a plurality of instruments embedded in a semiconductor device. The system and method make use of an on-chip test block and computer-implemented method for identifying and repairing effects of faults in the semiconductor device with respect to testing, tuning and configuration of the semiconductor device.

Background

The development of semiconductor technology enables integrated circuits (ICs) with smaller, faster and more transistors. The development gives advantages, such as the possibility to implement more functionality to ever-increasing performance. There are, however, growing challenges to avoid malfunctioning. Smaller and faster transistors lead to tighter margins, both in device sizes and timing, which, in combination with higher transistor count, increase the need of testing, tuning, configuration, and so on.

Embedded (on-chip) features, often referred to as instruments, are increasingly used at different stages through the life cycle of ICs: from prototype debug, test and validation to in-field monitoring and test. The number of instruments in modern ICs increases and can be in order of thousands.

IEEE Std. 1687 and IEEE Std. 1149.1 were developed to offer flexible and scalable access to embedded instruments. The flexibility to access arbitrary instruments is achieved by dynamically configuring the active scan-path so that only desired instruments are included, for example by means of segment insertion bits (SIBs). The standards include two description languages, instrument connectivity language (ICL) and procedural description language (PDL). ICL describes how instruments are interconnected. PDL describes how to operate on instruments. The access to reconfigurable scan networks is typically performed via the test access port of IEEE Std. 1149.1.

While embedded instruments are needed to test, tune, and configure ICs throughout its lifetime, the flexibility in accessing these instruments is limited. For example, if a physical implementation of an IEEE Std. 1687 network changes due to faults, the ICL and PDL need to be updated for the faulty IC. There is thus a need for an improved and efficient solution for access control of instruments of ICs.

Summary

The present disclosure relates to a system for testing a semiconductor device, localization of faults and work around faults by excluding them from tests. According to a first aspect the present disclosure relates to a system for accessing a plurality of instruments embedded in a semiconductor device, the system comprising:

- a hardware interface, such as a test access port or a functional port, configured to access a control mechanism for controlling the plurality of instruments;

- a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments, the test controller being configured to perform the steps of: o testing at least one functionality of each of the plurality of instruments by accessing the control mechanism for controlling the plurality of instruments through the hardware interface, thereby receiving a fault status of each of the plurality of instruments; and o based on the fault status of the plurality of instruments, configuring a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

Preferably the test controller is located outside the semiconductor device, whereas the test block is a hardware component placed between the semiconductor device boundary and the instruments, which may be reconfigurable scan networks.

The present disclosure describes systems and methods for test and repair of faulty elements of the semiconductor device and repair of the same. The term ‘repair’ does not imply an actual physical repair of the semiconductor device but repairing the functionality of the instrument in order to perform the test. A further advantage of the presently disclosed system is that, in the case where one or more instruments are broken or non-functional in any way, the remaining instruments in the semiconductor device can still be used. Instruments may be accessed by a SIB control register (SCR), operation commands for each instrument, an instrument control register (ICR), and the length of instruments - Instrument length memory (ILM). One advantage of the presently proposed access control is the possibility to:

• ensure that instruments are only accessed in allowed combinations, and eventual attempts to access instruments in not allowed combinations can be detected;

• ensure that only allowed commands are used to operate on instruments, and eventual attempts to operate on instruments in other ways can be detected;

• ensure that data to and from instruments follows the length restriction in ILM.

The present disclosure further relates to a method for testing a semiconductor device, the method comprising: - configuring a test by defining interconnections of a plurality of instruments in the semiconductor device using an instrument connectivity language and defining operations of the instruments using a procedural description language; accessing a control mechanism for controlling the plurality of instruments through a hardware interface to test at least one functionality of each of a plurality of instruments, thereby receiving a fault status of each of the plurality of instruments;

- configuring a test block in the semiconductor device to exclude faulty hardware parts for specific instruments based on the fault status of the plurality of instruments, or excluding a procedural description language command specifically related to the faulty hardware parts; and

- performing a full test using all the plurality of instruments in the semiconductor device without updating the defined interconnections and operations of the instruments in the test, and to a method for accessing a plurality of instruments embedded in a semiconductor device, the method comprising the steps of:

- providing a hardware interface, such as a test access port or a functional port, configured to access a control mechanism for controlling of the plurality of instruments; - providing a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments;

- testing at least one functionality of each of the plurality of instruments by accessing the a control mechanism for controlling the plurality of instruments through the hardware interface, thereby receiving a fault status of each of the plurality of instruments; and

- based on the fault status of the plurality of instruments, configuring a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

As would be understood by a person skilled in the art, the system for testing a semiconductor device may be configured to perform any step of the method for testing a semiconductor device or method for accessing a plurality of instruments embedded in a semiconductor device and vice versa.

Description of drawings

The invention will in the following be described with reference to the accompanying drawings, which are exemplary and not limiting to the presently disclosed system and method for accessing a plurality of instruments embedded in a semiconductor device.

Fig. 1 shows an embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device.

Fig. 2 shows an example of a semiconductor device comprising a test access port and a reconfigurable scan network based on IEEE Std. 1687.

Fig. 3 shows an example of a semiconductor device comprising a universal asynchronous receiver-transmitter (UART) and a reconfigurable scan network based on IEEE Std. 1687.

Fig. 4 shows an example of a flat IEEE Std. 1687 network with three instruments.

Fig. 5 shows an example of an implementation of a segment insertion bit (SIB).

Fig. 6 shows an embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device.

Fig. 7 shows a hardware-implemented embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device. Fig. 8 shows examples of bit sequences for test and repair commands.

Fig. 9 shows examples of a test block.

Fig. 10 shows examples of scan paths.

Fig. 11 shows a software-implemented embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device.

Fig. 12 shows an example of a test process of a software-implemented embodiment. Fig. 13 shows an example of a bit sequence of an ALLWrite process.

Fig. 14 shows an example of a bit sequence of an ALLRead process.

Fig. 15 shows an example of a dataflow of an ALLWrite and ALLRead process.

Fig. 16 shows an example of a repair process.

Fig. 17 shows an embodiment of a logic function and an access control register (ACR) that can be used to verify and block access to instruments.

Detailed description

The present disclosure relates to a system for accessing a plurality of instruments embedded in a semiconductor device. Preferably the system comprises a hardware interface, such as a test access port or a functional port, configured to access a control mechanism, such as segment insertion bits, for controlling the the plurality of instruments and a test controller for testing the semiconductor device or generating test patterns for the semiconductor device. The hardware interface may be a dedicated test port, such as IEEE Std. 11491 (JTAG), or a functional port, such as UART, SPI, I2C etc. The test controller may comprise an instrument connectivity language and a procedural description language configuration for operating the instruments. The IEEE Std.1687 standard introduces two description languages, Instrument Connectivity Language (ICL) and Procedural Description Language (PDL). The purpose of PDL is to describe the operations of the instruments. The ICL is used to describe the characteristics of the instruments such as data length and position within the network and the requirements for interfacing them.

In a first embodiment the test controller is configured to test at least one functionality of each of the plurality of instruments by accessing the segment insertion bits of the plurality of instruments through the hardware interface, thereby receiving a fault status of each of the plurality of instruments. The step of testing at least one functionality of each of the plurality of instruments may comprise generating and shifting a test sequence through scan chains of all instruments. In one embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device, the system is configured to automatically exclude faulty scan chains from the scan testing. Moreover, an active scan-path may be configured such that only instruments without faulty scan chains are included in the testing. The test controller may be further configured to, based on the fault status of the plurality of instruments, configuring a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

In the electronics industry, embedded instrumentation refers to the integration of test and measurement instrumentation into semiconductor chips (or integrated circuit devices). Instrumentation embedded into chips (embedded instrumentation) is employed in a variety of electronic test applications, including validating and testing chips themselves, validating, testing and debugging the circuit boards where these chips are deployed, and troubleshooting systems once they have been installed in the field. Instruments include, but are not limited to bit error rate test (BERT) engines, BIST for logic devices, margining engines, memory BIST, memory test, random pattern generators, scan chains etc. Specifically, the instruments may be reconfigurable scan networks and the testing may be scan testing.

IEEE Std.1687 enables reconfigurable scan networks which allow only desirable instruments to be included in the active scan-path. Reconfigurable scan networks can become faulty, which may lead to the situation there will be no possibility left to test, trim and configure the IC. In the present disclosure, test and repair of the faulty scan registers is described. Two solutions, based on the hardware and software, to test the reconfigurable scan network, to identify faulty scan registers, and repair the network by excluding the faulty scan register from the network, are provided. In one embodiment the test block in the semiconductor device is configured to exclude faulty hardware parts for specific instruments based on the fault status. According to one embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device, the test block in the semiconductor device is configured to replace a faulty hardware part for a specific instrument with a corresponding repair part.

Fig. 1 shows an embodiment of the presently disclosed system (1) for accessing a plurality of instruments (2) embedded in a semiconductor device (3). The system (1) comprises a test controller (4) for testing the semiconductor device (3) or generating test patterns for the semiconductor device and a test block (14) embedded in the semiconductor device (3). The system (1) further comprises a hardware interface (5) for accessing segment insertion bits (6). The hardware interface may be, for example, a dedicated test port, such as IEEE Std. 11491 (JTAG), or a functional port, such as UART, SPI or I2C. The test controller (4) comprises an instrument connectivity language (7) and a procedural description (8) language configuration for operating the instruments (2). PDL and ICL may be given as inputs to an Electronic Design Automation (EDA) tool or an embedded controller. The test controller may output test patterns.

Fig. 2 shows an example of a semiconductor device comprising a test access port and a reconfigurable scan network based on IEEE Std. 1687. The embedded instruments are coupled with the scan registers and connected as a reconfigurable scan network based on IEEE Std.1687. The Test Access Port (TAP) of IEEE Std.1149.1 is used to connect the reconfigurable scan network and the outside world. Instead of using dedicated test port, IEEE Std. P1687.1 introduces a way to access the scan network with the functional ports. As an example, UART may be used as the functional port, which is shown in fig. 3 UART

UART is a computer hardware device for asynchronous serial contact, it includes a transmitter and a receiver. The transmitter is essentially a special shift register that loads data in parallel and then shifts it out bit by bit at a specific rate. The receiver, on the other hand, shifts in data bit by bit and then reassembles the data.

IEEE Std. 1687 (I JTAG)

The IJTAG standard is a methodology for accessing on-chip instrumentations through the reconfigurable scan network. There are different network architectures, such as flat networks, hierarchical networks, multiple networks, and daisy-chained networks. Fig. 4 shows an example of a flat reconfigurable network. Therefore, the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device may comprises an implementation of an IEEE Std. 1687 for accessing the instruments.

Segment Insertion Bit (SIB) The system may include a control mechanism for including and excluding instruments in the semiconductor device. A segment insertion bit (SIB) is an example of such a control mechanism, which is used to include or exclude instruments in the reconfigurable network. Fig. 5 shows an example of a schematic of a SIB. In the example there are three control signals (shift_en, update_en and capture_en) to control a SIB. At the beginning, the control bit in the U flip-flop is O’. Therefore, the MUX H will be connected to the TDI port, and the instruments are excluded from the network. If the SIB unit is in shift mode, the shift.en becomes ’T and MUX K1 will be connected to MUX H. Data will be shifted from the TDI into the S flip-flop at the rising edge of the CLK signal. When the SIB unit is not in shift mode, the shift.en becomes Ό’ and the S flip-flop remains its value through the feedback from K1 .

If the SIB unit is in update mode, update_en becomes ’T and MUX K2 is connected to the S flip-flop. In this way, the U flip-flop gets the values saved in the S flip-flop. When the SIB unit is not in update mode, update_en becomes Ό’ and the U flip-flop keeps its value through the feedback from K2. If the value in the U flip-flop is O’, the instrument will be excluded and MUX H will receive the value directly from TDI. If the value stored in the U flip-flop is ’T, the MUX H will be connected to the FSO port and the instrument select signal ToSel will enable the instrument network and the instrument will be included in the scan path.

Fig. 6 shows an embodiment of the presently disclosed system (1) for accessing a plurality of instruments (2) embedded in a semiconductor device. The embodiment comprises a UART, a network controller and a reconfigurable scan network. When the test controller (4) is to access the reconfigurable network, the test controller will first send the PDL commands to the UART, which will transfer these commands to a network controller (9). The network controller (9) will control the reconfigurable network according to these commands. The network controller (9) may comprise 4 parts: an IEEE 1687 FSM (10), a SIB control register (SCR) (11 ), an instrument length memory (12) and a discard unit (13). The IEEE 1687 FSM is for controlling the shift, update and capture signals. The SCR stores information about which instruments are part of the active scan path and what command is to be executed on them. The ILM holds information about the data lengths of the instruments in the network and the position of each instrument. The Discard Unit may allow the controller to discard garbage bits that are outputted by the network during the CSU cycles. iApply

An iApply command groups a set of commands to specify the way to operate on an instrument such as reading from or writing to the hardware The set of commands may be applied in parallel. Such commands may also be referred to as Level-0 PDL commands. Both the commands are sent by the test controller outside the device under test. The action commands are an iApply command. Setup commands such as iRead or iWrite will be lined up and wait for the action commands.

HW embodiment

Fig. 7 shows a hardware-implemented embodiment of the presently disclosed system (1) for accessing a plurality of instruments (2) embedded in a semiconductor device (3). The system (1) comprises a test controller (4) for testing the semiconductor device (3) or generating test patterns for the semiconductor device. The system (1) further comprises a hardware interface (5). The system (1) further comprises a test block (14) embedded in the semiconductor device (3). The testing of the reconfigurable network (15) is initiated by an iTest command being sent from the test controller (4). The iTest command will enable the test block (14). After the testing process ends, the test block (14) will get faulty scan registers locations. When the test controller (4) sends the iRepair command to the UART, the faulty scan registers’ locations will be sent to the repair component (16) in the network controller (9). After that, when the test controller (4) wants to access the faulty scan registers in the network, the repair component (16) will check the address with the faulty scan registers’ location. If the addresses are the same, the access process will be bypassed. According to one embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device, the test controller is configurable to send a test command to the test block through the hardware interface and/or wherein the test controller is configurable to send a repair command to the test block through the hardware interface.

Fig. 8 shows examples of bit sequences for test and repair commands. In this example both commands have 16 bits. The first byte Ό111 1111 ’ of iTest bit sequence specifies the iTest command and the first byte Ό111 1110’ of iRepair bit sequence specifies the iRepair command. When the test controller sends the iTest command to the device under test, the test function will be enabled. The overall idea of the test function is to detect and localize faulty scan registers. It may comprise two processes, the FULLTEST and ONEBY- ONE process. First, the FULLTEST process will be executed to test if there are any faults in the scan registers. If there are faults, the ONEBYONE process will be executed to test the scan registers one by one, which will localize the locations of the faults. Fig. 9 shows an example of a test block according to the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device, which includes the sequence generator, the shift-update (SU) controller and the sequence detector.

Fig. 10 shows examples of scan paths and an example of use of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device. Fig. 10A shows an example of a flat reconfigurable network with 3 SIBs and 3 scan registers where the length of the scan registers is 8 bit. For illustration, we inject a fault in the second scan register, which is controlled by the second SIB. The test function operates as follows:

- The sequence generator will generate control bits and test sequence for the FULLTEST process, shown in Fig. 10B. In this example, the control bits should be Ί 11 ’, which will make the network include all the scan registers into the scan path. Then the FULLTEST sequence will be serially shifted into the network. As the scan registers are of length 8 bit, the complete test sequence is Ί 0101010 10101010 1010101 O’. This sequence is shifted through the scan path. In case of no fault, the shift out sequence is the same as the shift in sequence. Flowever, if there is a fault, for example a stuck at fault, the shift-in sequence and the shift-out sequence will not match.

- After the SU controller transfers the control bits and the FULLTEST test sequence to the SIB network, the SU controller will generate the dummy bits Ό00000000000000000000000’ into the SIB network. In this way, the test data can be pushed out from the network.

- After the two steps above, the sequence detector will receive the output data from the SIB network and the sequence detector will compare this data with the original test data. In this example, the sequence detector will find that the shift- in sequence and the shift-out sequence do not match. A fault prompt signal will be sent to the sequence generator.

- When the sequence generator receives the fault prompt signal, the ONEBY ONE process will start, which are illustrated in fig. 10C. The test sequence and the control bits for testing the first scan register will be generated. In this example, the control bit will be Ί 00’ to only include the first instrument and the test sequence will be Ί 010101 O’. The scan path is shown in red in Figure 3.7(c).

- According to a possible next step, then the SU controller continue generates dummy bits into the network. In this step, the dummy bits should be Ό0000000’

- The sequence detector receives the output data from the network and the original test data. In this example, since the first scan register is not faulty, the fault prompt signal will not be enables.

- To-include the second scan register in the scan path, the sequence generator generates the control bits “010” and the test sequence Ί 010101 O’. The scan path is shown in in fig. 10C.

- When the sequence detector receives both sequences, the mismatch will be detected, and the fault prompt signal will be enabled. The sequence generator saves the location of the faulty scan register into the repair register.

- The test block continues to work until all the scan registers have been tested. In this example the information in the repair register should be Ό1 O’, which indicates that the second scan register is faulty.

Repair function

The present disclosure introduces a repair function, which may bypass the faulty scan registers. When the iRepair commands are applied, the repair component will be enabled to save the faulty scan registers location from the repair register of sequence generator. After that, when the test controller wants to access faulty scan registers, the repair component will check the faulty scan register locations and automatically exclude them from the scan path.

The test block in the hardware embodiment of the presently disclosed system for accessing a plurality of instruments embedded in a semiconductor device may comprise a repair component configured to exclude specific faulty scan registers from a scan-path.

The system may employ a FAULTScanRegister_reg in the form of register array of 8 bits-std_logic_vector type registers. One example is set out as follows: First, in the IDLE state, reset puts everything in default values. When the repair component starts, the state machine will go to the SO state. In the SO state, the component will check the first bit of SCRJestjn signal, which is the signal that transfers the faulty scan registers location from the repair register of sequence generator. As we discussed in the last subsection, the information in the repair register is Ό10’. Since the first scan register is not faulty, nothing will be saved in the first register of FAULTScanRegister reg array. After that, in the next rising edge of the clock cycle, the state machine will move to the S1 state. In S1 state, the SCR_counter adds 1 , which will make the SO state check the second bit of the repair register. The FAULTScanRegister_counter will also add 1 , which will transform the second scan register location to binary type (00000001). If there is a faulty scan register location in the next state, the fault location will be saved at the second vector of the FAULTScanRegister.reg array. Then the state machine goes to SO state again, since the second bits of repair register is ’T, the faulty scan register location will be saved as "0000 0001" in the second register of FAULTScanRegisterjeg array. The component will stop until every bits of repair register has been checked. As expected, the component will only save the second scan register location into the FAULTScanRegisterjeg array.

SW embodiment

Fig. 11 shows a software-implemented embodiment of the presently disclosed system (1) for accessing a plurality of instruments (2) embedded in a semiconductor device (3). In this embodiment the test (14) and repair (16) functions are implemented in the test controller (4). By applying iTest and iRepair commands, the test and repair functions will be enabled. First, the iTest command will be applied to enable the test function. During the test process, the faulty scan registers locations will be detected and saved into a file. After that, the iRepair command will be applied to enable the repair function. During the repair process, when the test controller wants tosend the iWrite or iRead commands which related to the faulty scan registers, the iRepair commands will check the faults location file and the iWrite or iRead commands will be bypassed.

Test function

In one example the same reconfigurable network as in fig. 10 is used to explain the test process of software solution. Fig. 12 shows an example of a work flow of the test process. The test function first applies the ALLWrite command to write test data Ί 0101010’ into all scan registers one by one. Fig. 13shows the bit sequence of the ALLWrite process. Then the ALLRead command is be applied to send the dummy bits Ό0000000’ to the scan network so that all the test data can be pushed out from the scan network back to the test controller. In this example, since the second scan register is an inverter which is considered as a fault, the second incoming data should be Ό101010T. Fig. 14 shows the bit sequence of the ALLRead process.

The data flow of ALLWrite and ALLWrite process are shown in fig. 15.

After that, the iTest function will look for the same data as incoming data in the original data buffer. If there is same data, the corresponding scan register is not faulty. If not, the corresponding scan register has a fault and the address of the scan register will be stored in the FaultScanRegisters file. In this example the second scan register’s location will be saved into this file.

Repair function

The idea of the repair function is to check what PDL commands use. If PDL commands want to access a faulty scan register, the repair function will exclude this PDL command from the iApply group. Hence, the scan path will be modified such that the defective scan register is excluded. For example, in fig. 15, the commands where the second scan register is bypassed, and the test controller only send the commands which is related to the normal scan registers.

Controlling access to instruments

The present disclosure further relates to applying the system and methods for controlling that instruments are only accessed in allowed combinations and detection of access attempts of instruments in non-permitted combinations.

One aspect of the present disclosure relates to a system for controlling access to instruments embedded in a semiconductor device, the system comprising:

- a hardware interface, such as a test access port or a functional port, configured to access a control mechanism for controlling the plurality of instruments;

- a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments,

- a test block is configured to verify that instrument accesses triggered by instructions received through the hardware interface to access the instruments are accessed in an order defined by an access control register.

The test block may be further configured to block accesses that are not allowed. The test block may also be configured to limit the number of bits in, for example, a scan chain that may be accessed. The system for controlling access to instruments embedded in a semiconductor device may be operated according the following example. If, for example, in the system of fig. 1 , instrument H should only be accessed is when it is the only instrument in the active scan-path. To enable this, an access control register (ACR) may be used, as shown in the example of fig. 17. In this example, the PDL will try to access H and i3 by setting the SCR so that instruments H and i3 are active at the same time. However, as ACR is specified to 001 the logic function will indicate that when instrument i3 is on the active scan-path it must be the only instrument. In this case, the content of the SCR is not accepted by the ACR and the logic function. The result is that access to instruments in this combination can be blocked, a signal can be sent to indicate that an attempt to access instruments in a not allowed combination has been made, and that the involved instruments, the content of SCR, are reported, as the information that instrument H was included in the PDL may help in determining if instrument H is a Trojan. Method for testing a semiconductor device and method for accessing a plurality of instruments embedded in a semiconductor device

The present disclosure further relates to a method for testing a semiconductor device and method for accessing a plurality of instruments embedded in a semiconductor device. The methods may be implemented on both the hardware embodiment and the software embodiment. The methods may be implemented as a computer program having instructions, which, when executed by a computing device or computing system, cause the computing device or system to carry out any embodiment of the presently disclosed method of method for testing a semiconductor device and method for accessing a plurality of instruments embedded in a semiconductor device. According to a first embodiment the method for testing a semiconductor device comprises the steps of:

- configuring a test by defining interconnections of a plurality of instruments in the semiconductor device using an instrument connectivity language and defining operations of the instruments using a procedural description language;

- accessing access segment insertion bits of the plurality of instruments through a hardware interface to test at least one functionality of each of a plurality of instruments, thereby receiving a fault status of each of the plurality of instruments;

- configuring a test block in the semiconductor device to exclude faulty hardware parts for specific instruments based on the fault status of the plurality of instruments, or excluding a procedural description language command specifically related to the faulty hardware parts; and

- performing a full test using all the plurality of instruments in the semiconductor device without updating the defined interconnections and operations of the instruments in the test.

The steps do not necessarily have to be sequential.

According to a first embodiment the method for accessing a plurality of instruments embedded in a semiconductor device comprises the steps of:

- providing a hardware interface, such as a test access port or a functional port, configured to access segment insertion bits of the plurality of instruments;

- providing a test controller for testing the semiconductor device or generating test patterns for the semiconductor device, wherein the test controller comprises an instrument connectivity language and a procedural description language configuration for operating the instruments;

- testing at least one functionality of each of the plurality of instruments by accessing the segment insertion bits of the plurality of instruments through the hardware interface, thereby receiving a fault status of each of the plurality of instruments; and

- based on the fault status of the plurality of instruments, configure a test block in the semiconductor device such that valid test patterns for the semiconductor device can be generated without updating the instrument connectivity language and procedural description language configuration.

The steps do not necessarily have to be sequential. References

The following references are hereby incorporated by reference in their entirety:

“IEEE standard for access and control of instrumentation embedded within a semiconductor device,” IEEE Std 1687-2014, 2014. “IEEE standard for access and control of instrumentation embedded within a semiconductor device,” IEEE Std. 1149.1 , 2013.

Larsson, Erik, Murali, Prathamesh and Kumisbek, Gani, “IEEE Std. P1687.1 : translator and protocol”, International Test Conference (ITC), 2019