KR20170137733A - 반도체 디바이스 및 스캔 테스트 방법 - Google Patents

반도체 디바이스 및 스캔 테스트 방법 Download PDF

Info

Publication number
KR20170137733A
KR20170137733A KR1020177027813A KR20177027813A KR20170137733A KR 20170137733 A KR20170137733 A KR 20170137733A KR 1020177027813 A KR1020177027813 A KR 1020177027813A KR 20177027813 A KR20177027813 A KR 20177027813A KR 20170137733 A KR20170137733 A KR 20170137733A
Authority
KR
South Korea
Prior art keywords
test
circuit
scan
tested
fifo
Prior art date
Application number
KR1020177027813A
Other languages
English (en)
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 르네사스 일렉트로닉스 가부시키가이샤
Publication of KR20170137733A publication Critical patent/KR20170137733A/ko

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/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318572Input/Output interfaces
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • G01R31/31921Storing and outputting test patterns using compression techniques, e.g. patterns sequencer
    • 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/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318505Test of Modular systems, e.g. Wafers, MCM's
    • G01R31/318508Board Level Test, e.g. P1500 Standard
    • 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/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • 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/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • 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/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318544Scanning methods, algorithms and patterns
    • G01R31/318547Data generators or compressors
    • 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/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318594Timing aspects
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31922Timing generation or clock distribution
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/3193Tester hardware, i.e. output processing circuits with comparison between actual response and known fault free response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

본 발명에 따른 반도체 디바이스(9)에는, FIFO(91), 제1 클록 신호(910)에 동기하여 복수의 테스트 데이터 항목을 순차적으로 FIFO(91)로 기입하기 위한 테스트 데이터 기입 회로(92), 및 테스트 데이터 기입 회로(92)에 의한 복수의 테스트 데이터 항목의 FIFO(91)로의 기입과 병렬로, 그리고 제1 클록 신호(910)에 동기하지 않고, 제2 클록 신호(920)에 동기하여, FIFO(91)에 저장된 복수의 테스트 데이터 항목을 순차적으로 판독하고, 테스트될 회로(94)의 스캔 테스트를 수행하기 위한 테스트 제어 회로(93)가 제공된다.

Description

