KR20080019140A - Test vector compression method and decoder for restoring compressed test vector - Google Patents

Test vector compression method and decoder for restoring compressed test vector Download PDF

Info

Publication number
KR20080019140A
KR20080019140A KR1020060081184A KR20060081184A KR20080019140A KR 20080019140 A KR20080019140 A KR 20080019140A KR 1020060081184 A KR1020060081184 A KR 1020060081184A KR 20060081184 A KR20060081184 A KR 20060081184A KR 20080019140 A KR20080019140 A KR 20080019140A
Authority
KR
South Korea
Prior art keywords
data
bits
bit
codeword
diff
Prior art date
Application number
KR1020060081184A
Other languages
Korean (ko)
Inventor
이용
Original Assignee
엘지전자 주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020060081184A priority Critical patent/KR20080019140A/en
Publication of KR20080019140A publication Critical patent/KR20080019140A/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318335Test pattern compression or decompression

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

A test vector compression method and a decoder for restoring a compressed test vector are provided to secure high compression rate of the test vector by using a TDR(Transition-Directed Run-Length) code in consideration of similarity and dissimilarity of the test vectors. A test vector compression method is composed of the steps for generating first and second test vectors(Td,Tdiff) by test data generated by an ATPG(Automatic Test Pattern Generator), wherein Td=[t1,t2,t3,-tn] and Tdiff=[d1,d2,d3,-dn]=[t1,t1 XOR t2,t2 XOR t3,- tn-1 XOR tn]; connecting the second test vector through one chain; inserting transition informing flag data to a part of the second test vector where the number of 1 bits is increased more than 0 bits; scanning the second test vector including flag data, counting 0 bits generated before 1 bits, by four at maximum before flag data is detected, and making a codeword by adding a prefix 1 bit to a counted value if the counted value is below 4 and making a codeword as 10 if the counted value is 4; making the codeword for the flag data as 11, if the flag data is detected; and counting 1 bits generated before 0 bits, by four at maximum, making the codeword by adding a prefix 0 bit to the counted value if the counted value is below 4 and making the codeword as 10 if the counted value is 4. A decoder(202) comprises a data restoring unit(206), a data synchronizing unit(208), and a data output unit(210).

Description

테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는 디코더{Test vector compression method and decoder for restoring compressed test vector}Test vector compression method and decoder for restoring compressed test vector}

도 1은 디코더를 구비한 SoC(System on a Chip)와 ATE를 도시한 모식도,1 is a schematic diagram showing a System on a Chip (SoC) with an decoder and an ATE;

도 2는 본 발명에 따른 압축된 테스트 벡터를 복원하는 디코더의 구성을 도시한 블럭도이다.2 is a block diagram showing the configuration of a decoder for reconstructing a compressed test vector according to the present invention.

* 도면의 주요부분에 대한 부호의 설명 * Explanation of symbols for main parts of the drawings

100,200 : ATE 112,202 : 디코더100,200: ATE 112,202: decoder

206 : 데이터 복원부 208 : 데이터 동기부206: data recovery unit 208: data synchronization unit

210 : 데이터 출력부 240-0,240-1 : CUT210: data output section 240-0,240-1: CUT

본 발명은 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터(Vector)의 압축 방법 및 압축된 테스트 벡터를 복원하는 디코더에 관한 것이다.The present invention relates to a method of compressing a test vector (Vector) required for an operation test of a system on a chip (SoC) semiconductor device, and a decoder to restore a compressed test vector.

반도체 설계기술이 발달함에 따라 하나의 칩 안에 기능 블럭을 집적시킨 SoC(System on a Chip)의 제작이 가능하게 되었다. 이와 같이 IC(Integrated Circuit) 집적도가 향상됨에 따라 칩 제작 비용과 함께 칩 테스트 비용의 증가 또한 주요 연구분야로 대두되고 있다. With the development of semiconductor design technology, it is possible to manufacture a system on a chip (SoC) in which functional blocks are integrated into one chip. As the integrated circuit (IC) integration is improved, the chip manufacturing cost and the increase of the chip test cost are also emerging as a major research field.

테스트 비용의 상승은 주로 Automatic Test Equipment(ATE)의 가격과 테스트에 소요되는 시간에 따라 결정된다. 그리하여 칩 테스트에 소요되는 시간의 경우, 제작되는 칩의 테스트 핀 수를 늘리고 보다 많은 채널을 가진 ATE를 구비하면 되겠지만 이는 고가의 ATE 구입으로 이어져 결국 칩 가격 상승으로 반영되므로, 결국 근본적인 비용절감을 기대할 수 없게 된다.The increase in test costs is largely determined by the price of the Automatic Test Equipment (ATE) and the time it takes to test. Thus, in the case of chip test time, it is possible to increase the number of test pins of the fabricated chip and have an ATE with more channels, but this leads to the purchase of expensive ATE, which is reflected in the increase in chip price, so that a fundamental cost reduction is expected. It becomes impossible.

이러한 점을 보안하기 위해서 ATE는 압축된 테스트 벡터(Vector)를 SoC에 제공하도록 한다. 그리고 SoC는 압축된 테스트 벡터를 복원할 수 있는 적절한 디코더를 내부에 구비함으로써, ATE의 동작속도로는 SoC의 동작 주파수에 맞추어 동작 테스트가 불가능하였던 것을 가능하도록 하고 있다. To secure this point, ATE provides a compressed test vector to the SoC. In addition, the SoC has an appropriate decoder therein capable of recovering the compressed test vector, thereby enabling the operation test to be impossible at the operating speed of the ATE at the operating speed of the ATE.

도 1은 디코더를 구비한 SoC(System on a Chip)와 ATE를 도시한 모식도이다. 1 is a schematic diagram illustrating a System on a Chip (SoC) with an decoder and an ATE.

ATE(100)는 미리 압축된 테스트 벡터를 저장하고 있으며, ATE Extension(102)을 통해서 압축된 테스트 벡터를 4 채널로 장치연결보드(DIB, Device Interface Board)(104)의 Extension(106)에 출력한다. 그러면 장치연결보드(104)에 연결되어 있는 SoC(108)의 데이터 직렬부(110)가 장치연결보드의 Extension(106)을 통해 입력된 4 채널의 압축된 테스트 벡터를 입력받아 한 채널로 데이터 직렬화(Serialization)를 하여 디코더(112)로 전송한다. 디코더(112)는 압축된 테스트 벡터를 복원하고 복원된 테스트 벡터를 테스트할 코어(CUT: Core Under Test)(114)에 인가시킨다.The ATE 100 stores pre-compressed test vectors, and outputs the compressed test vectors through the ATE Extension 102 to the Extension 106 of the Device Interface Board (DIB) 104 in four channels. do. Then, the data serial unit 110 of the SoC 108 connected to the device connection board 104 receives four compressed test vectors inputted through the extension 106 of the device connection board, and serializes the data into one channel. (Serialization) is transmitted to the decoder 112. The decoder 112 reconstructs the compressed test vector and applies the reconstructed test vector to the core under test (CUT) 114.

테스트 벡터를 압축하는 방식은 상기 기재한 바와 같이 SoC(108)와 같은 고집적 회로의 민감한 동작 특성에 맞추어 동작 테스트가 가능하도록 해 줄 뿐만 아니라 ATE(100)의 제한된 채널 및 메모리를 효과적으로 사용할 수 있도록 해 줌으로써 관심이 고조되고 있다. The method of compressing the test vector not only allows operation testing for the sensitive operating characteristics of highly integrated circuits such as the SoC 108, but also enables effective use of the limited channel and memory of the ATE 100 as described above. The interest is heightened by giving.

그러므로 본 발명의 목적은 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터를 보다 효과적으로 압축할 수 있는 방법을 제공하는데 있다. Therefore, an object of the present invention is to provide a method for more effectively compressing a test vector required for the operation test of a System on a Chip (SoC) semiconductor device.

