KR20080019140A - 테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더 - Google Patents
테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2832—Specific tests of electronic circuits not provided for elsewhere
- G01R31/2834—Automated test systems [ATE]; using microprocessors or computers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318307—Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318335—Test 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
본 발명은 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터(Vector)의 압축 방법 및 압축된 테스트 벡터를 복원하는 디코더에 관한 것이다.
본 발명에 따른 TDR 코드로 테스트 벡터를 압축하는 방법을 살펴보면, 테스트 벡터 간의 유사성 및 비유사성으로 인해 Tdiff에서 '0' 비트가 '1' 비트보다 많이 나타나는 부분과 '1' 비트가 '0' 비트보다 많이 나타나는 부분이 존재하므로 이를 구분하는 플래그 데이터를 삽입한다. 그리고 '0' 비트가 '1' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하여 카운팅된 '0' 비트의 수를 이용하여 코드워드(Codeword)를 작성하고, '1' 비트가 '0' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하여 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성한다.
테스트 벡터, 압축, SoC, TDR, 코드워드, 테스트
Description
도 1은 디코더를 구비한 SoC(System on a Chip)와 ATE를 도시한 모식도,
도 2는 본 발명에 따른 압축된 테스트 벡터를 복원하는 디코더의 구성을 도시한 블럭도이다.
* 도면의 주요부분에 대한 부호의 설명
100,200 : ATE 112,202 : 디코더
206 : 데이터 복원부 208 : 데이터 동기부
210 : 데이터 출력부 240-0,240-1 : CUT
본 발명은 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터(Vector)의 압축 방법 및 압축된 테스트 벡터를 복원하는 디코더에 관한 것이다.
반도체 설계기술이 발달함에 따라 하나의 칩 안에 기능 블럭을 집적시킨 SoC(System on a Chip)의 제작이 가능하게 되었다. 이와 같이 IC(Integrated Circuit) 집적도가 향상됨에 따라 칩 제작 비용과 함께 칩 테스트 비용의 증가 또한 주요 연구분야로 대두되고 있다.
테스트 비용의 상승은 주로 Automatic Test Equipment(ATE)의 가격과 테스트에 소요되는 시간에 따라 결정된다. 그리하여 칩 테스트에 소요되는 시간의 경우, 제작되는 칩의 테스트 핀 수를 늘리고 보다 많은 채널을 가진 ATE를 구비하면 되겠지만 이는 고가의 ATE 구입으로 이어져 결국 칩 가격 상승으로 반영되므로, 결국 근본적인 비용절감을 기대할 수 없게 된다.
이러한 점을 보안하기 위해서 ATE는 압축된 테스트 벡터(Vector)를 SoC에 제공하도록 한다. 그리고 SoC는 압축된 테스트 벡터를 복원할 수 있는 적절한 디코더를 내부에 구비함으로써, ATE의 동작속도로는 SoC의 동작 주파수에 맞추어 동작 테스트가 불가능하였던 것을 가능하도록 하고 있다.
도 1은 디코더를 구비한 SoC(System on a Chip)와 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)에 인가시킨다.
테스트 벡터를 압축하는 방식은 상기 기재한 바와 같이 SoC(108)와 같은 고집적 회로의 민감한 동작 특성에 맞추어 동작 테스트가 가능하도록 해 줄 뿐만 아니라 ATE(100)의 제한된 채널 및 메모리를 효과적으로 사용할 수 있도록 해 줌으로써 관심이 고조되고 있다.
그러므로 본 발명의 목적은 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터를 보다 효과적으로 압축할 수 있는 방법을 제공하는데 있다.
또한 본 발명의 목적은 상기 제공하는 테스트 벡터 압축 방법에 따라 압축된 테스트 벡터를 복원하는 디코더를 제공하는데 있다.
상기와 같은 목적을 달성하기 위해서, 본 발명에 따른 테스트 벡터 압축 방법은 ATPG(Automatic Test Pattern Generator)가 생성한 테스트 데이터로 테스트 벡터 Td와 Tdiff를 생성하는 단계;
Td = {t1,t2,t3,...,tn}
Tdiff = {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'으로 작성하는 단계;를 포함하여 이루어진다.
여기서, 상기 전환을 알리는 플래그(TF) 데이터 삽입은 상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분 또는 '1' 비트의 개수보다 '0' 비트의 개수가 많아지는 부분에 상기 전환을 알리는 플래그 데이터를 삽입하는 것을 특징으로 하고, 상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 코드워드를 작성시, 상기 전환을 알리는 플래그 데이터가 검출될 때마다 상기 플래그 데이터가 검출되기 이전에 카운팅한 비트의 반전 비트를 카운팅하며 상기의 코드워드 작성을 수행하는 것을 특징으로 한다.
본 발명에 따른 압축된 테스트 벡터를 복원하는 디코더는 ATE(Automatic Test Equipment)로부터 입력되는 압축된 코드워드를 Tdiff로 복원하는 데이터 복원 부; 상기 데이터 복원부가 복원한 Tdiff를 임시 저장하였다 기 설정된 벡터 길이로 Tdiff를 출력하는 데이터 동기부; 및 상기 데이터 동기부가 출력한 Tdiff에 대해서 XOR 과정을 수행하여 원래 테스트 벡터인 Td를 복원하고 테스트할 코어(CUT : Core Under Test)로 상기 Td를 출력하는 데이터 출력부;를 포함하여 이루어진다.
여기서, 상기 데이터 복원부는 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'비트들을 순차적으로 출력하며 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 때마다 출력하는 비트들을 반전시켜 출력하는 데이터 처리부;로 구성된다.
또한, 상기 데이터 처리부는 상기 FSM로부터 입력되는 '1' 비트들과 상기 데 이터 발생부로부터 입력되는 '0'비트들을 순차적으로 논리합(OR)하는 OR 게이트; 상기 OR 게이트가 OR한 비트 데이터를 반전하는 T-플립플롭; 및 상기 OR 게이트에서 OR된 비트 데이터와 상기 T-플립플롭에서 반전된 비트 데이터를 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 시마다 교대로 출력하는 멀티플렉서;로 구성된다.
본 발명에 따른 상기 데이터 동기부는 FIFO(First In First Out) 형태의 레지스터를 구비하여 상기 데이터 복원부에서 출력되는 Tdiff를 임시 저장하는 것을 특징으로 한다.
이하에서는 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 다만, 본 발명을 설명함에 있어 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
일반적으로 반도체 소자의 동작 테스트에 사용되는 테스트 벡터의 경우에 유사한 비트의 수가 많다. 그래서 테스트 벡터를 그대로 사용하는 것보다는 XOR(eXclusive-OR, 입력되는 두 비트가 동일한 비트 값인 경우에는 '0'으로, 서로 다른 비트 값인 경우에는 '1'로 결과값을 출력) 과정을 통해 테스트 벡터에서 서로 다른 비트의 값만을 표현하도록 테스트 벡터를 변환시킨 후 그 변환시킨 테스트 벡 터를 동작 테스트에 사용하게 된다.
여기서, 원래의 테스트 벡터를 Td로 정의하고, Tdiff는 n일 때 (tn-1 XOR tn)의 값으로 정의한다.
Td = {t1,t2,t3,...,tn}
Tdiff = {d1,d2,d3,...,dn} = {t1,t1 XOR t2, t2 XOR t3,..,tn-1 XOR tn}
Tdiff는 테스트 벡터들 간에 값의 차이를 '1'로 나타내기 때문에 테스트 벡터의 특징인 서로 동일한 값을 가지는 비트의 수가 많다는 것을 고려한다면 거의 대부분의 Tdiff는 '0'의 연속적인 수가 된다.
그에 따라, 표 1에 도시된 바와 같이 Run-Length 압축 방식에 따라 Tdiff의 '0'의 개수를 나타내는 압축된 코드워드(Codeword)를 작성할 수가 있다.
표 1
Tdiff | 코드워드(Codeword) |
1 01 001 0001 00001 000001 0000001 00000001 | 000 001 010 011 100 101 110 111 |
하지만, 실질적으로 실험해 본 결과, 테스트 벡터 Td의 유사성은 70% 정도이며 30%는 유사성을 나타내지 않아 Tdiff에 대한 압축 효율이 떨어지는 경향이 있음을 알 수 있었다.
본 발명은 테스트 벡터 간의 유사성과 비유사성 모두를 고려하여 보다 효율적으로 테스트 벡터를 압축할 수 있는 Transition-Directed Run-Length(TDR) 코드로 압축하는 방법을 제안한다.
본 발명에 따른 TDR 코드로 테스트 벡터를 압축하는 방법에 대해서 좀 더 자세히 설명하도록 한다.
우선, 테스트 패턴 자동 생성기 (ATPG : Automatic Test pattern Generator)에서 생성해 주는 테스트 데이터를 이용하여 Td와 Tdiff를 생성한다.
그리고 생성된 Tdiff를 하나의 체인(Chain)으로 연결한다.
하나의 체인으로 연결된 Tdiff를 스캔하며 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분을 검출하고 그 검출된 부분에 전환(Transition)을 알리는 플래그(Flag) 데이터를 삽입한다.
또한 상기 플래그 데이터는 '1' 비트의 개수보다 '0' 비트의 개수가 많아지는 부분에 삽입될 수도 있으며, 이에 따라 Tdiff가 어떠한 데이터 패턴을 가지고 있는지에 따라 적어도 하나 이상의 전환을 알리는 플래그 데이터가 삽입될 수 있다.
그리고 상기의 플래그 데이터가 삽입된 Tdiff를 다시 순차적으로 스캔한다. 그러면서 상기 플래그 데이터가 검출되기 전까지 '1' 비트 이전에 나타나는 '0' 비트를 카운팅한다.
여기서, '0' 비트의 카운팅은 최대 4개씩 수행되며, '0' 비트 수가 4개 미만 으로 카운팅된 경우에는 그 카운팅된 '0' 비트 수에 프리픽스(Prefix) '0' 비트를 부가하여 3-비트의 코드워드를 작성한다.
그리고 '0' 비트 수가 4개 카운팅된 경우에는 '10'으로 2-비트의 코드워드를, 상기 전환을 알리는 플래그 데이터가 검출될 시에는 '11'로 2-비트의 코드워드를 작성한다.
한편, Tdiff에서 첫 번째 플래그 데이터가 검출되면, Tdiff에 삽입되어 있을 수 있는 두 번째 플래그 데이터가 검출되기 전까지 Tdiff를 순차적으로 스캔하면서 '0' 비트 이전에 나타나는 '1' 비트를 카운팅한다.
여기서, '1' 비트의 카운팅은 상기 '0' 비트의 카운팅과 마찬가지로 최대 4개씩 수행되며, '1' 비트 수가 4개 미만으로 카운팅된 경우에는 그 카운팅된 '1' 비트 수에 프리픽스(Prefix) '0' 비트를 부가하여 3-비트의 코드워드를 작성한다.
'1' 비트 수가 4개 카운팅된 경우에는 '10'으로 2-비트의 코드워드를, 전환을 알리는 두 번째 플래그 데이터가 검출될 시에는 '11'로 2-비트의 코드워드를 작성한다.
Tdiff를 스캔하며 세 번째 플래그 데이터가 검출되면 다시 '1' 비트가 나타나기 전에 나타나는 '0' 비트를 카운팅하는 상기와 같은 과정을 반복하며 Tdiff에 대한 코드워드를 작성한다.
결국, 본 발명에 따른 TDR 코드로 테스트 벡터를 압축하는 방법을 살펴보면, 테스트 벡터의 유사성 및 비유사성으로 인해 Tdiff에서 '0' 비트가 '1' 비트보다 많이 나타나는 부분과 '1' 비트가 '0' 비트보다 많이 나타나는 부분이 존재하므로 이를 구분하는 플래그 데이터를 삽입한다. 그리고 '0' 비트가 '1' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하여 그 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성하고, '1' 비트가 '0' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하여 그 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성한다.
앞서 기재한 바와 같이 작성된 코드워드에서 카운팅된 수가 '0' 비트를 의미하는지 '1' 비트를 의미하는지를 Tdiff에 삽입된 플래드 데이터에 대한 코드워드 '11'을 기준으로 구분할 수 있게 한다.
상기와 같은 과정을 반복하며 ATPG(Automatic Test pattern Generator)에서 생성해 주는 테스트 벡터를 본 발명에 따른 TDR 코드로 압축한다.
표 2는 본 발명에 따른 TDR 코드워드를 도시하고 있으며, 이와 같은 TDR 압축 방식을 이용하여 테스트 데이터를 압축한 예를 살펴보도록 한다.
표 2
Tdiff | prefix | codeword |
1 01 001 0001 | 0 | 000 001 010 011 |
0000 | 1 | 10 |
TF(Transition Flag) | 1 | 11 |
0 10 110 1110 | 0 | 000 001 010 011 |
1111 | 1 | 10 |
Tdiff = {d1,d2,d3,d4} 이고,
d1 = 00000100, d2 = 00110000, d3 = TF101110, d4 = 11101111일 경우, d1, d2, d3, d4를 하나의 체인으로 연결하면,
=> 0000010000110000TF10111011101111 의 32 비트 체인이 된다.
이를 패턴(Pattern)에 따라 나누어 보면,
=> (0000)(01)(0000)(1)(1)(0000)(TF)(10)(1110)(1110)(1111)으로 나누어진다. 여기서, (TF)는 전환을 알리는 플래그 데이터를 의미한다.
그리고 각 패턴에 따른 코드워드를 표 2를 참조하여 작성하면 아래와 같다.
=> (10)(001)(10)(000)(000)(10)(11)(001)(011)(011)(10)
이를 통해, 32 비트의 Tdiff가 28 비트의 코드워드로 압축됨을 확인할 수 있다.
도 2는 본 발명에 따른 압축된 테스트 벡터를 복원하는 디코더의 구성을 도시한 블럭도이다.
도면에 도시된 바와 같이, 본 발명에 의해 압축된 코드워드를 압축 해제하는 디코더(202)는 크게 데이터 복원부(206)와, 데이터 동기부(208)와, 데이터 출력부(210)로 구성될 수 있다.
데이터 복원부(206)는 ATE(200)로부터 입력받은 압축된 코드워드를 Tdiff로 복원하고, 데이터 동기부(208)는 데이터 복원부(206)에서 복원된 Tdiff를 임시 저장하였다 출력하여 ATE(200)의 데이터 전송속도와 동기를 맞추며, 데이터 출력 부(210)는 데이터 동기부(206)에서 출력되는 Tdiff를 Td로 변환시켜 테스트할 코어(CUT)(204-0,204-1)로 Td를 출력한다.
좀 더 상세하게 본 발명에 따른 디코더(202)의 구성을 살펴보도록 한다.
데이터 복원부(206)는 FSM(Finite State Machine)(212)과, 데이터 발생부(214)와, 데이터 처리부(216)로 구성된다.
FSM(212)은 ATE(200)로부터 입력받은 코드워드의 첫 번째 비트 값을 확인한다. FSM(212)은 상기 확인 결과, 첫 번째 비트가 '0' 인 경우 뒤의 2 비트의 데이터를 데이터 발생부(214)로 전송하고, 데이터 발생부(214)로부터 완료(Done) 신호를 수신할 때에 '1'을 데이터 처리부(216)로 출력한다.
그리고 FSM(212)은 첫 번째 비트가 '1' 인 경우 두 번째 비트 값을 확인한다. 상기 확인 결과 두 번째 비트가 '0' 인 경우에 데이터 발생부(214)로 카운팅 값 4를 전송하고, 이때는 데이터 발생부(214)로부터 완료(Done) 신호를 수신할 경우 '1'을 출력하지 않는다.
FSM(212)은 첫 번째 비트가 '1' 이고, 두 번째 비트가 '1' 인 경우, 데이터 발생부(214)로 트랜지션(Transition) 데이터를 전송한다.
데이터 발생부(214)는 FSM(212)으로부터 전송받은 데이터 값을 다운 카운팅하며 다운 카운팅할 때마다 '0'을 출력한다. 그에 따라 데이터 발생부(214)는 전송받은 데이터 값만큼 '0'을 출력하며 다운 카운팅 결과 0이 될 때 FSM(212)으로 완료 신호를 전송한다. 예를 들어 데이터 발생부(214)가 FSM(212)으로부터 '11' 데이 터를 전송받았다면 '11' 값을 다운 카운팅하며 총 3번 '0'을 출력한 후 FSM(212)으로 완료 신호를 전송한다.
데이터 발생부(214)는 FSM(212)으로부터 트랜지션(Transition) 데이터를 전송받은 경우, 트랜지션 신호를 발생시켜 데이터 처리부(216)로 출력한다.
데이터 처리부(216)는 상기 FSM로부터 입력되는 '1' 비트들과 상기 데이터 발생부로부터 입력되는 '0'비트들을 순차적으로 출력하며 데이터 발생부(214)로부터 트랜지션 신호를 입력받을 때마다 출력하는 비트들을 반전시켜 출력한다.
데이터 처리부(216)는 OR 게이트(Gate)(218)와, T-플립플롭(Flip Flop, 'FF')(220)과, 멀티플렉서(Multiplexer)(222)로 구성된다. 그리고 OR 게이트(218)는 FSM(212)과 데이터 발생부(214)에서 출력되는 각각의 '1' 비트들과 '0'비트들을순차적으로 논리합(OR)하여 출력한다.
T-플립플롭(220)은 OR 게이트(218)에서 출력하는 데이터를 반전하여 출력한다.
멀티플렉서(222)는 데이터 발생부(214)로부터 트랜지션 신호을 입력받을 때마다 교대로 OR 게이트(218)가 출력하는 데이터 또는 T-플립플롭(220)이 출력하는 데이터를 출력시킨다. 그에 따라, 멀티플렉서(222)는 초기에 OR 게이트(218)가 출력하는 데이터를 출력하다가 트랜지션 신호가 입력될 시에 T-플립플롭(220)이 출력하는 데이터를 출력한다. 그리고 멀티플렉서(222)는 또다시 트랜지션 신호가 입력될 경우에 OR 게이트(218)가 출력하는 데이터를 출력한다.
이와 같은 구성을 가지는 데이터 복원부(206)는 ATE(200)로부터 입력받은 압 축된 코드워드를 Tdiff로 복원하게 된다.
데이터 동기부(208)는 FIF0(First In First Out) 형태의 레지스터를 내부에 구비하여 데이터 복원부(206)에서 출력되는 Tdiff를 임시 저장하였다가 출력한다. 그리고 데이터 동기부(208)는 FIFO에 데이터가 가득 차서 더 이상의 데이터를 받아들일 수 없을 경우에 ATE 싱크 신호(ATE Sync.)를 생성하여 ATE(200)가 데이터 코드워드를 전송하는 것을 잠시 멈추게 한다.
데이터 출력부(210)는 데이터 동기부(208)에 임시 저장된 Tdiff에 대해서 XOR 과정을 수행하여 원래 테스트 벡터인 Td로 복원한다. XOR 과정의 특징상 다시 XOR 과정을 수행하면 Tdiff로부터 테스트 벡터 Td를 얻어낼 수 있는 특징을 가지고 있다.
그리고 데이터 출력부(210)는 테스트를 수행할 코어로 복원한 Td를 출력한다.
데이터 출력부(210)의 구성을 살펴보면, 적어도 하나 이상의 멀티플렉서(226,226-1), XOR 게이트(228,228-1), 및 순환 스캔 레지스터(Cyclical Scan Register, 'CSR')(230,230-1)와, 데이터 출력 제어부(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가 복원되도록 구성된다.
데이터 출력부(210)는 적어도 하나 이상의 멀티플렉서(226,226-1), XOR 게이트(228,228-1), 및 순환 스캔 레지스터(230,230-1)로 구성된 세트(224,224-1)를 구비하여 테스트할 적어도 하나 이상의 코어(CUT)(204-0,204-1)들에게 각각 Td를 제공할 수 있도록 해 준다.
그리고, 데이터 출력부(210) 내에 데이터 출력 제어부(232)는 테스트할 코어(CUT)(204-0,204-1)의 주사열(Scan Chain)에 따라 데이터 동기부(208)에 임시 저장되었다가 출력되는 Tdiff의 길이를 조절한다.
이와 같이 구성된 디코더(202)가 본 발명에 따른 압축 방법을 통해 압축된 코드워드를 원래의 Td로 복원하는 과정을 살펴보도록 한다.
아래와 같이 작성된 코드워드를 원래의 Tdiff로 복원하고 또한 Tdiff를 Td로 복원하는 과정을 일 예로 살펴볼 경우 우선, ATE(200)가 디코더(202)로 아래와 같은 코드워드를 전송한다.
=> (10)(001)(11)(001)(10)
그러면 디코더(202) 내 FSM(212)이 전송받은 코드워드의 첫 번째 비트 값을 확인한다. 상기 확인 결과, FSM(212)은 첫 번째 비트 값이 '1'이므로 두 번째 비트 값을 또 확인하고, 두 번째 비트 값을 확인 결과, '0'이므로 데이터 발생부(214)로 카운팅 값 4를 전송한다.
FSM(212)은 카운팅 값 4를 데이터 발생부(214)로 전송한 후 데이터 발생부(214)로부터 완료 신호를 전달받으며, 다시 코드워드의 그 다음 비트 값을 확인한다. FSM(212)은 상기 확인 결과 비트 값이 '0'이므로 뒤의 2 비트 값(01)을 데이터 발생부(214)로 전송한다.
FSM(212)은 데이터 발생부(214)로부터 완료 신호를 전달받을 시에 '1'을 데이터 처리부(216)로 출력하고 그 다음 비트 값을 확인한다. 상기 확인 결과, '1'이므로 두 번째 비트 값을 확인하고 두 번째 비트 값도 '1'이므로 코드워드 (11)에 대한 트랜잭션 데이터를 데이터 발생부(214)로 전송한다.
FSM(212)은 트랜잭션 데이터를 데이터 발생부(214)로 전송한 후, 다시 코드워드의 그 다음 비트 값을 확인하며, 앞서 기재한 바와 같은 방식으로 코드워드 (001)과 (10)에 대한 비트 값에 따른 동작을 수행한다.
데이터 발생부(214)는 FSM(212)으로부터 입력된 데이터 값에 따라 데이터 값을 다운 카운팅하면서 그 카운팅한 횟수만큼 '0'을 데이터 처리부(216)로 출력한다. 그리고 다운 카운팅이 0으로 완료되면 FSM으로 완료 신호를 전송한다.
그리고 데이터 발생부(214)는 FSM(212)으로부터 트랜잭션 데이터를 전송받은 경우 트랜잭션 신호를 발생시켜 데이터 처리부(216)로 출력한다.
데이터 처리부(216)는 FSM(212)이 출력하는 '1' 비트들과 데이터 발생부(214)가 출력하는 '0' 비트들을 OR 게이트(218)를 통해 순차적으로 논리합(OR)한다.
그에 따라 OR 게이트(218)를 통해 출력되는 비트 데이터는 코드워드 (10)에 대한 (0000), 코드워드 (001)에 대한 (01), 코드워드 (001)에 대한 (01), 및 코드워드 (10)에 대한 (0000)이 된다.
데이터 처리부(216)의 T-플립플롭(220)은 OR 게이트(218)에서 상기와 같이 출력되는 비트 데이터를 반전시켜 출력한다. 그래서 T-플립플롭(220)을 통해 출력되는 비트 데이터는 코드워드 (10)에 대한 (1111), 코드워드 (001)에 대한 (10), 코드워드 (001)에 대한 (10), 및 코드워드 (10)에 대한 (1111)이 된다.
데이터 처리부(216)의 멀티플렉서(222)는 데이터 발생부(214)로부터 트랜잭션 신호를 입력받기 전까지 OR 게이트(218)에서 출력하는 데이터((0000)(01))를 출력하다가 트랜잭션 신호를 입력받으면 T-플립플롭(222)이 출력하는 반전된 데이터((01)(1111))를 출력한다.
결국, 코드워드 (10)(001)(11)(001)(10)에 대해서 데이터 처리부(216)의 멀티플렉서(222)가 출력하는 데이터는 (0000)(01)(01)(1111)이 된다.
데이터 동기부(208)는 멀티플렉서(222)가 출력한 상기 데이터를 임시 저장하며, 예를 들어 벡터 길이가 6 비트로 설정된 경우에 (000001)와 (011111)의 두 Tdiff를 출력한다.
데이터 출력부(210)는 두 Tdiff에 대한 XOR 과정을 수행한다. 데이터 출력부(210)는 우선 첫 번째 Tdiff는 그대로 출력한 후, 첫 번째 Tdiff와 두 번째 Tdiff를 서로 XOR한다.
이와 마찬가지로 데이터 출력부(210)는 세 번째 Tdiff가 존재할 시 두 번째 Tdiff와 세 번째 Tdiff를 서로 XOR하여 Td를 복원한다.
데이터 출력부(210)는 상기와 같은 작업을 통해 복원된 Td (000001)와 (011110)를 테스트할 코어(CUT)(204-0,204-1)의 내부 주사열(Scan Chain)로 출력한다.
본 발명은 테스트 벡터 간의 유사성과 비유사성 모두를 고려한 Transition-Directed Run-Length(TDR) 코드로 압축하는 방법을 제안하여, 보다 효율적으로 SoC(System on a Chip) 반도체 소자의 동작 테스트에 필요한 테스트 벡터를 압축할 수 있도록 해 준다.
또한, 본 발명은 TDR 코드로 압축된 테스트 벡터를 복원할 수 있는 디코더를 제안한다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명에 따르면, SoC(System on a Chip) 반도체 소자의 동작 테스트에 사용되는 테스트 벡터(Vector) 간의 유사성 및 비유사성으로 인해 Tdiff에서 '0' 비트가 '1' 비트보다 많이 나타나는 부분과 '1' 비트가 '0' 비트보다 많이 나타나는 부분이 존재하므로 이를 구분하여 '0' 비트가 '1' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하고 그 카운팅된 '0' 비트의 수를 이용하여 코드워드(Codeword)를 작성하며, '1' 비트가 '0' 비트보다 많이 나타나는 부분에서는 '0' 비트를 카운팅하고 그 카운팅된 '0' 비트의 수를 이용하여 코드워드를 작성한다. 이에 따라, 본 발명에 따라 테스트 벡터를 압축할 시에 보다 높은 압축률을 제공할 수가 있다.
또한 본 발명은 이러한 압축 방법에 따라 압축된 테스트 벡터를 보다 효율적으로 복원할 수 있는 디코더를 제안한다.
Claims (6)
- 테스트 패턴 자동 생성기(ATPG : Automatic Test Pattern Generator)가 생성한 테스트 데이터로 테스트 벡터 Td와 Tdiff를 생성하는 단계;상기 생성된 Tdiff를 하나의 체인(Chain)으로 연결하는 단계;상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분에 전환을 알리는 플래그(TF) 데이터를 삽입하는 단계;상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 상기 플래그 데이터가 검출되기 전까지 '1' 비트 이전에 나타나는 '0' 비트를 최대 4개씩 카운팅하고, 상기 카운팅된 값이 4 미만이면 상기 카운팅된 값에 프리픽스(Prefix) '0' 비트를 부가하여 코드워드를 작성하고, 4이면 코드워드를 '10'으로 작성하는 단계;상기 플래그 데이터가 검출된 경우에 상기 플래그 데이터에 대한 코드워드를 '11'로 작성하는 단계; 및상기 플래그 데이터가 검출된 이후에 '0' 비트 이전에 나타나는 '1' 비트를 최대 4개씩 카운팅하며, 상기 카운팅된 값이 4 미만이면 상기 카운팅된 값에 프리픽스(Prefix) '0' 비트를 부가하여 코드워드를 작성하고, 4이면 코드워드를 '10'으로 작성하는 단계;를 포함하여 이루어지는 테스트 벡터 압축 방법.여기서,Td = {t1,t2,t3,...,tn}Tdiff = {d1,d2,d3,...,dn} = {t1,t1 XOR t2, t2 XOR t3,..,tn-1 XOR tn}임.
- 제1 항에 있어서,상기 전환을 알리는 플래그(TF) 데이터 삽입은상기 하나의 체인으로 연결된 Tdiff에서 '0' 비트의 개수보다 '1' 비트의 개수가 많아지는 부분 또는 '1' 비트의 개수보다 '0' 비트의 개수가 많아지는 부분에 상기 전환을 알리는 플래그 데이터를 삽입하는 것을 특징으로 하고,상기 전환을 알리는 플래그 데이터가 삽입된 Tdiff를 스캔하며 코드워드를 작성시,상기 전환을 알리는 플래그 데이터가 검출될 때마다 상기 플래그 데이터가 검출되기 이전에 카운팅한 비트의 반전 비트를 카운팅하며 상기의 코드워드 작성을 수행하는 것을 특징으로 하는 테스트 벡터 압축 방법.
- 테스트 패턴 자동 생성기(ATPG : Automatic Test Pattern Generator)로부터 입력되는 압축된 코드워드를 Tdiff로 복원하는 데이터 복원부;상기 데이터 복원부가 복원한 Tdiff를 임시 저장하였다 기 설정된 벡터 길이로 Tdiff를 출력하는 데이터 동기부; 및상기 데이터 동기부가 출력한 Tdiff에 대해서 XOR 과정을 수행하여 원래 테스트 벡터인 Td를 복원하고 테스트할 코어(CUT : Core Under Test)로 상기 Td를 출력하는 데이터 출력부;를 포함하여 이루어지는 압축된 테스트 벡터를 복원하는 디코더.
- 제3 항에 있어서,상기 데이터 복원부는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'비트들을 순차적으로 출력하며 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 때마다 출력하는 비트들을 반전시켜 출력하는 데이터 처리부;로 구성되는 것을 특징으로 하는 압축된 테스트 벡터를 복원하는 디코더.
- 제4 항에 있어서,상기 데이터 처리부는상기 FSM로부터 입력되는 '1' 비트들과 상기 데이터 발생부로부터 입력되는 '0'비트들을 순차적으로 논리합(OR)하는 OR 게이트;상기 OR 게이트가 논리합(OR)한 비트 데이터를 반전하는 T-플립플롭; 및상기 OR 게이트에서 논리합(OR)된 비트 데이터와 상기 T-플립플롭에서 반전된 비트 데이터를 상기 데이터 발생부로부터 트랜지션 신호를 입력받을 시마다 교대로 출력하는 멀티플렉서;로 구성되는 것을 특징으로 하는 압축된 테스트 벡터를 복원하는 디코더.
- 제3 항에 있어서,상기 데이터 동기부는FIFO(First In First Out) 형태의 레지스터를 구비하여 상기 데이터 복원부에서 출력되는 Tdiff를 임시 저장하는 것을 특징으로 하는 압축된 테스트 벡터를 복 원하는 디코더.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060081184A KR20080019140A (ko) | 2006-08-25 | 2006-08-25 | 테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060081184A KR20080019140A (ko) | 2006-08-25 | 2006-08-25 | 테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080019140A true KR20080019140A (ko) | 2008-03-03 |
Family
ID=39394588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060081184A KR20080019140A (ko) | 2006-08-25 | 2006-08-25 | 테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080019140A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904579A (zh) * | 2012-10-25 | 2013-01-30 | 吴海峰 | 基于逐次逼近法的编码压缩方法 |
WO2021052329A1 (zh) * | 2019-09-16 | 2021-03-25 | 上海御渡半导体科技有限公司 | 一种测试向量的无损压缩和解压缩方法 |
WO2024065693A1 (zh) * | 2022-09-30 | 2024-04-04 | 华为技术有限公司 | 一种生成压缩测试向量的方法和装置 |
-
2006
- 2006-08-25 KR KR1020060081184A patent/KR20080019140A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904579A (zh) * | 2012-10-25 | 2013-01-30 | 吴海峰 | 基于逐次逼近法的编码压缩方法 |
CN102904579B (zh) * | 2012-10-25 | 2015-03-25 | 吴海峰 | 基于逐次逼近法的编码压缩方法 |
WO2021052329A1 (zh) * | 2019-09-16 | 2021-03-25 | 上海御渡半导体科技有限公司 | 一种测试向量的无损压缩和解压缩方法 |
WO2024065693A1 (zh) * | 2022-09-30 | 2024-04-04 | 华为技术有限公司 | 一种生成压缩测试向量的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100902051B1 (ko) | 오류 검사 코드 생성장치 및 방법 | |
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 (zh) | 電腦記憶體測試結構 | |
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 (ko) | 테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더 | |
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 (ja) | Crc演算回路 | |
US8872537B2 (en) | Semiconductor integrated circuit, circuit testing system, circuit testing unit, and circuit test method | |
KR20070098200A (ko) | 반도체 칩 테스트 장치 및 그 방법 | |
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 |