반도체 디바이스 및 스캔 테스트 방법
본 발명은, 반도체 디바이스 및 스캔 테스트 방법에 관한 것이고, 특히, 상이한 클록 신호에 동기하여 동작하는 회로들을 포함하는 반도체 디바이스에 관한 것이다.
반도체 디바이스의 테스트로서 스캔 테스트를 사용하는 것이 전형적이다. 스캔 테스트를 수행할 수 있는 반도체 디바이스는, 시프트 레지스터(shift register)인 스캔 체인을 갖는다. 이 시프트 레지스터는, 로직을 형성하는 플립-플롭들을 접속함으로써 구성된다. 그 스캔 체인의 최초 단(first stage) 내의 플립-플롭에 테스트 데이터를 입력함으로써 스캔 테스트가 수행된다.
일반적으로, 스캔 체인은, 스캔 테스트에 필요한 시간을 단축하기 위해 복수의 세그먼트로 분할된다. 스캔 체인들 각각은, 테스트 데이터를 취입(take in)하기 위한 입력과, 테스트 결과들을 취출(take out)하기 위한 출력을 갖는다. 스캔 체인의 최종 단(final stage) 내의 플립-플롭으로부터 테스트 결과들을 순차적으로 취출하여 기대 값(expected value)과 대조함으로써, 스캔 테스트의 테스트 결과들이 판정된다.
상기 동작으로부터 알 수 있는 바와 같이, 스캔 테스트를 위해, 일정 속도의 클록에 동기하여 복수의 테스트 데이터를 복수의 스캔 체인에 동시에 공급하는 것이 필요하다. 또한, 스캔 테스트를 위해, 일정 속도의 클록에 동기하여 복수의 테스트 데이터를 스캔 체인들 각각에 연속해서 공급하는 것이 필요하다. "클록에 동기하여(in synchronization with)"란, 스캔 체인(2010)에 대해 스캔 시프트 동작을 수행하게 하는 1 클록 사이클에, 셋업 타임 위반들(setup time violations) 및 홀드-타임 위반들(hold-time violations)을 야기시키지 않고, 테스트 데이터가 다음 단 내의 플립-플롭으로 전파하는 것을 허용한다는 것을 의미한다. 복수의 스캔 체인으로의 테스트 데이터의 공급이 상기 조건을 충족시키지 않는 경우에, 정확한 테스트 데이터를 모든 플립-플롭에 공급할 수 없음으로써, 정확한 테스트 결과들을 안정적으로 취출할 수 없다.
그러나, 상술한 스캔 테스트를 수행하는 회로를 포함하는 런타임 테스트 메커니즘에서, 일부 경우에 타이밍 설계가 어렵다. 타이밍 설계가 어려운 경우의 예는, CPU(Central Processing Unit) 코어가 DVFS(Dynamic Voltage and Frequency Scaling) 영역(전압 및 주파수가 변동하는 영역)에 위치되고, 런타임 테스트를 제어하기 위한 회로가 CONST 영역(전압 및 주파수가 변동하지 않는 영역)에 위치된 경우에, STA(Static Timing Analysis)를 수행할 수 없는 경우(그것은 너무 복잡한 조건들로 인해 사실상 불가능하다)이다.
송신 타이밍에 대한 제약들을 완화하고(즉, 회로의 처리 속도를 감소시키고), 충분한 타이밍 마진(timing margin)을 허용함으로써, 상술한 문제를 회피하는 것이 가능할 수 있다. 그러나, 이것은 런타임 테스트 실행 시간(FTTI: fault tolerant time interval)에 관련된 요건들(예를 들어, 10밀리초 내에 런타임 테스트의 완료)을 충족시키는 것에 실패를 초래한다.
스캔 체인을 형성하는 복수의 플립-플롭에서, 클록 동기 설계가 행해지지 않는 문제를 다루기 위하여, 특허 문헌 1은, 클록 타이밍에 차이가 있는 플립-플롭들 사이의 송신 경로 내에 지연 회로를 삽입함으로써 홀드-타임 위반들을 회피하는 기술을 개시한다. 또한, 특허 문헌 2는, 제1 클록 영역과 제2 클록 영역의 사이의 스캔 셀 내에 래치를 삽입함으로써 홀드-타임 위반들을 회피하는 기술을 개시한다.
상술한 바와 같이, 특허 문헌 1 및 특허 문헌 2에서, 복수의 클록이 서로 동기하지 않고, 이러한 클록들의 송신에서의 래그(lag)로 인해 홀드 타임을 보증할 수 없는 경우를 위한 솔루션들이 개시된다. 그러나, 특허 문헌 1 및 특허 문헌 2에 개시된 기술들에서, 홀드-타임 위반들을 회피할 수 있어도, 셋업 타임 위반들을 회피할 수는 없다. 따라서, 타이밍 위반들을 발생시키지 않고, 스캔 테스트를 수행할 수 없는 문제가 있다.
또한, 클록 동기 설정들이 행해지지 않은 문제를 다루기 위하여, 특허 문헌 3은, 저속 스캔 클록에 동기하여 모든 스캔-인(scan-in) 데이터를 FIFO(First In First Out)에 축적한 다음에, 고속 시스템 클록에 동기하여 FIFO에 축적한 스캔-인 데이터를 공급하는 기술을 개시한다. 그러나, 특허 문헌 3에 개시된 기술에서는, 저속 스캔 클록에 모든 스캔-인 데이터를 로딩(loaded)한 후에만, 스캔 테스트를 수행할 수 있으므로, 스캔 테스트를 위해 필요한 시간이 증가한다는 문제가 있다.
인용 리스트
특허 문헌
PTL1: 일본 미심사 특허 출원 공개 제2000-321331호
PTL2: 일본 미심사 특허 출원 공개 제2008-530549호
PTL3: 일본 특허 제2723957호
상술한 바와 같이, 특허 문헌 1 및 특허 문헌 2에 개시된 기술들은, 타이밍 위반들을 발생시키지 않고, 스캔 테스트를 수행할 수 없다는 문제를 갖는다. 또한, 특허 문헌 3에 개시된 기술은, 스캔 테스트를 위해 필요한 시간이 증가한다는 문제를 갖는다.
본 발명의 다른 문제들과 신규 특징들은 본 명세서의 설명 및 첨부 도면들로부터 명백해질 것이다.
하나의 실시예에 따르면, 반도체 디바이스는, 제1 클록 신호에 동기하여 복수의 테스트 데이터의 FIFO로의 기입과 병렬로, 제1 클록 신호에 동기하지 않고, 제2 클록 신호에 동기하여, FIFO에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로의 스캔 테스트를 수행한다.
상술한 하나의 실시예에 따르면, 타이밍 위반들의 발생을 감소시키고, 보다 짧은 실행 시간에 스캔 테스트를 수행할 수 있다.
도 1은 제1 실시예에 따른 반도체 디바이스의 제1 개략도이다.
도 2는 제1 실시예에 따른 반도체 디바이스의 제2 개략도이다.
도 3은 도 1에 도시한 FIFO의 개략도이다.
도 4는 도 2에 도시한 FIFO에 저장된 테스트 데이터의 예를 도시하는 다이어그램이다.
도 5는 도 1에 도시한 테스트 제어 디바이스의 개략도이다.
도 6은 제1 실시예에 따라 반도체 디바이스의 동작 파형을 도시하는 다이어그램이다.
도 7은 제2 실시예에 따른 반도체 디바이스의 개략도이다.
도 8은 도 7에 도시한 테스트 클록 제어 디바이스의 개략도이다.
도 9는 도 8에 도시한 테스트 클록 제어 디바이스의 동작 파형을 도시하는 다이어그램이다.
도 10은 제2 실시예에 따라 반도체 디바이스의 동작 파형을 도시하는 다이어그램이다.
도 11은 제3 실시예에 따른 반도체 디바이스의 개략도이다.
도 12는 제3 실시예의 변형예에 따른 반도체 디바이스의 개략도이다.
도 13은 제4 실시예에 따른 반도체 디바이스의 개략도이다.
도 14는 제4 실시예에 따라 반도체 디바이스의 동작을 도시하는 플로우차트이다.
도 15는 제5 실시예에 따른 반도체 디바이스의 개략도이다.
도 16은 제5 실시예에 따라 반도체 디바이스의 동작을 도시하는 플로우차트이다.
도 17은 제6 실시예에 따른 반도체 디바이스의 개략도이다.
도 18은 제6 실시예에 따라 반도체 디바이스의 동작을 도시하는 플로우차트이다.
도 19는 제7 실시예에 따른 반도체 디바이스의 개략도이다.
도 20은 또 다른 실시예에 따른 반도체 디바이스의 개략도이다.
이하에서, 도면들을 참조하여 본 발명의 바람직한 실시예들을 설명할 것이다. 다음의 실시예들에서의 구체적인 수치들 등은 단지 예시의 목적들을 위해 주어지고, 특별히 언급되지 않는 한, 값들이 그로 제한되지 않는다는 점에 유의해야 한다. 또한, 다음의 설명 및 도면들에서, 설명을 명료하게 하기 위해, 본 기술분야의 통상의 기술자에게 자명한 사항들 등을 적절히 생략, 단축 및 단순화하였다.
<제1 실시예>
[전체 구성]
이하에서, 도 1을 참조하여, 제1 실시예에 따른 반도체 디바이스(1A)의 구성을 설명한다. 도 1은 제1 실시예에 따른 반도체 디바이스(1A)의 블록도이다.
도 1에 도시한 바와 같이, 반도체 디바이스(1A)는, 테스트 패턴 발생 디바이스(100), FIFO(101), 테스트 제어 디바이스(200), 테스트될 회로(circuit to be tested; 201), 및 테스트 결과 압축 디바이스(202)를 포함한다. 반도체 디바이스(1A)는 제1 전원 영역(10) 및 제2 전원 영역(20)을 포함하고, 전원 배선들은 제1 전원 영역(10)과 제2 전원 영역(20) 사이에서 상이하다.
제1 전원 영역(10)은 테스트 패턴 발생 디바이스(100)를 포함한다. 제2 전원 영역(20)은 테스트 제어 디바이스(200), 테스트될 회로(201), 테스트 결과 압축 디바이스(202)를 포함한다. FIFO(101)에서의 일부 기능 블록(101A)은 제1 전원 영역(10)에 포함되고, 나머지 기능 블록(101B)은 제2 전원 영역(20)에 포함된다. FIFO(101)에서의 기능 블록들의 상세한 설명은 나중에 제공될 것이라는 점에 유의하라.
전원 배선들은 제1 전원 영역(10)과 제2 전원 영역(20) 사이에서 상이하다. 구체적으로, 상이한 전원 전압이 서로 독립적으로 제1 전원 영역(10)과 제2 전원 영역(20)에 공급된다. 예를 들어, 제1 전원 영역(10)은 CONST 영역이고, 제2 전원 영역(20)은 DVFS 영역이라고 가정한다.
제1 전원 영역(10)에 배치되는 디바이스들 및 회로들은 제1 클록 신호(110)에 의해 구동된다. 제2 전원 영역(20)에 배치되는 디바이스들 및 회로들은 제2 클록 신호(210)에 의해 구동된다. 또한 FIFO(101)에서, 일부 기능 블록(101A)은 제1 클록 신호(110)에 의해 구동되고, 나머지 기능 블록(101B)은 제2 클록 신호(210)에 의해 구동된다.
제1 클록 신호(110)와 제2 클록 신호(210)는, 제1 전원 영역(10)과 제2 전원 영역(20) 사이에서 전압들이 상이하기 때문에 동기하지 않는다(주파수 및 위상 중 적어도 하나가 상이하다). 대안적으로, 제1 클록 신호(110)와 제2 클록 신호(210)는, 그들이 상이한 클록 발생 회로에 의해 발생된 클록 신호들이기 때문에, 비동기적일 수 있다는 점에 유의하라.
테스트 패턴 발생 디바이스(100)는 FIFO(101)에 전기적으로 접속된다. 테스트 패턴 발생 디바이스(100)는 테스트될 회로(201)의 스캔 테스트를 위해 사용될 복수의 스캔 테스트 데이터를 순차적으로 FIFO(101)에 저장하는 회로이다.
FIFO(101)는 복수의 스캔 테스트 데이터를 저장할 수 있는 저장 디바이스(저장 회로)이다. FIFO(101)는 테스트 패턴 발생 디바이스(100)로부터 출력된 스캔 테스트 데이터를 일시적으로 저장한 다음에, 그들을 테스트될 회로(201)에 출력한다.
테스트될 회로(201)는 반도체 디바이스(1A)를 제어하는 기능 로직(논리 회로)이다. 테스트될 회로(201)는 예를 들어, CPU이다. 테스트될 회로(201)는 스캔 테스트 기술에 따라 스캐닝을 인에이블하기 위한 처리를 겪었다. 구체적으로, 테스트될 회로(201)는 복수의 스캔 체인(2010)을 갖는다. 도 1에서, 스캔 체인들(2010) 각각은 그것의 기능 로직(테스트될 회로(201))이 스캔-인에이블된(scan-enabled) 것을 개략적으로 도시하는 블록이다.
FIFO(101)는 테스트될 회로(201)에 스캔 테스트 데이터를 공급하기 위해, 각각의 스캔 체인(2010)의 최초 단(first stage)(입력 단)에 전기적으로 접속된다. 각각의 스캔 체인(2010)의 최종 단(last stage)(출력 단)은, 테스트될 회로(201)로부터, 스캔 테스트 데이터에 의한 동작 결과들인 데이터를 취득하기 위해, 테스트 결과 압축 디바이스(202)에 전기적으로 접속된다.
이에 의해, 테스트될 회로(201)는 FIFO(101)로부터 출력된 스캔 테스트 데이터를 스캔 체인들(2010) 각각에 저장한다. 또한, 테스트될 회로(201)는, 스캔 테스트 데이터에 의한 동작 후에, 스캔 체인들(2010) 각각에 저장된, 동작 결과들인 데이터를 테스트 결과 데이터로서 테스트 결과 압축 디바이스(202)에 출력한다.
도 1에서 단순한 스캔 인에이블 구성의 예를 도시하고 있지만, 테스트될 회로(201)는, 도 2에 도시한 반도체 디바이스(1B)와 같은 신장 회로(2011)와 압축 회로(2012)를 추가로 포함할 수 있다는 점에 유의하라. 달리 말하면, 테스트될 회로(201)는 압축된 스캔을 사용하는 구성을 가질 수 있다. 이 경우에, FIFO(101)는 신장 회로(2011)를 통해 각각의 스캔 체인(2010)의 최초 단에 전기적으로 접속된다. 또한, 각각의 스캔 체인(2010)의 최종 단은, 압축 회로(2012)를 통해 테스트 결과 압축 디바이스(202)에 전기적으로 접속된다.
신장 회로(2011)는 FIFO(101)로부터 출력된 스캔 테스트 데이터를 스캔 체인들(2010)의 수와 동일한 비트 수로 신장한 다음에, 그들을 스캔 체인들(2010) 각각에 저장한다. 압축 회로(2012)는 스캔 체인들(2010) 각각에 저장된 테스트 결과 데이터를 더 작은 비트 수로 압축하고, 그들을 테스트 결과 압축 디바이스(202)에 출력한다.
테스트 제어 디바이스(200)는 FIFO(101), 테스트될 회로(201), 및 테스트 결과 압축 디바이스(202)를 제어하기 위해, 이러한 회로들(101, 201) 및 디바이스(202)에 전기적으로 접속된다.
테스트 결과 압축 디바이스(202)는 테스트될 회로(201)로부터 순차적으로 출력된 복수의 테스트 결과 데이터로부터 압축된 코드를 생성한다. 또한, 테스트 결과 압축 디바이스(202)는 생성한 압축된 코드에 기초하여 테스트 결과들을 판정한다.
[테스트 패턴 발생 디바이스(100)]
도 1에 도시한 테스트 패턴 발생 디바이스(100)는, 테스트될 회로(201)의 스캔 테스트를 수행하기 위한 복수의 스캔 테스트 데이터를 시프트 사이클(shift cycle) 순으로 FIFO(101)로 기입하는 디바이스(회로)이다. 스캔 테스트 데이터는 반도체 디바이스(1A)에 미리 저장될 수 있다. 예를 들어, 스캔 테스트 데이터는 반도체 디바이스(1A)에 포함된 FLASH 메모리에 미리 저장될 수 있다. 대안적으로, 스캔 테스트 데이터는 반도체 디바이스(1A)의 외부로부터 공급될 수 있다. 보다 구체적으로, 반도체 디바이스(1A)에 ATE(Automated Test Equipment)가 접속될 수 있고, 그 ATE로부터 스캔 테스트 데이터가 공급될 수 있다. 테스트 패턴 발생 디바이스(100)는 ATE로부터 공급된 스캔 테스트 데이터를 FIFO(101)로 기입한다. 이 경우에, 제1 클록 신호(110)는 ATE로부터 공급될 수 있다. 또한, 반도체 디바이스(1A)는 테스트 패턴 발생 디바이스(100)를 포함하지 않도록 구성될 수 있고, 스캔 테스트 데이터는 ATE로부터 직접적으로 FIFO(101)로 기입될 수 있다.
[FIFO(101)]
이하에서, 도 3을 참조하여, 제1 실시예에 따른 FIFO(101)의 구성을 설명한다. 도 3은 제1 실시예에 따른 FIFO(101)의 블록도이다.
도 3에 도시한 바와 같이, FIFO(101)는 입력 회로(30) 및 출력 회로(40)를 포함한다. 상술한 바와 같이, FIFO(101)는, 크게 2개의 기능 블록(101A, 101B)을 갖는다. 하나는 기입을 위한 기능 블록(101A)인데, 이는 입력 회로(30)를 포함한다. 다른 하나는 판독을 위한 기능 블록(101B)인데, 이는 출력 회로(40)를 포함한다. 입력 회로(30)는 테스트 패턴 발생 디바이스(100)로부터 입력된 기입 데이터(스캔 테스트 데이터)를 FIFO(101)로 기입하는 회로이다. 출력 회로(40)는 FIFO(101)로부터 데이터를 판독하고, 그것을 판독 데이터로서 테스트될 회로(201)에 출력하는 회로이다.
일부 경우에, 입력 회로(30)와 출력 회로(40)의 사이에 경계 회로(50)가 배치된다. 경계 회로(50)는, 제1 전원 영역(10)과 제2 전원 영역(20) 사이의 전위차를 흡수하기 위한 레벨 시프터(level shifter)(도시하지 않음) 및 경계의 전원을 차단하는 아이솔레이션 로직(isolation logic)(도시하지 않음)을 포함한다.
입력 회로(30)는 풀 판정 회로(full determination circuit; 31), 그레이 코드 카운터(Gray code counter; 32), 선택 회로(33), 및 레지스터 그룹(34)을 포함한다.
풀 판정 회로(31)는, 그레이 코드 카운터(32) 및 그레이 코드 카운터(42) 각각으로부터 출력된 그레이 코드들에 기초하여, 레지스터 그룹(34)이 가득 차(full)있는지 여부를 판정한다. 다시 말해서, 풀 판정 회로(31)는 레지스터 그룹(34)의 모든 레지스터에 스캔 테스트 데이터가 저장되어 있는지를 판정한다. 풀 판정 회로(31)가 레지스터 그룹(34)이 가득 차있다고 판정할 경우에, 그것은 테스트 패턴 발생 디바이스(100)에 출력될 풀 신호(full signal)를 어서트한다(assert). 한편, 풀 판정 회로(31)는, 레지스터 그룹(34)이 가득 차있지 않다고 판정할 경우에, 그것은 테스트 패턴 발생 디바이스(100)에 출력될 풀 신호를 부정한다(negate).
따라서, 테스트 패턴 발생 디바이스(100)는, 풀 판정 회로(31)로부터 입력되는 풀 신호가 어서트되는 경우에, 스캔 테스트 데이터의 FIFO(101)에의 입력을 정지한다. 이에 의해, FIFO(101)의 오버플로우(overflow)를 방지할 수 있다. 한편, 테스트 패턴 발생 디바이스(100)는, 풀 판정 회로(31)로부터 입력되는 풀 신호가 부정되는 경우에, 스캔 테스트 데이터를 FIFO(101)에 입력한다.
그레이 코드 카운터(32)는 레지스터 그룹(34) 중 기입 데이터가 기입될 레지스터의 주소를 표시하는 그레이 코드를 저장한다. 그레이 코드 카운터(32)는, 자신에 저장된 그레이 코드를 풀 판정 회로(31), 선택 회로(33), 및 엠프티 판정 회로(empty determination circuit; 41)에 출력한다. 또한, 그레이 코드 카운터(32)는, 테스트 패턴 발생 디바이스(100)로부터 입력되는 기입 신호가 어서트되는 기간 동안, 제1 클록 신호(110)에 동기하여, 자신에 저장된 그레이 코드를 갱신한다. 구체적으로, 그레이 코드 카운터(32)는, 기입 신호가 어서트되는 기간 동안, 제1 클록 신호(110)의 에지(edge)가 입력될 때마다, 자신에 저장된 그레이 코드를 갱신한다.
테스트 패턴 발생 디바이스(100)는, 스캔 테스트 데이터가 FIFO(101)에 입력되는 기간 동안, 어서트된 기입 신호를 그레이 코드 카운터(32)에 출력하고, 테스트 패턴 발생 디바이스(100)는, 스캔 테스트 데이터의 FIFO(101)에의 입력이 정지되는 기간 동안, 부정된 기입 신호를 그레이 코드 카운터(32)에 출력한다는 점에 유의하라.
선택 회로(33)는, 레지스터 그룹(34) 중 그레이 코드 카운터(32)로부터 출력된 그레이 코드가 표시하는 하나의 레지스터를 기입 데이터가 기입될 레지스터로서 선택한다. 따라서, 기입 신호가 어서트되는 기간 동안, 제1 클록 신호(110)에 동기하여, 선택 회로(33)에 의해 선택된 레지스터가 전환된다. 도 3에서, 레지스터 그룹(34)에 포함된 복수의 레지스터를 "레지스터 1", ..., "레지스터 N"으로서 도시한다(N은 임의의 미리 정해진 양의 정수이다). 그레이 코드 카운터(32)는, 예를 들어, 레지스터 그룹(34) 중 복수의 레지스터로부터 선택된 레지스터를 순환적 방식(예를 들어, "레지스터 1", ..., "레지스터 N", "레지스터 1", ...의 순으로)으로 전환한다.
레지스터 그룹(34)은 기입 데이터(스캔 테스트 데이터)를 저장한다. 레지스터 그룹(34)은 복수의 레지스터를 포함한다. 레지스터 그룹(34)에서의 각각의 레지스터는, 1 시프트 사이클(shift cycle)의 스캔 테스트 데이터를 저장할 수 있는 사이즈를 갖는다. 예를 들어, 스캔 테스트 데이터(기입 데이터, 판독 데이터)의 사이즈가 6비트일 경우에, 레지스터 그룹(34)에서의 각각의 레지스터의 사이즈는 6비트이다. 이러한 방식으로 복수의 레지스터를 준비함으로써, 레지스터 그룹(34)에서의 복수의 레지스터 중 특정 레지스터의 데이터가 판독되고 있는 동안, 또 다른 레지스터에 데이터를 기입하는 것이 가능하다.
출력 회로(40)는 엠프티 판정 회로(41), 그레이 코드 카운터(42), 선택 회로(43), 및 레지스터(44)를 포함한다.
엠프티 판정 회로(41)는, 그레이 코드 카운터(32) 및 그레이 코드 카운터(42) 각각으로부터 출력된 그레이 코드에 기초하여, 레지스터 그룹(34)이 비어 있는지 여부를 판정한다. 다시 말해서, 엠프티 판정 회로(41)는, 레지스터 그룹(34)에서의 모든 레지스터 중 어느 것에도 데이터가 저장되어 있지 않는지를 판정한다. 엠프티 판정 회로(41)가 레지스터 그룹(34)이 비어 있다고 판정할 경우에, 그것은 테스트 제어 디바이스(200)에 출력될 엠프티 신호(empty signal)를 어서트한다. 한편, 엠프티 판정 회로(41)가 레지스터 그룹(34)이 비어 있지 않다고 판정할 경우에, 그것은 테스트 제어 디바이스(200)에 출력될 엠프티 신호를 부정한다.
그레이 코드 카운터(42)는, 레지스터 그룹(34) 중 판독 데이터가 그로부터 판독될 레지스터의 주소를 표시하는 그레이 코드를 저장한다. 그레이 코드 카운터(42)는 자신에 저장된 그레이 코드를 풀 판정 회로(31), 엠프티 판정 회로(41), 및 선택 회로(43)에 출력한다. 또한, 그레이 코드 카운터(42)는 테스트 제어 디바이스(200)로부터 입력되는 판독 신호가 어서트되는 기간 동안, 제2 클록 신호(210)에 동기하여, 자신에 저장된 그레이 코드를 갱신한다. 구체적으로, 그레이 코드 카운터(42)는, 판독 신호가 어서트되는 기간 동안, 제2 클록 신호(210)의 에지가 입력될 때마다, 자신에 저장된 그레이 코드를 갱신한다. 후술하는 스캔 인에이블 신호가 판독 신호로서 기능한다는 점에 유의하라.
선택 회로(43)는, 레지스터 그룹(34) 중 그레이 코드 카운터(42)로부터 출력된 그레이 코드가 표시하는 하나의 레지스터를 판독 데이터가 그로부터 판독될 레지스터로서 선택한다. 따라서, 판독 신호가 어서트되는 기간 동안, 제2 클록 신호(210)에 동기하여, 선택 회로(43)에 의해 선택된 레지스터가 전환된다. 그레이 코드 카운터(42)는, 예를 들어, 그레이 코드 카운터(32)와 마찬가지로, 레지스터 그룹(34) 중 복수의 레지스터로부터 선택된 레지스터를 순환적 방식으로 전환한다.
제2 클록 신호(210)에 동기하여, 레지스터 그룹(34)으로부터 선택 회로(43)에 의해 선택된 레지스터에 저장된 스캔 테스트 데이터가 판독되고 레지스터(44)에 저장된다. 레지스터(44)에 저장된 스캔 테스트 데이터는, 판독 데이터로서, 테스트될 회로(201) 및 테스트 결과 압축 디바이스(202)에 출력된다. 이에 의해, 테스트될 회로(201)는, 제2 클록 신호(210)에 동기하여, 레지스터(44)에 순차적으로 저장된 스캔 테스트 데이터를 판독할 수 있다.
상술한 바와 같이, 입력 회로(30)에 포함된 레지스터 그룹(34)은 제1 클록 신호(110)에 의해 구동되고, 출력 회로(40)에 포함된 레지스터(44)는 제2 클록 신호(210)에 의해 구동된다. 따라서, 입력 회로(30) 및 출력 회로(40)는 동일한 클록에 동기될 필요가 없다.
상술한 바와 같이, 그레이 코드 카운터(32) 및 그레이 코드 카운터(42)는, 레지스터 그룹(34)에서 복수의 레지스터의 선택을 동일한 순서로 순환적 방식으로 전환한다는 점에 유의하라. 따라서, 풀 판정 회로(31)는, 그레이 코드 카운터(32)로부터 출력된 그레이 코드가 표시하는 레지스터가, 그레이 코드 카운터(42)로부터 출력된 그레이 코드가 표시하는 레지스터 직전의 레지스터인 경우, FIFO(101)가 가득 차있다고 판정하고, 그렇지 않을 경우, FIFO(101)가 가득 차있지 않다고 판정한다. 또한, 엠프티 판정 회로(41)는, 그레이 코드 카운터(32)로부터 출력된 그레이 코드가 표시하는 레지스터와, 그레이 코드 카운터(42)로부터 출력된 그레이 코드가 표시하는 레지스터가 동일한 레지스터인 경우에, FIFO(101)가 비어 있다고 판정하고, 그들이 동일한 레지스터가 아닌 경우에, FIFO(101)가 비어 있지 않다고 판정한다.
이하에서, 도 4를 참조하여, 스캔 테스트 데이터의 테스트될 회로(201) 및 테스트 결과 압축 디바이스(202)에의 입력 예를 설명한다. 도 4는, 도 2에 도시한 반도체 디바이스(1B)에서의 스캔 테스트 데이터의 입력 예를 도시한다는 점에 유의하라.
도 4의 왼쪽 부분에 도시한 데이터는, 도 3에 도시한 FIFO(101)에 저장된 스캔 테스트 데이터의 내용을 개략적으로 표 형식(tabular form)으로 도시한 것이다. 이러한 표에서, 스캔 테스트 데이터는 FIFO(101)에 저장되는 순으로 오른쪽부터 순차적으로 배열된다. 따라서, 표의 각각의 단일 열은, 레지스터 그룹(34) 중 어느 하나의 레지스터에 대응한다. 예를 들어, 도 4에서, "#n"에 의해 표시된 열에서의 데이터는 도 3에서의 "레지스터 n"에 저장된 데이터이다(n은, 1 내지 N 중 임의의 값이다). 도 4에 도시한 바와 같이, FIFO(101)의 기능적 특성들로서, 스캔 테스트 데이터가 그로부터 한 번 판독된 레지스터가 다시 사용된다는 점에 유의하라. 구체적으로, FIFO(101)의 레지스터 그룹(34) 중 복수의 레지스터가 순환적 방식으로 사용된다. 그러므로, 스캔 테스트 데이터의 기입 및 판독이 1 사이클 행해진 후에, 동일한 레지스터로부터 판독되는 스캔 테스트 데이터가 다시 출현한다.
스캔 테스트 데이터는, 입력 데이터와 마스크 데이터로 구성된다. 도 4는, 스캔 테스트 데이터가 6 비트이고, 입력 데이터가 4비트이고, 마스크 데이터가 2비트인 예를 도시한다. 도 4에서, 테스트될 회로(201)에서의 스캔 체인들(2010)의 수는 입력 데이터의 비트 수(4비트)보다 크다.
신장 회로(2011)는, FIFO(101)로부터 입력되는 입력 데이터를 더 큰 비트 수(스캔 체인들(2010)의 수와 동일한 비트 수)로 신장하고, 신장된 입력 데이터의 각각의 비트를 스캔 체인들(2010) 각각에 출력한다.
도 1에 도시한 반도체 디바이스(1A)의 경우에, 입력 데이터의 비트 수와 복수의 스캔 체인(2010)의 수는 동일하다는 점에 유의하라. 그러므로, FIFO(101)로부터 입력되는 입력 데이터의 각각의 비트는 그대로 복수의 스캔 체인(2010) 각각에 입력된다. 그 다음에 테스트될 회로(201)를 동작시킴으로써, 스캔 체인들(2010) 각각에 테스트 결과 데이터가 저장된다.
압축 회로(2012)는, 복수의 스캔 체인(2010)으로부터 출력되는 테스트 결과 데이터를 더 작은 비트 수를 갖는 데이터로 압축하고, 압축된 테스트 결과 데이터를 테스트 결과 압축 디바이스(202)에 출력한다. 도 4의 예에서, 복수의 스캔 체인(2010)으로부터 출력되는 데이터(4비트보다 큰 비트 수를 갖는 데이터)는 2비트로 압축된다. 이 압축 회로(2012)에 의한 압축 후의 데이터의 비트 수는, 마스크 데이터의 비트 수와 동일하다는 점에 유의하라. FIFO(101)로부터 출력된 마스크 데이터 또한 압축된 데이터와 함께 테스트 결과 압축 디바이스(202)에 입력된다.
상술한 바와 같이, 도 4는, 복수의 스캔 체인(2010) 각각의 사이즈가 N비트인 예를 도시한다. 이러한 예에서, N회의 스캔 시프트 동작의 수행 및 각각의 스캔 체인(2010)으로의 N-비트 스캔 테스트 데이터(입력 데이터)의 스캔 후에, 테스트될 회로(201)는 그 스캔 테스트 데이터를 사용하여 캡처 동작(정상 동작(normal operation))을 수행한다. 이에 의해, 각각의 스캔 체인(2010)에 테스트 결과 데이터가 저장된다. 그 후에, N회의 스캔 시프트 동작의 수행 및 각각의 스캔 체인(2010)에 N-비트 테스트 결과 데이터의 스캔 아웃에 의해, 테스트 결과 데이터가 테스트 결과 압축 디바이스(202)에 출력된다. 이 스캔-아웃(scan-out) 동안, 다음 N-비트 스캔 테스트 데이터(입력 데이터)가 스캔 인(scan in)된다는 점에 유의하라.
도 4에 도시한 "패턴 #1", ..., "패턴 #N"은, 스캔-인, 캡처 및 스캔-아웃의 일련의 동작이 수행되는 스캔 테스트 데이터의 유닛(또한 "테스트 패턴"으로서 지칭되는)을 표시한다는 점에 유의하라.
[테스트 결과 압축 디바이스(202)]
이하에서, 도 4를 참조하여, 제1 실시예에 따른 테스트 결과 압축 디바이스(202)의 구성을 추가로 설명한다. 도 4의 오른쪽 부분에 도시한 블록은 테스트 결과 압축 디바이스(202)를 도시하는 블록이다. 도 4에 도시한 바와 같이, 테스트 결과 압축 디바이스(202)는 AND 게이트들(2021, 2022) 및 압축 회로(2023)를 포함한다.
테스트 결과 압축 디바이스(202)는 테스트될 회로(201)로부터 출력되는 테스트 결과 데이터를 압축하는 디바이스(회로)이다. 테스트 결과 압축 디바이스(202)에는, 테스트될 회로(201)로부터 출력되는 테스트 결과 데이터 및 FIFO(101)로부터 출력되는 스캔 테스트 데이터에서의 마스크 데이터가 입력된다. 구체적으로, 이러한 마스크 데이터는, 이러한 테스트 결과 데이터가 스캔 아웃되는 경우에, 스캔 인되는 입력 데이터와 함께 스캔 테스트 데이터를 구성하는 마스크 데이터이다. AND 게이트들(2021, 2022) 각각은, 테스트 결과 데이터의 각각의 비트와 마스크 데이터의 각각의 비트 사이에서 논리 AND(논리 곱 연산)를 수행하고, 결과 데이터를 압축 회로(2023)에 출력한다. 따라서, 마스크된 테스트 결과 데이터가 압축 회로(2023)에 출력된다.
압축 회로(2023)는, AND 게이트들(2021, 2022)로부터 순차적으로 입력된 일련의 테스트 결과 데이터를 압축한다. 이에 의해, 모든 테스트 결과 데이터의 총 사이즈보다 작은 사이즈의 데이터(압축된 코드)가 최종 테스트 결과로서 획득된다. 압축 회로(2023)의 구성은 특히 제한되지 않고, 그것은 예를 들어, LFSR(Linear FeedBack Shift Register)을 포함하는 회로일 수 있다.
[테스트 제어 디바이스(200)]
이하에서, 도 5를 참조하여, 제1 실시예에 따른 테스트 제어 디바이스(200)의 구성을 설명한다. 도 5는, 제1 실시예에 따른 테스트 제어 디바이스(200)의 블록도이다.
도 5에 도시한 바와 같이, 테스트 제어 디바이스(200)는, 스캔 시프트 카운터(2000), 스캔 시프트 횟수 레지스터(2001), 비교기(2002), 선택기(2003), AND 게이트(2004), 테스트 패턴 카운터(2005), 테스트 패턴 수 레지스터(2006), 비교기(2007), 선택기(2008), 및 선택기(2009)를 포함한다.
스캔 시프트 카운터(2000)는, 제2 클록 신호(210)에 동기하여, 스캔 체인들(2010)을 위해 스캔 시프트 동작을 수행한 횟수(스캔-인(scan-in)된 스캔 테스트 데이터의 수)를 카운트하는 카운터이고, 그 카운트 값을 거기에 저장한다. 스캔 시프트 카운터(2000)는, 거기에 저장된 값을 비교기(2002) 및 선택기(2003)에 출력한다.
스캔 시프트 횟수 레지스터(2001)는, 하나의 테스트 패턴에서 수행된 스캔 시프트 동작의 횟수(하나의 테스트 패턴에서의 스캔 테스트 데이터의 수)를 표시하는 값을 저장한다. 스캔 시프트 횟수 레지스터(2001)의 값은, 예를 들어, 스캔 테스트를 수행하기 전에 테스트 제어 디바이스(200)의 외부로부터 설정된다. 또한, 스캔 시프트 횟수 레지스터(2001)의 값은, 고정 값으로서 미리 설정될 수 있다. 스캔 시프트 횟수 레지스터(2001)는 거기에 저장된 값을 비교기(2002)에 출력한다.
비교기(2002)는 스캔 시프트 카운터(2000)로부터 출력되는 값과, 스캔 시프트 횟수 레지스터(2001)로부터 출력되는 값을 비교하고, 비교 결과에 따른 값을 AND 게이트(2004) 및 선택기(2008)에 출력한다. 예를 들어, 비교기(2002)는 비교한 값들이 일치하는 경우에, 부정 신호(negated signal)를 출력하고, 비교한 값들이 일치하지 않는 경우에, 어서트된 신호(asserted signal)를 출력한다. 부정 신호는 "0"의 값(Low)의 신호이고, 어서트된 신호는 "1"의 값(High)의 신호이다. 아래에서도 마찬가지이다.
구체적으로, 비교기(2002)는, 하나의 테스트 패턴에서의 스캔 테스트 데이터의 스캔-인을 시작하고 나서 수행된 스캔 시프트 동작의 횟수가 그 테스트 패턴에 포함된 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력된 횟수(스캔 체인들(2010)의 사이즈) 미만인 경우에, 어서트된 신호("1"의 값)를 출력한다. 한편, 비교기(2002)는, 하나의 테스트 패턴에서의 스캔 테스트를 시작하고 나서 수행된 스캔 시프트 동작의 횟수가 그 테스트 패턴에 포함된 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력된 횟수와 동일한 경우에, 부정 신호("0"의 값)를 출력한다. 예를 들어, 도 4에 도시한 예에서, 비교기(2002)는, 하나의 테스트 패턴에서의 스캔 테스트 데이터의 스캔-인을 시작하고 나서 수행된 스캔 시프트 동작의 횟수가 N회 미만인 경우에, "1"을 출력하고, N회인 경우에, "0"을 출력한다.
선택기(2003)는, AND 게이트(2004)로부터 출력되는 값에 따라 스캔 시프트 카운터(2000)의 값을 증가시킬 것인가 또는 초기화할 것인가를 선택하는 회로이다. 보다 구체적으로, 선택기(2003)는, AND 게이트(2004)로부터 출력되는 값이 "1"일 경우에, 스캔 시프트 카운터(2000)의 값에 "1"을 가산하고, AND 게이트(2004)로부터 출력되는 값이 "0"일 경우에, 스캔 시프트 카운터(2000)의 값을 초기화한다. 구체적으로, 스캔 시프트 카운터(2000)의 값을 증가시킬 경우에, 선택기(2003)는 스캔 시프트 카운터(2000)의 값에 "1"을 가산함으로써 획득된 값을 스캔 시프트 카운터(2000)에 출력하고 그것을 저장한다. 한편, 스캔 시프트 카운터(2000)의 값을 초기화하는 경우에, 선택기(2003)는 초기 값 "0"을 스캔 시프트 카운터(2000)에 출력하고 그것을 저장한다. 이 증가 또는 초기화는 제2 클록 신호(210)에 동기하는 타이밍에 수행된다는 점에 유의하라. 다시 말해서, 이 증가 또는 초기화는, 테스트 제어 디바이스(200)에 제2 클록 신호(210)의 에지가 입력되는 타이밍에 수행된다.
AND 게이트(2004)는, 입력된 개시 신호의 값과, 비교기(2002)로부터 출력되는 값 사이에서 논리 AND(논리 곱 연산)를 수행하고, 결과 값을 선택기(2003) 및 외부에 출력한다. 이 외부에 출력되는 값은, 스캔 인에이블 신호로서, FIFO(101), 테스트될 회로(201) 및 테스트 결과 압축 디바이스(202)에 입력된다. FIFO(101)에 입력되는 스캔 인에이블 신호는, 상술한 바와 같이 판독 신호로서 기능한다.
개시 신호는 FIFO(101)로부터 테스트 제어 디바이스(200)에 입력되는 엠프티 신호가 부정되는 경우에, 어서트되는 신호이다. 예를 들어, 테스트 제어 디바이스(200)는 FIFO(101)로부터 입력되는 엠프티 신호에 따라 개시 신호를 AND 게이트(2004)에 출력하는 회로를 포함한다. 이러한 회로는, 엠프티 신호가 부정되는 경우에, 개시 신호를 어서트 및 출력한다. 개시 신호는, 후술하는 바와 같이, 모든 스캔 테스트 데이터가 FIFO(101)로부터 출력된 후에 부정된다는 점에 유의하라.
따라서, 달리 말하면, AND 게이트(2004)는, 개시 신호의 값이 "1"인 경우에, 비교기(2002)로부터의 출력 값을 출력한다. 그 다음에, 비교기(2002)에서의 비교 결과가 불일치이고, 선택기(2003)에 입력되는, 비교기(2002)로부터의 출력 값이 "1"인 경우에, 선택기(2003)는 증가를 선택한다. 한편, 비교기(2002)에서의 비교 결과가 일치이고, 선택기(2003)에 입력되는, 비교기(2002)로부터의 출력 값이 "0"인 경우에, 선택기(2003)는 초기화를 선택한다.
  이러한 동작에서, FIFO(101)가 비어 있지 않고 스캔 체인들(2010)로 스캔 테스트 데이터가 스캔 인되는 경우에, 수행되는 스캔 시프트 동작의 횟수가 카운트된다. 그 다음에, 하나의 테스트 패턴에서의 수행된 스캔 시프트 동작의 횟수가 그 테스트 패턴에 포함된 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력된 횟수에 도달하는 경우에, 스캔 시프트 카운터(2000)의 값이 초기화된다. 다시 말해서, 하나의 테스트 패턴에서의 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력될 때마다, 스캔 시프트 카운터(2000)의 값이 테스트 제어 디바이스(200)에서 초기화된다. 따라서, 스캔 시프트 카운터(2000)는, 각각의 테스트 패턴에 대해서, 스캔 체인들(2010)에 입력된 스캔 테스트 데이터의 수에 대한 카운트를 반복할 수 있다.