또한 본 발명의 목적은 상기 제공하는 테스트 벡터 압축 방법에 따라 압축된 테스트 벡터를 복원하는 디코더를 제공하는데 있다. It is also an object of the present invention to provide a decoder for recovering a compressed test vector according to the test vector compression method provided above.

상기와 같은 목적을 달성하기 위해서, 본 발명에 따른 테스트 벡터 압축 방법은 ATPG(Automatic Test Pattern Generator)가 생성한 테스트 데이터로 테스트 벡터 Td와 Tdiff를 생성하는 단계; In order to achieve the above object, the test vector compression method according to the present invention comprises the steps of generating a test vector T d and T diff with the test data generated by ATPG (Automatic Test Pattern Generator);

Td = {t1,t2,t3,...,tn}T d = {t1, t2, t3, ..., tn}

Tdiff = {d1,d2,d3,...,dn} = {t1,t1 XOR t2, t2 XOR t3,..,tn-1 XOR tn}T diff = {d1, d2, d3, ..., dn} = {t1, t1 XOR t2, t2 XOR t3, .., tn-1 XOR tn}

상기 생성된 Tdiff를 하나의 체인(Chain)으로 연결하는 단계; 상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분에 전환을 알리는 플래그(TF) 데이터를 삽입하는 단계; 상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 상기 플래그 데이터가 검출되기 전까지 '1' 비트 이전에 나타나는 '0' 비트를 최대 4개씩 카운팅하고, 상기 카운팅된 값이 4 미만이면 상기 카운팅된 값에 프리픽스(Prefix) '0' 비트를 부가하여 코드워드를 작성하고, 4이면 코드워드를 '10'으로 작성하는 단계; 상기 플래그 데이터가 검출된 경우에 상기 플래그 데이터에 대한 코드워드를 '11'로 작성하는 단계; 및 상기 플래그 데이터가 검출된 이후에 '0' 비트 이전에 나타나는 '1' 비트를 최대 4개씩 카운팅하며, 상기 카운팅된 값이 4 미만이면 상기 카운팅된 값에 프리픽스(Prefix) '0' 비트를 부가하여 코드워드를 작성하고, 4이면 코드워드를 '10'으로 작성하는 단계;를 포함하여 이루어진다. Connecting the generated T diffs into one chain; Inserting flag (TF) data indicating a change in a portion in which the number of '1' bits is greater than the number of '0' bits in the T diffs connected by one chain; Scan T diff containing the flag data indicating the conversion and count up to four '0' bits appearing before '1' bits until the flag data is detected, and if the counted value is less than 4, the counted number is counted. Creating a codeword by adding a prefix '0' bit to a value, and writing the codeword as '10' if 4; Writing a codeword for the flag data as '11' when the flag data is detected; And counting up to four '1' bits appearing before the '0' bit after the flag data is detected, and if the counted value is less than 4, adds a prefix '0' bit to the counted value. And a codeword, if 4, writing a codeword to '10'.

여기서, 상기 전환을 알리는 플래그(TF) 데이터 삽입은 상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분 또는 '1' 비트의 개수보다 '0' 비트의 개수가 많아지는 부분에 상기 전환을 알리는 플래그 데이터를 삽입하는 것을 특징으로 하고, 상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 코드워드를 작성시, 상기 전환을 알리는 플래그 데이터가 검출될 때마다 상기 플래그 데이터가 검출되기 이전에 카운팅한 비트의 반전 비트를 카운팅하며 상기의 코드워드 작성을 수행하는 것을 특징으로 한다. Here, the flag (TF) data informing of the conversion is a portion in which the number of '1' bits is greater than the number of '0' bits or the number of '1' bits in the T diff connected by the one chain. And inserting flag data for informing the change in a portion where the number of bits increases, and scanning the T diff in which the flag data for informing the change is inserted and writing a codeword, the flag data for informing the change is detected. Each time the flag data is counted, the inverted bits of the counted bits are counted before the flag data is detected.

본 발명에 따른 압축된 테스트 벡터를 복원하는 디코더는 ATE(Automatic Test Equipment)로부터 입력되는 압축된 코드워드를 Tdiff로 복원하는 데이터 복원 부; 상기 데이터 복원부가 복원한 Tdiff를 임시 저장하였다 기 설정된 벡터 길이로 Tdiff를 출력하는 데이터 동기부; 및 상기 데이터 동기부가 출력한 Tdiff에 대해서 XOR 과정을 수행하여 원래 테스트 벡터인 Td를 복원하고 테스트할 코어(CUT : Core Under Test)로 상기 Td를 출력하는 데이터 출력부;를 포함하여 이루어진다. A decoder for recovering a compressed test vector according to the present invention includes a data recovery unit for recovering a compressed codeword input from an ATE (Automatic Test Equipment) into T diff ; A data synchronizer configured to temporarily store the T diff restored by the data restorer and output a T diff having a preset vector length; And a data output unit performing an XOR process on the T diff output by the data synchronizer to restore the original test vector, T d , and output the T d to a core under test (CUT). .

여기서, 상기 데이터 복원부는 ATE(Automatic Test Equipment)로부터 입력되는 압축된 코드워드의 첫 번째 비트가 '0' 인 경우 뒤의 2 비트의 데이터 값을 데이터 발생부로 전송하고 데이터 발생부로부터 완료(Done) 신호를 수신할 때에 '1' 비트를 데이터 처리부로 출력하며, 첫 번째 비트가 '1' 인 경우 두 번째 비트 값을 확인하여 두 번째 비트가 '0' 인 경우에 상기 데이터 발생부로 카운팅 값 4를 전송하고 두 번째 비트가 '1' 인 경우에 상기 데이터 발생부로 트랜지션(Transition) 데이터를 전송하는 FSM(Finite State Machine); 상기 FSM으로부터 전송받은 데이터 값을 다운 카운팅하고 상기 다운 카운팅할 때마다 '0' 비트를 상기 데이터 처리부로 출력한 후 상기 다운 카운팅 결과 0이 될 때 상기 FSM으로 완료 신호를 전송하며, 상기 FSM으로부터 트랜지션 데이터를 전송받은 경우 트랜지션 신호를 발생시켜 상기 데이터 처리부로 출력하는 데이터 발생부; 및 상기 FSM로부터 입력되는 '1' 비트들과 상기 데이터 발생부로부터 입력되는 '0'비트들을 순차적으로 출력하며 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 때마다 출력하는 비트들을 반전시켜 출력하는 데이터 처리부;로 구성된다. Herein, when the first bit of the compressed codeword input from the ATE (Automatic Test Equipment) is '0', the data recovery unit transmits a data value of two bits later to the data generator and completes it from the data generator (Done). When receiving the signal, outputs '1' bit to the data processor, and if the first bit is '1', checks the value of the second bit and if the second bit is '0', counting value 4 to the data generator. A finite state machine (FSM) for transmitting transition data to the data generator when the second bit is '1'; When counting down the data value received from the FSM and outputting a '0' bit to the data processing unit every time the down counting is performed, when the down counting result is 0, a completion signal is transmitted to the FSM, and the transition from the FSM is performed. A data generator for generating a transition signal and outputting the data to the data processor when data is received; And a data processor for sequentially outputting '1' bits input from the FSM and '0' bits input from the data generator, and inverting the output bits each time a transition signal is input from the data generator. It consists of;

또한, 상기 데이터 처리부는 상기 FSM로부터 입력되는 '1' 비트들과 상기 데 이터 발생부로부터 입력되는 '0'비트들을 순차적으로 논리합(OR)하는 OR 게이트; 상기 OR 게이트가 OR한 비트 데이터를 반전하는 T-플립플롭; 및 상기 OR 게이트에서 OR된 비트 데이터와 상기 T-플립플롭에서 반전된 비트 데이터를 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 시마다 교대로 출력하는 멀티플렉서;로 구성된다. The data processing unit may further include an OR gate that sequentially ORs the '1' bits input from the FSM and the '0' bits input from the data generator; A T-flip-flop that inverts bit data ORed by the OR gate; And a multiplexer for alternately outputting bit data ORed at the OR gate and bit data inverted at the T-flip flop each time a transition signal is received from the data generator.