또한, 이러한 동작에서, 테스트 제어 디바이스(200)는, 하나의 테스트 패턴에서의 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력될 때마다, 일단 스캔 인에이블 신호를 부정한다. 테스트될 회로(201)는, 어서트된 스캔 인에이블 신호가 테스트 제어 디바이스(200)로부터 입력되는 경우에, 스캔 시프트 동작을 수행한다. 한편, 테스트될 회로(201)는, 테스트 제어 디바이스(200)로부터 부정된 스캔 인에이블 신호가 입력되는 경우에, 캡처 동작(정상 동작)을 수행한다. 따라서, 하나의 테스트 패턴에서의 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력될 때마다, 1-블록 캡처 동작이 수행될 수 있다. 다시 말해서, 단일-클록 스캔 테스트가 시행된다.
또한, 테스트 결과 압축 디바이스(202)는, 어서트된 스캔 인에이블 신호가 테스트 제어 디바이스(200)로부터 입력되는 경우에, 테스트 결과 데이터의 압축을 수행한다. 한편, 테스트 결과 압축 디바이스(202)는, 부정된 스캔 인에이블 신호가 테스트 제어 디바이스(200)로부터 입력되는 경우에, 테스트 결과 데이터의 압축을 수행하지 않는다. 그러므로, 테스트 결과 압축 디바이스(202)는, 단지 테스트될 회로(201)가 스캔 시프트 동작을 수행하고 다음 테스트 결과 데이터를 출력하는 경우에만, 그 테스트 결과 데이터에 기초하여 압축된 코드를 생성할 수 있다. 그로 인해, 캡처 동작 동안 테스트될 회로(201)로부터 출력된 데이터의 취입을 방지하고, 정확한 테스트 결과들을 생성할 수 있다.
테스트 패턴 카운터(2005)는, 제2 클록 신호(210)에 동기하여 스캔 체인들(2010)로 스캔 인된 테스트 패턴들의 수를 카운트하는 카운터이다. 구체적으로, 테스트 패턴 카운터(2005)는, 스캔 체인들(2010)로 스캔 인된 테스트 패턴들의 수를 표시하는 값을 저장한다. 테스트 패턴 카운터(2005)는, 거기에 저장된 값을 비교기(2007) 및 선택기(2008)에 출력한다.
테스트 패턴 수 레지스터(2006)는 테스트 패턴 발생 디바이스(100)에 의해 FIFO(101)에 입력된 테스트 패턴들의 수를 표시하는 값을 저장한다. 테스트 패턴 수 레지스터(2006)의 값은, 예를 들어, 스캔 테스트를 수행하기 전에 테스트 제어 디바이스(200)의 외부로부터 설정된다. 또한, 테스트 패턴 수 레지스터(2006)의 값은 고정 값으로서 미리 설정될 수 있다. 테스트 패턴 수 레지스터(2006)는 거기에 저장된 값을 비교기(2007)에 출력한다.
비교기(2007)는, 테스트 패턴 카운터(2005)로부터 출력되는 값과 테스트 패턴 수 레지스터(2006)로부터 출력되는 값을 비교하고, 비교 결과에 따른 값을 종료 신호로서 테스트 결과 압축 디바이스(202)에 출력한다. 예를 들어, 비교기(2007)는, 비교한 값들이 일치하는 경우에, 어서트된 신호("1"의 값)를 출력하고, 비교한 값이 일치하지 않는 경우에, 부정 신호("0"의 값)를 출력한다.
선택기(2008)는, 비교기(2002)로부터 출력되는 값에 따라 테스트 패턴 카운터(2005)의 값을 증가시킬지의 여부를 선택하는 회로이다. 보다 구체적으로, 선택기(2008)는, 비교기(2002)로부터 출력되는 값이 "0"일 경우에, 테스트 패턴 카운터(2005)의 값에 "1"을 가산하고, 비교기(2002)로부터 출력되는 값이 "1"일 경우에, 테스트 패턴 카운터(2005)의 값에 "1"을 가산하지 않는다. 구체적으로, 테스트 패턴 카운터(2005)의 값을 증가시킬 경우에, 선택기(2008)는, 테스트 패턴 카운터(2005)의 값에 "1"을 가산함으로써 획득된 값을 선택기(2009)에 출력한다. 한편, 테스트 패턴 카운터(2005)의 값을 증가시키지 않을 경우에, 선택기(2008)는 테스트 패턴 카운터(2005)의 값을 변경하지 않고 선택기(2009)에 출력한다.
선택기(2009)는, 테스트 제어 디바이스(200)의 내부에서 출력되는 개시 신호의 값에 따라 테스트 패턴 카운터(2005)의 값을 증가시킬 것인가 또는 유지할 것인가를 선택하는 회로이다. 보다 구체적으로, 선택기(2009)는, 개시 신호의 값이 "1"일 경우에, 테스트 패턴 카운터(2005)의 값을 증가시키거나 유지하고, 개시 신호의 값이 "0"일 경우에, 테스트 패턴 카운터(2005)의 값을 초기화한다. 구체적으로, 테스트 패턴 카운터(2005)의 값을 증가시키거나 유지할 경우에, 선택기(2009)는 선택기(2008)로부터 출력되는 값을 테스트 패턴 카운터(2005)에 출력하고 그것을 저장한다. 한편, 테스트 패턴 카운터(2005)의 값을 초기화할 경우에, 선택기(2009)는 초기 값 "0"을 테스트 패턴 카운터(2005)에 출력하고 그것을 저장한다.
이 증가, 동일한 값 유지, 또는 초기화는, 제2 클록 신호(210)에 동기하는 타이밍에 수행된다는 점에 유의하라. 다시 말해서, 이 증가, 동일한 값 유지, 또는 초기화는, 테스트 제어 디바이스(200)에 제2 클록 신호(210)의 에지가 입력되는 타이밍에 수행된다.
이러한 동작에서, FIFO(101)가 비어 있지 않고 스캔 체인들(2010)로 스캔 테스트 데이터가 스캔 인되는 경우에, 스캔 시프트 동작이 수행된 횟수가 카운트된다. 그 다음에, 하나의 테스트 패턴에서의 스캔 테스트를 시작하고 나서 수행된 스캔 시프트 동작의 횟수가, 그 테스트 패턴에 포함된 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력된 횟수에 도달하는 경우에, 테스트 패턴 카운터(2005)의 값에 "1"이 가산된다. 다시 말해서, 하나의 테스트 패턴에서의 모든 스캔 테스트 데이터가 스캔 체인들(2010)에 입력될 때마다, 테스트 패턴 카운터(2005)의 값에 "1"이 가산된다. 그 다음에 FIFO(101)로부터 모든 테스트 패턴(모든 스캔 테스트 데이터)이 출력되는 경우에, 테스트 패턴 카운터(2005)의 값이 초기화된다. 그러므로, 테스트 패턴 카운터(2005)는 스캔 체인들(2010)에 입력된 테스트 패턴들의 수를 카운트할 수 있다.
또한, 이러한 동작에서, 테스트 제어 디바이스(200)는, 스캔 테스트를 시작하고 나서 스캔 체인들(2010)에 입력된 테스트 패턴들의 수가 모든 테스트 패턴이 스캔 체인들(2010)에 입력된 수에 도달하는 경우에, 어서트된 종료 신호를 테스트 결과 압축 디바이스(202)에 출력한다. 다시 말해서, FIFO(101)로부터 모든 테스트 패턴(모든 스캔 테스트 데이터)이 출력되는 경우에, 그것은 종료 신호에 의해 테스트 결과 압축 디바이스(202)에 통지될 수 있다.
[동작 플로우]
이하에서, 도 6을 참조하여, 제1 실시예에 따른 반도체 디바이스(1B)의 동작을 설명한다. 도 6은 제1 실시예에 따라 반도체 디바이스(1B)의 동작 파형을 도시하는 다이어그램이다.
도 6에서, 상부 부분(선 HL 위의 파형)은, 도 1에 도시한 제1 전원 영역(10)에서의 회로의 파형을 도시하고, 하부 부분(선 HL 아래의 파형)은, 도 1에 도시한 제2 전원 영역(20)에서의 회로의 파형을 도시한다. 이러한 파형들에서, 제1 클록 신호와 제2 클록 신호는 동일한 주파수를 갖지만, 그들의 에지들은 정렬되지 않는다. 따라서, 제1 클록 신호와 제2 클록 신호는 동기하지 않는다. 이하에서, 도 2에 도시한 반도체 디바이스(1B)를 예로서 사용하면서, 또한 도 3 내지 도 5를 참조하여 동작을 설명한다.
테스트될 회로(201)에 공급하는 스캔 테스트 데이터의 내용에 따라 임의의 값을 스캔 시프트 횟수 레지스터(2001)와 테스트 패턴 수 레지스터(2006)에 미리 저장한다. 이러한 값들을 저장하기 위해, 스캔 시프트 횟수 레지스터(2001)와 테스트 패턴 수 레지스터(2006)는, 데이터 설정을 위한 시프트 레지스터를 포함하는 구성을 가질 수 있고, 값들은, 외부로부터 순차적으로 그들을 입력함으로써 저장될 수 있다. 이러한 동작은 단지 테스트의 개시 전에만 수행되고, 그것은, 그것이 저속에서 수행되더라도 테스트 시간의 오버헤드(overhead)를 야기하지 않는다는 점에 유의하라.
도 6은, 테스트 패턴들의 수가 "5"이고, 하나의 테스트 패턴에서의 스캔 테스트 데이터의 수가 "3"인 예를 도시하고 있다는 점에 유의하라. 따라서, 이러한 예에서, 스캔 시프트 횟수 레지스터(2001)에 저장된 값은 "3"이고, 테스트 패턴 수 레지스터(2006)에 저장된 값은 "5"이다.
스캔 테스트의 개시를 위한 지시가 외부로부터 주어진 경우에, 테스트 패턴 발생 디바이스(100)는, 제1 클록 신호(110)에 동기하여 스캔 테스트 데이터의 FIFO(101)로의 기입을 시작한다. 도 6 에 도시한 바와 같이, 테스트 패턴 발생 디바이스(100)는 스캔 테스트 데이터 "A" 내지 "O"를 FIFO(101)에 순차적으로 저장한다.
스캔 테스트 데이터의 FIFO(101)로의 기입은, 테스트 패턴 발생 디바이스(100)가 스캔 테스트 데이터를 FIFO(101)에 공급할 수 있는 상태에 있다면, FIFO(101)가 오버플로우하지 않는 한(풀 신호가 어서트되지 않는 한), 모든 스캔 테스트 데이터를 FIFO(101)로 기입할 때까지 연속적으로 수행된다.
스캔 테스트 데이터의 입력은, 반도체 디바이스(1B)의 외부로부터 개시를 지시하는 신호를 테스트 패턴 발생 디바이스(100)에 입력함으로써 개시될 수 있거나, 반도체 디바이스(1B)의 내부에서 개시를 지시하는 신호를 발생시키고 그 신호를 테스트 패턴 발생 디바이스(100)에 입력함으로써 개시될 수 있다는 점에 유의하라.
스캔 테스트 데이터가 FIFO(101)로 기입되기 시작하는 경우에, FIFO(101)의 엠프티 판정 회로(41)는, FIFO(101)가 비어 있다는 것을 표시한 엠프티 신호를 부정하고, FIFO(101)가 비어 있지 않다는 것을 표시하도록 그것을 변경한다. 엠프티 신호가 부정되는 경우에, 테스트 제어 디바이스(200)의 개시 신호가 어서트된다. 이에 의해, 스캔 인에이블 신호가 어서트되고, 반도체 디바이스(1B)의 스캔 테스트 동작이 개시된다.
스캔 테스트 데이터는 제2 클록 신호(210)에 동기하여 FIFO(101)로부터 판독되고, 데이터의 부분은 입력 데이터로서 신장 회로(2011)에 입력되고, 데이터의 다른 부분은 마스크 데이터로서 테스트 결과 압축 디바이스(202)에 입력된다. 테스트 결과 압축 디바이스(202)에 입력된 마스크 데이터와 압축 회로(2012)의 출력 값의 논리 곱 연산(논리 AND 연산)은 AND 게이트들(2021, 2022)에 의해 수행된다. 압축 회로(2012)를 통해 스캔 체인들(2010)로부터 출력되는 테스트 결과 데이터의 일부는, 불확정 값(indeterminate value)("0"(Low) 또는 "1"(High)로서 판정되지 않은 값인)이고, 이러한 동작은 이러한 불확정 값을 강제적으로 "0"(Low)으로 고정하기 위한 것이다.
AND 게이트들(2021, 2022)로부터 출력되는 논리 곱 연산 후의 테스트 결과 데이터는 압축 회로(2023)에 입력된다. 압축 회로(2023)는, 테스트 제어 디바이스(200)로부터 입력되는 스캔 인에이블 신호가 어서트되는(스캔 시프트 동작이 수행되는) 기간 동안, 현재 보유하고 있는 값을 인계받으면서, 입력된 테스트 결과 데이터를 압축된 코드로 연속적으로 변환한다.
한편, 제2 클록 신호(210)에 동기하여 스캔 시프트 동작이 수행될 때마다, 스캔 시프트 카운터(2000)의 값에 "1"이 가산된다. 그 다음에, 스캔 시프트 카운터(2000)의 값이 스캔 시프트 횟수 레지스터(2001)의 값과 동일해지는 경우에, 그것은 하나의 테스트 패턴에서의 모든 스캔 테스트 데이터가 테스트될 회로(201)에 입력됨을 의미한다. 이때, 스캔 인에이블 신호가 부정된다.
예를 들어, 도 6에서, 이것은 3개의 스캔 테스트 데이터 "A" 내지 "C"가 판독 데이터로서 판독되고 스캔 체인들(2010)에 입력되고, 다음 판독 데이터가 스캔 테스트 데이터 "D"인 상태에 대응한다.
테스트될 회로(201)는, 테스트 제어 디바이스(200)로부터 입력되는 스캔 인에이블 신호가 부정되는 경우에, 스캔 테스트에서의 캡처 동작을 수행한다. 이때, 테스트될 회로(201)는, FIFO(101)로부터의 스캔 테스트 데이터의 판독을 중단한다. 따라서, 도 6 에 도시한 바와 같이, 판독 데이터가 스캔 테스트 데이터 "D"인 상태가 유지된다.
그 다음에, 스캔 시프트 카운터(2000)의 값은 초기 값으로 갱신된다. 구체적으로, 도 6 에 도시한 바와 같이, 스캔 시프트 카운터(2000)의 값이 스캔 시프트 횟수 레지스터(2001)의 값 "3"과 동일한 "3"이기 때문에, 스캔 시프트 카운터(2000)의 값은 "0"으로 초기화된다. 또한, 이때, 테스트 패턴 카운터(2005)의 값은 증가된다. 구체적으로, 도 6 에 도시한 바와 같이, 첫 번째 테스트 패턴에서의 모든 스캔 테스트 데이터 "A" 내지 "C"가 스캔 체인들(2010)에 입력되기 때문에, 테스트 패턴 카운터(2005)의 값은, "0"으로부터 "1"로 갱신된다.
스캔 시프트 카운터(2000)의 초기화에 의해, 스캔 인에이블 신호가 다시 어서트된다. 구체적으로, 스캔 시프트 카운터(2000)의 값이 스캔 시프트 횟수 레지스터(2001)의 값 "3"과 동일하지 않은 "0"으로 초기화되기 때문에, 도 6 에 도시한 바와 같이, 이러한 경우에서의 비교기(2002)의 출력 값에 따라 스캔 인에이블 신호가 어서트된다. 이에 의해, 테스트될 회로(201)에 의한 FIFO(101)로부터의 스캔 테스트 데이터의 판독 및 스캔 시프트 동작과, 테스트 결과 압축 디바이스(202)에 의한 압축 동작이 재개된다. 구체적으로, 도 6 에 도시한 바와 같이, 스캔 테스트 데이터 "D"가 판독되고, 스캔 체인들(2010)에 입력된다. 이러한 시점에서 앞으로, 스캔 테스트 데이터 "D" 내지 "F"가 스캔 체인들(2010)에 입력되는 것과 동시에, 스캔 테스트 데이터 "A" 내지 "C"에 의한 테스트 결과 데이터가 스캔 체인들(2010)로부터 테스트 결과 압축 디바이스(202)에 출력된다는 점에 유의하라.
이러한 일련의 동작은, 테스트 패턴 카운터(2005)의 값이 테스트 패턴 수 레지스터(2006)에 설정된 값과 동일해지고, 종료 신호가 어서트될 때까지 반복된다. 구체적으로, 도 6에 도시한 바와 같이, 마지막 것인 다섯 번째 테스트 패턴(스캔 테스트 데이터 "M" 내지 "O")이 입력되고, 테스트 패턴 카운터(2005)의 값 "5"가 테스트 패턴 수 레지스터(2006)의 값 "5"와 동일하기 때문에, 비교기(2007)는, 테스트 결과 압축 디바이스(202)에 출력될 종료 신호를 어서트한다.
모든 스캔 테스트 데이터의 입력 후에 또한, 테스트 패턴 카운터(2005)와 테스트 패턴 카운터(2005)를 갱신하고 종료 신호를 출력하는 것을 허용하기 위해, 도 6에 도시한 바와 같이, 개시 신호가 부정되는 타이밍은 엠프티 신호가 부정되는 타이밍보다 약간 나중이다. 예를 들어, 개시 신호를 출력하는 상술한 회로는, 비교기(2007)로부터 종료 신호가 출력되는 경우에, 개시 신호를 부정한다. 또한, 도 6에 도시한 바와 같이, 스캔 시프트 카운터(2000)의 값이 초기화된 후에라도, 종료 신호가 출력되는 동안, 무효 스캔 시프트 동작을 방지하기 위해, 스캔 인에이블 신호가 부정된 채로 유지된다.
종료 신호가 어서트되는 경우에, 테스트 결과 압축 디바이스(202)는, 압축 회로(2023)에 저장된 압축 코드를 취출하고 그것을 미리 준비된 기대 값과 대조함으로써 테스트 결과를 판정한다. 테스트 결과 압축 디바이스(202)는, 최종 코드와 기대 값을 대조한 결과, 최종 코드와 기대 값이 일치하는 경우에, 테스트될 회로(201)가 정상이라고 판정하고, 최종 코드와 기대 값이 일치하지 않는 경우에, 테스트될 회로(201)가 비정상이라고 판정한다. 테스트 결과와 기대 값 사이의 이러한 비교는 단지 테스트의 종료 후에만 수행되고, 그것은, 그것이 저속에서 수행되더라도 테스트 시간의 오버헤드를 야기하지 않는다는 점에 유의하라.
도 6에서, 마지막(다섯 번째) 테스트 패턴에서의 스캔 테스트 데이터 "M" 내지 "O"는 스캔 체인들(2010)에 입력되지만, 그 후에 스캔 인에이블 신호가 부정된 채로 유지되기 때문에, 테스트 결과 데이터는 테스트 결과 압축 디바이스(202)에서의 압축된 코드의 생성을 위해 사용되지 않는다는 점에 유의해야 한다. 따라서, 마지막(다섯 번째) 테스트 패턴에서, 이전의(네 번째) 테스트 패턴에서의 스캔 테스트 데이터 "M" 내지 "O"는 테스트 결과 데이터를 판독하기 위한 더미 스캔 테스트 데이터(dummy scan test data)로서 기능한다. 그러므로, 엄밀하게는, 첫 번째 내지 네 번째 테스트 패턴에 대한 테스트 결과 데이터에 의해 테스트될 회로(201)의 상태가 판정된다.
또한, 첫 번째 테스트 패턴에서의 스캔 테스트 데이터 "A" 내지 "C"에서, 그 전에 테스트 패턴이 존재하지 않는다. 그러므로, 도 4에도 도시한 바와 같이, 첫 번째 테스트 패턴에서의 스캔 테스트 데이터 "A" 내지 "C"의 모든 마스크 데이터는 "0"으로 설정된다. 따라서, 첫 번째 테스트 패턴에서의 스캔 테스트 데이터를 스캔 체인들(2010)에 입력하는 경우에, 스캔 체인들(2010)로부터 출력된 데이터를 "0"으로 고정하여, 테스트 결과 압축 디바이스(202)에서의 압축된 코드의 생성에 영향을 주지 않게 한다.
상술한 스캔 테스트의 동작은, 먼저 설명한 테스트 패턴 발생 디바이스(100)로부터 FIFO(101)로의 스캔 테스트 데이터의 기입과 독립적으로, 병렬로 수행된다. 그러므로, 제1 실시예에서, FIFO(101)로부터의 스캔 테스트 데이터의 판독 속도는 바람직하게는 스캔 테스트 데이터의 FIFO(101)로의 기입 속도보다 높지 않다.
상술한 바와 같이, 테스트될 회로와 스캔 테스트 데이터를 공급하는 디바이스가, 상이한 전원 전압을 공급하는 전압 배선들에 접속되고, 한쪽의 전압이 다른 쪽의 전압에 비해 상대적으로 변동하는 경우가 있다. 이러한 상황에서, 스캔 테스트 데이터 송신 경로에서, 홀드 타임이 엄격해지는 경우와 셋업 타임이 엄격해지는 경우의 2가지 경우가 존재한다.
한편, 상술한 바와 같이, 제1 실시예는, 스캔 테스트 데이터 송신 경로가 상이한 전원을 갖는 논리 경계를 가로지르는 경우에서의 타이밍 위반들의 대책으로서, 지연을 추가함으로써 큰 홀드-타임 마진을 허용하기 보다는, 비동기 FIFO를 사용한다.
구체적으로, 제1 실시예에 따른 반도체 디바이스(1A, 1B)에서, 테스트 패턴 발생 디바이스(100)는, 제1 클록 신호(110)에 동기하여 복수의 테스트 데이터(스캔 테스트 데이터의 입력 데이터)를 순차적으로 FIFO(101)로 기입한다. 그 다음에, 테스트 제어 디바이스(200)는, 복수의 테스트 데이터의 FIFO(101)로의 기입과 병렬로, 제1 클록 신호(110)에 동기하지 않고, 제2 클록 신호(210)에 동기하여, FIFO(101)에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로(201)의 스캔 테스트를 수행한다.
비동기 FIFO를 사용함으로써, 스캔 테스트 데이터를 공급하는 회로와 그 스캔 테스트 데이터를 사용하여 스캔 테스트를 수행하는 회로가, 상이한 전압에 의해 회로들이 구동되는 상이한 영역에 위치된 경우이더라도, 송신 경로에서 스캔 테스트 데이터의 전파 지연에 의해 속도 제한되지 않고, 영역들 각각에서 최적의 속도로 회로들을 구동할 수 있다.
이에 의해, 테스트 데이터를 FIFO(101)에 축적할 수 있고, 테스트될 회로(201)의 스캔 테스트를 제1 클록 신호(110)의 영향을 받지 않고, 제2 클록 신호(210)에 동기하여 수행할 수 있다. 따라서, 타이밍 위반들이 발생하지 않는다. 또한, 이것은 모든 스캔 테스트 데이터를 로딩(loading)한 후에, 스캔 테스트를 수행할 필요를 제거한다. 스캔 테스트 데이터의 로딩과 스캔 테스트가 동시에 병렬로 수행될 수 있기 때문에, 스캔 테스트에 필요한 시간을 단축할 수 있다. 스캔 테스트에 필요한 시간을 단축함으로써, 예를 들어, 런타임 테스트 실행 시간(FTTI :fault tolerant time interval)에 관련된 요건들(예를 들어, 10밀리 초 내에 런타임 테스트의 완료)을 충족시킬 수 있게 된다.
스캔 테스트 데이터 송신 경로가 클록 신호들이 서로 비동기적인 영역들을 가로지르는 경우에서의 스캔 테스트 실행 시간의 개선을 명확하게 하기 위해, 제1 전원 영역 및 제2 전원 영역(제1 클록 신호 및 제2 클록 신호)과 같이, 스캔 테스트 데이터 송신 경로가 비동기적인 영역들을 가로지르는 구성을 제1 실시예에서의 예로서의 설명을 위해 설명했지만, 그것은 또한 동일한 전원 영역에 위치된 회로들 사이의 스캔 테스트 데이터의 전송 및 동일한 클록 신호에 의해 구동되는 회로들 사이의 스캔 테스트 데이터의 송신을 위해 사용될 수 있다는 점에 유의하라.
제1 실시예에서 도시한 회로도는 제1 실시예를 설명하기 위해 각각의 구성 요소를 개략적으로 도시하고, 회로의 실제 설계에서, 적용될 클록 및 스캔 테스트의 사양에 따라, 스캔 테스트 데이터를 공급하기 위해 클록 사이클을 조정하는 회로(예를 들어, 플립-플롭)와 같은 추가적인 회로가 필요한 것은 당연하다. 이것은 이후의 실시예들에서도 마찬가지이다.
<제2 실시예>
이하에서, 제2 실시예를 설명한다. 다음 제2 실시예의 설명에서, 상술한 제1 실시예에서와 동일한 요소들은 동일한 참조 부호들 등에 의해 표시하고, 동일한 것의 설명은 적절히 생략한다.
[전체 구성]
이하에서, 도 7을 참조하여 제2 실시예에 따른 반도체 디바이스(1C)의 구성을 설명한다. 도 7은 제2 실시예에 따른 반도체 디바이스(1C)의 개략도이다.
도 7에 도시한 바와 같이, 제2 실시예에 따른 반도체 디바이스(1C)는, 그것이 테스트 클록 제어 디바이스(203)를 추가로 포함한다는 점에서, 제1 실시예에 따른 반도체 디바이스(1B)와 상이하다.
테스트 클록 제어 디바이스(203)는 제2 전원 영역(20)에 포함된다. 테스트 클록 제어 디바이스(203)에 제2 클록 신호(210)가 입력된다. 따라서, 테스트 클록 제어 디바이스(203)는 제2 클록 신호(210)에 의해 구동된다. 또한, 테스트 클록 제어 디바이스(203)는, 제2 클록 신호(210)에 기초하여 스캔 테스트 클록을 발생시키고, 스캔 테스트 클록을 테스트될 회로(201)에 출력한다. 따라서, 제2 실시예에 따른 테스트될 회로(201)는, 제1 실시예와 비교하여, 제2 클록 신호(210) 대신에, 스캔 테스트 클록에 의해 구동된다. 또한, 제2 실시예에서, FIFO(101)는 엠프티 신호를 테스트 클록 제어 디바이스(203)에도 출력한다.
[테스트 클록 제어 디바이스(203)]
이하에서, 도 8을 참조하여 제2 실시예에 따른 테스트 클록 제어 디바이스(203)의 구성을 설명한다. 도 8은 제2 실시예에 따른 테스트 클록 제어 디바이스(203)의 블록도이다.
도 8에 도시한 바와 같이, 테스트 클록 제어 디바이스(203)는 플립-플롭(203A) 및 AND 게이트(203B)를 포함한다.
플립-플롭(203A)에는, 일시 정지 신호(suspension signal) 및 제2 클록 신호(210)가 입력된다. 플립-플롭(203A)은 제2 클록 신호(210)의 하강 에지에 일시 정지 신호의 값을 자체에 저장한다. 플립-플롭(203A)은 거기에 저장된 일시 정지 신호의 값을 AND 게이트(203B)에 출력한다.
일시 정지 신호는, FIFO(101)로부터 테스트 클록 제어 디바이스(203)에 입력되는 엠프티 신호가 어서트되는 경우에, 부정되는 신호이다. 한편, 일시 정지 신호는, FIFO(101)로부터 테스트 클록 제어 디바이스(203)에 입력되는 엠프티 신호가 부정되는 경우에, 어서트된다. 예를 들어, 테스트 클록 제어 디바이스(203)는, FIFO(101)로부터 입력되는 엠프티 신호에 따라, 일시 정지 신호를 AND 게이트(203B)에 출력하는 회로를 포함한다. 이러한 회로는 엠프티 신호가 어서트되는 경우에, 일시 정지 신호를 부정하고, 엠프티 신호가 부정되는 경우에, 일시 정지 신호를 어서트한다.
플립-플롭(203A)으로부터 출력되는 값 및 제2 클록 신호(210)가 AND 게이트(203B)에 입력된다. AND 게이트(203B)는, 플립-플롭(203A)으로부터의 값과 제2 클록 신호(210)의 값 사이에서 논리 AND(논리 곱 연산)를 수행하고, 그 결과 값을 스캔 테스트 클록으로서 테스트될 회로(201)에 출력한다. 따라서, AND 게이트(203B)는, 플립-플롭(203A)으로부터의 값에 따라, 제2 클록 신호(210)를 출력하기 위한 동작 및 그 출력을 정지하기 위한 동작 중 어느 하나를 수행한다.
이에 의해, 도 9에 도시한 바와 같이, 스캔 테스트 클록이 출력된다. 도 9는, 도 8에 도시한 테스트 클록 제어 디바이스(203)에서의 동작 파형을 도시하는 다이어그램이다. 거기에 도시한 바와 같이, 일시 정지 신호가 "1"(High)인 경우에, 제2 클록 신호(210)는 스캔 테스트 클록으로서, 변경되지 않고 출력된다. 한편, 일시 정지 신호가 "0"(Low)인 경우에, "0"(Low)인 채로 유지되는 신호가 스캔 테스트 클록으로서 출력된다. 다시 말해서, FIFO(101)가 비어 있지 않은 경우에, 제2 클록 신호(210)는 변경되지 않고 테스트될 회로(201)에 출력되고, FIFO(101)가 비어 있는 경우에, 제2 클록 신호(210)의 테스트될 회로(201)에의 출력은 금지된다.
[동작 플로우]
이하에서, 도 10을 참조하여, 제2 실시예에 따른 반도체 디바이스(1C)의 동작을 설명한다. 도 10은 제2 실시예에 따라 반도체 디바이스(1C)의 동작 파형을 도시하는 다이어그램이다.
도 10에서, 상부 부분(선 HL 위의 파형)은 도 7에 도시한 제1 전원 영역(10)에서의 회로의 파형을 도시하고, 하부 부분(선 HL 아래의 파형)은 도 7에 도시한 제2 전원 영역(20)에서의 회로의 파형을 도시한다. 이러한 파형들에서, 제1 클록 신호 및 제2 클록 신호는 동일한 주파수를 갖지만, 그들의 에지는 정렬되지 않는다. 따라서, 제1 클록 신호와 제2 클록 신호는 동기하지 않는다. 이하에서, 도 7에 도시한 반도체 디바이스(1C)를 예로서 사용하면서, 또한 도 3 내지 도 5를 참조하여 동작을 설명한다.
스캔 테스트의 개시를 위한 지시에 응답하여, 스캔 테스트 데이터 데이터의 FIFO(101)로의 기입이 시작된다. 스캔 테스트 동작이 시작할 때까지의 동작은 제1 실시예에서와 동일하고, 그 동작의 설명을 생략한다는 점에 유의하라.
제1 실시예에서와 마찬가지로, 스캔 테스트 데이터는 제2 클록 신호(210)에 동기하여 FIFO(101)로부터 취출되고, 그 데이터의 부분은 입력 데이터로서 신장 회로(2011)에 입력되고, 데이터의 다른 부분은 마스크 데이터로서 테스트 결과 압축 디바이스(202)에 입력된다. 테스트 결과 압축 디바이스(202)는, 마스크 데이터와 압축 회로(2012)의 출력 값의 논리 곱 연산을 AND 게이트들(2021, 2022)에 의해 수행하고, 그 결과를 압축 회로(2023)에 의해 이전의 값을 인계받으면서 압축된 코드로 변환한다.
이러한 실시예는, 스캔의 실행 시간 동안 FIFO(101)로부터 스캔 테스트 데이터가 취출될 수 없는(즉, FIFO(101)가 비어 있는) 상황의 발생에서의 동작에서, 제1 실시예와 상이하다. 이하에서 설명하는 동작에 의해, 제2 실시예는, FIFO(101)가 비어 있게 되고 스캔 테스트 데이터가 취출될 수 없는 상황의 발생으로 인해, 스캔 체인들(2010)로 스캔 인될 데이터가 정상적이지 않게 되어 스캔 테스트에 실패를 야기하는 문제를 해결한다는 점에 유의하라.
제2 실시예에서, 이러한 상황을 회피하기 위해, 반도체 디바이스(1C)에 테스트 클록 제어 디바이스(203)가 포함된다. 테스트 클록 제어 디바이스(203)는, FIFO(101)의 엠프티 신호를 모니터링하고, FIFO(101)가 비어 있게 되는 경우에, 그것은 일시 정지 신호를 부정함으로써 스캔 테스트 클록을 정지한다. 구체적으로, 도 10에 도시한 바와 같이, 스캔 테스트 클록을 정지한다.
  도 10은, 스캔 테스트 데이터 "A" 내지 "D"를 FIFO(101)로 기입한 시점에, 일부 이유로 인해 일시적으로 그것이 FIFO(101)에 스캔 데이터를 기입할 수 없게 되는 경우를 예시한다. 이러한 경우에, FIFO(101)로부터 스캔 테스트 데이터 "C"가 판독될 때, 그레이 코드 카운터(32)와 그레이 코드 카운터(42)에 의해 표시된 레지스터들이 일치하므로, 엠프티 신호가 어서트된다. 따라서, 이러한 레지스터는 스캔 테스트 데이터 "D"를 저장하기 위한 레지스터이다. 따라서, 스캔 테스트 데이터 "D"가 레지스터(44)에 판독되어, 레지스터 그룹(34)이 비어 있게 된다.
이에 의해, 일시 정지 신호가 부정되고, 테스트 클록 제어 디바이스(203)는 테스트될 회로(201)에의 제2 클록 신호(210)의 출력을 금지한다. 구체적으로, "0"(Low)인 채로 유지되는 스캔 테스트 클록이 테스트될 회로(201)에 출력된다.
FIFO(101)로부터의 엠프티 신호가 어서트되는 기간 동안, 테스트 제어 디바이스(200)는 FIFO(101)에 판독 신호로서 출력되는 스캔 인에이블 신호를 부정한다. 이에 의해, FIFO(101)는 그레이 코드 카운터(42)에서의 그레이 코드의 갱신을 중단한다. 구체적으로, 도 10에 도시한 바와 같이, FIFO(101)로부터 출력되는 판독 데이터로서 스캔 테스트 데이터 "D"가 유지된다.
또한, FIFO(101)로부터의 엠프티 신호가 어서트되는 기간 동안, 테스트 제어 디바이스(200)는 테스트 결과 압축 디바이스(202)에 출력되는 스캔 인에이블 신호를 부정한다. 이에 의해, 테스트 결과 데이터의 압축 동작이 중단되고, 이에 의해, 테스트될 회로(201)로부터 새로운 테스트 결과 데이터가 출력되지 않은 경우에서의 압축 동작이 회피된다.
그레이 코드의 갱신의 중단과 테스트 결과 데이터의 압축의 중단은, 상술한 바와 같은 스캔 인에이블 신호를 부정하는 것 대신에, 테스트될 회로(201)와 마찬가지로, 출력 회로(40)와 테스트 결과 압축 디바이스(202)로 하여금 테스트 클록 제어 디바이스(203)로부터의 스캔 테스트 클록에 동기하여 동작하도록 야기함으로써 수행될 수 있다는 점에 유의하라. 그러나, 엠프티 상태의 해제를 가능하게 하기 위해(엠프티 신호의 부정을 가능하게 하기 위해), 제2 클록 신호(210)가 엠프티 판정 회로(41)에 공급되어 그것의 동작을 정지하지 않는다는 점에 유의하라.
또한, 테스트 제어 디바이스(200)는, FIFO(101)로부터 입력되는 엠프티 신호가 부정되는 기간 동안, 스캔 시프트 카운터(2000)의 카운트를 중단한다. 구체적으로, 도 10에 도시한 바와 같이, 스캔 시프트 카운터(2000)의 값으로서 "0"이 유지된다.
테스트될 회로(201)가 스캔 테스트 클록에 의해 구동되기 때문에, 스캔 테스트 클록이 "0"(Low)으로 유지되는 경우에, 스캔 시프트 동작이 중단된다. 따라서, 비정상적인 데이터를 스캔 체인들(2010)에 입력하는 스캔 시프트 동작은 발생하지 않는다.
FIFO(101)로의 스캔 테스트 데이터의 기입이 재개되는 경우에, FIFO(101)는 비어 있지 않게 되고 엠프티 신호는 부정된다. 엠프티 신호가 부정되는 경우에, 테스트 클록 제어 디바이스(203)는 일시 정지 신호를 부정한다. 이에 의해, 클록 제어 디바이스(203)는, 스캔 테스트 클록으로서, 제2 클록 신호(210)의 테스트될 회로(201)에의 출력을 재개한다. 구체적으로, 도 10에 도시한 바와 같이, 테스트될 회로(201)는 스캔 테스트 데이터 "D"로 시작하여, 스캔 테스트 데이터의 판독을 시작한다.
또한, 이때, 테스트 제어 디바이스(200)는, FIFO(101)로부터의 엠프티 신호의 부정에 응답하여, FIFO(101)에 판독 신호로서 출력되는 스캔 인에이블 신호를 어서트한다. 이에 의해, FIFO(101)는 그레이 코드 카운터(42)에서의 그레이 코드의 갱신을 재개한다. 이에 의해, FIFO(101)는 그레이 코드 카운터(42)에서의 그레이 코드의 갱신을 재개한다.
그 결과, 중단이 발생한 레지스터로부터 스캔 테스트 데이터가 취출되어, 스캔 시프트 동작이 재개된다. 구체적으로, 도 10에 도시한 바와 같이, FIFO(101)로부터 출력되는 판독 데이터가, 테스트될 회로(201)로부터의 스캔 테스트 데이터의 판독에 동기하여, 스캔 테스트 데이터 "E" 후의 스캔 테스트 데이터로 순차적으로 갱신된다.
제2 실시예에 따른 테스트 제어 디바이스(200)의 구성은 제1 실시예에서의 구성과 실질적으로 동일하지만, 그것은, 이전의 값을 보유하기 위한 메커니즘이 스캔 시프트 카운터(2000)에 추가된다는 점에서, 제1 실시예에서의 것과 상이하다. 제2 실시예에 따른 테스트 제어 디바이스(200)는, 스캔 시프트 카운터(2000)의 값의 갱신을 중단하기 위해, 엠프티 신호에 기초하여 제어 신호를 스캔 시프트 카운터(2000)에 출력하는 회로(도시하지 않음)를 추가로 포함한다.
이러한 제어 신호는 테스트 클록 제어 디바이스(203)에서의 일시 정지 신호와 동일한 방식으로 기능한다. 이러한 회로는, FIFO(101)가 비어 있는 경우에, 스캔 시프트 카운터(2000)의 카운터 값의 갱신을 중단한다. 보다 구체적으로, 이러한 회로는, FIFO(101)로부터 테스트 제어 디바이스(200)에 입력되는 엠프티 신호가 어서트되는 경우에, 스캔 시프트 카운터(2000)에 출력될 제어 신호를 어서트한다. 스캔 시프트 카운터(2000)는, 어서트된 제어 신호가 입력되는 경우에, 선택기(2002)로부터의 출력 값에 관계없이, 그것의 값에 대한 갱신을 금지한다. 한편, 이러한 회로는, FIFO(101)로부터 테스트 제어 디바이스(200)에 입력되는 엠프티 신호가 부정되는 경우에, 스캔 시프트 카운터(2000)에 출력될 제어 신호를 부정한다. 스캔 시프트 카운터(2000)는, 부정된 제어 신호가 입력되는 경우에, 그것의 값을 갱신한다.
테스트 클록 제어 디바이스(203)의 다른 동작들은 제1 실시예서의 것들과 동일하고, 이러한 동작들의 설명은 생략한다. 또한, 종료 신호가 어서트된 후의 동작도 제1 실시예에서의 것과 동일하고, 그 동작의 설명 또한 생략한다.
상술한 바와 같이, 제2 실시예에서, 테스트 클록 제어 디바이스(203)가 제1 실시예에서의 구성에 추가됨으로써, 제1 실시예에서 발생하는, FIFO(101)가 비어 있는 경우의 문제를 제거할 수 있다.
구체적으로, 제2 실시예에서, 엠프티 판정 회로(41)가, FIFO(101)가 비어 있다고 판정하는 경우에, FIFO(101)로부터의 테스트 데이터의 판독이 정지된다. 보다 구체적으로, 테스트 클록 제어 디바이스(203)는, 엠프티 판정 회로(41)가 FIFO(101)가 비어 있다고 판정하는 경우에, 테스트될 회로(201)로의 제2 클록 신호의 공급을 정지한다. 이에 의해, 비어 있는 FIFO(101)로부터 무효 테스트 데이터가 테스트될 회로(201)로 스캔 인되는 것을 방지할 수 있다.
제1 실시예에서, FIFO(101)가 비어 있게 되지 않도록 하기 위해, 비교적 용량이 큰 FIFO(101)를 사용하거나, FIFO(101)로 기입될 스캔 테스트 데이터를 취득하기 위한 리소스들을 점유할 필요가 있다. 그러나, 제2 실시예에서, 이러한 제한들에 처하지 않음으로써, 비교적 용량이 작은 FIFO(101)를 사용할 수 있거나, 데이터를 취득하기 위한 리소스들의 공유로 인한 인터럽트를 허락할 수 있다. 그 결과, 시스템을 구성하기 위한 회로 오버헤드를 감소시킬 수 있다.
도 2에 도시한 반도체 디바이스(1B)에 테스트 클록 제어 디바이스(203)를 적용한 예를 위에서 설명했지만, 본 발명은 그로 제한되지 않는다는 점에 유의하라. 당연히, 도 1에 도시한 반도체 디바이스(1A)에 테스트 클록 제어 디바이스(203)가 적용될 수 있다.
<제3 실시예>
이하에서, 제3 실시예를 설명한다. 다음 제3 실시예의 설명에서, 상술한 제2 실시예에서와 동일한 요소들은 동일한 참조 부호들 등에 의해 표시하고, 동일한 것의 설명은 적절히 생략한다.
[전체 구성]
이하에서, 도 11을 참조하여, 제3 실시예에 따른 반도체 디바이스(1D)의 구성을 설명한다. 도 11은 제3 실시예에 따른 반도체 디바이스(1D)의 개략도이다. 제3 실시예에 따른 반도체 디바이스(1D)는, 스캔 테스트 메커니즘을 사용하는 런타임 테스트의 실행에 적합한 실시예이다.
도 11에 도시한 바와 같이, 제3 실시예에 따른 반도체 디바이스(1D)는, 그것이 테스트 패턴 발생 디바이스(100) 대신에, 테스트 패턴 판독 디바이스(102)를 포함하고, 시스템 제어기(103) 및 메모리 디바이스(104)를 추가로 포함한다는 점에서, 제2 실시예에 따른 반도체 디바이스(1C)와 상이하다.
테스트 패턴 판독 디바이스(102), 시스템 제어기(103) 및 메모리 디바이스(104)는, 제1 전원 영역(10)에 포함된다. 테스트 패턴 판독 디바이스(102)는 메모리 디바이스(104)에 전기적으로 접속된다. 테스트 패턴 판독 디바이스(102), 시스템 제어기(103) 및 메모리 디바이스(104)는 시스템 버스를 통해 전기적으로 접속된다.
테스트 패턴 판독 디바이스(102)는 메모리 디바이스(104)에 저장되는 복수의 스캔 테스트 패턴을 순차적으로 판독하고, 그들을 FIFO(101)로 기입한다.
시스템 제어기(103)는 반도체 디바이스(1D)에 대한 제어를 수행하는 회로이다. 시스템 제어기(103)는 반도체 디바이스(1D)에서의 스캔 테스트의 개시에 대한 제어 및 스캔 테스트 결과에 대한 판정을 수행한다. 구체적으로, 제3 실시예에서, 제1 실시예 및 제2 실시예와 상이하게, 시스템 제어기(103)는, 테스트 결과 압축 디바이스(202) 대신에, 스캔 테스트 결과를 판정한다.
메모리 디바이스(104)는 복수의 스캔 테스트 데이터를 저장하는 저장 디바이스(저장 회로)이다. 메모리 디바이스(104)는 모든 스캔 테스트 데이터를 저장한다. 메모리 디바이스(104)는, RAM(Random Access Memory), ROM(Read Only Memory) 또는 FLASH 메모리와 같은 비휘발성 저장 디바이스이다.
제3 실시예가 런타임 테스트의 실행에 적합한 이유는, 스캔 테스트의 전체 실행을 반도체 디바이스(1D)에 포함된 회로들에 의해 수행할 수 있기 때문이다. 보다 구체적으로, 런타임 테스트(스캔 테스트)를 개시하기 전에, 시스템 제어기(103)는, 테스트 제어 디바이스(200)에서 스캔 시프트 횟수 레지스터(2001) 및 테스트 패턴 수 레지스터(2006)의 값들을 설정한다. 예를 들어, 이러한 값들은 메모리 디바이스(104)에 미리 저장된다. 시스템 제어기(103)는, 메모리 디바이스(104)로부터 값들을 판독하고, 판독한 값을 테스트 제어 디바이스(200)에 출력한다. 테스트 제어 디바이스(200)는 시스템 제어기(103)로부터 출력되는 값들을 스캔 시프트 횟수 레지스터(2001) 및 테스트 패턴 수 레지스터(2006)에 설정한다.
스캔 테스트를 개시하는 경우에, 시스템 제어기(103)는, 스캔 테스트를 개시하도록 지시하는 개시 지시 신호를 테스트 패턴 판독 디바이스(102)에 출력한다. 테스트 패턴 판독 디바이스(102)는, 시스템 제어기(103)로부터의 개시 지시 신호에 응답하여, 메모리 디바이스(104)로부터 스캔 테스트 데이터를 취득하고 그들을 FIFO(101)로 기입하는 동작을 시작한다.
그 다음에, 상술한 바와 같이, FIFO(101)에 스캔 테스트 데이터가 축적되고, 엠프티 신호가 부정되는 경우에, 스캔 테스트가 개시된다. 제3 실시예에서, 스캔 테스트가 완료되는 경우에, 테스트 제어 디바이스(200)는, 테스트 결과 압축 디바이스(202) 대신에, 시스템 제어기(103)에 종료 신호를 출력한다. 또한, 테스트 결과 압축 디바이스(202)는, 압축 회로(2023)에 의해 생성된 압축 코드를 항상 시스템 제어기(103)에 출력한다. 시스템 제어기(103)는, 테스트 제어 디바이스(200)로부터의 종료 신호에 응답하여, 테스트 결과 압축 디바이스(202)로부터 출력되는 마지막 압축된 코드를 취득한다. 그 다음에, 시스템 제어기(103)는 취득한 압축된 코드와 기대 값을 비교함으로써 테스트 결과를 판정한다.
예를 들어 기대 값은, 스캔 테스트 데이터와 함께 메모리 디바이스(104)에 미리 저장된다. 그 다음에, 시스템 제어기(103)는, 테스트 제어 디바이스(200)로부터의 종료 신호에 응답하여, 메모리 디바이스(104)에 저장된 기대 값을 취득하고, 그것을 압축된 코드와 비교한다.
상술한 바와 같이, 제3 실시예에서, 반도체 디바이스(1D)는 복수의 테스트 데이터를 저장하는 메모리 디바이스(104)를 포함한다. 그 다음에, 테스트 패턴 판독 디바이스(102)는 메모리 디바이스(104)에 저장된 복수의 테스트 데이터를 순차적으로 FIFO(101)로 기입한다. 이에 의해, 스캔 테스트의 전체 실행을 반도체 디바이스(1D)에 포함된 회로들에 의해 수행할 수 있다. 스캔 테스트를 수행하기 위해 또 다른 디바이스가 필요하지 않기 때문에, 그것은 런타임 테스트의 실행에 적합하다.
도 7에 도시한 반도체 디바이스(1C)에 디바이스들(102, 103, 104)을 적용한 예를 위에서 설명했지만, 본 발명은 그로 제한되지 않는다는 점에 유의하라. 당연히, 도 1 및 도 2에 도시한 반도체 디바이스들(1A, 1B)에 디바이스들(102, 103, 104)이 적용될 수 있다.
<제3 실시예의 수정된 예>
이하에서, 도 12를 참조하여, 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)를 설명한다. 도 12는 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)를 도시하는 블록도이다.
도 12에 도시한 바와 같이, 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)는, 그것이 DMA 제어기(109)를 추가로 포함한다는 점에서, 제3 실시예에 따른 반도체 디바이스(1D)와 상이하다. 또한, 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)는, 반도체 디바이스(1E)가 외부 저장 디바이스(2)에 접속된다는 점에서, 제3 실시예에 따른 반도체 디바이스(1D)와 상이하다. 게다가, 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)는, 테스트 패턴 판독 디바이스(102), 시스템 제어기(103), 메모리 디바이스(104) 및 외부 저장 디바이스(2)가 시스템 버스를 통해 접속된다는 점에서, 제3 실시예에 따른 반도체 디바이스(1D)와 상이하다. DMA 제어기(109)는 제1 전원 영역(10)에 포함된다.
외부 저장 디바이스(2)는, 모든 스캔 테스트 데이터 및 테스트 결과 데이터의 압축된 코드들에 대한 기대 값들을 저장하는 디바이스이다. 외부 저장 디바이스(2)는, 예를 들어, ROM, FLASH 메모리 또는 하드 디스크와 같은 비휘발성 저장 디바이스이다.
도 11에 도시한 제3 실시예에 따른 반도체 디바이스(1D)에서, 테스트 패턴 판독 디바이스(102)는, 스캔 테스트 데이터를 판독하기 위해 전용 메모리 디바이스(104)(예를 들어, FLASH 메모리와 같은 재기입가능한 저장 요소)에 직접적으로 액세스한다. 한편, 도 12에 도시한 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)에서, 테스트 패턴 판독 디바이스(102)는 메모리 디바이스(2)에 직접적으로 액세스하지 않고, 시스템 제어기(103)의 제어에 따라, 시스템 버스를 통해 스캔 테스트 데이터가 판독된다.
제3 실시예의 수정된 예에서, 스캔 테스트를 개시하기 전에, 시스템 제어기(103)는, 외부 저장 디바이스(2)로부터 메모리 디바이스(104)로의 데이터의 전송을 요청하는 전송 요청 신호를 시스템 버스를 통해 DMA 제어기(109)에 출력한다. DMA 제어기(109)는, 이 전송 요청 신호에 응답하여, 외부 저장 디바이스(2)에 저장된 모든 스캔 테스트 데이터 및 기대 값들을 시스템 버스를 통해 메모리 디바이스(104)에 전송한다. 그 후에, 상술한 제3 실시예에서와 동일한 방식으로, 메모리 디바이스(104)에 저장된 스캔 테스트 데이터를 사용함으로써 스캔 테스트가 수행되고, 그것의 설명은 생략한다.
제3 실시예의 수정된 예의 한 가지 이점은, 메모리 디바이스(104)로서 범용 RAM을 사용하고, 스캔 테스트 데이터를 반도체 디바이스(1E)의 외부 저장 디바이스(2)에 저장할 수 있다는 것이다. RAM은, 예를 들어, SRAM(Static RAM), DRAM(Dynamic RAM) 등이다. 이것은, 제2 실시예에서 설명한 바와 같이, 제2 전원 영역(20)에 위치된 스캔 테스트 메커니즘이 테스트 패턴 판독 디바이스(102)에 의한 스캔 테스트 데이터의 판독과 완전히 독립적으로 동작할 수 있기 때문이다.
상술한 바와 같이, 제3 실시예의 수정된 예에서, 시스템 제어기(103) 및 DMA 제어기(109)는 반도체 디바이스(1E)에 접속되는 외부 저장 디바이스(2)로부터 복수의 테스트 데이터를 취득하고, 그 테스트 데이터를 메모리 디바이스(104)에 저장한다. 이에 의해, 반도체 디바이스(1E)에 포함된 메모리 디바이스(104)가 아닌, 반도체 디바이스(1E)의 외부에 접속되는 외부 저장 디바이스(2)를 단순히 대체함으로써, 스캔 테스트 데이터를 쉽게 변경할 수 있다. 따라서, 제3 실시예의 수정된 예에 따라, 스캔 테스트 데이터의 대체를 위한 동작 비용을 감소시킬 수 있다. 또한, 반도체 디바이스(1E)의 내부에 모든 스캔 테스트 데이터를 저장하는 저장 디바이스(메모리 디바이스(104))를 배치하는 것이 필요하지 않기 때문에, 반도체 디바이스에서의 면적 오버헤드를 감소시킬 수 있다.
도 7에 도시한 반도체 디바이스(1C)에, 상술한 디바이스들(102, 103, 104, 109, 2)을 적용한 예를 설명했지만, 본 발명은 그로 제한되지 않는다는 점에 유의하라. 당연히, 도 1 및 2에 도시한 반도체 디바이스(1A, 1B)에, 상술한 디바이스들(102, 103, 104, 109, 2)을 적용할 수 있다.
<제4 실시예>
이하에서, 제4 실시예를 설명한다. 다음 제4 실시예의 설명에서, 상술한 제3 실시예의 수정된 예에서와 동일한 요소들은 동일한 참조 부호들 등에 의해 표시하고, 동일한 것의 설명은 적절히 생략한다.
[전체 구성]
이하에서, 도 13을 참조하여, 제4 실시예에 따른 반도체 디바이스(1F)의 구성을 설명한다. 도 13은, 제4 실시예에 따른 반도체 디바이스(1F)의 블록도이다. 제4 실시예에 따른 반도체 디바이스(1F)는, 예를 들어, 복수의 CPU 코어(테스트될 회로(201))로 구성된 회로에서, 스캔 테스트 메커니즘을 사용하는 런타임 테스트의 실행에 적합한 실시예이다. 도 13에서, 외부 저장 디바이스(2)의 예시는 생략한다는 점에 유의하라.
도 13에 도시한 바와 같이, 제4 실시예에 따른 반도체 디바이스(1F)는, 그것이 복수의 테스트될 회로(201) 및 복수의 테스트 클록 제어 디바이스(203)를 포함하고, 입력 선택 회로(204) 및 출력 선택 회로(205)를 추가로 포함한다는 점에서, 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)와 상이하다. 입력 선택 회로(204) 및 출력 선택 회로(205)는 제2 전원 영역(20)에 포함된다.
구체적으로, 제4 실시예에서, 복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)가 있어, 하나의 테스트될 회로(201) 및 하나의 테스트 클록 제어 디바이스(203)가 서로 대응하게 된다. 제4 실시예에서, 도 13에 도시한 바와 같이, 4쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)가 있는 예를 설명한다.
상술한 실시예들에서와 마찬가지로, 제1 전원 영역(10)에 배치되는 디바이스들 및 회로들은 제1 클록 신호(110)에 의해 구동되고, 제2 전원 영역(20)에 배치되는 디바이스들 및 회로들은 제2 클록 신호(210)에 의해 구동된다.
제4 실시예에서, FIFO(101), 및 복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203) 중 어느 하나의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)는 입력 선택 회로(204)를 통해 전기적으로 접속된다. 구체적으로, 입력 선택 회로(204)는, FIFO(101)를 복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203) 중 어느 하나의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)와 선택적으로 접속하는 회로이다.
따라서, FIFO(101)로부터 출력되는 스캔 테스트 데이터는, 복수의 테스트될 회로(201)로부터 입력 선택 회로(204)에 의해 선택되는 하나의 테스트될 회로(201)에 입력된다. 또한, FIFO(101)로부터 출력되는 엠프티 신호는, 복수의 테스트 클록 제어 디바이스(203)로부터 입력 선택 회로(204)에 의해 선택되는 하나의 테스트 클록 제어 디바이스(203)에 입력된다.
또한, 복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203) 중 어느 하나의 쌍에서의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)는 출력 선택 회로(205)를 통해 테스트 결과 압축 디바이스(202)에 전기적으로 접속된다. 구체적으로, 출력 선택 회로(205)는, 복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203) 중 어느 하나의 쌍의 테스트될 회로(201)와, 테스트 결과 압축 디바이스(202)를 선택적으로 접속하는 회로이다.
따라서, 복수의 테스트될 회로(201)로부터 출력 선택 회로(205)에 의해 선택되는 하나의 테스트될 회로(201)로부터 출력되는 테스트 결과 데이터는 테스트 결과 압축 디바이스(202)에 입력된다.
테스트 제어 디바이스(200)는, 그에 대해 스캔 테스트가 수행될 하나의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)를 선택하기 위해, 입력 선택 회로(204) 및 출력 선택 회로(205)를 제어한다.
또한, 테스트 클록 제어 디바이스(203)는, 이러한 테스트 클록 제어 디바이스(203)와 쌍인 테스트될 회로(201)에 전기적으로 접속된다. 구체적으로, 복수의 테스트 클록 제어 디바이스(203) 각각은, 복수의 테스트될 회로(201) 중 자체와 쌍인 테스트될 회로(201)에 스캔 테스트 클록을 공급한다.
[동작 플로우]
이하에서, 도 14를 참조하여, 제4 실시예에 따른 반도체 디바이스(1F)의 동작을 설명한다. 도 14는, 제4 실시예에 따른 반도체 디바이스(1F)의 동작을 도시하는 동작 플로우차트이다. 도 14에서, 수직 선은, 명칭이 그것의 최상부에 도시된 회로 또는 디바이스의 동작들을 표시하고, 시간은 최상부로부터 최하부로 경과한다. 측면 화살표는, 화살표의 시작 지점에서의 회로 또는 디바이스의 동작 이벤트가, 화살표의 종료 지점에서의 회로 또는 디바이스의 동작 이벤트의 발생을 야기하는 것을 의미한다.
도 14에서 "테스트될 회로 A" 내지 "테스트될 회로 D" 각각은 도 13에서의 4쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203) 중 어느 하나를 표시한다. 이하에서, 제4 실시예에 따른 반도체 디바이스(1F)의 동작을 도 13에 도시한 반도체 디바이스(1F)의 예, 및 도 14에 도시한 동작 플로우를 참조하여 설명한다.
먼저, 시스템 제어기(103)는, DMA 제어기(109)를 제어하여, 외부 저장 디바이스(2)로부터 테스트될 회로 A에 대한 스캔 테스트 데이터 및 기대 값을 취득하고, 그들을 메모리 디바이스(104)에 저장한다. 도 14에 도시한 바와 같이, 시스템 제어기(103)는 먼저 테스트 패턴 판독 디바이스(102) 및 테스트 제어 디바이스(200)에, 테스트될 회로 A의 스캔 테스트를 개시하도록 지시한다.
구체적으로, 시스템 제어기(103)는, 테스트될 회로 A의 스캔 테스트를 개시하도록 지시하는 개시 지시 신호를 테스트 패턴 판독 디바이스(102)에 출력한다. 테스트될 회로 A의 스캔 테스트를 개시하도록 지시하는 개시 지시 신호에 응답하여, 테스트 패턴 판독 디바이스(102)는, 테스트될 회로 A에 대응하는 테스트될 회로(201)의 스캔 테스트 데이터를 시스템 버스를 통해 메모리 디바이스(104)로부터 취득하고, 그들을 FIFO(101)로 기입한다.
또한, 시스템 제어기(103)는, 테스트될 회로 A의 스캔 테스트의 개시에 관해 통지하는 테스트 개시 신호를 테스트 제어 디바이스(200)에 출력한다. 보다 구체적으로, 테스트될 회로 A 내지 테스트될 회로 D에 각각 대응하는 4개의 테스트 개시 신호 배선이, 시스템 제어기(103)와 테스트 제어 디바이스(200) 사이에 접속된다. 시스템 제어기(103)는, 테스트될 회로 A에 대응하는 테스트 개시 신호를 어서트한다.
테스트될 회로 A에 대응하는 테스트 개시 신호의 어서트에 응답하여, 테스트 제어 디바이스(200)는, 테스트될 회로 A, 및 그 회로와 쌍인 테스트 클록 제어 디바이스(203)를 선택하도록 지시하는 선택 지시 신호를 입력 선택 회로(204) 및 출력 선택 회로(205)에 출력한다. 이 선택 지시 신호에 응답하여, 입력 선택 회로(204)는, 테스트될 회로 A 및 그 회로와 쌍인 테스트 클록 제어 디바이스(203)를 FIFO(101)에 전기적으로 접속한다. 또한, 이 선택 지시 신호에 응답하여, 출력 선택 회로(205)는, 테스트될 회로 A 및 그 회로와 쌍인 테스트 클록 제어 디바이스(203)를 테스트 결과 압축 디바이스(202)에 전기적으로 접속한다.
그 후에, 테스트될 회로 A에 대해 스캔 테스트가 수행된다. 스캔 테스트의 동작은 제3 실시예 및 그것의 수정된 예와 동일하고, 그것의 설명을 생략한다는 점에 유의하라.
이러한 예에서, 테스트 제어 디바이스(200)는, 테스트될 회로 A의 스캔 테스트 동안, 엠프티 신호에 응답하여 어서트되는 스캔 인에이블 신호를 복수의 테스트될 회로(201) 중 단지 테스트 대상인 테스트될 회로 A에만 출력하고, 다른 테스트될 회로들 B 내지 D에는 출력하지 않는다. 구체적으로, 테스트 대상이 아닌 테스트될 회로들 B 내지 D에, 부정된 스캔 인에이블 신호가 출력된다. 이에 의해, 스캔 시프트 동작은 테스트 대상이 아닌 테스트될 회로들(201)에 대해 수행되지 않고, 정상 동작이 그에 대해 수행된다.
테스트될 회로 A의 스캔 테스트가 종료하는 경우에, 테스트 제어 디바이스(200)는, 시스템 제어기(103)에, 테스트 대상인 테스트될 회로 A의 스캔 테스트의 종료를 통지한다. 구체적으로, 제4 실시예에서, 스캔 테스트가 종료하는 경우에, 테스트 제어 디바이스(200)는, 스캔 테스트가 종료된 테스트될 회로 A의 스캔 테스트의 종료에 관해 통지하는 종료 신호를 출력한다. 이 종료 신호에 응답하여, 시스템 제어기(103)는, 테스트 결과 압축 디바이스(202)로부터 취득한 압축된 코드와, 그 종료 신호에 의해 종료가 통지된 테스트될 회로 A에 대응하는 기대 값을 비교함으로써, 테스트 결과를 판정한다.
그 후에, 도 14에 도시한 바와 같이, 테스트될 회로들 B 내지 D에 대해, 상술한 것과 동일한 방식으로, 순차적으로 스캔 테스트가 수행된다. 구체적으로, 다음은, 테스트될 회로 B에 대한 스캔 테스트 데이터 및 기대 값이 외부 저장 디바이스(2)로부터 메모리 디바이스(104)로 판독된다. 테스트될 회로 B에 대한 스캔 테스트 데이터 및 기대 값이, 테스트될 회로 A에 대한 것들과 동일한 경우에, 이러한 판독은 스킵될 수 있다는 점에 유의하라. 시스템 제어기(103)는, 테스트될 회로 B를 테스트 대상으로서 지정하면서, 테스트 개시 신호를 출력하고, 입력 선택 회로(204) 및 출력 선택 회로(205)는, 테스트될 회로 B 및 그 회로와 쌍인 테스트 클록 제어 디바이스(203)를 선택한다. 이에 의해, 테스트될 회로 B의 스캔 테스트가 수행된다.
그 다음에, 종료 신호에 의해 테스트될 회로 B의 스캔 테스트의 종료가 시스템 제어기(103)에 통지된다. 시스템 제어기(103)는 테스트될 회로 B에 대응하는 테스트 결과 압축 디바이스(202)로부터 취득한 압축된 코드와, 테스트 대상인 테스트될 회로 B에 대한 기대 값을 비교하고, 테스트 결과를 판정한다. 그 후에, 동일한 동작이 테스트 대상으로서 테스트될 회로 C에 대해 수행되고, 동일한 동작이 테스트 대상으로서 테스트될 회로 D에 대해 수행된다.
테스트될 회로 D까지 스캔 테스트의 실행이 완료된 후에, 다시 테스트될 회로들 A 내지 D에 대한 스캔 테스트가 수행될 수 있다는 점에 유의하라. 다시 말해서, 테스트될 회로들 A 내지 D에 대한 스캔 테스트가 반복될 수 있다. 제4 실시예에서, 4개의 테스트될 회로(201)의 스캔 테스트를 수행하는 것의 예를 설명했지만, 테스트될 회로들(201)의 수는 그로 제한되지 않는다는 점에 유의하라.
상술한 바와 같이, 제4 실시예에서, 입력 선택 회로(204)는, FIFO(101)로부터 판독된 테스트 데이터가 입력될 회로로서, 복수의 테스트될 회로(201) 중으로부터 테스트 제어 디바이스(200)에 의해 지정되는 테스트될 회로(201)를 선택한다. 또한, 출력 선택 회로(205)는, 테스트 결과 데이터를 그로부터 테스트 결과 압축 디바이스(202)에 출력할 회로로서, 복수의 테스트될 회로(201) 중으로부터 테스트 제어 디바이스(200)에 의해 지정되는 테스트될 회로(201)를 선택한다. 이에 의해, 단지 테스트 대상으로서 선택한 테스트될 회로(201)의 스캔 테스트만을 수행하고, 테스트 대상으로서 선택하지 않은 테스트될 회로들(201)에 대한 처리를 계속할 수 있다. 따라서, 시스템을 정지하지 않고, 테스트될 회로(201)의 스캔 테스트를 수행할 수 있다.
복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)가 도 12에 도시한 반도체 디바이스(1E)에 포함된 예를 위에서 설명했지만, 본 발명은 그로 제한되지 않는다는 점에 유의하라. 당연히, 도 1, 2, 7 및 11에 도시한 반도체 디바이스들(1A, 1B, 1C, 1D)에, 복수의 쌍의 테스트될 회로(201) 및 테스트 클록 제어 디바이스(203)가 포함될 수 있다.
<제5 실시예>
이하에서, 제5 실시예를 설명한다. 다음 제5 실시예의 설명에서, 상술한 제3 실시예의 수정된 예에서와 동일한 요소들은, 동일한 참조 부호들 등에 의해 표시하고, 동일한 것의 설명은 적절히 생략한다.
[전체 구성]
이하에서, 도 15를 참조하여, 제5 실시예에 따른 반도체 디바이스(1G)의 구성을 설명한다. 도 15는, 제5 실시예에 따른 반도체 디바이스(1G)의 블록도이다. 제5 실시예에 따른 반도체 디바이스(1G)는, 예를 들어, 복수의 CPU 코어(테스트될 회로들(201))로 구성된 회로에서, 스캔 테스트 메커니즘을 사용하는 런타임 테스트의 실행에 적합한 실시예이다. 도 15에서, 외부 저장 디바이스(2)의 예시는 생략한다는 점에 유의하라.
도 15에 도시한 바와 같이, 제5 실시예에 따른 반도체 디바이스(1G)는, 그것이 복수의 테스트 제어 디바이스(200), 복수의 테스트될 회로(201), 복수의 테스트 결과 압축 디바이스(202), 및 복수의 테스트 클록 제어 디바이스(203)를 포함하고, 중재 회로(206)를 추가로 포함한다는 점에서, 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)와 상이하다. 중재 회로(206)는, 제2 전원 영역(20)에 포함된다.
구체적으로, 제5 실시예에서, 복수의 쌍의 테스트 제어 디바이스(200), 테스트될 회로(201), 테스트 결과 압축 디바이스(202), 및 테스트 클록 제어 디바이스(203)가 있어, 하나의 테스트 제어 디바이스(200), 하나의 테스트될 회로(201), 하나의 테스트 결과 압축 디바이스(202), 및 하나의 테스트 클록 제어 디바이스(203)가 서로 대응하게 된다. 제5 실시예에서, 도 15에 도시한 바와 같이, 4쌍의 테스트 제어 디바이스(200), 테스트될 회로(201), 테스트 결과 압축 디바이스(202), 및 테스트 클록 제어 디바이스(203)가 있는 예를 설명한다.
상술한 실시예들에서와 마찬가지로, 제1 전원 영역(10)에 배치된 디바이스들 및 회로들은 제1 클록 신호(110)에 의해 구동되고, 제2 전원 영역(20)에 배치된 디바이스들 및 회로들은, 제2 클록 신호(210)에 의해 구동된다.
제5 실시예에서, FIFO(101)는, 복수의 테스트될 회로(201) 및 중재 회로(206)에 전기적으로 접속된다. 따라서, 제5 실시예에서, FIFO(101)는 엠프티 신호를 중재 회로(206)에 출력한다.
또한, 시스템 제어기(103)는, 중재 회로(206) 및 복수의 테스트 결과 압축 디바이스(202)에 전기적으로 접속된다. 따라서, 시스템 제어기(103)는, 테스트 개시 신호를 중재 회로(206)에 출력한다.
복수의 테스트 제어 디바이스(200) 및 복수의 테스트 클록 제어 디바이스(203)는, 중재 회로(206)에 접속된다. 구체적으로, 복수의 테스트 제어 디바이스(200) 각각은 스캔 인에이블 신호를 중재 회로(206)에 출력한다. 중재 회로(206)는 복수의 테스트 제어 디바이스(200)로부터 출력되는 스캔 인에이블 신호들 중, 테스트 대상으로서 테스트될 회로(201)에 대응하는 테스트 제어 디바이스(200)로부터 출력되는 스캔 인에이블 신호를 판독 신호로서 FIFO(101)에 출력한다. 또한, 중재 회로(206)는, 엠프티 신호를 복수의 테스트 클록 제어 디바이스(203) 중 테스트 대상으로서 테스트될 회로(201)에 대응하는 테스트 클록 제어 디바이스(203)에 출력한다. 중재 회로(206)는, 테스트 개시 신호에 의해 테스트 대상으로서 지정되는 테스트될 회로(201)를 테스트될 테스트 대상 회로(201)로서 인식한다는 점에 유의하라.
중재 회로(206)는, 중재 회로(206)에 접속된 회로들 또는 디바이스들 사이에서 입력 및 출력되는 신호들을 중재하는 회로이다.
또한, 동일한 쌍에 포함된 제어 디바이스(200), 테스트될 회로(201), 테스트 결과 압축 디바이스(202) 및 테스트 클록 제어 디바이스(203) 사이의 전기적인 접속들은 제3 실시예의 수정된 예에서의 것들과 동일하다.
[동작 플로우]
이하에서, 도 16을 참조하여, 제5 실시예에 따른 반도체 디바이스(1G)의 동작을 설명한다. 도 16은, 제5 실시예에 따른 반도체 디바이스(1G)의 동작을 도시하는 동작 플로우차트이다. 도 16에서, 수직 선은 명칭이 그것의 최상부에 도시된 회로 또는 디바이스의 동작들을 표시하고, 시간은 최상부로부터 최하부로 경과한다. 측면 화살표는, 시작 지점에서의 회로 또는 디바이스의 동작 이벤트가, 동일한 것의 종료 지점에서의 회로 또는 디바이스의 동작 이벤트의 발생을 야기하는 것을 의미한다.
도 16에서 "테스트될 회로 A" 내지 "테스트될 회로 D" 각각은 도 15에서의 4개의 테스트될 회로(201) 중 어느 하나를 표시한다. 이하에서, 제5 실시예에 따른 반도체 디바이스(1G)의 동작을 도 15에 도시한 반도체 디바이스(1G)의 예 및, 도 16에 도시한 동작 플로우를 참조하여 설명한다.
먼저, 시스템 제어기(103)는, DMA 제어기(109)를 제어하여, 외부 저장 디바이스(2)로부터 테스트될 회로 A 및 테스트될 회로 B에 대한 스캔 테스트 데이터 및 기대 값을 취득하고, 그들을 메모리 디바이스(104)에 저장한다. 테스트될 회로 A 및 테스트될 회로 B 각각에 대한 스캔 테스트 데이터 및 기대 값은 동일하다고 가정한다. 구체적으로, 테스트될 회로 A와 테스트될 회로 B에 공통인 스캔 테스트 데이터가 메모리 디바이스(104)에 저장된다. 도 16에 도시한 바와 같이, 시스템 제어기(103)는 먼저, 테스트 패턴 판독 디바이스(102) 및 테스트 제어 디바이스(200)에, 테스트될 회로 A 및 테스트될 회로 B의 스캔 테스트를 개시하도록 지시한다.
구체적으로, 시스템 제어기(103)는, 테스트될 회로 A 및 테스트될 회로 B의 스캔 테스트를 개시하도록 지시하는 개시 지시 신호를 테스트 패턴 판독 디바이스(102)에 출력한다. 테스트될 회로 A 및 테스트될 회로 B의 스캔 테스트를 개시하도록 지시하는 개시 지시 신호에 응답하여, 테스트 패턴 판독 디바이스(102)는, 테스트될 회로 A 및 테스트될 회로 B에 대응하는 스캔 테스트 데이터를 시스템 버스를 통해 메모리 디바이스(104)로부터 취득하고, 그들을 FIFO(101)로 기입한다.
또한, 시스템 제어기(103)는, 테스트될 회로 A 및 테스트될 회로 B의 스캔 테스트의 개시에 관해 통지하는 테스트 개시 신호를 중재 회로(206)에 출력한다. 보다 구체적으로, 테스트될 회로 A 내지 테스트될 회로 D에 각각 대응하는 4개의 테스트 개시 신호 배선이 시스템 제어기(103)와 중재 회로(206) 사이에 접속된다. 시스템 제어기(103)는, 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 개시 신호들을 어서트한다.
중재 회로(206)는, FIFO(101)로부터 입력되는 엠프티 신호가 부정되는 경우에, 그 부정 엠프티 신호를 복수의 테스트 제어 디바이스(200) 중 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 제어 디바이스들(200) 각각에 출력한다.
중재 회로(206)는, 임의의 테스트 개시 신호가 어서트된 후에, 지정된 시간이 경과한 시점에, 어서트된 테스트 개시 신호에 대응하는 테스트 제어 디바이스(200)에, 부정 엠프티 신호를 출력한다. 4개의 테스트 개시 신호가 비동기적인 방식으로 송신되기 때문에, 일부 경우에는, 상이한 타이밍에 어서트된 테스트 개시 신호들이 중재 회로(206)에 도달한다. 또한 이러한 경우에, 상술한 바와 같이 지정된 시간의 기간 동안 테스트 개시 신호들을 기다림으로써, 테스트 대상들로서 테스트될 회로들 A, B에 대응하는 테스트 제어 디바이스(200)에 부정 엠프티 신호가 도달하는 타이밍을 일치시킬 수 있다.
이에 의해, 도 16에 도시한 바와 같이, 테스트될 회로 A 및 테스트될 회로 B에 대해, 동시에 병렬로 스캔 테스트가 수행된다. 따라서, FIFO(101)로부터 출력되는 스캔 테스트 데이터는 테스트될 회로 A 및 테스트될 회로 B에 동시에 입력된다. 스캔 테스트의 동작은 제3 실시예 및 그것의 수정된 예와 동일하고, 그것의 설명은 생략한다는 점에 유의하라. 테스트될 회로 C 및 테스트될 회로 D에 대응하는 테스트 제어 디바이스(200)는 테스트될 회로 C 및 테스트될 회로 D에 대해 스캔 테스트를 수행하지 않기 때문에, 테스트될 회로 C 및 테스트될 회로 D는 정상 동작을 수행한다.
상술한 바와 같이, 중재 회로(206)는, 단지 테스트 대상으로서 테스트될 회로(201)에 대응하는 테스트 클록 제어 디바이스(203)에만, FIFO(101)로부터의 엠프티 신호를 출력한다. 따라서, FIFO(101)가 비어 있게 되는 경우에, 단지 테스트될 테스트 대상 회로(201)에 대응하는 테스트 클록 제어 디바이스(203)에 의해서만, 테스트될 회로(201)로의 제2 클록 신호(210)의 공급이 정지된다.
또한, 상술한 바와 같이, 중재 회로(206)는, 단지 테스트될 테스트 대상 회로(201)에 대응하는 테스트 제어 디바이스(200)로부터만 출력되는 스캔 인에이블 신호를 판독 신호로서 FIFO(101)에 출력한다. 그러므로, 테스트될 테스트 대상 회로(201)가 스캔 시프트 동작을 수행하는지의 여부에 의존하여, FIFO(101)의 레지스터 그룹(34) 중 데이터가 그로부터 판독될 레지스터가 갱신된다. 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 제어 디바이스들(200) 각각은, 유사한 스캔 인에이블 신호들을 출력하기 때문에, 이러한 테스트 제어 디바이스들(200) 중 어느 하나로부터 스캔 인에이블 신호를 FIFO(101)에 출력할 수 있다는 점에 유의하라.
테스트될 회로 A 및 테스트될 회로 B의 스캔 테스트가 종료하는 경우에, 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 제어 디바이스들(200) 각각은, 중재 회로(206)에, 스캔 테스트의 종료에 관해 통지한다. 구체적으로, 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 제어 디바이스들(200) 각각은 중재 회로(206)에 종료 신호를 출력한다. 이 종료 신호에 응답하여, 중재 회로(206)는 테스트될 회로 A 및 테스트될 회로 B의 스캔 테스트의 종료에 관해 통지하는 종료 신호를 시스템 제어기(103)에 출력한다. 중재 회로(206)는 시스템 제어기(103)로부터 스캔 테스트의 개시를 지시하는 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 제어 디바이스들(200) 전부로부터 종료 신호들을 기다린 후에, 종료 신호를 시스템 제어기(103)에 출력한다는 점에 유의하라.
이 종료 신호에 응답하여, 시스템 제어기(103)는, 테스트될 회로 A 및 테스트될 회로 B에 대응하는 테스트 결과 압축 디바이스들(202)로부터 취득한 압축된 코드들 각각과, 테스트될 회로 A 및 테스트될 회로 B에 대응하는 기대 값을 비교함으로써, 테스트 결과를 판정한다.
그 후에, 도 16에 도시한 바와 같이, 또한 동일한 방식으로 테스트될 회로들 C, D에 대한 스캔 테스트가 수행된다. 구체적으로, 다음에는, 테스트될 회로들 C, D에 대한 스캔 테스트 데이터와 기대 값이 외부 저장 디바이스(2)로부터 메모리 디바이스(104)로 판독된다. 테스트될 회로들 C, D에 대한 스캔 테스트 데이터 및 기대 값이, 테스트될 회로들 A, B에 대한 것들과 동일한 경우에, 이러한 판독은 스킵될 수 있다는 점에 유의하라. 테스트될 회로 C 및 테스트될 회로 D를 테스트 대상으로서 지정하면서, 테스트 개시 신호를 출력하고, 중재 회로(206)는, 테스트될 회로 C 및 테스트될 회로 D에 대해 스캔 테스트가 수행되도록 제어를 실시한다. 그 다음에, 종료 신호에 의해 테스트될 회로 C 및 테스트될 회로 D의 스캔 테스트의 종료가 중재 회로(206)를 통해 시스템 제어기(103)에 통지된다. 시스템 제어기(103)는 테스트될 회로 C 및 테스트될 회로 D에 대응하는 테스트 결과 압축 디바이스들(202)로부터 취득한 압축된 코드들 각각과, 테스트될 회로 C 및 테스트될 회로 D에 대응하는 기대 값들을 비교함으로써, 테스트 결과를 판정한다.
테스트될 회로들 C, D까지의 스캔 테스트의 실행이 완료된 후에, 다시, 테스트될 회로들 A 내지 D에 대해 스캔 테스트가 수행될 수 있다는 점에 유의하라. 다시 말해서, 테스트될 회로들 A 내지 D에 대해 스캔 테스트가 반복될 수 있다. 제4 실시예에서, 4개의 테스트될 회로(201)의 스캔 테스트를 수행하는 것의 예를 설명했지만, 테스트될 회로들(201)의 수는 그로 제한되지 않는다는 점에 유의하라.
제5 실시예에서, 매회 2개의 테스트될 회로(201)의 스캔 테스트를 수행하는 것의 예를 설명했지만, 동시에 스캔 테스트가 수행되는 테스트될 회로들(201)의 수는 그로 제한되지 않는다는 점에 유의하라.
또한, 모든 테스트될 회로 A 내지 D의 구성들이 동일하고, 스캔 테스트 데이터가 동일한 예를 설명했지만, 테스트될 회로들 A 내지 D 각각에 대해 스캔 테스트 데이터가 상이할 수 있다. 그러나, 동시에 스캔 테스트가 수행되는 테스트될 회로들 각각에 대해 상이한 스캔 테스트 데이터를 사용하는 경우에, 반도체 디바이스(1G)는 테스트될 회로들 각각에 대해 상이한 FIFO(101)를 포함할 필요가 있다는 점에 유의하라. 예를 들어, 동시에 스캔 테스트가 수행되는 테스트될 회로 A 및 테스트될 회로 B의 구성들이 상이하고, 그들에 대해 사용되는 스캔 테스트 데이터가 상이한 경우에, 테스트될 회로 A 및 테스트될 회로 B에 각각 대응하는 FIFO들(101)을 준비할 필요가 있다. 구체적으로, 테스트될 회로 A에 대응하는 FIFO(101)에, 테스트될 회로 A에 대한 스캔 테스트 데이터가 저장되고, 테스트될 회로 B에 대응하는 FIFO(101)에, 테스트될 회로 B에 대한 스캔 테스트 데이터가 저장된다.
상술한 바와 같이, 제5 실시예에서, 시스템 제어기(103)는, 복수의 테스트될 회로(201) 중 어느 2개 이상의 테스트될 회로(201)의 스캔 테스트를 수행하도록 지시한다. 그 다음에, 중재 회로(206)는, 시스템 제어기(103)에 의해 지정된 2개 이상의 테스트될 회로(201)에 대응하는 2개 이상의 테스트 제어 디바이스(200)에 스캔 테스트를 수행하도록 지시한다. 이에 의해, 복수의 테스트될 회로(201)에 대해 동시에 스캔 테스트를 수행할 수 있다. 또한, 제4 실시예에서와 마찬가지로, 테스트 대상이 아닌 테스트될 회로들(201)에 대한 처리를 계속할 수 있다.
도 12에 도시한 반도체 디바이스(1E)가 복수의 쌍의 테스트 제어 디바이스(200), 테스트될 회로(201), 테스트 결과 압축 디바이스(202) 및 테스트 클록 제어 디바이스(203)를 포함하는 예를 설명했지만, 본 발명은 그로 제한되지 않는다. 당연히, 도 1, 2, 7 및 11에 도시한 반도체 디바이스들(1A, 1B, 1C, 1D)은 복수의 쌍의 테스트 제어 디바이스(200), 테스트될 회로(201), 테스트 결과 압축 디바이스(202) 및 테스트 클록 제어 디바이스(203)를 포함할 수 있다.
<제6 실시예>
이하에서, 제6 실시예를 설명한다. 다음 제6 실시예의 설명에서, 상술한 제3 실시예의 수정된 예에서와 동일한 요소들은 동일한 참조 부호들 등에 의해 표시하고, 동일한 것의 설명은 적절히 생략한다.
[전체 구성]
이하에서, 도 17을 참조하여, 제6 실시예에 따른 반도체 디바이스(1H)의 구성을 설명한다. 도 17은 제6 실시예에 따른 반도체 디바이스(1H)의 블록도이다. 제6 실시예에 따른 반도체 디바이스(1H)는, 예를 들어, 런타임 테스트의 복수의 대상이 있는 경우에 적합한 실시예이다. 도 17에서, 외부 저장 디바이스(2)의 예시는 생략한다는 점에 유의하라.
도 17에 도시한 바와 같이, 제6 실시예에 따른 반도체 디바이스(1H)는, 그것이 선택 회로(105), FIFO 판독을 위한 기능 블록(101C), 테스트 제어 디바이스(300), 테스트될 회로(301), 테스트 결과 압축 디바이스(302), 및 테스트 클록 제어 디바이스(303)를 추가로 포함한다는 점에서 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)와 상이하다. 또한, 제6 실시예에 따른 반도체 디바이스(1H)는, 그것이 제3 전원 영역(30H)을 포함한다는 점에서 제3 실시예의 수정된 예에 따른 반도체 디바이스(1E)와 상이하다.
선택 회로(105)는 제1 전원 영역(10)에 포함되고, FIFO 판독을 위한 기능 블록(101C), 테스트 제어 디바이스(300), 테스트될 회로(301), 테스트 결과 압축 디바이스(302), 및 테스트 클록 제어 디바이스(303)는 제3 전원 영역(30H)에 포함된다.
제3 전원 영역(30H)은 제1 전원 영역(10) 및 제2 전원 영역(20)과 상이한 전원 배선들을 갖는다. 따라서, 제3 전원 영역(30H)은 제1 전원 영역(10) 및 제2 전원 영역(20)과 독립적으로 상이한 전력을 공급할 수 있다. 예를 들어, 제3 전원 영역(30H)은 DVFS 영역이다.
제1 전원 영역(10)에 배치되는 디바이스들 및 회로들은 제1 클록 신호(110)에 의해 구동되고, 제2 전원 영역(20)에 배치되는 디바이스들 및 회로들은 제2 클록 신호(210)에 의해 구동된다. 또한, 제3 전원 영역(30H)에 배치되는 디바이스들 및 회로들은 제3 클록 신호(310)에 의해 구동된다.
제3 클록 신호(310), 및 제1 클록 신호(110)와 제2 클록 신호(210) 각각은, 제3 전원 영역(30H) 및 제1 전원 영역(10)과 제2 전원 영역(20) 각각 사이에서 전압이 상이하기 때문에, 동기하지 않는다(주파수 및 위상 중 적어도 하나가 상이하다)고 가정한다. 대안적으로, 제1 클록 신호(110), 제2 클록 신호(210) 및 제3 클록 신호(310)는 상이한 클록 발생 회로들에 의해 발생된 클록 신호들이기 때문에, 그들은 서로 비동기적일 수 있다는 점에 유의하라.
이하에서, FIFO 기입을 위한 기능 블록(101A) 및 FIFO 판독을 위한 기능 블록들(101B, 101C)은, 또한 각각 기능 블록(101A), 기능 블록(101B) 및 기능 블록(101C)으로서 지칭된다.
제6 실시예에서, 기능 블록(101A)은, 선택 회로(105)를 통해, 기능 블록(101B) 및 기능 블록(101C) 중으로부터 선택 회로(105)에 의해 선택되는 하나의 기능 블록에 전기적으로 접속된다.
또한, 시스템 제어기(103)는, 선택 회로(105)를 통해, 테스트 제어 디바이스(200) 및 테스트 결과 압축 디바이스(202) 또는 테스트 제어 디바이스(300) 및 테스트 결과 압축 디바이스(302) 중으로부터 선택 회로(105)에 의해 선택되는 하나의 테스트 제어 디바이스 및 하나의 테스트 결과 압축 디바이스에 전기적으로 접속된다.
제3 전원 영역(30H)에 포함된 요소들(101C, 300, 301, 302, 303)의 동작 및 접속들은 제2 전원 영역(20)에 포함된 요소들(101B, 200, 201, 202, 203)의 동작 및 접속들과 실질적으로 동일하고, 그것의 설명은 생략한다. 그러나, 제3 전원 영역(30H)에 포함된 요소들(101C, 300, 301, 302, 303)은 제2 클록 신호(210)가 아닌, 제3 클록 신호(310)에 기초하여 동작한다는 점에 유의하라.
[동작 플로우]
이하에서, 도 18을 참조하여, 제6 실시예에 따른 반도체 디바이스(1H)의 동작을 설명한다. 도 18은, 제6 실시예에 따른 반도체 디바이스(1H)의 동작을 도시하는 동작 플로우차트이다. 도 18에서, 수직 선은 명칭이 그것의 최상부에 도시된 회로 또는 디바이스의 동작들을 표시하고, 시간은 최상부로부터 최하부로 경과한다. 측면 화살표는, 시작 지점에서의 회로 또는 디바이스의 동작 이벤트가 동일한 것의 종료 지점에서의 회로 또는 디바이스의 동작 이벤트의 발생을 야기하는 것을 의미한다.
도 18에서 "테스트될 회로 A" 및 "테스트될 회로 B" 각각은 도 17에서의 2개의 테스트될 회로(201) 및 테스트될 회로(301) 중 어느 하나를 표시한다. 이하에서, 제6 실시예에 따른 반도체 디바이스(1H)의 동작을 도 17에 도시한 반도체 디바이스(1H)의 예, 및 도 18에 도시한 동작 플로우를 참조하여 설명한다.
먼저, 시스템 제어기(103)는, DMA 제어기(109)를 제어하여, 외부 저장 디바이스(2)로부터 테스트될 회로 A에 대한 스캔 테스트 데이터 및 기대 값을 취득하고, 그들을 메모리 디바이스(104)에 저장한다. 도 18에 도시한 바와 같이, 시스템 제어기(103)는 먼저 테스트 패턴 판독 디바이스(102)에, 테스트될 회로 A의 스캔 테스트를 개시하도록 지시한다.
구체적으로, 시스템 제어기(103)는, 테스트될 회로 A의 스캔 테스트를 개시하도록 지시하는 개시 지시 신호를 테스트 패턴 판독 디바이스(102)에 출력한다. 테스트될 회로 A의 스캔 테스트를 개시하도록 지시하는 개시 지시 신호에 응답하여, 테스트 패턴 판독 디바이스(102)는, 테스트될 회로 A에 대응하는 스캔 테스트 데이터를 시스템 버스를 통해 메모리 디바이스(104)로부터 취득하여, 그들을 FIFO(101)로 기입한다.
또한, 시스템 제어기(103)는 선택 회로(105)를 제어하여, 테스트될 회로 A에 대응하는 기능 블록, 테스트 제어 디바이스 및 테스트 결과 압축 디바이스를 선택한다. 구체적으로, 시스템 제어기(103)는, 테스트될 회로 A에 대응하는 기능 블록, 테스트 제어 디바이스 및 테스트 결과 압축 디바이스를 선택하기 위해, 선택 신호를 선택 회로(105)에 출력한다. 이 선택 신호에 응답하여, 선택 회로(105)는 기능 블록(101A)을 테스트될 회로 A에 대응하는 기능 블록에 접속하고, 시스템 제어기(103)를 테스트될 회로 A에 대응하는 테스트 제어 디바이스 A 및 테스트 결과 압축 디바이스 A에 접속한다.
이에 의해, 기능 블록(101A)과, 기능 블록(101B) 및 기능 블록(101C) 중 테스트될 회로 A에 대응하는 기능 블록 사이에서 신호들(스캔 테스트 데이터, 그레이 코드 값)이 송신된다. 또한, 테스트 제어 디바이스(200) 및 테스트 제어 디바이스(300) 중 테스트될 회로 A에 대응하는 테스트 제어 디바이스 A로부터 출력되는 종료 신호가 시스템 제어기(103)에 입력된다. 또한, 테스트 결과 압축 디바이스(202) 및 테스트 결과 압축 디바이스(302) 중 테스트될 회로 A에 대응하는 테스트 결과 압축 디바이스 A로부터 출력되는 압축된 코드가 시스템 제어기(103)에 입력된다.
따라서, 기능 블록(101B) 및 기능 블록(101C) 중 테스트될 회로 A에 대응하는 기능 블록에 의해, 기능 블록(101A)으로부터 스캔 테스트 데이터가 판독된다. 따라서, 테스트될 회로 A에 대응하는 기능 블록은 부정 엠프티 신호를 테스트 제어 디바이스 A에 출력한다. 따라서, 테스트될 회로 A에 대응하는 테스트 제어 디바이스 A에서의 개시 신호가 어서트되고, 테스트될 회로 A의 스캔 테스트가 수행된다. 스캔 테스트의 동작은 제3 실시예의 수정된 예에서의 동작과 동일하고, 그것의 설명은 생략한다는 점에 유의하라.
테스트될 회로 A의 스캔 테스트가 종료하는 경우에, 테스트될 회로 A에 대응하는 테스트 제어 디바이스 A는 선택 회로(105)를 통해 시스템 제어기(103)에 종료 신호를 출력한다. 이 종료 신호에 응답하여, 시스템 제어기(103)는, 테스트될 회로 A에 대응하는 테스트 결과 압축 디바이스 A로부터 취득한 압축된 코드와, 그 종료 신호에 의해 종료가 통지된 테스트될 회로 A에 대응하는 기대 값을 비교함으로써, 테스트 결과를 판정한다.
그 후에, 도 18에 도시한 바와 같이, 또한, 테스트될 회로 B에 대해, 상술한 것과 동일한 방식으로 스캔 테스트가 수행된다. 구체적으로, 다음에는, 테스트될 회로 B에 대한 스캔 테스트 데이터 및 기대 값이 외부 저장 디바이스(2)로부터 메모리 디바이스(104)로 판독된다. 테스트될 회로 B에 대한 스캔 테스트 데이터 및 기대 값이 테스트될 회로 A에 대한 것들과 동일한 경우에, 이러한 판독은 스킵될 수 있다는 점에 유의하라. 또한, 테스트 패턴 판독 디바이스(102)에, 테스트될 회로 B의 스캔 테스트를 개시하도록 지시되고, 선택 회로(105)가 제어되어, 테스트될 회로 B에 대응하는 기능 블록, 테스트 제어 디바이스 및 테스트 결과 압축 디바이스를 선택한다. 이에 의해, 테스트될 회로 B에 대응하는 테스트 제어 디바이스 B에서의 개시 신호가 어서트되어, 위와 동일한 방식으로, 테스트될 회로 B에 대해 스캔 테스트가 수행된다.
테스트될 회로 B까지의 스캔 테스트의 실행 후에, 다시, 테스트될 회로들 A 및 B에 대해 스캔 테스트가 수행될 수 있다는 점에 유의하라. 다시 말해서, 테스트될 회로들 A 및 B에 대해 스캔 테스트가 반복될 수 있다. 제6 실시예에서, 2개의 테스트될 회로(201, 301)의 스캔 테스트를 수행하는 것의 예를 설명했지만, 테스트될 회로들(201, 301)의 수는 그로 제한되지 않는다는 점에 유의하라. 구체적으로, 제2 전원 영역(20) 및 제3 전원 영역(30H)과 동일한 구성을 갖지만, 상이한 전압을 갖는 또 다른 전원 면적이 포함될 수 있다.
상술한 바와 같이, 제6 실시예에서, 테스트 제어 디바이스(200)는, 제2 클록 신호(210)에 동기하여, FIFO(101)에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로(201)의 스캔 테스트를 수행한다. 또한, 테스트 제어 디바이스(300)는, 제3 클록 신호(310)에 동기하여, FIFO(101)에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로(301)의 스캔 테스트를 수행한다. 그 다음에, 선택 회로(105)는, 스캔 테스트를 수행하는 테스트 제어 디바이스로서, 테스트 제어 디바이스(200) 및 테스트 제어 디바이스(300) 중 어느 하나를 선택한다. 이에 의해, 상이한 클록 신호에 동기하는 복수의 테스트될 회로의 스캔 테스트를 수행할 수 있다.
도 12에 도시한 반도체 디바이스(1E)가, FIFO 판독을 위한 복수의 기능 블록, 복수의 테스트 제어 디바이스, 복수의 테스트될 회로, 복수의 테스트 클록 제어 디바이스, 및 복수의 테스트 결과 압축 디바이스를 포함하는 예를 설명했지만, 본 발명은 그로 제한되지 않는다. 당연히, 도 1, 2, 7 및 11에 도시한 반도체 디바이스들(1A, 1B, 1C, 1D)은, FIFO 판독을 위한 복수의 기능 블록, 복수의 테스트 제어 디바이스, 복수의 테스트될 회로, 복수의 테스트 클록 제어 디바이스, 및 복수의 테스트 결과 압축 디바이스를 포함할 수 있다.
<제7 실시예>
도 19를 참조하여, 상술한 제1 실시예 내지 제6 실시예로부터 추출되는 하나의 실시예를 제7 실시예로서 설명한다. 이하에서, 도 19를 참조하여, 제7 실시예에 따른 반도체 디바이스(9)를 설명한다. 도 19는 제7 실시예에 따른 반도체 디바이스(9)의 개략도이다.
도 19에 도시한 바와 같이, 반도체 디바이스(9)는, FIFO(91), 테스트 데이터 기입 회로(92), 테스트 제어 회로(93), 및 테스트될 회로(94)를 포함한다.
테스트 데이터 기입 회로(92)는, 제1 클록 신호(910)에 동기하여, 복수의 테스트 데이터를 순차적으로 FIFO(91)로 기입한다. 테스트 데이터 기입 회로(92)는 테스트 패턴 발생 디바이스(100) 및 테스트 패턴 판독 디바이스(102)에 대응한다. FIFO(91)는 FIFO(101)에 대응한다. 제1 클록 신호(910)는 제1 클록 신호(110)에 대응한다.
테스트 제어 회로(93)는, 테스트 데이터 기입 회로(92)에 의한 복수의 테스트 데이터의 FIFO(91)로의 기입과 병렬로, 제1 클록 신호(910)에 동기하지 않고, 제2 클록 신호(920)에 동기하여, FIFO(91)에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로(94)의 스캔 테스트를 수행한다. 테스트 제어 회로(93)는 테스트 제어 디바이스(200, 300)에 대응한다. 테스트될 회로(94)는 테스트될 회로(201, 301)에 대응한다. 제2 클록 신호(920)는 제2 클록 신호(210)에 대응한다.
<다른 실시예들>
상술한 실시예들에서, 제1 전원 영역(10)과 제2 전원 영역(20)은 상이하고, 제1 클록 신호(110)와 제2 클록 신호(210)는 동기하지 않고, 그들은 이하에서 설명된 구성 및 동작에 의해 발생될 수 있다. 이하에서, 도 20을 참조하여, 그 구성 및 동작을 설명한다. 도 20은 또 다른 실시예에 따른 반도체 디바이스(1I)의 개략도이다.
도 20에 도시한 바와 같이, 반도체 디바이스(1I)는, 그것이 설정 회로(3), 전압 공급 회로(4), 클록 공급 회로(5)를 추가로 포함한다는 점에서 제1 실시예에 따른 반도체 디바이스(1A)와 상이하다.
설정 회로(3)는 테스트될 회로(201)로부터의 지시에 응답하여 전압 공급 회로(4)로부터 제2 전원 영역(20)에 공급될 전압, 또는 클록 공급 회로(5)로부터 제2 전원 영역(20) 내의 회로들 및 디바이스들에 공급될 제2 클록 신호(210)의 주파수를 변경한다.
초기 상태에서, 제1 전원 영역(10)의 전압과 제2 전원 영역(20)의 전압은 동일하다고 가정한다. 이하에서, 이러한 전압을 제1 전압으로서 지칭한다. 또한, 초기 상태에서, 제1 클록 신호(110)와 제2 클록 신호(210)는 동기한다(주파수 및 위상이 동일하다)고 가정한다. 이하에서, 이러한 주파수를 제1 주파수로서 지칭한다.
테스트될 회로(201)는, 상술한 바와 같이, 예를 들어, CPU이다. 따라서, 테스트될 회로(201)는, 예를 들어, 프로그램을 실행하고 임의의 처리를 실행한다. 테스트될 회로(201)는 자체의 처리 로드(processing load)를 측정하고, 처리 로드가 지정된 임계값 이하가 되는지를 판정한다.
테스트될 회로(201)는, 처리 로드가 지정된 임계값 이하가 되는 경우에, 전압 공급 회로(4)로부터 제2 전원 영역(20)에 공급될 전압을 변경, 또는 클록 공급 회로(5)로부터 제2 전원 영역(20) 내의 회로들 및 디바이스들에 공급될 제2 클록 신호(210)의 주파수를 변경하도록 지시하는 지시 신호를 설정 회로(3)에 출력한다.
설정 회로(3)는, 테스트될 회로(201)로부터 전압을 변경하도록 지시하는 지시 신호에 응답하여, 전압 공급 회로(4)를 설정하여, 전압 공급 회로(4)로부터 제2 전원 영역(20)에 공급될 전압이, 제1 전압보다 낮은 제2 전압이 되게 한다. 이러한 설정에 응답하여, 전압 공급 회로(4)는, 제2 전원 영역(20)에 공급될 전압을 제1 전압으로부터 제2 전압으로 변경한다. 이에 의해, 제2 전원 영역(20)의 전압은, 제1 전원 영역(10)의 전압보다 낮아진다. 그 결과, 전압차의 영향으로 인해, 제2 전원 영역(20)에서의 제2 클록 신호(210)는 제1 전원 영역(10)에서의 제1 클록 신호(110)와 비동기적이게 된다.
또한, 설정 회로(3)는, 테스트될 회로(201)로부터 주파수를 변경하도록 지시하는 지시 신호에 응답하여, 클록 공급 회로(5)를 설정하여, 클록 공급 회로(5)로부터 제2 전원 영역(20)에 공급될 제2 클록 신호(210)의 주파수가 제1 주파수보다 낮은 제2 주파수가 되게 한다. 이러한 설정에 응답하여, 클록 공급 회로(5)는 제2 전원 영역(20)에 공급될 제2 클록 신호(210)의 주파수를 제1 주파수로부터 제2 주파수로 변경한다. 이에 의해, 제2 클록 신호(210)의 주파수는 제1 클록 신호의 주파수(110)보다 낮아지게 된다.
한편, 테스트될 회로(201)는, 처리 로드가 지정된 임계값 이하가 되지 않는 경우에, 전압 또는 주파수를 변경하도록 상술한 바와 같이 지시하지 않는다.
도 1에 도시한 반도체 디바이스(1A)에, 설정 회로(3), 전압 공급 회로(4) 및 클록 공급 회로(5)를 적용한 예가 위에서 설명되었지만, 본 발명은 그로 제한되지 않는다는 점에 유의하라. 당연히, 도 2, 7, 11, 12, 13, 15, 17에 도시한 반도체 디바이스들(1B, 1C, 1D, 1E, 1F, 1G, 1H)에서의 제2 전원 영역(20)과, 도 17에 도시한 반도체 디바이스(1H)에서의 제3 전원 영역(30H)에, 설정 회로(3), 전압 공급 회로(4) 및 클록 공급 회로(5)를 적용할 수 있다.
본 발명의 실시예들을 전술한 것에서 설명했지만, 본 발명은 상술한 실시예들에 제한되지 않고, 본 발명의 범위로부터 벗어나지 않고 다양한 변경 및 수정이 이루어질 수 있다.
상술한 실시예들 각각에서, 테스트 결과 압축 디바이스(202, 302)가 테스트 결과 데이터에서의 불확정 값을 마스크 데이터에 의해 "0"(Low)으로 고정하는 예를 설명했지만, 본 발명은 그로 제한되지 않는다. 예를 들어, 테스트 결과 압축 디바이스(202, 302)는 테스트 결과 데이터에서의 불확정 값을 마스크 데이터에 의해 "1"(High)로 고정할 수 있다. 이러한 경우에, 테스트 결과 압축 디바이스(202, 302)는, AND 게이트들(2021, 2022) 대신에, OR 게이트를 포함할 수 있다.
1A, 1B, 1C, 1D, 1E, 1F, 1G, 1H, 1I 반도체 디바이스
2 외부 저장 디바이스
3 설정 회로
4 전압 공급 회로
5 클록 공급 회로
10 제1 전원 영역
20 제2 전원 영역
30H 제3 전원 영역
30 입력 회로
31 풀 판정 회로
32 그레이 코드 카운터
33, 43 선택 회로
34 레지스터 그룹
40 출력 회로
41 엠프티 판정 회로
42 그레이 코드 카운터
44 레지스터
100 테스트 패턴 발생 디바이스
101 FIFO
101A FIFO(기입을 위한 기능 블록)
101B, 101C FIFO(판독을 위한 기능 블록)
102 테스트 패턴 판독 디바이스
103 시스템 제어기
104 메모리 디바이스
105 선택 회로
109 DMA 제어기
110 제1 클록 신호
200 테스트 제어 디바이스
201, 301 테스트될 회로
202, 302 테스트 결과 압축 디바이스
203, 303 테스트 클록 제어 디바이스
204 입력 선택 회로
205 출력 선택 회로
206 중재 회로
210 제2 클록 신호
310 제3 클록 신호
2000 스캔 시프트 카운터
2001 스캔 시프트 횟수 레지스터
2002 비교기
2003, 2008, 2009 선택기
2004, 2021, 2022 AND 게이트
2005 테스트 패턴 카운터
2006 테스트 패턴 수 레지스터
2007 비교기
2010 스캔 체인
2011 신장 회로
2012, 2023 압축 회로