본 발명에 따른 상기 데이터 동기부는 FIFO(First In First Out) 형태의 레지스터를 구비하여 상기 데이터 복원부에서 출력되는 Tdiff를 임시 저장하는 것을 특징으로 한다.The data synchronizer according to the present invention may include a register having a first in first out (FIFO) type to temporarily store a T diff output from the data recovery unit.

이하에서는 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 다만, 본 발명을 설명함에 있어 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.Hereinafter, with reference to the accompanying drawings will be described the present invention in more detail. However, in the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

일반적으로 반도체 소자의 동작 테스트에 사용되는 테스트 벡터의 경우에 유사한 비트의 수가 많다. 그래서 테스트 벡터를 그대로 사용하는 것보다는 XOR(eXclusive-OR, 입력되는 두 비트가 동일한 비트 값인 경우에는 '0'으로, 서로 다른 비트 값인 경우에는 '1'로 결과값을 출력) 과정을 통해 테스트 벡터에서 서로 다른 비트의 값만을 표현하도록 테스트 벡터를 변환시킨 후 그 변환시킨 테스트 벡 터를 동작 테스트에 사용하게 된다. In general, in the case of test vectors used to test the operation of semiconductor devices, the number of similar bits is large. Therefore, rather than using the test vector as it is, the test vector is output through XOR (eXclusive-OR, '0' if the two input bits are the same bit value and '1' if the two bits are the same bit value). After transforming the test vector to represent only the values of the different bits, the transformed test vector is used for the operation test.

여기서, 원래의 테스트 벡터를 Td로 정의하고, Tdiff는 n일 때 (tn-1 XOR tn)의 값으로 정의한다.Here, the original test vector is defined as T d , and T diff is defined as the value of (tn-1 XOR tn) when n.

Td = {t1,t2,t3,...,tn}T d = {t1, t2, t3, ..., tn}

Tdiff = {d1,d2,d3,...,dn} = {t1,t1 XOR t2, t2 XOR t3,..,tn-1 XOR tn}T diff = {d1, d2, d3, ..., dn} = {t1, t1 XOR t2, t2 XOR t3, .., tn-1 XOR tn}

Tdiff는 테스트 벡터들 간에 값의 차이를 '1'로 나타내기 때문에 테스트 벡터의 특징인 서로 동일한 값을 가지는 비트의 수가 많다는 것을 고려한다면 거의 대부분의 Tdiff는 '0'의 연속적인 수가 된다.Since T diff represents the difference between the values of the test vectors as '1', almost all T diffs are consecutive numbers of '0' considering that the number of bits having the same value is characteristic of the test vector.

그에 따라, 표 1에 도시된 바와 같이 Run-Length 압축 방식에 따라 Tdiff의 '0'의 개수를 나타내는 압축된 코드워드(Codeword)를 작성할 수가 있다.Accordingly, as shown in Table 1, a compressed codeword representing the number of '0's of T diffs may be generated according to the run-length compression scheme.

표 1 Table 1

Tdiff T diff 코드워드(Codeword)Codeword 1 01 001 0001 00001 000001 0000001 000000011 01 001 0001 00001 000001 0000001 00000001 000 001 010 011 100 101 110 111000 001 010 011 100 101 110 111

하지만, 실질적으로 실험해 본 결과, 테스트 벡터 Td의 유사성은 70% 정도이며 30%는 유사성을 나타내지 않아 Tdiff에 대한 압축 효율이 떨어지는 경향이 있음을 알 수 있었다. However, as a result of practical experiments, the similarity of the test vector T d is about 70%, and 30% does not show similarity, indicating that the compression efficiency for T diff tends to be inferior.

본 발명은 테스트 벡터 간의 유사성과 비유사성 모두를 고려하여 보다 효율적으로 테스트 벡터를 압축할 수 있는 Transition-Directed Run-Length(TDR) 코드로 압축하는 방법을 제안한다.The present invention proposes a method of compressing a test vector into a Transition-Directed Run-Length (TDR) code that can compress the test vector more efficiently in consideration of both similarity and dissimilarity between the test vectors.

본 발명에 따른 TDR 코드로 테스트 벡터를 압축하는 방법에 대해서 좀 더 자세히 설명하도록 한다.A method of compressing a test vector with a TDR code according to the present invention will be described in more detail.

우선, 테스트 패턴 자동 생성기 (ATPG : Automatic Test pattern Generator)에서 생성해 주는 테스트 데이터를 이용하여 Td와 Tdiff를 생성한다.First, T d and T diff are generated using the test data generated by the automatic test pattern generator (ATPG).

그리고 생성된 Tdiff를 하나의 체인(Chain)으로 연결한다.Then connect the generated T diff into one chain.

하나의 체인으로 연결된 Tdiff를 스캔하며 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분을 검출하고 그 검출된 부분에 전환(Transition)을 알리는 플래그(Flag) 데이터를 삽입한다.It scans the T diff connected by one chain and detects the part where the number of '1' bits is larger than the number of '0' bits and inserts flag data indicating the transition into the detected part.

또한 상기 플래그 데이터는 '1' 비트의 개수보다 '0' 비트의 개수가 많아지는 부분에 삽입될 수도 있으며, 이에 따라 Tdiff가 어떠한 데이터 패턴을 가지고 있는지에 따라 적어도 하나 이상의 전환을 알리는 플래그 데이터가 삽입될 수 있다.In addition, the flag data may be inserted in a portion where the number of '0' bits is larger than the number of '1' bits. Accordingly, the flag data for notifying at least one transition depending on which data pattern T diff has Can be inserted.

그리고 상기의 플래그 데이터가 삽입된 Tdiff를 다시 순차적으로 스캔한다. 그러면서 상기 플래그 데이터가 검출되기 전까지 '1' 비트 이전에 나타나는 '0' 비트를 카운팅한다. Then, T diff with the flag data inserted is sequentially scanned again. Then counting the '0' bit appearing before the '1' bit until the flag data is detected.

여기서, '0' 비트의 카운팅은 최대 4개씩 수행되며, '0' 비트 수가 4개 미만 으로 카운팅된 경우에는 그 카운팅된 '0' 비트 수에 프리픽스(Prefix) '0' 비트를 부가하여 3-비트의 코드워드를 작성한다.Here, counting of '0' bits is performed by a maximum of four, and if the number of '0' bits is counted to less than four, the prefix '0' bit is added to the counted '0' bits to add 3- Write a codeword of bits.

그리고 '0' 비트 수가 4개 카운팅된 경우에는 '10'으로 2-비트의 코드워드를, 상기 전환을 알리는 플래그 데이터가 검출될 시에는 '11'로 2-비트의 코드워드를 작성한다.When four '0' bits are counted, a 2-bit codeword is written as '10', and when a flag data indicating the change is detected, a 2-bit codeword is written as '11'.

한편, Tdiff에서 첫 번째 플래그 데이터가 검출되면, Tdiff에 삽입되어 있을 수 있는 두 번째 플래그 데이터가 검출되기 전까지 Tdiff를 순차적으로 스캔하면서 '0' 비트 이전에 나타나는 '1' 비트를 카운팅한다.On the other hand, it counts the first flag when the data has been detected, until the second flag data that may be inserted into the T diff is detected while scanning the T diff sequentially "0" bit before "1" bit appears in T diff .

여기서, '1' 비트의 카운팅은 상기 '0' 비트의 카운팅과 마찬가지로 최대 4개씩 수행되며, '1' 비트 수가 4개 미만으로 카운팅된 경우에는 그 카운팅된 '1' 비트 수에 프리픽스(Prefix) '0' 비트를 부가하여 3-비트의 코드워드를 작성한다.Here, the counting of the '1' bits is performed up to four as in the counting of the '0' bits, and when the number of '1' bits is counted to less than four, the number of bits of the '1' bits is prefixed. Add a '0' bit to create a 3-bit codeword.

'1' 비트 수가 4개 카운팅된 경우에는 '10'으로 2-비트의 코드워드를, 전환을 알리는 두 번째 플래그 데이터가 검출될 시에는 '11'로 2-비트의 코드워드를 작성한다.When four '1' bits are counted, a 2-bit codeword is written as '10', and when a second flag data indicating a change is detected, a 2-bit codeword is written as '11'.

Tdiff를 스캔하며 세 번째 플래그 데이터가 검출되면 다시 '1' 비트가 나타나기 전에 나타나는 '0' 비트를 카운팅하는 상기와 같은 과정을 반복하며 Tdiff에 대한 코드워드를 작성한다.When T diff is scanned and the third flag data is detected, it repeats the above process of counting the '0' bits that appear before the '1' bits appear again, and creates a codeword for T diff .

결국, 본 발명에 따른 TDR 코드로 테스트 벡터를 압축하는 방법을 살펴보면, 테스트 벡터의 유사성 및 비유사성으로 인해 Tdiff에서 '0' 비트가 '1' 비트보다 많이 나타나는 부분과 '1' 비트가 '0' 비트보다 많이 나타나는 부분이 존재하므로 이를 구분하는 플래그 데이터를 삽입한다. 그리고 '0' 비트가 '1' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하여 그 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성하고, '1' 비트가 '0' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하여 그 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성한다.As a result, a method of compressing a test vector with a TDR code according to the present invention shows that due to the similarity and dissimilarity of the test vector, a portion where '0' bits appear more than '1' bits and '1' bits in T diff is' Since there is a part appearing more than 0 'bit, insert flag data to distinguish it. And in the part where '0' bits appear more than '1' bits, count the '0' bits to write a codeword using the counted number of '0' bits, and '1' bits than the '0' bits. In many appearing parts, the codeword is written using the counted number of '0' bits.

앞서 기재한 바와 같이 작성된 코드워드에서 카운팅된 수가 '0' 비트를 의미하는지 '1' 비트를 의미하는지를 Tdiff에 삽입된 플래드 데이터에 대한 코드워드 '11'을 기준으로 구분할 수 있게 한다.As described above, it is possible to distinguish whether the counted number in the codeword written as described above means '0' bit or '1' bit based on the codeword '11' for the plad data inserted in the T diff .

상기와 같은 과정을 반복하며 ATPG(Automatic Test pattern Generator)에서 생성해 주는 테스트 벡터를 본 발명에 따른 TDR 코드로 압축한다.The above process is repeated, and the test vector generated by the Automatic Test Pattern Generator (ATPG) is compressed into a TDR code according to the present invention.

표 2는 본 발명에 따른 TDR 코드워드를 도시하고 있으며, 이와 같은 TDR 압축 방식을 이용하여 테스트 데이터를 압축한 예를 살펴보도록 한다.Table 2 shows a TDR codeword according to the present invention, and looks at an example of compressing test data using the TDR compression scheme.

표 2TABLE 2

Tdiff T diff prefixprefix codewordcodeword 1 01 001 00011 01 001 0001 00 000 001 010 011000 001 010 011 00000000 1One 1010 TF(Transition Flag)TF (Transition Flag) 1One 1111 0 10 110 11100 10 110 1110 00 000 001 010 011000 001 010 011 11111111 1One 1010

Tdiff = {d1,d2,d3,d4} 이고,T diff = {d1, d2, d3, d4}

d1 = 00000100, d2 = 00110000, d3 = TF101110, d4 = 11101111일 경우, d1, d2, d3, d4를 하나의 체인으로 연결하면,If d1 = 00000100, d2 = 00110000, d3 = TF101110, d4 = 11101111, if d1, d2, d3, d4 are connected in one chain,

=> 0000010000110000TF10111011101111 의 32 비트 체인이 된다.=> 0000010000110000TF10111011101111 is a 32-bit chain.

이를 패턴(Pattern)에 따라 나누어 보면,If you divide it by pattern,

=> (0000)(01)(0000)(1)(1)(0000)(TF)(10)(1110)(1110)(1111)으로 나누어진다. 여기서, (TF)는 전환을 알리는 플래그 데이터를 의미한다.=> (0000) (01) (0000) (1) (1) (0000) (TF) (10) 1110 (1110) (1111). Here, (TF) means flag data for informing the switch.

그리고 각 패턴에 따른 코드워드를 표 2를 참조하여 작성하면 아래와 같다.The codewords according to the patterns are described below with reference to Table 2.

=> (10)(001)(10)(000)(000)(10)(11)(001)(011)(011)(10)=> (10) (001) (10) (000) (000) (10) (11) (001) (011) (011) (10)

이를 통해, 32 비트의 Tdiff가 28 비트의 코드워드로 압축됨을 확인할 수 있다.Through this, it can be seen that the 32-bit Tdiff is compressed into a 28-bit codeword.

도 2는 본 발명에 따른 압축된 테스트 벡터를 복원하는 디코더의 구성을 도시한 블럭도이다.2 is a block diagram showing the configuration of a decoder for reconstructing a compressed test vector according to the present invention.

도면에 도시된 바와 같이, 본 발명에 의해 압축된 코드워드를 압축 해제하는 디코더(202)는 크게 데이터 복원부(206)와, 데이터 동기부(208)와, 데이터 출력부(210)로 구성될 수 있다.As shown in the figure, the decoder 202 decompressing the codeword compressed by the present invention is largely composed of a data recovery unit 206, a data synchronization unit 208, and a data output unit 210. Can be.

데이터 복원부(206)는 ATE(200)로부터 입력받은 압축된 코드워드를 Tdiff로 복원하고, 데이터 동기부(208)는 데이터 복원부(206)에서 복원된 Tdiff를 임시 저장하였다 출력하여 ATE(200)의 데이터 전송속도와 동기를 맞추며, 데이터 출력 부(210)는 데이터 동기부(206)에서 출력되는 Tdiff를 Td로 변환시켜 테스트할 코어(CUT)(204-0,204-1)로 Td를 출력한다. The data restorer 206 restores the compressed codeword received from the ATE 200 to T diff , and the data synchronizer 208 temporarily stores and outputs the T diff restored from the data restorer 206 to output the ATE. In synchronization with the data transmission rate of (200), the data output unit 210 converts T diff output from the data synchronizer 206 into T d to the cores (CUT) 204-0 and 204-1 to be tested. Output T d .

좀 더 상세하게 본 발명에 따른 디코더(202)의 구성을 살펴보도록 한다.In more detail, the configuration of the decoder 202 according to the present invention will be described.

데이터 복원부(206)는 FSM(Finite State Machine)(212)과, 데이터 발생부(214)와, 데이터 처리부(216)로 구성된다. The data recovery unit 206 includes a finite state machine (FSM) 212, a data generator 214, and a data processor 216.

FSM(212)은 ATE(200)로부터 입력받은 코드워드의 첫 번째 비트 값을 확인한다. FSM(212)은 상기 확인 결과, 첫 번째 비트가 '0' 인 경우 뒤의 2 비트의 데이터를 데이터 발생부(214)로 전송하고, 데이터 발생부(214)로부터 완료(Done) 신호를 수신할 때에 '1'을 데이터 처리부(216)로 출력한다. The FSM 212 checks the first bit value of the codeword received from the ATE 200. If the first bit is '0', the FSM 212 transmits the data of the second two bits to the data generator 214 and receives a Done signal from the data generator 214. At this time, '1' is output to the data processing unit 216.