Claims (17)

  1. 반도체 디바이스로서,
    FIFO(First In First Out);
    제1 클록 신호에 동기하여, 복수의 테스트 데이터를 순차적으로 상기 FIFO로 기입하는 테스트 데이터 기입 회로; 및
    상기 테스트 데이터 기입 회로에 의한 상기 복수의 테스트 데이터의 상기 FIFO로의 기입과 병렬로, 상기 제1 클록 신호에 동기하지 않고, 제2 클록 신호에 동기하여, 상기 FIFO에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로의 스캔 테스트를 수행하는 테스트 제어 회로
    를 포함하는 반도체 디바이스.
  2. 제1항에 있어서,
    상기 FIFO가 비어 있는지 여부를 판정하는 엠프티 판정 회로(empty determination circuit)
    를 추가로 포함하며,
    상기 엠프티 판정 회로가 상기 FIFO가 비어 있지 않다고 판정하는 경우에, 상기 테스트 제어 회로는 상기 FIFO로부터의 테스트 데이터의 판독을 허용하는 반도체 디바이스.
  3. 제2항에 있어서,
    상기 엠프티 판정 회로가 상기 FIFO가 비어있다고 판정하는 경우에, 상기 테스트 제어 회로는 상기 FIFO로부터의 테스트 데이터의 판독을 정지하는 반도체 디바이스.
  4. 제3항에 있어서,
    상기 테스트될 회로는 상기 스캔 테스트를 수행하기 위한 스캔 체인을 갖고, 상기 제2 클록 신호에 동기하여 스캔 시프트 동작을 수행함으로써, 상기 FIFO로부터 테스트 데이터를 판독하고 상기 스캔 체인으로 상기 테스트 데이터를 스캔 인(scan into)하고,
    상기 테스트 제어 디바이스는, 상기 엠프티 판정 회로가 상기 FIFO가 비어있다고 판정하는 경우에, 상기 테스트될 회로로의 상기 제2 클록 신호의 공급을 정지함으로써, 상기 FIFO로부터의 테스트 데이터의 판독을 정지하는 클록 제어 회로를 추가로 포함하는 반도체 디바이스.
  5. 제1항에 있어서,
    상기 테스트될 회로는 상기 스캔 테스트를 수행하기 위한 스캔 체인을 갖고, 상기 제2 클록 신호에 동기하여 스캔 시프트 동작을 수행함으로써, 상기 FIFO로부터 테스트 데이터를 판독하고 상기 스캔 체인으로 상기 테스트 데이터를 스캔 인하고, 상기 스캔 체인에 저장된 테스트 결과 데이터를 스캔 아웃(scan out)하고,
    상기 테스트 데이터 기입 회로는, 상기 제1 클록 신호에 동기하여, 상기 복수의 테스트 데이터, 및 상기 복수의 데이터에 각각 대응하는 복수의 마스크 데이터를 순차적으로 상기 FIFO로 기입하고,
    상기 반도체 디바이스는, 상기 스캔 체인으로부터 스캔 아웃된 상기 테스트 결과 데이터가 입력되는 테스트 결과 처리 회로를 추가로 포함하고,
    상기 테스트 결과 처리 회로는, 상기 테스트 데이터가 상기 스캔 체인으로 스캔 인되는 경우에, 상기 테스트 데이터에 대응하는 마스크 데이터를 상기 FIFO로부터 판독하고, 상기 테스트 데이터가 상기 스캔 체인으로 스캔 인되는 경우에, 스캔 아웃될 상기 테스트 결과 데이터를 상기 판독된 마스크 데이터에 의해 마스크함으로써, 상기 데이터를 로우(Low) 또는 하이(High)로 고정하는 마스크 회로를 포함하는 반도체 디바이스.
  6. 제5항에 있어서,
    상기 마스크 회로는 상기 마스크된 테스트 결과 데이터를 순차적으로 출력하고,
    상기 테스트 결과 처리 회로는, 상기 마스크 회로로부터 순차적으로 출력된 상기 테스트 결과 데이터에 기초하여 압축된 코드를 생성하는 압축 회로를 포함하는 반도체 디바이스.
  7. 제6항에 있어서,
    상기 테스트 제어 회로는, 상기 제2 클록 신호에 동기하여, 상기 스캔 체인으로 스캔 인된 테스트 데이터의 수를 카운트하고, 상기 스캔 체인의 사이즈에 대응하는 상기 테스트 데이터가 스캔 인될 때마다, 상기 테스트될 회로로 하여금 스캔 시프트 동작 대신에 캡처 동작을 수행하도록 야기하는 반도체 디바이스.
  8. 제7항에 있어서,
    상기 테스트 제어 회로는, 상기 스캔 체인으로 스캔 인된 테스트 데이터의 수에 기초하여, 상기 복수의 테스트 데이터 전부가 스캔 인되었다고 판정되는 경우에 종료 신호를 출력하고,
    상기 반도체 디바이스는, 상기 테스트 제어 회로로부터 출력된 상기 종료 신호에 응답하여, 상기 테스트 결과 처리 회로에 의해 생성된 압축된 코드와 지정된 기대 값(specified expected value)을 비교함으로써, 스캔 테스트의 결과를 판정하는 테스트 결과 판정 회로를 추가로 포함하는 반도체 디바이스.
  9. 제1항에 있어서,
    상기 FIFO가 가득 차(full)있는지 여부를 판정하는 풀 판정 회로(full determination circuit)
    를 추가로 포함하며,
    상기 풀 판정 회로가 상기 FIFO가 가득 차있다고 판정하는 경우에, 상기 테스트 데이터 기입 회로는 상기 FIFO로의 테스트 데이터의 기입을 정지하는 반도체 디바이스.
  10. 제1항에 있어서,
    상기 복수의 테스트 데이터를 저장하기 위한 저장 회로
    를 추가로 포함하며,
    상기 테스트 데이터 기입 회로는 상기 저장 회로에 저장된 상기 복수의 테스트 데이터를 순차적으로 상기 FIFO로 기입하는 반도체 디바이스.
  11. 제10항에 있어서,
    상기 반도체 디바이스에 접속된 외부 저장 디바이스로부터 상기 복수의 테스트 데이터를 취득하고, 상기 저장 회로에 상기 복수의 테스트 데이터를 저장하는 테스트 데이터 취득 회로
    를 추가로 포함하는 반도체 디바이스.
  12. 제1항에 있어서,
    상기 반도체 디바이스는 복수의 테스트될 회로를 포함하고,
    상기 복수의 테스트될 회로 각각은 상기 스캔 테스트를 수행하기 위한 스캔 체인을 갖고, 상기 제2 클록 신호에 동기하여 스캔 시프트 동작을 수행함으로써, 상기 테스트 제어 회로가 판독한 상기 테스트 데이터를 상기 스캔 체인으로 스캔 인하고,
    상기 반도체 디바이스는, 상기 FIFO로부터 판독된 상기 테스트 데이터가 입력될 회로로서, 상기 복수의 테스트될 회로로부터, 상기 테스트 제어 회로에 의해 지정된 테스트될 회로를 선택하는 입력 선택 회로를 추가로 포함하는 반도체 디바이스.
  13. 제12항에 있어서,
    상기 복수의 테스트될 회로 각각은, 상기 테스트 데이터를 스캔 인하는 것에 추가하여, 상기 스캔 체인에 저장된 테스트 결과 데이터를 스캔 아웃하고,
    상기 반도체 디바이스는,
    상기 스캔 체인으로부터 스캔 아웃된 상기 테스트 결과 데이터가 입력되는 테스트 결과 처리 회로, 및
    상기 테스트 결과 데이터를 상기 테스트 결과 처리 회로에 출력할 회로로서, 상기 복수의 테스트될 회로로부터, 상기 테스트 제어 회로에 의해 지정된 테스트될 회로를 선택하는 출력 선택 회로를 추가로 포함하는 반도체 디바이스.
  14. 제1항에 있어서,
    상기 반도체 디바이스는, 복수의 테스트될 회로, 및 상기 복수의 테스트될 회로의 각각의 스캔 테스트를 수행하는 복수의 테스트 제어 회로를 포함하고,
    상기 반도체 디바이스는,
    상기 복수의 테스트될 회로 중, 임의의 2개 이상의 테스트될 회로의 스캔 테스트를 수행하도록 지시하는 테스트 지시 회로, 및
    상기 테스트 지시 회로에 의해 지정된 상기 2개 이상의 테스트될 회로에 대응하는 2개 이상의 테스트 제어 회로에, 상기 스캔 테스트를 수행하도록 지시하는 중재 회로를 추가로 포함하는 반도체 디바이스.
  15. 제1항에 있어서,
    상기 테스트될 회로는 제1 테스트될 회로이고,
    상기 테스트 제어 회로는 제1 테스트 제어 회로이고,
    상기 반도체 디바이스는,
    상기 테스트 데이터 기입 회로에 의한 상기 복수의 테스트 데이터의 상기 FIFO로의 기입과 병렬로, 상기 제1 클록 신호 및 상기 제2 클록 신호와 동기하지 않고, 제3 클록 신호에 동기하여, 상기 FIFO에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 제2 테스트될 회로의 스캔 테스트를 수행하는 제2 테스트 제어 회로, 및
    상기 스캔 테스트를 수행하기 위한 테스트 제어 회로로서, 상기 제1 테스트 제어 회로 및 상기 제2 테스트 제어 회로 중 어느 하나를 선택하는 선택 회로를 추가로 포함하는 반도체 디바이스.
  16. 제15항에 있어서,
    상기 FIFO가 비어있는지 여부를 판정하는 제1 엠프티 판정 회로 및 제2 엠프티 판정 회로
    를 추가로 포함하며,
    상기 제1 엠프티 판정 회로가 상기 FIFO가 비어 있지 않다고 판정하는 경우에, 상기 제1 테스트 제어 회로는 상기 FIFO로부터의 테스트 데이터의 판독을 허용하고,
    상기 제2 엠프티 판정 회로가 상기 FIFO가 비어 있지 않다고 판정하는 경우에, 상기 제2 테스트 제어 회로는 상기 FIFO로부터의 테스트 데이터의 판독을 허용하고,
    상기 선택 회로는, 상기 FIFO가 비어있는지 여부를 판정하기 위한 엠프티 판정 회로로서, 상기 제1 엠프티 판정 회로 및 상기 제2 엠프티 판정 회로 중 어느 하나를 선택함으로써, 상기 제1 테스트 제어 회로 및 상기 제2 테스트 제어 회로 중 하나로 하여금 상기 스캔 테스트를 수행하도록 야기하는 반도체 디바이스.
  17. 스캔 테스트 방법으로서,
    제1 클록 신호에 동기하여, 복수의 테스트 데이터를 순차적으로 FIFO로 기입하는 단계; 및
    상기 복수의 테스트 데이터의 상기 FIFO로의 기입과 병렬로, 상기 제1 클록 신호와 동기하지 않고, 제2 클록 신호에 동기하여, 상기 FIFO에 저장된 복수의 테스트 데이터를 순차적으로 판독하고, 테스트될 회로의 스캔 테스트를 수행하는 단계
    를 포함하는 스캔 테스트 방법.