그리고 FSM(212)은 첫 번째 비트가 '1' 인 경우 두 번째 비트 값을 확인한다. 상기 확인 결과 두 번째 비트가 '0' 인 경우에 데이터 발생부(214)로 카운팅 값 4를 전송하고, 이때는 데이터 발생부(214)로부터 완료(Done) 신호를 수신할 경우 '1'을 출력하지 않는다.The FSM 212 checks the value of the second bit when the first bit is '1'. If the second bit is '0', the counting value 4 is transmitted to the data generator 214. In this case, when the Done signal is received from the data generator 214, '1' is not output. Do not.

FSM(212)은 첫 번째 비트가 '1' 이고, 두 번째 비트가 '1' 인 경우, 데이터 발생부(214)로 트랜지션(Transition) 데이터를 전송한다. When the first bit is '1' and the second bit is '1', the FSM 212 transmits transition data to the data generator 214.

데이터 발생부(214)는 FSM(212)으로부터 전송받은 데이터 값을 다운 카운팅하며 다운 카운팅할 때마다 '0'을 출력한다. 그에 따라 데이터 발생부(214)는 전송받은 데이터 값만큼 '0'을 출력하며 다운 카운팅 결과 0이 될 때 FSM(212)으로 완료 신호를 전송한다. 예를 들어 데이터 발생부(214)가 FSM(212)으로부터 '11' 데이 터를 전송받았다면 '11' 값을 다운 카운팅하며 총 3번 '0'을 출력한 후 FSM(212)으로 완료 신호를 전송한다.The data generator 214 down counts the data value received from the FSM 212 and outputs '0' every time the down count is performed. Accordingly, the data generator 214 outputs '0' as much as the received data value and transmits a completion signal to the FSM 212 when the counting result is 0. For example, if the data generator 214 has received '11' data from the FSM 212, it counts down '11' and outputs '0' three times in total, and then sends a completion signal to the FSM 212. send.

데이터 발생부(214)는 FSM(212)으로부터 트랜지션(Transition) 데이터를 전송받은 경우, 트랜지션 신호를 발생시켜 데이터 처리부(216)로 출력한다.When the data generator 214 receives the transition data from the FSM 212, the data generator 214 generates a transition signal and outputs the transition signal to the data processor 216.

데이터 처리부(216)는 상기 FSM로부터 입력되는 '1' 비트들과 상기 데이터 발생부로부터 입력되는 '0'비트들을 순차적으로 출력하며 데이터 발생부(214)로부터 트랜지션 신호를 입력받을 때마다 출력하는 비트들을 반전시켜 출력한다. The data processor 216 sequentially outputs '1' bits inputted from the FSM and '0' bits inputted from the data generator, and outputs a bit each time a transition signal is received from the data generator 214. Invert them and print them out.

데이터 처리부(216)는 OR 게이트(Gate)(218)와, T-플립플롭(Flip Flop, 'FF')(220)과, 멀티플렉서(Multiplexer)(222)로 구성된다. 그리고 OR 게이트(218)는 FSM(212)과 데이터 발생부(214)에서 출력되는 각각의 '1' 비트들과 '0'비트들을순차적으로 논리합(OR)하여 출력한다.The data processor 216 includes an OR gate 218, a T-flip flop (FF) 220, and a multiplexer 222. The OR gate 218 sequentially ORs each of the '1' bits and the '0' bits output from the FSM 212 and the data generator 214.

T-플립플롭(220)은 OR 게이트(218)에서 출력하는 데이터를 반전하여 출력한다.The T flip-flop 220 inverts and outputs the data output from the OR gate 218.

멀티플렉서(222)는 데이터 발생부(214)로부터 트랜지션 신호을 입력받을 때마다 교대로 OR 게이트(218)가 출력하는 데이터 또는 T-플립플롭(220)이 출력하는 데이터를 출력시킨다. 그에 따라, 멀티플렉서(222)는 초기에 OR 게이트(218)가 출력하는 데이터를 출력하다가 트랜지션 신호가 입력될 시에 T-플립플롭(220)이 출력하는 데이터를 출력한다. 그리고 멀티플렉서(222)는 또다시 트랜지션 신호가 입력될 경우에 OR 게이트(218)가 출력하는 데이터를 출력한다. Each time the multiplexer 222 receives the transition signal from the data generator 214, the multiplexer 222 alternately outputs data output from the OR gate 218 or data output from the T-flip-flop 220. Accordingly, the multiplexer 222 initially outputs data output from the OR gate 218, and then outputs data output from the T-flip-flop 220 when the transition signal is input. The multiplexer 222 again outputs data output from the OR gate 218 when the transition signal is input.

이와 같은 구성을 가지는 데이터 복원부(206)는 ATE(200)로부터 입력받은 압 축된 코드워드를 Tdiff로 복원하게 된다.The data recovery unit 206 having such a configuration restores the compressed codeword received from the ATE 200 to T diff .

데이터 동기부(208)는 FIF0(First In First Out) 형태의 레지스터를 내부에 구비하여 데이터 복원부(206)에서 출력되는 Tdiff를 임시 저장하였다가 출력한다. 그리고 데이터 동기부(208)는 FIFO에 데이터가 가득 차서 더 이상의 데이터를 받아들일 수 없을 경우에 ATE 싱크 신호(ATE Sync.)를 생성하여 ATE(200)가 데이터 코드워드를 전송하는 것을 잠시 멈추게 한다.The data synchronizer 208 includes a FIF0 (First In First Out) type register therein to temporarily store and output the T diff output from the data recovery unit 206. The data synchronizer 208 generates an ATE sync signal (ATE Sync.) When the FIFO is full of data so that the ATE 200 stops transmitting the data codeword for a while. .

데이터 출력부(210)는 데이터 동기부(208)에 임시 저장된 Tdiff에 대해서 XOR 과정을 수행하여 원래 테스트 벡터인 Td로 복원한다. XOR 과정의 특징상 다시 XOR 과정을 수행하면 Tdiff로부터 테스트 벡터 Td를 얻어낼 수 있는 특징을 가지고 있다. The data output unit 210 performs an XOR process on the T diff temporarily stored in the data synchronizer 208 to restore the original test vector T d . Due to the characteristics of the XOR process, the test vector T d can be obtained from the T diff by performing the XOR process again.

그리고 데이터 출력부(210)는 테스트를 수행할 코어로 복원한 Td를 출력한다. The data output unit 210 outputs the restored T d to the core to be tested.

데이터 출력부(210)의 구성을 살펴보면, 적어도 하나 이상의 멀티플렉서(226,226-1), XOR 게이트(228,228-1), 및 순환 스캔 레지스터(Cyclical Scan Register, 'CSR')(230,230-1)와, 데이터 출력 제어부(232)로 구성된다.Looking at the configuration of the data output unit 210, at least one or more multiplexers (226, 226-1), XOR gates (228, 228-1), and a cyclic scan register (CSR) (230,230-1), and the data And an output control unit 232.

데이터 출력부(210)에서 멀티플렉서(226,226-1)와, XOR 게이트(228,228-1)와, 순환 스캔 레지스터(230,230-1)는 하나의 세트(224,224-1)로 구성되고, 이 하나의 세트(224,224-1)는 데이터 출력 제어부(232)의 제어 신호에 따라 멀티플렉서(226,226-1)가 입력되는 데이터를 선택적으로 출력할 시에 XOR 게이트(228,228- 1)와 순환 스캔 레지스터(230,230-1)가 동작하며 데이터 동기부(208)에서 출력된 Tdiff에 대한 XOR 과정을 수행하면서 원래의 Td가 복원되도록 구성된다.In the data output section 210, the multiplexers 226 and 226-1, the XOR gates 228 and 228-1, and the cyclic scan registers 230 and 230-1 are constituted by one set 224 and 224-1. The XOR gates 228 and 228-1 and the cyclic scan registers 230 and 230-1 are used when the multiplexers 226 and 226-1 selectively output data input according to a control signal of the data output control unit 232. In operation, the original T d is restored while performing an XOR process on the T diff output from the data synchronizer 208.

데이터 출력부(210)는 적어도 하나 이상의 멀티플렉서(226,226-1), XOR 게이트(228,228-1), 및 순환 스캔 레지스터(230,230-1)로 구성된 세트(224,224-1)를 구비하여 테스트할 적어도 하나 이상의 코어(CUT)(204-0,204-1)들에게 각각 Td를 제공할 수 있도록 해 준다.Data output 210 includes at least one or more multiplexers 226,226-1, XOR gates 228,228-1, and sets 224,224-1 comprised of cyclic scan registers 230,230-1 for testing. It is possible to provide T d to the cores (CUT) 204-0 and 204-1, respectively.

그리고, 데이터 출력부(210) 내에 데이터 출력 제어부(232)는 테스트할 코어(CUT)(204-0,204-1)의 주사열(Scan Chain)에 따라 데이터 동기부(208)에 임시 저장되었다가 출력되는 Tdiff의 길이를 조절한다.The data output controller 232 in the data output unit 210 is temporarily stored in the data synchronizer 208 according to the scan chain of the cores (CUTs) 204-0 and 204-1 to be tested and then output. Adjust the length of the T diff .

이와 같이 구성된 디코더(202)가 본 발명에 따른 압축 방법을 통해 압축된 코드워드를 원래의 Td로 복원하는 과정을 살펴보도록 한다.The decoder 202 configured as described above looks at a process of restoring the compressed codeword to the original T d through the compression method according to the present invention.

아래와 같이 작성된 코드워드를 원래의 Tdiff로 복원하고 또한 Tdiff를 Td로 복원하는 과정을 일 예로 살펴볼 경우 우선, ATE(200)가 디코더(202)로 아래와 같은 코드워드를 전송한다.As an example, the process of restoring the original coded Tword to T diff and restoring T diff to T d is described below. First, the ATE 200 transmits the following codeword to the decoder 202.

=> (10)(001)(11)(001)(10)=> (10) (001) (11) (001) (10)

그러면 디코더(202) 내 FSM(212)이 전송받은 코드워드의 첫 번째 비트 값을 확인한다. 상기 확인 결과, FSM(212)은 첫 번째 비트 값이 '1'이므로 두 번째 비트 값을 또 확인하고, 두 번째 비트 값을 확인 결과, '0'이므로 데이터 발생부(214)로 카운팅 값 4를 전송한다.The FSM 212 in the decoder 202 then checks the first bit value of the received codeword. As a result of the check, the FSM 212 checks the second bit value again because the first bit value is '1', and as the result of checking the second bit value, the FSM 212 determines the counting value 4 with the data generator 214. send.

FSM(212)은 카운팅 값 4를 데이터 발생부(214)로 전송한 후 데이터 발생부(214)로부터 완료 신호를 전달받으며, 다시 코드워드의 그 다음 비트 값을 확인한다. FSM(212)은 상기 확인 결과 비트 값이 '0'이므로 뒤의 2 비트 값(01)을 데이터 발생부(214)로 전송한다.The FSM 212 transmits the counting value 4 to the data generator 214, receives a completion signal from the data generator 214, and checks the next bit value of the codeword. Since the check result bit value is '0', the FSM 212 transmits a later two bit value 01 to the data generator 214.

FSM(212)은 데이터 발생부(214)로부터 완료 신호를 전달받을 시에 '1'을 데이터 처리부(216)로 출력하고 그 다음 비트 값을 확인한다. 상기 확인 결과, '1'이므로 두 번째 비트 값을 확인하고 두 번째 비트 값도 '1'이므로 코드워드 (11)에 대한 트랜잭션 데이터를 데이터 발생부(214)로 전송한다.When the FSM 212 receives the completion signal from the data generator 214, the FSM 212 outputs '1' to the data processor 216 and checks the next bit value. As a result of the checking, since the value is '1', the second bit value is checked, and since the second bit value is also '1', the transaction data for the codeword 11 is transmitted to the data generator 214.

FSM(212)은 트랜잭션 데이터를 데이터 발생부(214)로 전송한 후, 다시 코드워드의 그 다음 비트 값을 확인하며, 앞서 기재한 바와 같은 방식으로 코드워드 (001)과 (10)에 대한 비트 값에 따른 동작을 수행한다.The FSM 212 sends the transaction data to the data generator 214 and then again checks the next bit value of the codeword, and the bits for the codewords 001 and 10 in the manner described above. Perform the action according to the value.

데이터 발생부(214)는 FSM(212)으로부터 입력된 데이터 값에 따라 데이터 값을 다운 카운팅하면서 그 카운팅한 횟수만큼 '0'을 데이터 처리부(216)로 출력한다. 그리고 다운 카운팅이 0으로 완료되면 FSM으로 완료 신호를 전송한다.The data generator 214 outputs '0' to the data processor 216 by the number of counts while counting down the data value according to the data value input from the FSM 212. When down counting is completed to 0, the completion signal is sent to the FSM.

그리고 데이터 발생부(214)는 FSM(212)으로부터 트랜잭션 데이터를 전송받은 경우 트랜잭션 신호를 발생시켜 데이터 처리부(216)로 출력한다.When the data generator 214 receives the transaction data from the FSM 212, the data generator 214 generates a transaction signal and outputs the transaction signal to the data processor 216.

데이터 처리부(216)는 FSM(212)이 출력하는 '1' 비트들과 데이터 발생부(214)가 출력하는 '0' 비트들을 OR 게이트(218)를 통해 순차적으로 논리합(OR)한다.The data processor 216 sequentially ORs the '1' bits output from the FSM 212 and the '0' bits output from the data generator 214 through the OR gate 218.

그에 따라 OR 게이트(218)를 통해 출력되는 비트 데이터는 코드워드 (10)에 대한 (0000), 코드워드 (001)에 대한 (01), 코드워드 (001)에 대한 (01), 및 코드워드 (10)에 대한 (0000)이 된다.Accordingly, the bit data output through the OR gate 218 is (0000) for codeword 10, (01) for codeword 001, (01) for codeword 001, and codeword (0000) for (10).

데이터 처리부(216)의 T-플립플롭(220)은 OR 게이트(218)에서 상기와 같이 출력되는 비트 데이터를 반전시켜 출력한다. 그래서 T-플립플롭(220)을 통해 출력되는 비트 데이터는 코드워드 (10)에 대한 (1111), 코드워드 (001)에 대한 (10), 코드워드 (001)에 대한 (10), 및 코드워드 (10)에 대한 (1111)이 된다.The T-flip flop 220 of the data processor 216 inverts and outputs the bit data output as described above from the OR gate 218. Thus, the bit data output through the T-flip-flop 220 is 1111 for codeword 10, 10 for codeword 001, 10 for codeword 001, and code This is 1111 for word 10.

데이터 처리부(216)의 멀티플렉서(222)는 데이터 발생부(214)로부터 트랜잭션 신호를 입력받기 전까지 OR 게이트(218)에서 출력하는 데이터((0000)(01))를 출력하다가 트랜잭션 신호를 입력받으면 T-플립플롭(222)이 출력하는 반전된 데이터((01)(1111))를 출력한다.The multiplexer 222 of the data processor 216 outputs data (0000) (01) output from the OR gate 218 until the transaction signal is received from the data generator 214, and then receives a transaction signal. The flip-flop 222 outputs inverted data ((01) 1111).

결국, 코드워드 (10)(001)(11)(001)(10)에 대해서 데이터 처리부(216)의 멀티플렉서(222)가 출력하는 데이터는 (0000)(01)(01)(1111)이 된다.As a result, the data output by the multiplexer 222 of the data processing unit 216 with respect to the codewords (10) (001) (11) (001) 10 becomes (0000) (01) (01) (1111). .

데이터 동기부(208)는 멀티플렉서(222)가 출력한 상기 데이터를 임시 저장하며, 예를 들어 벡터 길이가 6 비트로 설정된 경우에 (000001)와 (011111)의 두 Tdiff를 출력한다.The data synchronizer 208 temporarily stores the data output from the multiplexer 222, and outputs two T diffs of (000001) and (011111), for example, when the vector length is set to 6 bits.