KR1020177027813A 2015-04-16 2015-04-16 반도체 디바이스 및 스캔 테스트 방법 KR20170137733A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/002100 WO2016166780A1 (ja) 2015-04-16 2015-04-16 半導体装置及びスキャンテスト方法

Publications (1)

Publication Number Publication Date
KR20170137733A true KR20170137733A (ko) 2017-12-13

Family

ID=57126620

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177027813A KR20170137733A (ko) 2015-04-16 2015-04-16 반도체 디바이스 및 스캔 테스트 방법

Country Status (7)

Country Link
US (1) US10295597B2 (ko)
EP (1) EP3287799B1 (ko)
JP (1) JP6424271B2 (ko)
KR (1) KR20170137733A (ko)
CN (1) CN107430166B (ko)
TW (1) TW201704762A (ko)
WO (1) WO2016166780A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10281525B2 (en) * 2015-06-18 2019-05-07 Renesas Electronics Corporation Semiconductor device and diagnostic test method for both single-point and latent faults using first and second scan tests
US11196587B2 (en) 2016-11-23 2021-12-07 DeGirum Corporation Permutated ring network
JP6920836B2 (ja) * 2017-03-14 2021-08-18 エイブリック株式会社 半導体装置
US10838835B2 (en) * 2017-12-29 2020-11-17 Intel Corporation Scheduling periodic CPU core diagnostics within an operating system during run-time
KR102453710B1 (ko) * 2018-02-12 2022-10-11 삼성전자주식회사 반도체 장치
US10613918B2 (en) * 2018-02-13 2020-04-07 Nxp B.V. Data register monitoring
US10476656B2 (en) * 2018-04-13 2019-11-12 DeGirum Corporation System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization
JP7147372B2 (ja) * 2018-08-27 2022-10-05 富士通株式会社 半導体装置及び半導体装置の試験方法
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
US10691632B1 (en) 2019-03-14 2020-06-23 DeGirum Corporation Permutated ring network interconnected computing architecture
CN112305400B (zh) * 2020-01-04 2023-09-29 成都华微电子科技股份有限公司 一种参数快速扫描测试装置和方法
TWI732562B (zh) * 2020-05-25 2021-07-01 創惟科技股份有限公司 一種讀取資料的方法和資料讀取裝置
TWI748493B (zh) * 2020-06-01 2021-12-01 瑞昱半導體股份有限公司 掃描測試裝置與掃描測試方法
JP2023137993A (ja) 2022-03-18 2023-09-29 キオクシア株式会社 メモリテスタ及びメモリテスタを用いたテスト方法
CN117093430B (zh) * 2023-10-11 2024-01-26 飞腾信息技术有限公司 一种测试方法、装置、计算设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2723957B2 (ja) 1989-03-20 1998-03-09 富士通株式会社 半導体集積回路装置
JP2000321331A (ja) 1999-05-10 2000-11-24 Sumitomo Metal Ind Ltd スキャンテスト回路及びこれを用いた半導体集積回路
DE60100060T2 (de) * 2001-03-31 2003-05-08 Agilent Technologies Inc Synchronisation eines Datenstromes
US7574635B1 (en) * 2004-12-23 2009-08-11 Xilinx, Inc. Circuit for and method of testing a memory device
US7555690B1 (en) 2004-12-23 2009-06-30 Xilinx, Inc. Device for and method of coupling test signals to a device under test
JP2008530549A (ja) 2005-02-11 2008-08-07 エヌエックスピー ビー ヴィ 複数のクロック領域を有する集積回路のテスト方法
US7366803B1 (en) * 2005-02-23 2008-04-29 Xilinx, Inc. Integrated circuit for buffering data by removing idle blocks to create a modified data stream when memory device is not near empty
US7689897B2 (en) * 2005-05-19 2010-03-30 Freescale Semiconductor, Inc. Method and device for high speed testing of an integrated circuit
EP1994419B1 (en) * 2006-02-17 2013-11-06 Mentor Graphics Corporation Multi-stage test response compactors
US7478300B2 (en) * 2006-04-28 2009-01-13 International Business Machines Corporation Method for testing functional boundary logic at asynchronous clock boundaries of an integrated circuit device
JP5579972B2 (ja) * 2008-08-01 2014-08-27 ピーエスフォー ルクスコ エスエイアールエル 半導体記憶装置及び半導体記憶装置のテスト方法
US8793095B2 (en) * 2011-03-09 2014-07-29 Intel Corporation Functional fabric-based test controller for functional and structural test and debug
CN102621483B (zh) * 2012-03-27 2014-04-16 中国人民解放军国防科学技术大学 多链路并行边界扫描测试装置及方法
US8924801B2 (en) * 2013-02-14 2014-12-30 Lsi Corporation At-speed scan testing of interface functional logic of an embedded memory or other circuit core