데이터 출력부(210)는 두 Tdiff에 대한 XOR 과정을 수행한다. 데이터 출력부(210)는 우선 첫 번째 Tdiff는 그대로 출력한 후, 첫 번째 Tdiff와 두 번째 Tdiff를 서로 XOR한다.The data output unit 210 performs an XOR process on two T diffs . The data output unit 210 first outputs the first T diff as it is, and then XORs the first T diff and the second T diff .

이와 마찬가지로 데이터 출력부(210)는 세 번째 Tdiff가 존재할 시 두 번째 Tdiff와 세 번째 Tdiff를 서로 XOR하여 Td를 복원한다.Likewise, the data output unit 210 to each other, the second XOR T diff and third T diff is present during the third T diff to recover the T d.

데이터 출력부(210)는 상기와 같은 작업을 통해 복원된 Td (000001)와 (011110)를 테스트할 코어(CUT)(204-0,204-1)의 내부 주사열(Scan Chain)로 출력한다.The data output unit 210 outputs the T d (000001) and the (011110) restored through the above operation to the internal scan chain of the core (CUT) (204-0,204-1) to be tested.

본 발명은 테스트 벡터 간의 유사성과 비유사성 모두를 고려한 Transition-Directed Run-Length(TDR) 코드로 압축하는 방법을 제안하여, 보다 효율적으로 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터를 압축할 수 있도록 해 준다. The present invention proposes a method of compressing a Transition-Directed Run-Length (TDR) code considering both similarity and dissimilarity between test vectors, thereby more efficiently testing a test vector required for an operation test of a System on a Chip (SoC) semiconductor device. To allow compression.

또한, 본 발명은 TDR 코드로 압축된 테스트 벡터를 복원할 수 있는 디코더를 제안한다. In addition, the present invention proposes a decoder capable of reconstructing a test vector compressed with a TDR code.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. Although the present invention has been described in detail with reference to exemplary embodiments above, those skilled in the art to which the present invention pertains can make various modifications to the above-described embodiments without departing from the scope of the present invention. I will understand. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims below and equivalents thereof.

본 발명에 따르면, SoC(System on a Chip) 반도체 소자의 동작 테스트에 사용되는 테스트 벡터(Vector) 간의 유사성 및 비유사성으로 인해 Tdiff에서 '0' 비트가 '1' 비트보다 많이 나타나는 부분과 '1' 비트가 '0' 비트보다 많이 나타나는 부분이 존재하므로 이를 구분하여 '0' 비트가 '1' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하고 그 카운팅된 '0' 비트의 수를 이용하여 코드워드(Codeword)를 작성하며, '1' 비트가 '0' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하고 그 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성한다. 이에 따라, 본 발명에 따라 테스트 벡터를 압축할 시에 보다 높은 압축률을 제공할 수가 있다. According to the present invention, due to the similarity and dissimilarity between the test vectors used in the operation test of a System on a Chip (SoC) semiconductor device, '0' bits appear more than '1' bits in T diff and ' Since there is a part where 1 'bit appears more than' 0 'bit, it is divided and counts'0' bit in the part where '0' bit appears more than '1' bit and uses the counted '0' bit. In this case, a codeword is created, and in a portion where more '1' bits appear than '0' bits, a '0' bit is counted and a codeword is created using the counted number of '0' bits. Accordingly, according to the present invention, a higher compression ratio can be provided when compressing a test vector.

또한 본 발명은 이러한 압축 방법에 따라 압축된 테스트 벡터를 보다 효율적으로 복원할 수 있는 디코더를 제안한다.In addition, the present invention proposes a decoder that can more efficiently recover a compressed test vector according to the compression method.

Claims (6)