Also Published As

Publication number Publication date
CN107430166A (zh) 2017-12-01
US10295597B2 (en) 2019-05-21
TW201704762A (zh) 2017-02-01
EP3287799B1 (en) 2022-11-02
EP3287799A1 (en) 2018-02-28
JPWO2016166780A1 (ja) 2017-11-02
EP3287799A4 (en) 2018-11-14
CN107430166B (zh) 2020-01-10
JP6424271B2 (ja) 2018-11-14
US20180059183A1 (en) 2018-03-01
WO2016166780A1 (ja) 2016-10-20

Similar Documents

Publication Publication Date Title
KR20170137733A (ko) 반도체 디바이스 및 스캔 테스트 방법
US8887019B2 (en) Method and system for providing efficient on-product clock generation for domains compatible with compression
JP4751216B2 (ja) 半導体集積回路及びその設計装置
JP2009222644A (ja) 半導体集積回路、及び設計自動化システム
KR100706240B1 (ko) 하나의 테스트 핀을 사용하여 테스트 할 수 있는 시스템온 칩 및 테스트 방법
EP3129798B1 (en) Reset scheme for scan chains with asynchronous reset signals
JP2016538538A (ja) エッジステアリングを備えた自動試験システム
US20160011258A1 (en) Replacement method for scan cell of integrated circuit, skewable scan cell and integrated circuit
US20120017130A1 (en) Circuit for testing integrated circuits
JP2014185981A (ja) 半導体集積回路および半導体集積回路の自己テスト方法
Pomeranz Generation of multi-cycle broadside tests
US11397841B2 (en) Semiconductor integrated circuit, circuit designing apparatus, and circuit designing method
US9366724B1 (en) Scan testing with staggered clocks
JP2014202532A (ja) ラッチ回路、スキャンテスト対象回路、半導体集積回路、及びラッチ回路の制御方法
JP5112792B2 (ja) 同期処理システム及び半導体集積回路
US6202185B1 (en) Methods and apparatus for facilitating scan testing of circuitry
KR102225314B1 (ko) 반도체 장치 및 동작 방법
US10389367B2 (en) Semiconductor circuit
JP2013036960A (ja) 遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法
US20240143465A1 (en) Semiconductor device and startup control method for semiconductor device
JP2624169B2 (ja) スキャンパスを有する論理集積回路
JP2013088400A (ja) 半導体集積回路の検査方法および半導体集積回路
US8321730B2 (en) Scan architecture and design methodology yielding significant reduction in scan area and power overhead
JP5453981B2 (ja) Lsi、及びそのテストデータ設定方法
JP5949410B2 (ja) 半導体装置