테스트 패턴 자동 생성기(ATPG : Automatic Test Pattern Generator)가 생성한 테스트 데이터로 테스트 벡터 Td와 Tdiff를 생성하는 단계;Generating test vectors T d and T diff from test data generated by an automatic test pattern generator (ATPG); 상기 생성된 Tdiff를 하나의 체인(Chain)으로 연결하는 단계;Connecting the generated T diffs into one chain; 상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분에 전환을 알리는 플래그(TF) 데이터를 삽입하는 단계;Inserting flag (TF) data indicating a change in a portion in which the number of '1' bits is greater than the number of '0' bits in the T diffs connected by one chain; 상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 상기 플래그 데이터가 검출되기 전까지 '1' 비트 이전에 나타나는 '0' 비트를 최대 4개씩 카운팅하고, 상기 카운팅된 값이 4 미만이면 상기 카운팅된 값에 프리픽스(Prefix) '0' 비트를 부가하여 코드워드를 작성하고, 4이면 코드워드를 '10'으로 작성하는 단계;Scan T diff containing the flag data indicating the conversion and count up to four '0' bits appearing before '1' bits until the flag data is detected, and if the counted value is less than 4, the counted number is counted. Creating a codeword by adding a prefix '0' bit to a value, and writing the codeword as '10' if 4; 상기 플래그 데이터가 검출된 경우에 상기 플래그 데이터에 대한 코드워드를 '11'로 작성하는 단계; 및Writing a codeword for the flag data as '11' when the flag data is detected; And 상기 플래그 데이터가 검출된 이후에 '0' 비트 이전에 나타나는 '1' 비트를 최대 4개씩 카운팅하며, 상기 카운팅된 값이 4 미만이면 상기 카운팅된 값에 프리픽스(Prefix) '0' 비트를 부가하여 코드워드를 작성하고, 4이면 코드워드를 '10'으로 작성하는 단계;를 포함하여 이루어지는 테스트 벡터 압축 방법.After the flag data is detected, count up to four '1' bits appearing before the '0' bit, and if the counted value is less than 4, a prefix '0' bit is added to the counted value. Writing a codeword, and if 4, writing the codeword as '10'. 여기서, here, Td = {t1,t2,t3,...,tn}T d = {t1, t2, t3, ..., tn} Tdiff = {d1,d2,d3,...,dn} = {t1,t1 XOR t2, t2 XOR t3,..,tn-1 XOR tn}임.T diff = {d1, d2, d3, ..., dn} = {t1, t1 XOR t2, t2 XOR t3, .., tn-1 XOR tn}. 제1 항에 있어서,According to claim 1, 상기 전환을 알리는 플래그(TF) 데이터 삽입은Inserting the flag (TF) data to inform the conversion 상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분 또는 '1' 비트의 개수보다 '0' 비트의 개수가 많아지는 부분에 상기 전환을 알리는 플래그 데이터를 삽입하는 것을 특징으로 하고,A flag for notifying the conversion in a portion in which the number of '1' bits is larger than the number of '0' bits or the portion in which the number of '0' bits is larger than the number of '1' bits in the T diff connected by one chain. Inserting data, 상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 코드워드를 작성시, When scanning the T diff with the flag data indicating the conversion and writing the codeword, 상기 전환을 알리는 플래그 데이터가 검출될 때마다 상기 플래그 데이터가 검출되기 이전에 카운팅한 비트의 반전 비트를 카운팅하며 상기의 코드워드 작성을 수행하는 것을 특징으로 하는 테스트 벡터 압축 방법.And whenever the flag data indicating the conversion is detected, counting the inverted bits of the counted bits before the flag data is detected, and performing the codeword writing. 테스트 패턴 자동 생성기(ATPG : Automatic Test Pattern Generator)로부터 입력되는 압축된 코드워드를 Tdiff로 복원하는 데이터 복원부;A data recovery unit for restoring a compressed codeword input from an automatic test pattern generator (ATPG) into T diff ; 상기 데이터 복원부가 복원한 Tdiff를 임시 저장하였다 기 설정된 벡터 길이로 Tdiff를 출력하는 데이터 동기부; 및A data synchronizer configured to temporarily store the T diff restored by the data restorer and output a T diff having a preset vector length; And 상기 데이터 동기부가 출력한 Tdiff에 대해서 XOR 과정을 수행하여 원래 테스트 벡터인 Td를 복원하고 테스트할 코어(CUT : Core Under Test)로 상기 Td를 출력하는 데이터 출력부;를 포함하여 이루어지는 압축된 테스트 벡터를 복원하는 디코더.Compression comprises a; data output unit for outputting the T d by: (Core Under Test CUT) by performing an XOR process for the T diff by the data synchronizing portion outputs the core to restore and test the original test vectors of T d To restore the generated test vector. 제3 항에 있어서,The method of claim 3, wherein 상기 데이터 복원부는The data recovery unit ATE(Automatic Test Equipment)로부터 입력되는 압축된 코드워드의 첫 번째 비트가 '0' 인 경우 뒤의 2 비트의 데이터 값을 데이터 발생부로 전송하고 데이터 발생부로부터 완료(Done) 신호를 수신할 때에 '1' 비트를 데이터 처리부로 출력하며, 첫 번째 비트가 '1' 인 경우 두 번째 비트 값을 확인하여 두 번째 비트가 '0' 인 경우에 상기 데이터 발생부로 카운팅 값 4를 전송하고 두 번째 비트가 '1' 인 경우에 상기 데이터 발생부로 트랜지션(Transition) 데이터를 전송하는 FSM(Finite State Machine);When the first bit of the compressed codeword input from the ATE (Automatic Test Equipment) is '0', when the second two bits of the data value are transmitted to the data generator and the Done signal is received from the data generator, 1 'bit is output to the data processor, and if the first bit is' 1', the second bit is checked and if the second bit is' 0 ', the counting value 4 is transmitted to the data generator and the second bit is A finite state machine (FSM) which transmits transition data to the data generator in the case of '1'; 상기 FSM으로부터 전송받은 데이터 값을 다운 카운팅하고 상기 다운 카운팅할 때마다 '0' 비트를 상기 데이터 처리부로 출력한 후 상기 다운 카운팅 결과 0이 될 때 상기 FSM으로 완료 신호를 전송하며, 상기 FSM으로부터 트랜지션 데이터를 전송받은 경우 트랜지션 신호를 발생시켜 상기 데이터 처리부로 출력하는 데이터 발생부; 및When counting down the data value received from the FSM and outputting a '0' bit to the data processing unit every time the down counting is performed, when the down counting result is 0, a completion signal is transmitted to the FSM, and the transition from the FSM is performed. A data generator for generating a transition signal and outputting the data to the data processor when data is received; And 상기 FSM로부터 입력되는 '1' 비트들과 상기 데이터 발생부로부터 입력되는 '0'비트들을 순차적으로 출력하며 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 때마다 출력하는 비트들을 반전시켜 출력하는 데이터 처리부;로 구성되는 것을 특징으로 하는 압축된 테스트 벡터를 복원하는 디코더.A data processor for sequentially outputting '1' bits inputted from the FSM and '0' bits inputted from the data generator, and inverting the outputted bits each time a transition signal is received from the data generator; And a decoder for restoring the compressed test vector. 제4 항에 있어서,The method of claim 4, wherein 상기 데이터 처리부는The data processing unit 상기 FSM로부터 입력되는 '1' 비트들과 상기 데이터 발생부로부터 입력되는 '0'비트들을 순차적으로 논리합(OR)하는 OR 게이트;An OR gate sequentially ORing the '1' bits input from the FSM and the '0' bits input from the data generator; 상기 OR 게이트가 논리합(OR)한 비트 데이터를 반전하는 T-플립플롭; 및A T-flip-flop that inverts bit data ORed by the OR gate; And 상기 OR 게이트에서 논리합(OR)된 비트 데이터와 상기 T-플립플롭에서 반전된 비트 데이터를 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 시마다 교대로 출력하는 멀티플렉서;로 구성되는 것을 특징으로 하는 압축된 테스트 벡터를 복원하는 디코더.And a multiplexer for alternately outputting the bit data ORed at the OR gate and the bit data inverted at the T-flip flop each time a transition signal is received from the data generator. Decoder to restore the vector. 제3 항에 있어서,The method of claim 3, wherein 상기 데이터 동기부는The data synchronization unit FIFO(First In First Out) 형태의 레지스터를 구비하여 상기 데이터 복원부에서 출력되는 Tdiff를 임시 저장하는 것을 특징으로 하는 압축된 테스트 벡터를 복 원하는 디코더.And a register having a first in first out (FIFO) type to temporarily store a T diff output from the data recovery unit.
KR1020060081184A 2006-08-25 2006-08-25 Test vector compression method and decoder for restoring compressed test vector KR20080019140A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060081184A KR20080019140A (en) 2006-08-25 2006-08-25 Test vector compression method and decoder for restoring compressed test vector

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060081184A KR20080019140A (en) 2006-08-25 2006-08-25 Test vector compression method and decoder for restoring compressed test vector

Publications (1)

Publication Number Publication Date
KR20080019140A true KR20080019140A (en) 2008-03-03

Family

ID=39394588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060081184A KR20080019140A (en) 2006-08-25 2006-08-25 Test vector compression method and decoder for restoring compressed test vector

Country Status (1)

Country Link
KR (1) KR20080019140A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904579A (en) * 2012-10-25 2013-01-30 吴海峰 Successive approximation-based coding compression method
WO2021052329A1 (en) * 2019-09-16 2021-03-25 上海御渡半导体科技有限公司 Lossless compression and decompression methods for test vector
WO2024065693A1 (en) * 2022-09-30 2024-04-04 华为技术有限公司 Method and device for generating compression test pattern

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904579A (en) * 2012-10-25 2013-01-30 吴海峰 Successive approximation-based coding compression method
CN102904579B (en) * 2012-10-25 2015-03-25 吴海峰 Coding Compression Method Based on Successive Approximation Method
WO2021052329A1 (en) * 2019-09-16 2021-03-25 上海御渡半导体科技有限公司 Lossless compression and decompression methods for test vector
WO2024065693A1 (en) * 2022-09-30 2024-04-04 华为技术有限公司 Method and device for generating compression test pattern

Similar Documents

Publication Publication Date Title
KR100902051B1 (en) Apparatus and method for generating error detection code
Chandra et al. Frequency-directed run-length (FDR) codes with application to system-on-a-chip test data compression
Chandra et al. Test data compression for system-on-a-chip using Golomb codes
TWI512751B (en) Computer memory test structure
US4872009A (en) Method and apparatus for data compression and restoration
Li et al. Space compression methods with output data modification
Chandra et al. Test data compression and decompression based on internal scan chains and Golomb coding
US8572447B2 (en) Circuitry for built-in self-test
US20110299581A1 (en) Built-in self-test circuitry
EP1720280B1 (en) Offset test pattern apparatus and method
US6728925B2 (en) Error correcting method and apparatus
KR20080019140A (en) Test vector compression method and decoder for restoring compressed test vector
EP1435005B1 (en) A digital system and a method for error detection thereof
US7075461B2 (en) Method of generating pseudo 8B/10B code and apparatus for generating the same
US8233622B2 (en) Transmitting parallel data via high-speed serial interconnection
Karimi et al. Using data compression in automatic test equipment for system-on-chip testing
Lee et al. An Internal Pattern Run‐Length Methodology for Slice Encoding
Ren A data compression technique based on reversed leading bits coding and Huffman coding
Garbolino et al. Fast and low-area TPGs based on T-type flip-flops can be easily integrated to the scan path
JPH10209880A (en) Crc arithmetic circuit
US8872537B2 (en) Semiconductor integrated circuit, circuit testing system, circuit testing unit, and circuit test method
KR20070098200A (en) Semiconductor integrated circuit test device and method thereof
Singh et al. Power Analysis and Synthesis of BIST Technique on UART
Wu et al. A novel pattern run-length coding method for test data compression
Bhattacharya et al. Synthesis of single-output space compactors with application to scan-based IP cores

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination