KR20210116604A - 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비 - Google Patents

온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비 Download PDF

Info

Publication number
KR20210116604A
KR20210116604A KR1020217026464A KR20217026464A KR20210116604A KR 20210116604 A KR20210116604 A KR 20210116604A KR 1020217026464 A KR1020217026464 A KR 1020217026464A KR 20217026464 A KR20217026464 A KR 20217026464A KR 20210116604 A KR20210116604 A KR 20210116604A
Authority
KR
South Korea
Prior art keywords
test
chip
device under
automated
interface
Prior art date
Application number
KR1020217026464A
Other languages
English (en)
Other versions
KR102604010B1 (ko
Inventor
올라프 포페
클라우스-디에테르 힐리게스
Original Assignee
주식회사 아도반테스토
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아도반테스토 filed Critical 주식회사 아도반테스토
Publication of KR20210116604A publication Critical patent/KR20210116604A/ko
Application granted granted Critical
Publication of KR102604010B1 publication Critical patent/KR102604010B1/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/31724Test controller, e.g. BIST state machine
    • 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/31712Input or output 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/31712Input or output aspects
    • G01R31/31713Input or output interfaces for test, e.g. test pins, buffers
    • 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/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • 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/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31905Interface with the device under test [DUT], e.g. arrangements between the test head and the DUT, mechanical aspects, fixture
    • 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/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture
    • 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/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31908Tester set-up, e.g. configuring the tester to the device under test [DUT], down loading test patterns
    • 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
    • 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/31926Routing signals to or from the device under test [DUT], e.g. switch matrix, pin multiplexing
    • 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
    • G01R31/31935Storing data, e.g. failure memory
    • 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/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Abstract

테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비는 온-칩-시스템 테스트 제어기를 포함한다. 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스와 통신하도록 구성된 적어도 하나의 디버그 인터페이스 또는 제어 인터페이스를 포함한다. 온-칩-시스템 테스트 제어기는 선택적으로 테스트 대상 디바이스와 통신하도록 구성된 적어도 하나의 고 대역폭 인터페이스를 포함한다. 온-칩-시스템 테스트 제어기는 시스템-온-칩인 테스트 대상 디바이스의 테스트를 제어하도록 구성된다.

Description

온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비
본 발명에 따른 실시예는 자동 테스트 장비를 생성한다.
일반적으로, 본 발명에 따른 실시예는 온-칩-시스템 테스트를 위한 효율적인 테스트 환경을 생성한다.
본 발명에 따른 다른 실시예는 온-칩-시스템 테스트를 생성한다.
이하에서는 본 발명의 실시예가 사용될 수 있는 몇몇 기술 분야가 설명될 것이다.
최근, 시스템-온-칩(systems-on-a-chip: SOC), 시스템-인-패키지(systems-in-a-package: SIT) 또는 적어도 하나의 통합형 프로세서를 갖는 모듈의 테스트에 대한 요구가 증가하고 있다. 이하의 개시는 단지 "SOC" 또는 "DUT"만을 열거하지만, 패키지에서의 또는 (서브-)시스템을 구현하는 임의의 종류의 모듈 상에서의 더 높은 집적 레벨에 적용가능함에 유의해야 한다.
이하에서는 일부 시스템-온-칩(SoC 또는 SOC) 경향이 설명될 것이다. 최근, 중앙 처리 유닛 코어(CPU 코어)는 어디에서나 존재하는 경향이 있다. 예를 들어, ARM CPU 코어를 갖는 대략 170억 개의 유닛이 지난 해에 출하되었음에 유의해야 한다. 또한, 순수 하드웨어 설계는 하드웨어/소프트웨어 공동-설계로 변경되는 경향이 있다.
또한, IP 자원은 널리 퍼지는 경향이 있다. 이는, 예를 들어, 새로운 프로세스 노드 상에서의 매우 높은 통합을 가능하게 한다. 또한, 이러한 경향을 지원하기 위해, 예를 들어 공통 온-칩 상호접속 아키텍처가 수립된다. 예로서, 이들 상호접속에 널리 사용되는 표준은 ARM에 대한 AMBA이다.
또한, 모바일 애플리케이션은 진보된 전력 관리 기술을 구동하는 경향이 있다. 예를 들어, 최적의 클록 레이트 및 공급 전압에서 코어를 실행하는 것이 바람직하다. 또한, 클록 범위 및 공급 전압을 동적으로 변경하는 것이 바람직하다. 또한, 유휴 코어를 동적으로 스위치 오프하는 것이 바람직하다.
또한, 멀티칩 모듈 제품의 수가 증가되는 경향이 있다. 예를 들어, 모듈 인터페이스 상의 감소된 핀 카운트는 인쇄 회로 기판 설계(PCB 설계)를 단순화한다. 또한, 예로서, 2½D 및 3D 패키징 기술은 모바일 애플리케이션에 대한 더 작은 폼 팩터를 가능하게 한다.
이하에서는 전형적인 SoC의 구조가 간략하게 설명될 것이다. 이러한 시스템-온-칩은 예를 들어 본 명세서에 개시된 개념을 사용하여 테스트될 수 있다는 점에 유의해야 한다.
도 4는 시스템-온-칩의 개략적 블록도를 도시한다. 시스템은 그 전체가 400으로 표시된다. 이 시스템은, 예를 들어, 중앙 처리 유닛 코어(CPU 코어)(410), SRAM(static random access memory)(404), L2 캐시(408), NVRAM(non-volatile random access memory)(412) 및 판독 전용 메모리(416)를 포함한다. 예를 들어, CPU 코어(410), SRAM, L2 캐시, NVRAM 및 ROM은 모두 비동기식 애플리케이션 상호접속부(420)에 결합될 수 있다.
또한, 시스템은 디버그/DFT(design for test) 액세스 블록(430), 주변 블록(440) 및 코프로세서(450)를 포함할 수 있다. 예를 들어, 주변 블록(440)과 코프로세서(450)는 또한 비동기식 애플리케이션 상호접속부(420)에 의해 결합될 수 있다.
또한, 디버그/DFT 액세스 블록(430)은 비동기식 애플리케이션 상호접속부(420)에 또한 결합되어 비동기식 애플리케이션 상호접속부에 접속된 블록들 중 임의의 블록에 데이터를 전송할 수 있음에 유의해야 한다.
더 나아가, CPU 코어(410) 및 디버그/DFT 액세스 블록(430)은 또한 비동기식 디버그 상호접속부(460)에 결합될 수 있다. 또한, 주변 블록(440) 및 코프로세서(450)는 선택적으로 비동기식 디버그 상호접속부(460)에 결합될 수 있다.
디버그/DFT 액세스 블록(430)은 예를 들어 디버그 액세스를 위한 전용 입력/출력(I/O)에 결합될 수 있다. 디버그 액세스를 위한 전용 입력/출력은 예를 들어 JTAG 인터페이스 또는 SWD(serial-wire debug) 인터페이스일 수 있다.
또한, 시스템(400)은 선택적으로, SoC(400)의 어느 입력/출력 라인이 SoC(400)의 패키지의 어느 핀에 접속되는지를 결정하도록 구성될 수 있는 입력/출력 멀티플렉서(470)를 포함한다. 예를 들어, 시스템(400)은 저속 디지털, 스캔(예컨대, 레지스터를 판독 및/또는 설정하기 위한 스캔 체인) 및 트레이스 출력을 위한 공유 입력/출력을 포함할 수 있다. 그러나, 디버그 액세스를 위한 전용 입력/출력이 존재할 수 있고, 아날로그 신호, 무선 주파수(RF) 신호, 및/또는 하나 이상의 주변 블록(440)에 의해 제공되고/되거나 하나 이상의 주변 블록(445)에 의해 수신되는 고속 디지털 신호를 위한 전용 입력/출력이 또한 존재할 수 있음에 유의해야 한다.
또한, I/O 멀티플렉서(470)는 예를 들어 디버그/DFT 액세스 블록(430)과 결합될 수 있는데, 여기서 디버그/DFT 액세스 블록(430)은 예를 들어 I/O 멀티플렉서의 기능을 제어할 수 있음에 유의해야 한다. 그러나, 디버그/DFT 액세스 블록(430)으로부터 또는 그로의 하나 이상의 신호의 라우팅은 또한 I/O 멀티플렉서(470)에 의해 결정될 수 있다.
또한, SoC의 블록들 중 하나 이상 내의 신호들(예컨대, 레지스터 콘텐츠), 예를 들어, CPU 코어(410) 내의 신호, 하나 이상의 주변 블록(440) 내의 신호 및 하나 이상의 코프로세서(450) 내의 신호에 대한 스캔 액세스가 존재할 수 있음에 유의해야 한다. 스캔 액세스는, 예를 들어, 위 블록들에서 신호(예컨대, 레지스터 콘텐츠)를 설정하는 것 및/또는 위 블록들로부터 신호(예컨대, 레지스터 콘텐츠)를 판독하는 것을 허용할 수 있다. 스캔 액세스는, 예를 들어, 디버그/DFT 액세스 블록(430)에 의해 제어될 수 있거나, 대안적으로 하나 이상의 다른 신호에 의해 제어될 수 있다.
그러나, SoC(400)는 단지 예로서 고려되어야 함에 유의해야 한다.
도 5는 전형적인 모듈의 구조를 도시한다. 즉, 도 5는 본 명세서에서 논의된 개념에 따라 테스트되거나 본 명세서에 개시된 자동 테스트 장비에 의해 테스트될 수 있는 모듈(500)의 개략적 블록도를 도시한다.
모듈(500)은 예를 들어 도 4와 관련하여 설명된 SoC(400)와 유사할 수 있으므로, 동일하거나 대응하는 블록들은 여기서 다시 설명되지 않을 것이다. 오히려, 위에서의 설명이 참조된다.
모듈(500)은, 예를 들어, CPU 코어(510), SRAM(504), L2 캐시(508), 비휘발성 랜덤 액세스 메모리(512), 판독 전용 메모리(516), 비동기식 애플리케이션 상호접속부(520), 디버그/DFT 액세스 블록(530), 하나 이상의 주변 블록(540), 하나 이상의 코프로세서(550) 및 비동기식 디버그 상호접속부(560)을 포함한다. 블록(510, 504, 508, 512, 516, 520, 530, 540, 550, 560)은 블록(410, 404, 408, 412, 416, 420, 430, 440, 450, 460)에 대응할 수 있다.
그러나, 일부 경우에, 모듈(512)은 입력/출력 멀티플렉서를 포함하지 않을 수 있음에 유의해야 한다.
한편, 모듈(500)은 선택적으로 하나 이상의 호스트 인터페이스(580), 하나 이상의 메모리 제어기(584) 및 하나 이상의 플래시 제어기(588)를 포함한다. 예를 들어, 하나 이상의 호스트 인터페이스(580)는 비동기식 애플리케이션 상호접속부(520)와 결합될 수 있고, 예를 들어 (예컨대, PCIe 인터페이스, USB 인터페이스 또는 SDIO 인터페이스와 같은) 모듈의 외부 고 대역폭 인터페이스를 제공할 수 있다. 하나 이상의 메모리 제어기는, 예를 들어 비동기식 애플리케이션 상호접속부(520)와 결합될 수 있고, 또한 동적 랜덤 액세스 메모리(DRAM)와 결합될 수 있다. 따라서, 하나 이상의 메모리 제어기(584)는 CPU 코어에 의한 사용을 위해 비교적 큰 메모리를 제공할 수 있다.
또한, 하나 이상의 플래시 제어기(588)는 비동기식 애플리케이션 상호접속부(520)와 결합될 수 있고, 또한 플래시 메모리(예컨대, NAND 플래시)와 결합될 수 있다. 따라서, CPU 코어(510)는 하나 이상의 플래시 제어기(588)를 통해 플래시 메모리에 액세스할 수 있다.
또한, 하나 이상의 호스트 인터페이스(580), 하나 이상 메모리 제어기(584) 및 하나 이상의 플래시 제어기(588)는 선택적으로 비동기식 디버그 상호접속부(560)에 또한 결합될 수 있는데, 비동기식 디버그 상호접속부(560)는 예를 들어 디버그/DFT 액세스 블록(530)에 의해 제어될 수 있는 위 블록들(580, 584, 588)의 내부 신호(또는 내부 상태)의 설정 또는 디버깅을 허용할 수 있음에 유의해야 한다.
그러나, SOC 테스트 및 검증은 다수의 도전을 야기하는 것이 밝혀졌다.
예를 들어, 비동기 통신 결함은 AC 스캔에 의해 충분히 커버되지 않는다고 밝혀졌다. 오히려, 비동기 통신 채널은 기능적으로 테스트되어야 한다는 것(또는 경우에 따라서는 반드시 테스트되어야 한다는 것)이 밝혀졌다.
또한, 동적 전력 관리 결함도 AC 스캔에 의해 충분히 커버되지 않는다는 것이 또한 밝혀졌다. 결론적으로, 온-칩 전력 관리는 기능적으로(잠재적으로 파라미터 DFT에 의해 지원됨) 테스트되어야 한다(또는 경우에 따라 반드시 테스트되어야 한다).
또한, 복잡성 및 비동기식 구조로 인해, 디바이스 응답은 거동 모델의 도움으로만 평가될 수 있다는 것이 밝혀졌다. 또한, 전통적인 ATE 기능 패턴이 더 이상 작용하지 않는다는 것이 밝혀졌고 그렇게 결론지어졌다.
또한, 결과적으로, 증가하는 커버리지 갭이 존재한다고 밝혀졌다. ATE 테스트는 애플리케이션 환경 및 소프트웨어를 이용하는 시스템 레벨 테스트로 보강된다고 결론지어졌다.
또한, 애플리케이션 환경 및 소프트웨어로 모든 코너 케이스들이 커버되는 것은 아니라는 것이 밝혀졌다. 시스템 레벨 테스트(system level test: SLT) 이후에 커버리지 갭이 여전히 존재한다고 결론지어졌다.
또한, 소프트웨어 버그는 설계 마진에 의해 활성화될 수 있다고 밝혀졌다. 포스트 실리콘 검증(post silicon validation)을 통해 몇 개의 샘플을 실행하는 것은 모든 관련 하드웨어 및 소프트웨어 문제를 발견하기에 충분하지 않다고 결론지어졌다.
결론적으로, 칩 상의 시스템을 테스트하기 위한 개선된 개념에 대한 필요성이 존재한다고 밝혀졌다.
본 발명에 따른 실시예는 테스트 대상 디바이스(예컨대, 시스템-온-칩)를 테스트하기 위한 자동 테스트 장비를 생성하는데, 자동 테스트 장비는 온-칩-시스템 테스트 제어기를 포함한다.
온-칩-시스템 테스트 제어기는 테스트 대상 디바이스와 통신하도록 구성된 적어도 하나의 디버그 인터페이스 또는 제어 인터페이스(예컨대, JTAG, SWD, SPI, I2C, UART)를 포함한다. 온-칩-시스템 테스트 제어기는 반드시는 아니지만 바람직하게는 테스트 대상 디바이스와 통신하도록 구성된 적어도 하나의 고 대역폭 인터페이스(예컨대, USB 또는 PCI)를 포함하고, 온-칩-시스템 테스트 제어기는 시스템-온-칩인 테스트 대상 디바이스(예컨대, 단일 내장형 프로세서를 갖는 다소 간단한 테스트 대상 디바이스, 또는 복잡한 다수-코어 디바이스)의 테스트(예컨대, 프로그램의 업로드, 및/또는 테스트 프로그램의 하나 이상의 부분의 실행, 및/또는 결과 데이터의 획득, 및/또는 디버깅)를 제어하도록 구성된다. 본 발명에 따른 실시예는 내장형 프로세서를 갖는 많은 상이한 타입의 테스트 대상 디바이스의 테스트를 위해 사용될 수 있는데, 이는 내장형 프로세서를 갖는 다소 간단한 디바이스(즉, 간단한 SoC) 및 다수-코어 디바이스(즉, 복잡한 SoC) 모두를 포함한다는 점에 유의해야 한다.
이러한 자동 테스트 장비는, 디버그 인터페이스 또는 제어 인터페이스를 통해 그리고 선택적으로 고 대역폭 인터페이스를 통해 테스트 대상 디바이스와 통신하도록 조정되는 전용 온-칩-시스템 테스트 제어기를 포함하는 자동 테스트 장비를 사용하여, 테스트 노력, 테스트 커버리지 및 테스트 속도 사이의 양호한 절충으로 칩 또는 모듈 상의 시스템이 테스트될 수 있다는 발견에 기초한다(본 발명의 많은 양태는 HSIO 없이 구현될 수 있고 작동될 것이며, 모든 제어는 디버그 인터페이스 및/또는 제어 인터페이스를 통한다는 점에 유의해야 한다).
이러한 전용 온-칩-시스템 테스트 제어기를 가짐으로써, 예를 들어, 종래의 테스터 구성에서 발생할 수 있는 임의의 병목현상을 회피하면서, 테스트 대상 디바이스의 디버그 인터페이스 또는 제어 인터페이스의 능력 및 고 대역폭 인터페이스의 속도 이점 양자를 활용하는 것이 가능하다.
예를 들어, 디버그 인터페이스 또는 제어 인터페이스를 사용하면, 테스트 대상 디바이스 상의 임의의 소프트웨어에 의존하지 않으면서 테스트 대상 디바이스에 (예컨대, CPU 레지스터 콘텐츠 또는 메모리 콘텐츠의) 매우 기본적인 조정을 행하는 것이 가능하다.
대조적으로, 선택적인 고 대역폭 인터페이스는 자동 테스트 장비와 테스트 대상 디바이스 사이의 매우 빠른 데이터 교환을 허용하는데, 일반적으로 테스트 대상 디바이스에서 실행되는 운영 체제 또는 드라이버 소프트웨어가 통신을 지원한다.
따라서, 온-칩-시스템 테스트 제어기를 포함하는 자동 테스트 장비는, 예를 들어 테스트 대상 디바이스의 스캔 체인을 사용하여 수행될 수 있는 기본적인 하드웨어 테스트와, 테스트 대상 디바이스와 자동 테스트 장비 사이에 대량의 데이터의 교환이 존재하는 시스템 레벨 테스트를 효율적으로 수행할 수 있다. 예를 들어, 디버그 인터페이스는 테스트를 구성하고 기본 테스트 흐름을 제어하는 데 사용될 수 있다. 고 대역폭 인터페이스가 없는 간단한 실시예에서, 디버그 인터페이스는 또한, 디버그 인터페이스 또는 제어 인터페이스를 통해 더 큰 테스트 프로그램 및/또는 테스트 데이터 및/또는 테스트 파라미터를 업로드하는데 사용될 수 있다.
그러나, 온-칩-시스템 테스트 제어기가 선택적인 고 대역폭 인터페이스를 더 포함하는 경우, 고 대역폭 인터페이스를 통해 더 큰 테스트 프로그램 및/또는 테스트 데이터가 통신될 수 있고, 이에 의해 테스트 효율을 증가시키고 테스트 시간을 감소시킨다.
여기서, 고 대역폭 인터페이스는, 예를 들어, 디버그 인터페이스 또는 제어 인터페이스의 (최대) 데이터 레이트보다 적어도 10배 더 높은 데이터 레이트를 처리할 수 있고, 이는 일부 경우에 심지어 디버그 인터페이스 또는 제어 인터페이스에 의해 처리되는 (최대) 데이터 레이트에 비해 적어도 100배 더 빠를 수 있다는 점에 유의해야 한다. 그러나, 전용 온-칩-시스템 테스트 제어기는 일반적으로 디버그 인터페이스 또는 제어 인터페이스를 통해 테스트 대상 디바이스에 대한 "전체 액세스"를 여전히 가지면서 문제없이 고 대역폭 인터페이스의 매우 높은 데이터 레이트를 처리하도록 설계된다.
바람직한 실시예에서, 자동 테스트 장비는 디버그 인터페이스 또는 제어 인터페이스 또는 고 대역폭 인터페이스를 테스트 대상 디바이스 인터페이스에 가변적으로 할당하도록 구성된다.
디버그 인터페이스 또는 제어 인터페이스 또는 고 대역폭 인터페이스를 테스트 대상 디바이스 인터페이스에 가변적으로 할당함으로써, 자동 테스트 장비는 임의의 테스트 대상 디바이스 및/또는 임의의 로드 보드(load boards)를 처리하도록 구성될 수 있다. 예를 들어, 자동 테스트 장비는 (예컨대, 테스트 구성 정보의 제어 하에) 디버그 인터페이스 또는 제어 인터페이스를 테스트 대상 디바이스 인터페이스의 상이한 핀들에 가변적으로 할당할 수 있도록 설계될 수 있고, 자동 테스트 장비는 또한 (예컨대, 테스트 구성 정보의 제어 하에) 고 대역폭 인터페이스를 테스트 대상 디바이스의 상이한 핀들에 가변적으로 할당하도록 조정될 수 있다. 따라서, 고도의 유연성이 달성된다.
바람직한 실시예에서, 자동 테스트 장비는 하나 이상의 파라미터 테스트 자원을 테스트 대상 디바이스에 가변적으로 할당하도록 구성된다.
예컨대 온-칩-시스템 테스트 제어기의 제어 하에 하나 이상의 파라미터 테스트 자원을 테스트 대상 디바이스에 가변적으로 할당함으로써, 테스트 커버리지를 상당히 증가시키는 것이 가능하다.
하나 이상의 파라미터 테스트 자원은, 예를 들어, 하나 이상의 조정가능한 디바이스 전원 및/또는 하나 이상의 조정가능한 클록 소스를 포함할 수 있다. 따라서, 매우 넓은 범위의 조건에 걸쳐 테스트 대상 디바이스를 테스트하는 것이 가능하고, 이는 테스트 대상 디바이스의 다수의 결함 또는 문제를 식별하는 것을 허용한다. 더 나아가, 하나 이상의 파라미터 테스트 자원은 또한, 예를 들어 조정 가능한 파라미터를 사용하여 테스트 대상 디바이스에 아날로그 신호 또는 무선 주파수 신호를 제공할 수 있는 신호 생성기를 포함할 수 있다. 따라서, 테스트 대상 디바이스는, 디버그 인터페이스 또는 제어 인터페이스를 사용하고 또한 고 대역폭 인터페이스를 사용하여 테스트 흐름을 제어할 수 있는 온-칩-시스템 테스트 제어기의 제어 하에 상이한 자극으로 테스트될 수 있다.
더 나아가, 하나 이상의 파라미터 테스트 자원은, 테스트 대상 디바이스의 신호 입력 및/또는 테스트 대상 디바이스의 신호 출력 및/또는 테스트 대상 디바이스에 의해 생성된 신호의 아날로그 특성을 특성화할 수 있는 하나 이상의 측정 디바이스를 더 포함할 수 있다. 따라서, 온-칩-시스템 테스트 제어기는, 예를 들어, 테스트 대상 디바이스로의 테스트 프로그램의 업로드, 테스트 대상 디바이스 상에서의 테스트 프로그램의 실행, 및 테스트 대상 디바이스의 동작 조건(예컨대, 공급 전압 또는 클록 주파수 등)의 변화를 제어할 수 있다. 따라서, 테스트 대상 디바이스에 대한 변경된 동작 조건의 영향이 조사될 수 있고, 테스트 대상 디바이스 상에서의 테스트 프로그램의 실행과 동기하여 아날로그(파라미터) 테스트 결과가 획득될 수 있다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는, 운영 체제, 온-칩-시스템 테스트 서비스 소프트웨어, 및 인터페이스를 통해 테스트 대상 디바이스와 통신하는 하나 이상의 드라이버를 포함하는 소프트웨어 스택을 실행하도록 구성된다.
운영 체제, 온-칩-시스템 테스트 서비스 소프트웨어, 및 인터페이스를 통해 테스트 대상 디바이스와 통신하는 드라이버를 사용함으로써, 온-칩-시스템 테스트 제어기는 매우 효율적인 방식으로 가변 요건에 따라 조정될 수 있다. 운영 체제의 사용은 매우 효율적인 소프트웨어 개발을 허용하고, 인터페이스를 통해 테스트 대상 디바이스와 통신하는 드라이버의 사용은 매우 높은 성능을 가져오고, 또한 완전한 소프트웨어 환경을 재설계하지 않으면서 적당한 노력으로 상이한 타입의 인터페이스에 대한 조정을 허용한다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 사용자에 의해 제공된 애플리케이션-특정 루틴(예컨대, 운영 체제를 넘어서고 특정 테스트 대상 디바이스에 따라 조정됨)을 실행하도록 구성된다.
자동 테스트 장비의 사용자에 의해 제공될 수 있는 애플리케이션-특정 루틴의 실행을 허용함으로써, 매우 높은 자유도가 사용자에게 제공될 수 있다. 특히, 사용자는 테스트 대상 디바이스 상에서 실행되는 애플리케이션-특정 루틴뿐만 아니라 온-칩-시스템 테스트 제어기에 의해 실행되는 애플리케이션-특정 루틴도 개발할 수 있다. 따라서, 자동 테스트 장비의 사용자는, 예를 들어 온-칩-시스템 테스트 제어기의 고 대역폭 인터페이스를 사용하여 테스트 대상 디바이스 상에서 실행되는 루틴과 통신하고 온-칩-시스템 테스트 제어기에 의해 실행되는 루틴을 생성할 수 있다. 따라서, 테스트는 상당히 개선될 수 있고, 자동 테스트 장비의 사용자는 온-칩-시스템 테스트 제어기에 의해 제어되는 임의의 하드웨어 자원에 대한 매우 유연한 액세스를 갖는다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 (예컨대, 하나 이상의 테스트 대상 디바이스 인터페이스를 통해) 테스트 대상 디바이스 상에 온-칩-시스템 테스트 환경(예컨대, DUT의 인터페이스에 액세스하기 위한 드라이버를 제공할 수 있는, 하나 이상의 온-칩-시스템 테스트의 실행을 제어하는 소프트웨어)을 로딩하도록 구성된다. 예를 들어, 온-칩-시스템 테스트 환경, 예컨대 온-칩-시스템 테스트 환경을 구현하는 프로그램은, 온-칩-시스템 테스트 제어기의 메모리에 저장된다.
대안적으로 또는 추가적으로, 온-칩-시스템 테스트 제어기는 (예를 들어 하나 이상의 테스트 대상 디바이스 인터페이스를 통해) 테스트 대상 디바이스에 온-칩-시스템 테스트(예컨대, 복수의 테스트 단계 중 하나의 테스트 단계를 수행하기 위한 개별 온-칩-시스템 테스트 프로그램)를 로딩하도록 구성된다. 예를 들어, 온-칩-시스템 테스트, 예컨대 온-칩-시스템 테스트를 구현하는 프로그램은, 온-칩-시스템 테스트 제어기의 메모리에 저장된다.
대안적으로 또는 추가적으로, 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스 상에서 온-칩-시스템 테스트 환경을 초기화하도록 구성된다.
온-칩-시스템 테스트 환경을 테스트 대상 디바이스 상에 로딩함으로써, 온-칩-시스템 테스트 제어기는 테스트를 위해 테스트 대상 디바이스를 구성할 수 있다. 예를 들어, 온-칩-시스템 테스트 환경은 온-칩-시스템 테스트 제어기와 통신하는 소프트웨어일 수 있으며, 이에 따라 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스 상에서의 테스트의 실행에 영향을 미친다. 또한, 온-칩-시스템 테스트 제어기의 메모리로부터의 이러한 온-칩-시스템 테스트 환경의 업로드는 일반적으로 매우 빠르다는 점에 유의해야 하며, 여기서 온-칩-시스템 테스트 환경은 현저한 양의 데이터를 포함할 수 있다는 점에 유의해야 한다. 따라서, 온-칩-시스템 테스트 제어기의 메모리를 직접적으로 사용함으로써, 자동 테스트 장비 내의 병목현상은 특히 다수의 테스트 대상 디바이스를 테스트할 때 회피될 수 있는데, 이는 온-칩-시스템 테스트 제어기가 일반적으로 디버그 인터페이스 또는 제어 인터페이스 및 고 대역폭 인터페이스에 대한 직접적인 액세스를 갖기 때문이다. 따라서, 온-칩-시스템 테스트 제어기는 온-칩-시스템 테스트 환경을 테스트 대상 디바이스에 업로드하기 위해 심지어 고 대역폭 인터페이스를 사용할 수 있다.
결론적으로, 이러한 개념을 이용하여, 다수의 테스트 대상 디바이스의 동시 테스트가 용이하게 되고, 테스트 대상 디바이스와 온-칩-시스템 테스트 제어기 간의 밀접한 협력이 달성될 수 있다.
유사하게, 온-칩-시스템 테스트 제어기의 제어 하에 테스트 대상 디바이스 상에 단일 온-칩-시스템 테스트를 업로드하는 것은 테스트 절차를 미세하게 조정하는 것을 허용한다. 따라서, 온-칩-시스템 테스트 제어기는, 예를 들어, 이전의 테스트 단계가 완료될 때마다 새로운 온-칩-시스템 테스트(즉, 복수의 테스트 단계 중 하나의 테스트 단계를 수행하기 위한 개별 온-칩-시스템 테스트 프로그램) 및 선택적으로 그 테스트 파라미터를 로딩할 수 있다.
온-칩-시스템 테스트는, 선택적으로, 온-칩-시스템 테스트가 이미 로딩되어 있다고 결정할 수 있고, 온-칩-시스템 테스트를 위한 새로운 테스트 파라미터만을 설정할 수도 있다.
선택적으로, 온-칩-시스템 테스트 제어기는 또한 이전의 테스트 결과에 따라 테스트 대상 디바이스 상에 로딩되는 온-칩-시스템 테스트를 동적으로 조정할 수 있는데, 이는 특별히 잘 조정된 테스트를 허용한다.
또한, 온-칩-시스템 테스트 제어기는, 테스트 대상 디바이스 상에서 온-칩-시스템의 테스트 환경을 초기화함으로써 테스트를 위해 테스트 대상 디바이스를 준비시키고 테스트 플로우를 구성할 수 있다. 또한, 온- 칩 테스트 제어기는, 온-칩-시스템 테스트 환경을 초기화함으로써, 예를 들어 다수의 테스트 대상 디바이스의 테스트를 동기화하기 위해 예를 들어 테스트들의 타이밍을 제어할 수 있다.
자동 테스트 장비의 바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 온-칩-시스템 테스트를 파라미터화하는 파라미터 세트를 테스트 대상 디바이스 상에 업로드하도록 구성된다. 예를 들어, 온-칩-시스템 테스트 제어기는 또한, 새롭게 업로드된 파라미터 세트를 사용하여 (다른 파라미터 세트를 사용하기 전에 테스트 대상 디바이스에 의해 실행되었던) 이전에 업로드된 온-칩-시스템 테스트의 재실행을 개시하여 서로 다른 파라미터 세트를 갖는 온-칩-시스템 테스트의 실행을 야기하도록 구성될 수 있다.
따라서, 전체 온-칩-시스템 테스트를 테스트 대상 디바이스에 여러 번 업로드하지 않으면서, 서로 다른 파라미터 세트를 갖는 온-칩-시스템 테스트를 여러 번 실행할 수 있다. 오히려, 온-칩-시스템 테스트의 프로그램 코드 부분은 테스트 대상 디바이스에 한 번만 업로드되고, 온-칩-시스템 테스트를 실행한 후에 온-칩-시스템 테스트의 실행을 파라미터화하는 데 사용되는 파라미터 세트가 업데이트된다. 그러나, 파라미터 세트를 구성하는 데이터(예컨대, 파라미터 값)의 양은 일반적으로 온-칩-시스템 테스트 자체를 구성하는 데이터(예컨대, 프로그램 코드)의 양보다 훨씬 더 작다. 또한, 온-칩-시스템 테스트를 파라미터화하는 파라미터 세트는 미리 결정될 수 있거나(예컨대, 테스트 흐름에 의해 미리 결정될 수 있거나), 또는 테스트 대상 디바이스로부터의 결과 데이터에 응답하여 동적으로 조정될 수 있다는 점에 유의해야 한다. 따라서, 일반적인 절차는 온-칩-시스템 테스트를 테스트 대상 디바이스에 업로드하는 것, 제 1 파라미터 세트를 테스트 대상 디바이스에 업로드하는 것, 제 1 파라미터 세트를 사용하여 테스트 대상 디바이스 상에서 온-칩-시스템 테스트를 실행하는 것, 온-칩-시스템 테스트 제어기에 결과 정보를 제공하는 것, 제 2 파라미터 세트(파라미터들의 제 2 세트)를 테스트 대상 디바이스에 업로드하는 것, 제 2 파라미터 세트를 사용하여 (온-칩-시스템의 테스트의 재업로드 없이) 테스트 대상 디바이스 상에서 온-칩-시스템 테스트를 재실행하는 것, 온-칩-시스템 테스트 제어기에 결과 정보를 다시 제공하는 것을 포함할 수 있다.
예를 들어, 파라미터 세트는, 온-칩-시스템 테스트의 실행 시에 처리될 데이터의 양, 및/또는 동시에 활성화될 테스트 대상 디바이스 구성요소의 수(이는 테스트 대상 디바이스에 적용된 스트레스를 정의함), 및/또는 인터페이스를 통해 전달된 데이터의 데이터 레이트, 및/또는 아날로그 인터페이스의 파라미터(예컨대, 고주파 인터페이스의 주파수 파라미터 또는 변조 파라미터), 및/또는 온-칩-시스템 테스트 실행 동안 생성된 스트레스를 묘사하는 다른 파라미터, 및/또는 온-칩-시스템 테스트를 실행하는 동안 DUT 구성요소의 테스트 커버리지를 묘사하는 파라미터 등을 정의하는 하나 이상의 파라미터를 포함할 수 있다.
결론적으로, 본 발명의 일 양태에 따르면, DUT 상에 온-칩-시스템 테스트 자체를 로딩하는 것과 독립적으로 테스트 파라미터를 로딩하는 것이 가능하다: 예컨대, OCST(예컨대, 이전에 로딩된 OCST)는 로딩된 채로 유지될 수 있지만, 파라미터는 그 다음 실행(예컨대, 재실행) 전에 변경될 수 있다. 이는 더 효율적인 것으로, 예를 들어 OCST를 특성화할 때 일반적으로 행해진다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 (예컨대, 온-칩-시스템 테스트 환경과의 통신을 사용하여, 또는 디버그 인터페이스를 사용하여) 테스트 대상 디바이스 상에 로딩된 온-칩-시스템 테스트를 시작하도록 구성된다.
온-칩-시스템 테스트를 시작함으로써, 온-칩-시스템 테스트 제어기는 테스트 플로우에 대한 고도의 제어를 실행할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는 디버그 인터페이스(또는 제어 인터페이스)를 사용하여 또는 심지어 고 대역폭 인터페이스를 통한 데이터 전송을 사용하여 온-칩-시스템 테스트를 시작할 수 있다. 따라서, 온-칩-시스템 테스트 제어기는 다수의 테스트 대상 디바이스의 테스트의 실행을 조정할 수 있고, 온-칩-시스템 테스트 제어기는 또한 다른 테스터 자원을 갖는 테스트 대상 디바이스 상에서의 온-칩-시스템의 테스트의 실행을 조정할 수 있다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 테스트 시퀀싱 언어(예컨대 범용 테스트 시퀀스 언어)의 전체 테스트 실행 프로그램(예컨대 사용자에 의해 프로그래밍됨)에 기초하여 테스트 대상 디바이스의 테스트를 제어하도록 구성된다.
전체 테스트 실행 프로그램에 기초하여 테스트 대상 디바이스의 테스트를 제어함으로써, 온-칩-시스템 제어기는 예를 들어 다수의 온-칩-시스템 테스트의 실행을 가이드할 수 있는데, 예를 들어, 이전 테스트가 실패한 경우 추가 테스트를 피하기 위해 특정 중단 기준이 평가될 수 있다. 또한, 테스트 시퀀싱 언어의 전체 테스트 실행 프로그램을 처리함으로써, 전체 테스트 플로우의 구성에서 고도의 유연성이 가능하다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는, 하나 이상의 아날로그 테스트 자원(예컨대, 테스트 대상 디바이스 전원 및/또는 아날로그 측정 유닛)을, 예컨대 온-칩-시스템 테스트 제어기 및 하나 이상의 아날로그 테스트 자원에 종속되는(또는 계층적으로 온-칩-시스템 테스트 제어기 및 하나 이상의 아날로그 테스트 자원 위에 있는) 상위 레벨 소프트웨어와의 통신 없이 예컨대 직접 제어하도록 구성된다.
대안적으로 또는 추가적으로, 온-칩-시스템 테스트 제어기는, 인터페이스에 추가하여, 하나 이상의 디지털 테스트 자원(예컨대, 디지털 출력 또는 디지털 입력)을, 예컨대 온-칩-시스템 테스트 제어기 및 하나 이상의 디지털 테스트 자원에 종속되는(또는 계층적으로 온-칩-시스템 테스트 제어기 및 하나 이상의 디지털 테스트 자원 위에 있는) 상위 레벨 소프트웨어와의 통신 없이 예컨대 직접 제어하도록 구성된다.
대안적으로 또는 추가적으로, 온-칩-시스템 테스트 제어기는, 하나 이상의 아날로그 테스트 자원(예컨대, 테스트 대상 디바이스 전원 및/또는 아날로그 측정 유닛)을, 예컨대 온-칩-시스템 테스트 제어기 및 하나 이상의 아날로그 테스트 자원에 종속되는(또는 계층적으로 온-칩-시스템 테스트 제어기 및 하나 이상의 아날로그 테스트 자원 위에 있는) 상위 레벨 소프트웨어와의 통신 없이 예컨대 직접 동기화하도록 구성된다.
대안적으로 또는 추가적으로, 온-칩-시스템 테스트 제어기는, 인터페이스에 추가하여, 하나 이상의 디지털 테스트 자원(예컨대, 디지털 출력 또는 디지털 입력)을, 예컨대 온-칩-시스템 테스트 제어기 및 하나 이상의 디지털 테스트 자원에 종속되는(또는 계층적으로 온-칩-시스템 테스트 제어기 및 하나 이상의 디지털 테스트 자원 위에 있는) 상위 레벨 소프트웨어와의 통신 없이 예컨대 직접 동기화하도록 구성된다.
하나 이상의 아날로그 테스트 자원 또는 하나 이상의 디지털 테스트 자원을 상위 레벨 소프트웨어와의 통신 없이 직접 제어함으로써 병목현상이 방지될 수 있는데, 이는 다수의 테스트 대상 디바이스가 동시에 테스트되는 경우에 특히 중요하다. 따라서, 온-칩-시스템 테스트 제어기는 (예컨대, 전체 테스트 프로세스를 제어하는 워크스테이션 상에서 실행되는) 상위 레벨 소프트웨어와의 상호작용 없이 테스트 흐름의 적어도 일부를 실행할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는, 온-칩-시스템 테스트 제어기에 "전용"되거나 상이한 온-칩-테스트 제어기들 간에 공유되지 않는 접속 자원을 사용하여 하나 이상의 디지털 테스트 자원 및/또는 하나 이상의 아날로그 테스트 자원에 결합될 수 있다. 대안적으로, 온-칩-시스템 테스트 제어기는, 하나 이상의 다른 온-칩-시스템 테스트 제어기와 공유되는 접속 자원을 통해 하나 이상의 아날로그 테스트 자원 및/또는 하나 이상의 디지털 테스트 자원과 결합될 수 있지만, 이는 상위 (계층) 레벨 구성요소 또는 상위 (계층) 레벨 소프트웨어를 수반하지 않으면서 온-칩-시스템 테스트 제어기의 제어 하에 사용될 수 있다. 결과적으로, 테스트 속도가 증가될 수 있고 병목현상이 존재하는 것이 회피될 수 있다.
유사하게, 하나 이상의 디지털 테스트 자원 및/또는 하나 이상의 아날로그 테스트 자원을 동기화하도록 구성된 온-칩-시스템 테스트 제어기를 가짐으로써, 테스트 대상 디바이스의 완전한 테스트가 높은 타이밍 정확도로 수행될 수 있다. 특히, 하나 이상의 아날로그 테스트 자원 및/또는 하나 이상의 디지털 테스트 자원을 동기화하는 기능을 가짐으로써, 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스의 테스트를 수행할 수 있는데, 여기서 (하나 이상의 아날로그 테스트 자원 및/또는 하나 이상의 디지털 테스트 자원에 의해 수행될 수 있는) 아날로그 품질의 생성 또는 아날로그 양의 측정 또는 디지털 자극 신호의 생성 또는 디지털 출력 신호의 캡처의 조정은, 온-칩-시스템 테스트 제어기에 의해 또한 (적어도 부분적으로) 제어되는 하나 이상의 온-칩-시스템 테스트의 실행과 밀접하게 시간 동기화될 수 있다. 즉, 온-칩-시스템 테스트 제어기는, 테스트 대상 디바이스 상에서의 프로그램 실행 및 추가 테스트 자원(아날로그 테스트 자원 및/또는 디지털 테스트 자원)을 둘 다 정확하게 동기화할 수 있으며 개별 테스트 대상 디바이스에 근접한 분산형 제어 엔티티로서 동작할 수 있다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 하나 이상의 아날로그 테스트 자원 및/또는 하나 이상의 디지털 테스트 자원을 제어하기 위한 로컬 통신 인터페이스를 포함한다. 대안적으로 또는 추가적으로, 온-칩-시스템 테스트 제어기는 하나 이상의 아날로그 테스트 자원 및/또는 하나 이상의 디지털 테스트 자원을 동기화하기 위한 로컬 동기화 인터페이스를 포함한다(예컨대, 온-칩-시스템 테스트 제어기를 아날로그 테스트 자원 및/또는 디지털 테스트 자원에 직접 접속함).
예를 들어 임의의 다른 온-칩-테스트 제어기와 공유되지 않는 로컬 통신 인터페이스 및/또는 로컬 동기화 인터페이스를 사용함으로써, 높은 타이밍 정확도가 보장될 수 있고, 서로 다른 테스트 대상 디바이스들을 동시에 테스트할 수 있는 서로 다른 온-칩-시스템 테스트 제어기들 사이의 영향이 회피될 수 있다. 결과적으로, 고도의 타이밍 정확도 및 재현성이 달성될 수 있다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는, 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트로부터 커맨드 및/또는 데이터를 수신하고, 수신된 커맨드 및/또는 수신된 데이터에 따라 테스트 실행 흐름을 조정하도록 구성된다.
테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트로부터의 커맨드 및/또는 데이터에 따라 테스트 실행 흐름을 조정함으로써 테스트 프로그램의 개발이 용이하게 될 수 있는데, 이는 테스트 흐름에 대한 제어가 테스트 대상 디바이스 상에서 실행되는 프로그램에 적어도 어느 정도 포함될 수 있기 때문이다. 한편, 테스트 흐름은 또한 테스트 대상 디바이스 상에서 실행되는 프로그램의 비결정적 실행에 따라 동적으로 조정될 수 있다. 특히, 테스트 프로그램을 실행하는 시스템-온-칩을 테스트할 때, 테스트 흐름의 타이밍은 더 이상 쉽게 예측할 수 없다. 온-칩-시스템 테스트 제어기에 커맨드를 제공하는 것에 의해 테스트 플로우에 대한 일부 제어를 가질 가능성을 테스트 대상 디바이스에 제공함으로써, 자동 테스트 장비가 테스트 대상 디바이스 상의 프로그램의 비결정적 실행에 따라 조정되는 것이 달성될 수 있다. 결과적으로, 자동 테스트 장비는 정확한 시간에 적절한 입력 신호를 테스트 대상 디바이스에 제공할 수 있고/있거나 정확한 시간에 테스트 대상 디바이스에 의해 제공된 신호의 측정을 수행할 수 있다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는, 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트로부터 커맨드 및/또는 데이터를 수신하고, 수신된 커맨드 및/또는 수신된 데이터에 따라 테스트 자원(예컨대, 하나 이상의 공급 전압과 같은 아날로그 양, 또는 테스트 대상 디바이스에 제공된 하나 이상의 자극 신호, 또는 테스트 대상 디바이스에 의해 제공된 신호를 판단하기 위한 하나 이상의 평가 파라미터(예컨대, 임계값))을 조정하록 구성된다.
(테스트 프로그램, 즉, 온-칩-시스템 테스트를 실행 중일 수 있는) 테스트 대상 디바이스로부터의 커맨드 및/또는 데이터의 수신에 응답하여 테스트 자원을 조정함으로써, 테스트 대상 디바이스 상의 프로그램의 일반적으로 비결정적인 실행과 자동 테스트 장비의 활동(예컨대, 공급 전압 또는 자극 신호의 제공 또는 테스트 대상 디바이스로부터의 신호의 평가) 사이의 양호한 조화(coordination)가 달성될 수 있다.
바람직한 실시예에서, 온-칩-시스템 테스트 제어기는 내장형 소프트웨어 환경을 제공하도록 구성된 중앙 유닛(예컨대, 시스템 SOC)와, 디버그 인터페이스 및/또는 제어 인터페이스 및/또는 고 대역폭 인터페이스를 구현하는 하나 이상의 인터페이스 블록을 포함한다.
온-칩-시스템 테스트 제어기는, 테스트 대상 디바이스에 하나 이상의 신호를 제공하고 테스트 대상 디바이스로부터 하나 이상의 신호를 수신하기 위한 프론트-엔드 전자장치를 포함한다.
온-칩-시스템 테스트 제어기는 또한, 자동 테스트 장비의 하나 이상의 다른 구성요소와 통신하고/하거나 자동 테스트 장비의 하나 이상의 다른 구성요소와 동기화하도록 구성된 하나 이상의 백-엔드 인터페이스를 포함한다.
온-칩-시스템 테스트 제어기 상에 중앙 유닛, 프론트-엔드 전자장치 및 하나 이상의 백-엔드 인터페이스를 제공함으로써, 온-칩-시스템 테스트 제어기는 상위 레벨 제어와는 독립적으로 테스트 흐름의 적어도 일부를 효율적으로 실행할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는 백-엔드 인터페이스들 중 하나를 통해 상위 레벨 제어로부터 구성 정보를 수신할 수 있고, 또한 하나 이상의 다른 테스터 자원, 예를 들어, 디바이스 전원 및/또는 하나 이상의 디지털 채널 및/또는 하나 이상의 아날로그 신호 생성 디바이스 및/또는 하나 이상의 아날로그 측정 디바이스를 제어할 수 있다. 그러나, 온-칩-시스템 테스트 제어기 상에 프론트-엔드 전자장치를 가짐으로써, 온-칩-시스템 테스트 제어기는, 예를 들어, 임의의 다른 구성요소를 수반하지 않으면서 가장 시간 임계적인 신호(the most time critical signals)를 테스트 대상 디바이스로부터 직접 수신하고/하거나 가장 시간 임계적인 신호를 테스트 대상 디바이스로 직접 전송할 수 있다. 다시 말해서, 위에서 설명된 온-칩-시스템 테스트 제어기는 다른 테스트 자원과 독립적으로 일부 기본 테스트 기능을 실행할 수 있지만, 더 정교한 테스트(예컨대, 테스트 대상 디바이스의 전원 전압 또는 테스트 대상 디바이스에 인가되는 클록 주파수, 또는 임의의 다른 부가적 파라미터를 변경하는 것)를 수행하기 위해 이러한 부가적 테스트 자원을 여전히 제어할 수 있다. 결론적으로, 여기에 설명된 온-칩-시스템 테스트 제어기는, 시스템-온-칩인 테스트 대상 디바이스를 테스트하는 데 사용되는 테스트 흐름의 대부분을 독립적으로 수행(또는 적어도 제어)할 수 있다.
바람직한 실시예에서, 자동 테스트 장비는 하나 이상의 개발 및 디버그 환경에 대한 인터페이스를 포함한다.
하나 이상의 개발 및 디버그 환경에 인터페이스를 제공함으로써, 테스트 프로그램의 개발이 용이해질 수 있다. 이와 관련하여, 일반적으로 이러한 "테스트 프로그램"은 테스트 대상 디바이스 상에서 실행될 테스트 프로그램 부분과 자동 테스트 장비에 의해 또는 자동 테스트 장비의 온-칩-시스템 테스트 제어기에 의해 실행될 테스트 프로그램을 모두 포함하기 때문에, 시스템-온-칩에 대한 테스트 프로그램의 개발은 매우 도전적이라는 점에 유의해야 한다. 따라서, 2개의 물리적 엔티티(DUT 및 자동 테스트 장비)에 대한 프로그램 코드가 개발되어야 하기 때문에, 자동 테스트 장비에 의해 적어도 부분적으로 제3자 소프트웨어를 사용하여 종종 수행되는 이러한 개발을 지원하는 것이 바람직하다.
자동 테스트 장비와 하나 이상의 개발 및 디버그 환경 사이의 인터페이스는, 예를 들어, 제3자 개발 및 디버그 환경이 온-칩-시스템 테스트 제어기를 사용하여(또는 일반적으로 말해서 자동 테스트 장비의 하드웨어를 사용하여) 테스트 대상 디바이스에 프로그램을 업로드하는 것을 허용할 수 있고, 또한 개발 및 디버그 환경이 온-칩-시스템 테스트 제어기를 통해(또는 일반적으로 말해서 자동 테스트 장비의 하드웨어를 사용하여) 테스트 대상 디바이스로부터 디버그 정보를 획득하는 것을 허용할 수 있다. 더 나아가, 자동 테스트 장비와 개발 및 디버그 환경 사이의 인터페이스는 또한 개발 및 디버그 환경에 테스터 자원에 관한 정보 및/또는 자동 테스트 장비의 하나 이상의 자원(예컨대, 아날로그 자원 또는 디지털 자원)을 제어하기 위한 애플리케이션 프로그래밍 인터페이스를 제공할 수 있다. 일반적으로 말해서, 자동 테스트 장비와 개발 및 디버그 환경 사이의 인터페이스는, 테스터 자원에 액세스하거나 또는 테스트 대상 디바이스의 활동을 자동 테스트 장비의 활동과 조화시키기 위해 요구되는 (소프트웨어) 모듈들(예컨대, API와 같은 것) 중 하나 이상 또는 심지어 이들 중 임의의 것을 개발 및 디버깅 환경에 제공할 수 있다. 또한, 테스트 대상 디바이스의 디버그 정보 및/또는 프로그램 업로드 기능에 대한 액세스가 인터페이스에 의해 제공될 수 있어서, 소프트웨어 개발 및 디버깅은 제3자 개발 및 디버그 환경을 사용하여 효율적으로 수행될 수 있다.
바람직한 실시예에서, 자동 테스트 장비는, 테스트 대상 디바이스 상에서의 실행을 위한 온-칩-시스템 테스트 소프트웨어 및 자동 테스트 장비에 의해 실행될 테스트 프로그램 모두를 개발 및 디버깅하도록 조정되는 개발 및 디버그 환경을 포함한다.
테스트 대상 디바이스 상에서의 실행을 위한 온-칩-시스템 테스트 소프트웨어 및 자동 테스트 장비에 의해 실행될 테스트 프로그램 모두를 개발 및 디버깅하도록 조정되는 개발 및 디버그 환경을 자동 테스트 장비의 일부로서 제공함으로써, 테스트 소프트웨어의 개발이 상당히 용이해질 수 있다. 특히, 자동 테스트 장비와 테스트 대상 디바이스 사이의 제어 정보 또는 데이터의 교환을 위한 대응하는 (짝을 이루는) 루틴을 제공하는 공동 개발 및 디버그 환경이 제공된다. 공동 개발 및 디버그 환경은 자동 테스트 장비와 테스트 대상 디바이스 사이의 인터페이스를 인식할 수 있기 때문에, 공동 개발 및 디버그 환경은 심지어 테스트 대상 디바이스측과 자동 테스트 장비측 모두에서 동일 변수에 대한 액세스를 허용할 수 있는데, 여기서 테스트 대상 디바이스로부터 자동 테스트 장비로의 또는 그 역으로의 이들 변수의 통신은, 공동 개발 및 디버그 환경에 의해, 예를 들어 테스트 대상 디바이스 상에서의 실행을 위한 온-칩-시스템 테스트 소프트웨어 및 자동 테스트 장비에 의해 실행될 테스트 프로그램으로의 대응하는 통신 코드 부분의 삽입에 의해, 자동으로 처리될 수 있다. 따라서, 공동 개발 및 디버그 환경에서 통신 관계의 양측(즉, 테스트 대상 디바이스 및 자동 테스트 장비)에 대한 소프트웨어 개발을 처리함으로써, 개발 프로세스는 상당히 단순화될 수 있고, 소프트웨어 개발자는 공통 변수 명칭, 인터페이스 명칭 등을 사용하는 동종의 환경을 제공받을 수 있다.
특히, 공동 디버그 및 개발 환경은 그러한 액션이 요구된다는 것을 나타내는 단일 사용자 상호작용에 응답하여 단일 액션(예컨대, 테스트 대상 디바이스로부터 자동 테스트 장비로의 데이터의 통신)에 대한 코드 부분을 도입하는 툴을 제공할 수 있다. 결과적으로, 더 이상 소프트웨어 개발자가 상이한 프로그래밍 개념, 변수 명칭, API 등을 사용하여 개별 개발 환경들 사이에서 전환할 필요가 없다.
또한, (테스트 대상 디바이스 상의 코드를 디버깅하기 위한) 디버그 기능이 요구될 때마다, 공동 개발 디버그 환경은 자동 테스트 장비 상에서 실행될 테스트 프로그램에 대한 코드 부분을 자동으로 생성하여, 테스트 대상 디바이스로부터 디버그 정보를 검색하고 이 디버그 정보를 공동 개발 및 디버그 환경에 전달할 수 있다. 결과적으로, 개발자는 테스트 대상 디바이스에 대해 어떤 디버깅 기능이 요구되는지에 초점을 맞출 수 있고, 공동 개발 및 디버그 환경은 테스트 대상 디바이스로부터 (예컨대, 온-칩-시스템 테스트 제어기를 통해) 개발 및 디버깅 환경으로 디버그 정보를 포워딩하는 자동 테스트 장비에 대한 프로그램 코드를 자동으로 생성한다.
결론적으로, 온-칩-시스템 테스트 소프트웨어 및 자동 테스트 장비에 의해(예컨대, 온-칩-시스템 테스트 제어기에 의해) 실행될 테스트 프로그램 모두를 타겟으로 하는 개발 및 디버그 환경의 사용은 매우 효율적인 소프트웨어 개발을 허용하지만, 테스트 대상 디바이스 상에서의 실행을 위한 온-칩-시스템 테스트 소프트웨어 및 자동 테스트 장비에 의해 실행될 테스트 프로그램에 대한 개발은 일반적으로 테스트 엔지니어에게 매우 어려울 것이다.
바람직한 실시예에서, 개발 및 디버그 환경은, 테스트 대상 디바이스 상에서 실행될 온-칩-시스템 테스트 소프트웨어를 개발 및/또는 디버깅할 때 자동 테스트 장비의 테스트 자원에 대한 액세스를 허용한다(예컨대, 인터페이스 또는 API를 제공함).
자동 테스트 장비의 테스트 자원에 대한 액세스를 허용하는 것은 온-칩-시스템 테스트 소프트웨어의 개발 및/또는 디버깅을 강력하게 지원하는데, 이는 자동 테스트 장비의 테스트 자원에 대한 액세스가 테스트 대상 디바이스로의 프로그램 코드의 업로드, 테스트 파라미터의 업로드, 테스트 대상 디바이스로부터 개발 및 디버그 환경으로의 결과 정보의 다운로드 및 트레이스의 스트리밍, 테스트 대상 디바이스 상에서의 프로그램 실행과 자동 테스트 장비에 의해 테스트 대상 디바이스에 제공된 환경 사이의 조화 등을 지원할 수 있기 때문이다. 예를 들어, 개발 및 디버그 환경은 인터페이스 또는 애플리케이션 프로그래밍 인터페이스(API)를 제공할 수 있는데, 이는 테스트 대상 디바이스 상에서 실행되는 프로그램에 포함될 때, 테스트 대상 디바이스가 테스터 자원에 액세스하고/하거나 자동 테스트 장비와 통신하는 것을 허용한다.
결과적으로, 자동 테스트 장비의 기능은 DUT의 테스트 시에 효율적으로 활용될 수 있고, DUT는 심지어 자동 테스트 장비의 테스트 자원에 대한 일부 제어(또는 심지어 전체 제어)를 획득할 수 있어서, 테스트 대상 디바이스를 테스트할 때 자동 테스트 장비에 의해 실행될 테스트 프로그램의 개발은 단순화되거나 심지어 회피될 수 있다.
바람직한 실시예에서, 개발 및 디버그 환경은 온-칩-시스템으로부터 자동 테스트 장비의 인터페이스(예컨대, HSIO)를 통한 (예를 들어 자동 테스트 장비 메모리의) 메모리 콘텐츠에 대한 액세스를 허용하기 위한 프로그램 코드를 포함한다.
온-칩-시스템으로부터(테스트 대상 디바이스로부터) 자동 테스트 장비의 인터페이스를 통한 메모리 콘텐츠에 대한 액세스를 허용하는 프로그램 코드를 제공함으로써, 메모리의 존재는 에뮬레이트(emulate)될 수 있다. 이것은 테스트 대상 디바이스가 실제 테스트 환경에 존재하지 않는 일부 외부 메모리를 사용하여 정상적으로 동작되는 경우에 유용하다. 이 경우, 테스트 대상 디바이스는 개발 및 디버그 환경에 의해 제공된 프로그램 코드에 의해 활성화되어, 정상적으로는 테스트 대상 디바이스에 직접 접속되어야 하는 메모리를 효율적으로 대체하는 자동 테스트 장비(예컨대, 온-칩-시스템 테스트 제어기)의 메모리에 액세스할 수 있다. 따라서, 테스트 대상 디바이스는 테스트 대상 디바이스에 직접 결합된 실제 메모리를 제공할 수 없는 상황에서도 여전히 합리적으로 동작될 수 있는데, 여기서 고속 입출력 인터페이스를 통해 또는 고 대역폭 인터페이스를 통해 자동 테스트 장비의 메모리의 메모리 콘텐츠에 대한 액세스를 허용하는 프로그램 코드는 누락된 물리적 메모리를 에뮬레이트하기 위한 드라이버로서 동작할 수 있다. 특히, 이 프로그램 코드는 온-칩-시스템 테스트 제어기의 메모리에 일반적으로 저장되는 메모리 콘텐츠가 인터페이스(예컨대, 고속 IO 또는 고 대역폭 인터페이스)를 통해 액세스(예컨대, 어드레싱)될 수 있는 방법에 대해 일반적으로 인식하고 있고, 따라서, 프로그램 코드가 테스트 대상 디바이스 상에서 실행될 때, 테스트 대상 디바이스가 메모리 콘텐츠에 정확하게 액세스하는 것을 허용한다. 결과적으로, 자동 테스트 장비의 개발 및 디버그 환경이 적절한 에뮬레이션 프로그램 코드의 제공을 담당하기 때문에, 테스트 대상 디바이스를 위한 프로그램을 개발하는 프로그래머에게 메모리의 에뮬레이션은 실질적으로 투명하다.
바람직한 실시예에서, 개발 및 디버그 환경은 디버그 소프트웨어가 테스트 대상 디바이스(예컨대, 온-칩-시스템) 상으로의 프로그램의 업로드를 제어할 수 있게 하는 인터페이스를 포함한다.
디버그 소프트웨어가 테스트 대상 디바이스 상으로의 프로그램의 업로드를 제어할 수 있게 하는 인터페이스를 제공함으로써, 테스트 대상 디바이스에 대한 프로그램 코드를 개발하는 소프트웨어 엔지니어에게 친숙할 수 있는 제3자 개발 소프트웨어 또는 디버그 소프트웨어를 사용하는 것이 가능하다. 따라서, 소프트웨어 엔지니어는 테스트 대상 디바이스가 테스트 환경에 놓여질 때(즉, 온-칩-시스템 테스트 제어기에 결합될 때)에도 테스트 대상 디바이스를 위한 소프트웨어를 테스트하고 디버깅할 수 있다.
바람직한 실시예에서, 개발 및 디버그 환경은, 디버그 소프트웨어가 테스트 대상 디바이스의(예컨대, 온-칩-시스템 상의) 디버그 인터페이스(예컨대, JTAG)에 액세스할 수 있게 하는 인터페이스를 포함한다.
디버그 소프트웨어가 테스트 대상 디바이스의 디버그 인터페이스에 액세스할 수 있게 하는 인터페이스를 제공함으로써, 테스트 대상 디바이스가 실제 테스트 환경에 놓이는(예컨대, 온-칩-시스템 테스트 제어기에 결합된) 경우에 제3자 디버그 소프트웨어를 사용하는 디버깅이 활성화될 수 있다. 따라서, 테스트 대상 디바이스에 의해 실행될 온-칩-시스템 테스트의 디버깅은 실제 테스트 조건 하에서 수행될 수 있다.
바람직한 실시예에서, 개발 및 디버그 환경은 테스트 대상 디바이스의(예컨대, 온-칩-시스템 상의) 디버그 인터페이스(예컨대, JTAG)에 디버그 소프트웨어 직접 액세스(예컨대 개발 및 디버깅 인터페이스를 회피하거나 건너뜀)를 제공하도록 구성된다. 예를 들어, 직접 액세스는 디버그 소프트웨어를 향한 온-칩-시스템 테스트 제어기 및 개발 및 디버그 환경을 통한 경로와 직접 경로 사이에서 DUT의 JTAG 접속을 스위칭함으로써(예컨대 온-칩-시스템 테스트 제어기 및 개발 및 디버그 환경을 건너뜀으로써) 제공될 수 있다.
디버그 인터페이스에 대한 직접 액세스를 제공함으로써, 온-칩-시스템 테스트 제어기를 통한 디버그 인터페이스의 포워딩에 의해 야기될 수 있는 임의의 레이턴시가 회피될 수 있다. 또한, 테스트 대상 디바이스의 디버그 인터페이스에 액세스하는 자동 테스트 장비의 인터페이스를 처리할 수 없는 디버그 소프트웨어가 또한 사용될 수 있다. 즉, 자동 테스트 장비의 온-칩-시스템 테스트 제어기 및 개발 및 디버깅 환경을 건너뛰는 테스트 대상 디바이스의 디버그 인터페이스에 대한 액세스를 제공함으로써, 제3자 디버그 소프트웨어와의 최대 호환성이 유지될 수 있다.
바람직한 실시예에서, 개발 및 디버그 환경은, (예컨대, 자동 테스트 장비로부터 테스트 파라미터를 수신하기 위해 및/또는 자동 테스트 장비 또는 온-칩-시스템 테스트 제어기에 제어 커맨드를 전송하기 위해) 개발된 온-칩-시스템 테스트 소프트웨어가 테스트 대상 디바이스 상에서 실행될 때 자동 테스트 장비의 테스트 자원과 테스트 대상 디바이스 사이의 통신을 허용하는, 온-칩-시스템 소프트웨어의 개발에 사용하기 위한 애플리케이션 프로그래밍 인터페이스를 포함한다.
이러한 애플리케이션 프로그래밍 인터페이스를 디버그 환경에 제공함으로써, 테스트 대상 디바이스에서 실행되고 자동 테스트 장비와 통신하는 온-칩-시스템 테스트 소프트웨어를 용이하게 개발할 수 있다. 자동 테스트 장비의 테스트 자원의 거동에 대한 지식에 기초하여, 애플리케이션 프로그래밍 인터페이스는 애플리케이션 프로그래밍 인터페이스가 자동 테스트 장비의 테스트 자원에 완벽하게 맞도록 제공될 수 있다. 따라서, 테스트 대상 디바이스 상에서 실행될 온-칩-시스템 테스트 소프트웨어의 개발자는 자동 테스트 장비에 관한 상세한 지식을 필요로 하지 않고, 단순히 자동 테스트 장비의 테스트 자원을 관념적인 방식으로 나타내는 애플리케이션 프로그래밍 인터페이스에 의존할 수 있다. 또한, 온-칩-시스템 테스트 소프트웨어를 재설계하지 않고 자동 테스트 장비의 테스트 자원의 세부사항을 수정하는 것이 가능하다. 오히려, 이러한 경우에 애플리케이션 프로그래밍 인터페이스를 조정하는 것이 필요할 뿐이다. 더 나아가, 예를 들어, 애플리케이션 프로그래밍 인터페이스가 인터페이스의 실제 물리적 구현으로부터 독립적이도록 설계되는 경우 또는 상이한 타입의 인터페이스들과 연관된 애플리케이션 프로그래밍 인터페이스들이 유사한 경우, 테스트 대상 디바이스와 자동 테스트 장비 사이의 상이한 인터페이스들 사이에서 스위칭하는 것이 또한 용이하게 가능하다. 따라서, 온-칩-시스템 테스트 소프트웨어의 개발이 용이하게 되고 이는 또한 비용을 절감한다.
바람직한 실시예에서, 개발 및 디버그 환경은 또한 (위와 같은 애플리케이션 프로그래밍 인터페이스를 사용하는) 개발된 온-칩-시스템 테스트 소프트웨어를 실행하는 테스트 대상 디바이스와 자동 테스트 장비의 통신을 지원하기 위한 테스터 소프트웨어를 포함한다.
테스트 대상 디바이스와 자동 테스트 장비의 통신을 지원하기 위한 테스트 소프트웨어를 제공함으로써, 디버그 및 개발 환경은 테스트 대상 디바이스와 자동 테스트 장비 사이의 단순한 통신을 허용한다. 특히, 테스트 대상 디바이스 상에서 실행될 온-칩-시스템 테스트 소프트웨어 및 테스터 소프트웨어를 잘 동기화된 방식으로 용이하게 개발할 수 있다. 특히, 테스트 대상 디바이스와 자동 테스트 장비 사이의 통신은 테스트 대상 디바이스 상에서 실행될 온-칩-시스템 테스트 소프트웨어와 예컨대 온-칩-시스템 테스트 제어기에 의해 실행될 테스터 소프트웨어를 "짝짓기(mating)"하는 것을 요구한다는 점에 유의해야 한다. 특히, 개발 및 디버그 환경은 테스트 대상 디바이스 및 자동 테스트 장비 모두에게 이러한 "짝짓기" 소프트웨어 구성요소를 제공할 수 있고, 따라서 기능적 테스트 소프트웨어의 신속한 개발을 허용할 수 있다.
바람직한 실시예에서, 개발 및 디버그 환경은, 자동 테스트 장비로부터 테스트 대상 디바이스로의 추가 소프트웨어(예컨대, 추가 온-칩-시스템 테스트 소프트웨어)의 업로드를 허용하기 위해 및/또는 자동 테스트 장비에 의한 테스트 대상 디바이스 상에서의 프로그램 실행의 제어를 허용하기 위해, 온-칩-시스템 테스트 소프트웨어의 개발에 사용하기 위한(예컨대, 온-칩-시스템 테스트 소프트웨어에 포함시키기 위한) 프로그램(예컨대, "OCST 테스트 러너")을 포함한다.
자동 테스트 장비로부터 테스트 대상 디바이스로의 추가 소프트웨어의 업로드를 허용하고/하거나 테스트 대상 디바이스 상에서의 프로그램 실행을 제어하는 것을 허용하는 프로그램 코드를 제공함으로써, 시스템-온-칩을 테스트할 때 발생하는 일부 문제가 해결될 수 있다. 예를 들어, 일반적으로 단일 단계에서 (테스트 대상 디바이스 상에서 실행될) 전체 온-칩-시스템 테스트 소프트웨어를 업로드하기에 불충분한 메모리가 테스트 대상 디바이스 상에 존재한다. 따라서, (자동 테스트 장비(예컨대 온-칩-시스템 테스트 제어기)의 메모리로부터) 테스트 대상 디바이스로의 소프트웨어의 "동적" 로딩을 처리하는 프로그램을 제공함으로써, 테스트 대상 디바이스의 테스트가 지원될 수 있다. 이러한 소프트웨어 루틴이 디버그 및 개발 환경에 의해 제공된다는 점에서, 온-칩-시스템 테스트 소프트웨어를 개발중인 소프트웨어 엔지니어는 실제 온-칩-시스템 테스트 루틴에 완전히 집중할 수 있다. 더 나아가, 자동 테스트 장비에 의해 테스트 대상 디바이스 상에서의 프로그램 실행을 제어하는 것을 허용하는 프로그램을 또한 제공함으로써, 테스트 실행의 전체 제어가 자동 테스트 장비(예컨대, 온-칩-시스템 테스트 제어기)에 의해 수행될 수 있다. 따라서, 온-칩-시스템 테스트 제어기는 자동 테스트 장비의 부가적 기능(예컨대, 아날로그 테스트 자원 및/또는 디지털 테스트 자원)에 따라 테스트 대상 디바이스 상의 온-칩-시스템 테스트 소프트웨어의 실행을 용이하게 조정할 수 있다. 특히, 자동 테스트 장비의 개발 및 디버그 환경에서 이러한 소프트웨어 모듈을 제공함으로써, 온-칩-시스템 테스트 소프트웨어를 개발중인 소프트웨어 엔지니어는 자동 테스트 장비에 의해 테스트 대상 디바이스를 제어하는 메커니즘에 관한 세부사항을 인식할 필요가 없고, 이는 소프트웨어 개발을 용이하게 하고 가속화한다.
바람직한 실시예에서, 개발 및 디버그 환경은, 예컨대 워치독(watchdog) 기능을 구현함으로써 테스트 대상 디바이스 상에서의(예컨대, 온-칩-시스템 테스트 소프트웨어의) 프로그램 실행을 감독하고 선택적으로는 테스트 대상 디바이스의 응답성을 보장하는, 온-칩-시스템 테스트 소프트웨어의 개발에 사용하기 위한(예컨대, 온-칩-시스템 테스트 소프트웨어에의 포함을 위한) 프로그램(예컨대, "OCST 테스트 러너")을 포함한다.
테스트 대상 디바이스 상에서의 프로그램 실행을 감독하는 프로그램을 제공함으로써, 테스트 대상 디바이스의 오동작을 용이하게 검출할 수 있다. 예를 들어, 온-칩-시스템 테스트 소프트웨어의 개발에 사용하기 위해 개발 및 디버그 환경에 의해 제공되는 위 프로그램은 "워치독(watchdog)"의 기능을 인수할 수 있고, 즉, 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트 프로그램이 "고착상태(gets stuck)"가 되는지, 즉, 적절하게 기능하지 않는지를 인식할 수 있다. 이러한 프로그램 실행의 중단은 테스트 대상 디바이스의 문제를 나타낼 수 있고, 워치독 프로그램은 이러한 이벤트를 예를 들어 자동 테스트 장비에 시그널링할 수 있다. 따라서, 자동 테스트 장비는 이에 따라 예를 들어 테스트 대상 디바이스의 테스트를 중단하고 테스트 대상 디바이스를 불합격으로 마킹함으로써 응답할 수 있다. 따라서, 이러한 감독 프로그램 또는 워치독 프로그램을 사용하여 테스트 대상 디바이스 불합격을 신속하게 인식함으로써 테스트 시간은 절약될 수 있다. 다시, 자동 테스트 장비의 개발 및 디버그 환경에 의해 프로그램이 제공되기 때문에 소프트웨어 엔지니어는 세부사항에 대해 걱정할 필요가 없을 것이다.
바람직한 실시예에서, 자동 테스트 장비는 하나 이상의 테스터 자원, 온-칩-시스템 테스트 제어기, 및 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트를 동기화하도록 구성된다.
하나 이상의 테스터 자원, 온-칩-시스템 테스트 제어기, 및 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트를 동기화함으로써, 온-칩-시스템 테스트 제어기, 하나 이상의 추가 테스터 자원 및 테스트 대상 디바이스 사이의 협력을 활용하는 테스트가 수행될 수 있다. 즉, 온-칩-시스템 테스트를 수행할 때 자동 테스트 장비의 자원이 적용될 수 있고, 이는 특히 철저한 테스트를 초래한다.
바람직한 실시예에서, 자동 테스트 장비는 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트에 의해 제공된 제어 정보에 응답하여 (예컨대 자동 테스트 장비에 의해 수행되는 테스트 프로그램에서) 조건부 점프를 수행하도록 구성된다.
테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트에 의해 제공된 제어 정보에 응답하여 조건부 점프를 수행함으로써, 자동 테스트 장비의 동작은 테스트 대상 디바이스에서 실행되는 온-칩-시스템 테스트의 비결정적 거동(예컨대, 비결정적 또는 예측불가능한 타이밍)에 따라 조정될 수 있다. 예를 들어, 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트의 부분들이 어떤 순서로 실행될 것인지는 알려지지 않을 수 있는데, 이는 이것이 예측하기 어렵거나 심지어 예측 불가능한 인자들에 의존할 수 있기 때문이다. 따라서, 테스트 대상 디바이스는 제어 정보를 자동 테스트 장비에 제공하여 온-칩-시스템 테스트의 실행에 관한 세부사항을 시그널링함으로써, 자동 테스트 장비가 이에 따라 (예컨대, 적절한 자극 신호를 제공함으로써) 응답하게 할 수 있다.
따라서, 자동 테스트 장비는 온-칩-시스템 테스트의 비결정적 특성에 따라 잘 조정될 수 있다.
바람직한 실시예에서, 자동 테스트 장비는 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트의 완료를 대기하도록 구성된다.
테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트의 완료를 대기함으로써, 온-칩-시스템 테스트의 (일반적으로 비결정적인) 실행과 자동 테스트 장비의 기능 사이의 동기화가 달성될 수 있다.
이어서, 본 발명에 따른 실시예가 첨부된 도면을 참조하여 설명될 것이다.
도 1은 본 발명의 실시예에 따른 자동 테스트 장비의 개략적 블록도를 도시한다.
도 2는 본 발명의 실시예에 따른 자동 테스트 장비의 개략적 블록도를 도시한다.
도 3은 도 2에 따른 자동 테스트 장비에서의 사용을 위한 개발 및 디버그 환경의 개략도를 도시한다.
도 4는 본 명세서에 개시된 자동 테스트 장비를 사용하여 테스트될 수 있는 시스템-온-칩의 개략적 블록도를 도시한다.
도 5는 본 명세서에 설명된 자동 테스트 장비를 사용하여 테스트될 수 있는 모듈의 개략적 블록도를 도시한다.
도 6은 온-칩-시스템 테스트의 개략도를 도시한다.
도 7은 아날로그 테스트 및/또는 RF 수신기 테스트가 수행되는 제 1 시나리오의 개략도를 도시한다.
도 8은 아날로그 테스트 및/또는 RF 송신기 테스트가 수행되는 제 2 시나리오의 개략도를 도시한다.
도 9는 고속 입출력(high speed input output: HSIO) 파라미터 테스트가 수행되는 제 3 시나리오의 개략도를 도시한다.
도 10은 고속 입출력(HSIO) 프로토콜 엔진 테스트가 수행되는 제 4 시나리오의 개략도를 도시한다.
도 11은 상호접속 스트레스 테스트가 수행되는 제 5 시나리오의 개략도를 도시한다.
도 12는 운영 체제 환경을 갖는 온-칩-시스템 테스트(on-chip system test: OCST)의 개략도를 도시한다.
도 13은 내장형 운영 체제 부트 시퀀스의 개략도를 도시한다.
도 14는 베어 메탈 환경(bare metal environment)을 갖는 온-칩-시스템 테스트의 개략도를 도시한다.
도 15는 디버그 포트를 통한 내장형 베어 메탈 부트의 개략도를 도시한다.
도 16은 물리적 OCST 제어기의 개략적 블록도를 도시한다.
1. 도 1에 따른 자동 테스트 장비
도 1은 본 발명의 실시예에 따른 자동 테스트 장비(100)의 개략적 블록도를 도시한다. 자동 테스트 장비(100)는, 예를 들어, 시스템-온-칩(SoC)일 수 있는 테스트 대상 디바이스(device under test)(104)를 테스트하기 위해 조정된다는 점에 유의해야 한다.
자동 테스트 장비(100)는 온-칩-시스템 테스트 제어기(110)를 포함한다. 온-칩-시스템 테스트 제어기(110)는 테스트 대상 디바이스(104)와 통신하도록 구성된 적어도 하나의 디버그 인터페이스 또는 제어 인터페이스(112)를 포함한다. 더 나아가, 온-칩-시스템 테스트 제어기(110)는 선택적으로 또한 적어도 하나의 고 대역폭 인터페이스(114)(이는 예를 들어, USB 인터페이스, PCI 인터페이스, PCI-익스프레스 인터페이스, PCI-익스프레스 컴플라이언트 인터페이스, 썬더볼트 인터페이스, 이더넷 인터페이스, IEEE-1394 인터페이스, SATA 인터페이스, IEEE-1149 인터페이스, IEEE-1500 인터페이스, 또는 IEEE-1687 인터페이스일 수 있음)를 포함한다.
또한, 온-칩-시스템 테스트 제어기(110)는 시스템-온-칩인 테스트 대상 디바이스(104)의 테스트를 제어하도록 구성된다.
테스트 대상 디바이스(104)와의 통신을 위해 이용가능한 2개 이상의 상이한 인터페이스를 가짐으로써, 온-칩-시스템 테스트 제어기(110)는 매우 낮은 레벨, 예를 들어, 하드웨어 레벨 상에서(예컨대, 테스트 대상 디바이스의 하드웨어 구성요소에 직접 액세스하는 디버그 인터페이스를 통해) 테스트 대상 디바이스(104)를 제어할 수 있고, 온-칩-시스템 테스트 제어기는 또한 고 대역폭 인터페이스를 통해 고속으로 테스트 대상 디바이스(104)로 대량의 프로그램 코드 또는 데이터를 통신할 수 있다. 따라서, 온-칩-시스템 테스트 제어기는, (바람직하게는 디버그 인터페이스 또는 제어 인터페이스(112)를 사용하는) 테스트 대상 디바이스에 대한 저 레벨 하드웨어 액세스를 요구하는 테스트 작업과, 통상적으로 테스트 대상 디바이스(104) 상에서 실행되는 소프트웨어(예컨대, 온-칩-시스템 테스트 프로그램)에 의해 제어되는 고 대역폭 통신을 요구하는 테스트 작업을 모두 관리할 수 있다. 따라서, 온-칩-시스템 테스트 제어기(110)의 제어 하에서 테스트 대상 디바이스의 높은 커버리지 테스트가 수행될 수 있다.
또한, 테스트를 제어하기 위해 디버그 인터페이스 또는 제어 인터페이스(112) 및 고 대역폭 인터페이스(114)를 포함하는 전용 온-칩-시스템 테스트 제어기(110)를 사용함으로써, 자동 테스트 장비에서 병목현상이 회피될 수 있고, 디버그 인터페이스 또는 제어 인터페이스(112)를 사용하여 실행된 제어와 고 대역폭 인터페이스(114)를 사용하는 데이터 교환 사이의 고도의 동기화가 달성될 수 있다. 따라서, 인터페이스(112)와 인터페이스(114) 양자 모두를 포함하는 온-칩-시스템 테스트 제어기(110)를 갖는 고효율 구조가 제공된다.
또한, 자동 테스트 장비(100)는 선택적으로 본 명세서에 개시된 특징, 기능 및 세부사항 중 임의의 것을 개별적으로 그리고 조합하여 사용함으로써 보충될 수 있다는 점에 유의해야 한다.
2. 도 2에 따른 자동 테스트 장비
도 2는 본 발명의 실시예에 따른 자동 테스트 장비(200)의 개략적 블록도를 도시한다.
자동 테스트 장비(200)는, 예를 들어, 온-칩-시스템 테스트 제어기(110)에 대응할 수 있는 온-칩-시스템 테스트 제어기(210)를 포함한다. 또한, 자동 테스트 장비(200)는, 예를 들어 인터페이스들(112, 114)의 기능을 결합할 수 있는 테스트 대상 디바이스 인터페이스(216)를 포함한다. 자동 테스트 장비(200)는 하나 이상의 파라미터 테스트 자원 또는 아날로그 테스트 자원(220) 및 하나 이상의 디지털 테스트 자원(230)을 더 포함한다. 자동 테스트 장비는 개발 및 디버그 환경(240)을 더 포함한다.
이하에서는 온-칩-시스템 테스트 제어기(210)가 더 상세히 설명될 것이다. 온-칩-시스템 테스트 제어기(210)는 예를 들어 시스템-온-칩일 수 있는 중앙 유닛(250)을 포함한다. 그러나, 중앙 유닛(250)은 또한 마이크로프로세서를 사용하거나, 애플리케이션 특정 개별 회로를 사용하거나, 또는 필드 프로그래머블 게이트 어레이를 사용하여 구현될 수 있다. 온-칩-시스템 테스트 제어기(210)는 디버그 인터페이스(252), 제어 인터페이스(254) 및 선택적으로 고 대역폭 인터페이스(256)를 더 포함한다. 또한, 온-칩-시스템 테스트 제어기는 중앙 유닛(250)에 의해 실행되거나 심지어 다수의 중앙 유닛 또는 중앙 처리 유닛에 의해 실행될 수 있는 소프트웨어 스택(258)을 포함한다. 또한, 온-칩-시스템 테스트 제어기(210)는 DUT 소프트웨어, 즉, 테스트 대상 디바이스의 중앙 처리 유닛에 의해 실행될 소프트웨어를 포함하는 소프트웨어 저장소(260)를 포함할 수 있다.
그러나, 온-칩-시스템 테스트 제어기는 반드시 모든 구성요소(250, 252, 254, 256, 258, 260)를 가질 필요는 없다는 점에 유의해야 한다. 오히려, 선택적으로, 위 구성요소들 중 하나 이상은 생략되거나 변경될 수 있다.
이하에서는 상이한 구성요소들의 일부 추가적인 세부사항이 설명될 것이다.
특히, 디버그 인터페이스(252)에 의해 테스트 대상 디바이스로 제공되는 신호 또는 테스트 대상 디바이스로부터 디버그 인터페이스(252)에 의해 수신되는 신호는, 예를 들어 구성가능한 라우팅 매트릭스를 사용하여, 테스트 대상 디바이스 인터페이스(216)에 가변적으로 할당될 수 있다. 유사하게, 제어 인터페이스(254)에 의해 테스트 대상 디바이스에 제공되는 하나 이상의 신호 및/또는 테스트 대상 디바이스로부터 제어 인터페이스(254)에 의해 수신되는 하나 이상의 신호는 테스트 대상 디바이스 인터페이스(216)에 가변적으로 할당될 수 있다. 유사하게, 고 대역폭 인터페이스(256)에 의해 테스트 대상 디바이스에 제공되는 하나 이상의 신호 및/또는 테스트 대상 디바이스로부터 고 대역폭 인터페이스에 의해 수신되는 하나 이상의 신호는 테스트 대상 디바이스 인터페이스(216)에 가변적으로 할당될 수 있다. 따라서, 온-칩-시스템 테스트 제어기(또는, 일반적으로, 자동 테스트 장비)는, 예를 들어 조정가능한 라우팅 매트릭스를 사용하여, 디버그 인터페이스(252) 및/또는 제어 인터페이스(254) 및/또는 고 대역폭 인터페이스(256)의 하나 이상의 테스트 대상 디바이스 포트를 테스트 대상 디바이스(216)의 핀에 가변적으로 할당할 수 있다.
예를 들어 중앙 유닛(250)에 의해 실행될 수 있는 소프트웨어 스택(258)은 복수의 계층을 포함할 수 있다. 예를 들어, 소프트웨어 스택은, 운영 체제, 온-칩-시스템 테스트 서비스 소프트웨어, 및 테스트 대상 디바이스와 통신하기 위한 드라이버를 포함할 수 있다. 예를 들어, 운영 체제는 소프트웨어의 전체 실행을 제어할 수 있다. 온-칩-시스템 테스트 서비스 시스템 소프트웨어는, 예를 들어, 다른 테스터 자원(또는 테스트 자원) 및/또는 상위 계층 레벨 제어기(예컨대, 전체 테스트 프로세스를 제어하는 워크스테이션)와의 통신을 제어할 수 있다. 온-칩-시스템 테스트 서비스 소프트웨어는, 예를 들어, 테스트 대상 디바이스로부터 획득된 데이터에 기초하여 테스트 결과의 평가를 수행할 수 있다.
소프트웨어 스택(258)의 일부이기도 한 드라이버는, 예를 들어, 디버그 인터페이스(252)를 통해 및/또는 제어 인터페이스(254)를 통해 및/또는 고 대역폭 인터페이스(256)를 통해 테스트 대상 디바이스와의 통신을 제어할 수 있다. 일부 경우에, 드라이버는 물리적 인터페이스의 실제 타입에 따라 고 레벨 소프트웨어에 공통 인터페이스를 제공하도록 설계될 수도 있다. 따라서, 드라이버는, 예를 들어 고 대역폭 인터페이스의 실제 타입을 고 레벨 소프트웨어에 "숨길(hide)" 수 있어서, 고 레벨 소프트웨어를 특정 타입의 고 대역폭 인터페이스에 따라 조정할 필요가 없다. 따라서, 드라이버는 소프트웨어 개발을 단순하게 유지하고, 소프트웨어 설계자가 온-칩-시스템 테스트 제어기와 테스트 대상 디바이스 사이의 물리적 인터페이스에 관한 세부사항을 알 필요가 없게 한다. 더 나아가, 소프트웨어 스택(258)은 또한 사용자에 의해 제공된 하나 이상의 애플리케이션-특정 루틴을 포함할 수 있다. 사용자에 의해 제공된 애플리케이션-특정 루틴은 특정 타입의 테스트 대상 디바이스의 테스트에 따라 조정될 수 있다. 사용자에 의해 제공되는 애플리케이션-특정 루틴은 운영 체제에 의해 제공되는 기능에 의존할 수 있고, 또한 소프트웨어 스택의 드라이버를 사용하여 테스트 대상 디바이스와 통신할 수 있다.
온-칩-시스템 테스트 제어기(210)는, 예를 들어 소프트웨어 스택(258)을 사용하여, 테스트 대상 디바이스와의 고도의 상호작용 및 통신을 수행할 수 있다는 점에 유의해야 한다. 예를 들어, 온-칩-시스템 테스트 제어기(210)는 하나 이상의 프로그램 및/또는 테스트 파라미터 세트를 테스트 대상 디바이스에 업로드할 수 있는데, 여기서 디버그 인터페이스(252) 및/또는 제어 인터페이스(254) 및/또는 고 대역폭 인터페이스(256)는 테스트 대상 디바이스 인터페이스(216)를 통해 테스트 대상 디바이스에 하나 이상의 프로그램 및/또는 테스트 파라미터 세트를 업로드하는 데 사용될 수 있다. 예를 들어, 테스트 대상 디바이스에 업로드될 하나 이상의 프로그램 및/또는 테스트 파라미터 세트는 소프트웨어 저장소(260)로부터 취해질 수 있는데, 소프트웨어 저장소(260)는 온-칩-시스템 테스트 제어기의 일부일 수 있고 DUT 소프트웨어를 저장할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는 온-칩-시스템 테스트 환경을 테스트 대상 디바이스에 업로드하도록 구성될 수 있고, 또한 하나 이상의 온-칩-시스템 테스트를 테스트 대상 디바이스 인터페이스(216)를 통해 테스트 대상 디바이스에 업로드하도록 구성될 수 있다. 예를 들어, 온-칩-시스템 테스트 환경은 테스트 대상 디바이스 상에서 운영 체제의 역할을 할 수 있고, 예를 들어, 자동 테스트 장비와 통신하기 위한 하나 이상의 드라이버를 테스트 대상 디바이스 상에 제공할 수 있다. 또한, 개별 온-칩-시스템 테스트는, 예를 들어, 테스트 대상 디바이스를 테스트하기 위해 실행되는 전체 테스트 절차의 단계(또는 하위 단계)를 정의할 수 있다.
또한, 온-칩-시스템 테스트 제어기(210)는, 예를 들어, 상이한 개념들이 적용될 수 있는 하나 이상의 온-칩-시스템 테스트를 시작할 수 있다. 예를 들어, 하나 이상의 온-칩-시스템 테스트는, 예를 들어 디버그 인터페이스(252)(이는 예를 들어 테스트 대상 디바이스의 CPU의 하나 이상의 레지스터일 수 있음)를 통해 수행될 수 있 테스트 대상 디바이스에 대한 하드웨어 액세스에 의해 트리거(또는 시작)될 수 있다. 대안적으로, 하나 이상의 온-칩-시스템 테스트는 대응하는 커맨드를 온-칩-시스템 테스트 환경에 제공함으로써 시작될 수 있는데, 이 커맨드는 테스트 대상 디바이스에 초기에 업로드되고 테스트 대상 디바이스 상에서 실행된다.
또한, 온-칩-시스템 테스트 제어기는 예를 들어 전체 테스트 실행 프로그램에 기초하여 테스트 대상 디바이스의 테스트를 제어할 수도 있다. 예를 들어, 온-칩-시스템 테스트 제어기(210)는, 온-칩-시스템 테스트 프로그램에 대한 파라미터를 조정하는 것, 복수의 온라인 시스템 테스트 프로그램의 실행을 스케줄링하는 것, 적절한 경우 하나 이상의 온-칩-시스템 테스트 프로그램의 실행을 중단하는 것 등을 수행할 수 있다.
또한, 온-칩-시스템 테스트 제어기(250)는 하나 이상의 이전에 실행된 온-칩-시스템 테스트 프로그램의 완료에 응답하여 추가 온-칩-시스템 테스트 프로그램을 업로드할 수도 있다.
테스트 대상 디바이스의 테스트의 제어는, 테스트 대상 디바이스에 대한 하드웨어 레벨 액세스를 통해(예컨대, 디버그 인터페이스를 통해) 및/또는 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트 환경으로 전송되는 커맨드를 사용하여 수행될 수 있다.
더 나아가, 온-칩-시스템 테스트 제어기(210)는 또한, 인터페이스들(252, 254, 256) 중 하나를 통해 테스트 대상 디바이스로부터 커맨드 및/또는 제어 정보를 수신하고 이 커맨드 및/또는 제어 정보에 응답할 수 있다. 예를 들어, 테스트 대상 디바이스는 특정 테스트 조건(예컨대, 공급 전압 또는 클록 주파수)의 조정을 요청할 수 있고, 온-칩-시스템 테스트 제어기(210)는 테스트 환경을 적절히 조정함으로써 이러한 커맨드 또는 제어 정보에 응답할 수 있다.
또한, 온-칩-시스템 테스트 제어기(210)는 (예컨대, 인터페이스들(252, 254, 256) 중 하나를 사용하여) 테스트 대상 디바이스로부터 데이터를 수신할 수도 있다. 온-칩-시스템 테스트 제어기(210)는 이 데이터를 사용하여 테스트 대상 디바이스가 요건을 충족하는지 여부를 판정할 수 있다(즉, 테스트 대상 디바이스가 수용가능한 것으로 분류되어야 하는지 또는 불합격으로 분류되어야 하는지를 판정할 수 있다). 또한, 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스로부터 수신된 데이터를 사용하여 데이터에 따라 테스트 실행 흐름을 조정할 수도 있다. 예를 들어, 테스트 실행 흐름은 테스트 대상 디바이스로부터 수신된 데이터와 기준 데이터의 비교에 응답하여 조정될 수 있다. 예를 들어, 테스트 대상 디바이스로부터 수신된 데이터는 테스트 실행을 특성화할 수 있고, 예를 들어 테스트 대상 디바이스에 의해 수신된 신호의 특성(예컨대, 신호 대 잡음비, 비트 에러율 등)을 묘사할 수 있다. 예를 들어, 테스트 흐름의 조정은 사용자에 의해 제공된 애플리케이션-특정 루틴에 의해 수행될 수 있다. 그러나, 테스트 대상 디바이스로부터 수신된 데이터에 따라 테스트 흐름 실행을 조정하는 상이한 개념도 가능하다.
그러나, 온-칩-시스템 테스트 제어기(210)가 반드시 본 명세서에 설명된 모든 기능을 구현할 필요는 없다는 점에 유의해야 한다. 오히려, 일부 실시예에서, 온-칩-시스템 테스트 제어기는 본 명세서에 설명된 기능들 중 하나 이상을 구현하는 것으로 충분할 수 있다. 한편, 온-칩-시스템 테스트 제어기는 여기에 설명되지 않은 상이한 기능을 가질 수도 있다.
더 나아가, 온-칩-시스템 테스트 제어기는 또한 하나 이상의 추가 테스트 자원을 제어 및/또는 동기화할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는, 예를 들어 전원, 전압원, 전류원, 전압 측정 디바이스 또는 전류 측정 디바이스와 같은 하나 이상의 파라미터 테스트 자원 또는 아날로그 테스트 자원(220)을 제어 및/또는 동기화할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는 온-칩-시스템 테스트 제어기의 중앙 유닛(250)에 의해 실행된 프로그램에 따라 하나 이상의 파라미터 테스트 자원을 제어할 수 있다. 온-칩-시스템 테스트 제어기는 예를 들어 하나 이상의 파라미터 테스트 자원을 설정하는 방법을 스스로 결정할 수 있거나, 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스로부터 수신된 커맨드 또는 제어 정보에 따라(즉, 테스트 대상 디바이스로부터의 요청에 응답하여) 하나 이상의 파라미터 테스트 자원을 설정할 수 있다. 그러나, 파라미터 테스트 자원 또는 아날로그 테스트 자원은 또한 무선 주파수 신호의 생성 또는 무선 주파수 신호의 수신 및/또는 평가를 포함할 수 있음에 유의해야 한다. 유사하게, 파라미터 테스트 자원은 따라서 테스트 대상 디바이스를 테스트할 때 사용되는 광학 신호의 생성 또는 수신 또는 평가를 포함한다.
유사하게, 온-칩-시스템 테스트 제어기는, 예를 들어, 테스트 대상 디바이스를 테스트하기 위한 디지털 자극 신호를 제공하고/하거나 테스트 대상 디바이스로부터의 디지털 응답 신호를 평가하는 하나 이상의 디지털 테스트 자원(230)을 제어 및/또는 동기화할 수 있다. 그러나, 파라미터 테스트 자원/아날로그 테스트 자원(220) 및 디지털 테스트 자원(230)이 가변 할당을 사용하여 테스트 대상 디바이스 인터페이스(216)에 결합될 수도 있어서, 파라미터 테스트 자원/아날로그 테스트 자원 및/또는 디지털 테스트 자원은 가변 방식으로 테스트 대상 디바이스 인터페이스의 상이한 핀들과 결합될 수 있다는 점에 유의해야 한다.
그러나, 온-칩-시스템 테스트 제어기(210)는, 자동 테스트 장비 내에 존재할 수 있는 다른 온-칩-시스템 테스트 제어기와 공유되지 않는 하나 이상의 "로컬" 통신 인터페이스를 사용하여, 파라미터 테스트 자원/아날로그 테스트 자원(220) 및/또는 디지털 테스트 자원(230)을 제어 및/또는 동기화하도록 구성될 수 있다. 따라서, 온-칩-시스템 테스트 제어기는 파라미터 테스트 자원/아날로그 테스트 자원(220) 및/또는 디지털 테스트 자원(230)을 제어 및/또는 동기화할 때 매우 양호한 실시간 능력을 포함할 수 있다.
또한, 자동 테스트 장비는 테스트 대상 디바이스의 온-칩-시스템 테스트 제어기 및 추가 테스트 자원(220, 230)의 동기화를 제공할 수 있다는 점에 유의해야 한다. 예를 들어, 자동 테스트 장비의 다른 구성요소는 온-칩-시스템 테스트 제어기, 테스트 대상 디바이스 및 다른 테스트 자원(220, 230)에 동기화 신호를 제공할 수 있다. 따라서, 고도의 동기화가 달성될 수 있다.
이하에서는 자동 테스트 장비(200)에 선택적으로 포함될 수 있는 개발 및 디버그 환경(240)이 도 3을 참조하여 설명될 것이다.
예를 들어, 개발 및 디버그 환경(240)은, 예를 들어 소프트웨어 저장소(260)에 저장될 수 있는 DUT 상에서의 실행을 위한 온-칩-시스템 테스트 소프트웨어와, 자동 테스트 장비 상에서의 실행을 위한(예를 들어 소프트웨어 스택(258)에서의 실행을 위한) 테스트 프로그램 둘 다를 제공하도록 조정될 수 있다. 그러나, 개발 및 디버그 환경은 또한 온-칩-시스템 테스트 제어기(210)에 의해 고려될 수 있는 제어 정보를 제공할 수 있다.
개발 및 디버그 환경(240)은, 예를 들어, 소프트웨어 엔지니어로 하여금 온-칩-시스템 테스트 소프트웨어 및/또는 테스트 프로그램을 개발할 수 있게 하는 사용자 인터페이스를 포함할 수 있다. 또한, 개발 및 디버그 환경은 선택적으로, 디버그 소프트웨어가 테스트 대상 디바이스 상으로의 프로그램의 업로드를 제어할 수 있게 하도록 조정되는 인터페이스(242)를 포함할 수 있다. 따라서, 개발 및 디버그 환경(240)은 온-칩-시스템 테스트 소프트웨어의 효율적인 디버깅을 허용하기 위해 제3자 디버그 소프트웨어와 협력할 수 있다. 더 나아가, 개발 및 디버그 환경(240)은 또한 디버그 소프트웨어가 DUT의 디버그 인터페이스에 액세스할 수 있게 하는 인터페이스(244)를 포함한다. 예를 들어, DUT의 디버그 인터페이스에 대한 액세스는 디버그 인터페이스(252)에 대한 직접 액세스를 갖는 온-칩-시스템 테스트 제어기를 통해 이루어질 수 있다.
또한, 개발 및 디버그 환경은, 테스트 대상 디바이스 상에서 실행될 온-칩-시스템 테스트 소프트웨어의 개발 및 자동 테스트 장비 상에서의 실행을 위한 테스트 프로그램의 개발에서 소프트웨어 엔지니어를 지원할 수 있다.
이를 위해, 개발 및 디버그 환경은 ATE의 테스트 자원에 대한 액세스를 제공하는 프로그램 코드를 포함할 수 있다. 예를 들어, 프로그램 코드(246a)는 테스트 대상 디바이스가 온-칩-시스템 테스트 제어기를 통해 ATE의 테스트 자원에 액세스하는 것을 허용할 수 있어서, 예를 들어, 테스트 대상 디바이스는, 소프트웨어 엔지니어의 요청 시에 개발 및 디버그 환경에 의해 온-칩-시스템 테스트 소프트웨어에 포함될 수 있는 프로그램(266a)에 대한 기능 호출을 사용하여 테스트 자원(220 및/또는 230)의 특성을 변경할 수 있다.
더 나아가, 개발 및 디버그 환경은 또한 자동 테스트 장비로부터 테스트 대상 디바이스로의 추가 소프트웨어의 업로드를 허용하는 프로그램(246b)을 포함할 수 있다. 예를 들어, 프로그램(246b)은 테스트 대상 디바이스 상에서 실행될 프로그램 코드를 수신하도록 테스트 대상 디바이스의 고 대역폭 인터페이스를 구성할 수 있다. 이 프로그램(246b)은 소프트웨어 엔지니어의 요청 시에 온-칩-시스템 테스트 소프트웨어에 포함될 수 있다. 이에 대응하여, 개발 및 디버그 환경은, 자동 테스트 장비(예컨대, 온-칩-시스템 테스트 제어기) 상에서 실행하기 위한 테스트 프로그램 내에, 자동 테스트 장비로부터(예컨대, 온-칩-시스템 테스트 제어기의 소프트웨어 저장소로부터) 테스트 대상 디바이스로의 추가 소프트웨어의 업로드를 허용하는 프로그램을 포함시킬 수 있다. 따라서, 개발 및 디버그 환경은, 자동 테스트 장비 상에서의 실행을 위한 테스트 프로그램 및 온-칩-시스템 테스트 소프트웨어에 포함하기 위한 짝짓기 프로그램 코드를 포함할 수 있다.
또한, 개발 및 디버그 환경은 테스트 대상 디바이스 상에서의 프로그램 실행의 제어를 허용하는 프로그램(246c)을 포함한다. 예를 들어, 이 프로그램(246c)은 소프트웨어 엔지니어의 요청 시에 온-칩-시스템 테스트 소프트웨어에 포함될 수 있다. 프로그램(246c)은, 예를 들어, 온-칩-시스템 테스트 제어기로부터 테스트 대상 디바이스의 인터페이스들 중 하나를 통해 프로그램 제어 커맨드를 수신하도록 조정될 수 있다. 그러나, 온-칩-시스템 테스트 소프트웨어는, 예를 들어, 자동 테스트 장비 상에서의 실행을 위한 대응하는 프로그램을 테스트 프로그램에 포함시킬 수 있다. 따라서, 온-칩-시스템 테스트 제어기측으로부터 테스트 대상 디바이스 상에서의 프로그램의 실행을 제어하는 것이 가능한데, 소프트웨어 엔지니어의 요청 시에 자동 테스트 장비 상에서의 실행을 위한 테스트 프로그램 및 온-칩-시스템의 테스트 소프트웨어에 포함되는 "짝짓기" 프로그램 모듈이 존재한다.
또한, 개발 및 디버그 환경은 테스트 대상 디바이스 상에서의 프로그램 실행을 감독하도록 조정되는 프로그램(246d)을 포함한다. 예를 들어, 이 프로그램(246d)은 소프트웨어 엔지니어의 요청 시에 온-칩-시스템 테스트 소프트웨어에 포함될 수 있다. 프로그램(246d)은, 예를 들어, 온-칩-시스템 테스트 소프트웨어가 적절하게 실행되는지 또는 온-칩-시스템 테스트 소프트웨어가 불합격 상태에 있는지를 감독할 수 있다. 따라서, 프로그램(246d)은 테스트 대상 디바이스 상에서 실행되는 소프트웨어가 불합격 상태에 있는지 여부를 온-칩-시스템 테스트 제어기에 통지할 수 있고, 온-칩-시스템 테스트 제어기는 이에 따라 (예컨대, 디바이스를 불합격으로 분류하거나, 테스트 대상 디바이스를 리셋하거나, 또는 테스트 대상 디바이스 상에 새로운 온-칩-시스템 테스트 소프트웨어를 업로드 또는 시작함으로써) 반응할 수 있다.
개발 및 디버그 환경은 또한 온-칩-시스템으로부터 자동 테스트 장비의 인터페이스를 통해 (예컨대, ATE의) 메모리 콘텐츠에 대한 액세스를 허용하는 프로그램(246e)을 포함한다. 이 프로그램은 소프트웨어 엔지니어의 요청 시에 온-칩-시스템 테스트 소프트웨어에 포함될 수 있다. 따라서, 테스트 대상 디바이스는 이 프로그램 코드(246e)를 호출함으로써 자동 테스트 장비의 메모리로부터(예컨대, 온-칩-시스템 테스트 제어기의 메모리로부터) 데이터를 판독할 수 있다. 대안적으로 또는 추가적으로, 테스트 대상 디바이스는 프로그램 코드(246e)를 호출함으로써 자동 테스트 장비(예컨대, 온-칩-시스템 테스트 제어기)의 메모리에 데이터를 기록할 수 있다. 더 나아가, 개발 및 디버그 환경은 또한 자동 테스트 장비의 메모리에 대한 테스트 대상 디바이스의 이러한 액세스를 지원하기 위해 온-칩-시스템 테스트 제어기에 프로그램 또는 구성 정보를 제공할 수 있는데, (DUT 상에서의 실행을 위한) 온-칩-시스템 테스트 소프트웨어에 포함된 프로그램 코드와 온-칩-시스템 테스트 제어기의 구성 정보는 매칭되는 것이 보장될 수 있다.
개발 및 디버그 환경은 또한 애플리케이션 프로그래밍 인터페이스(246f)를 포함할 수 있는데, 이는 테스트 대상 디바이스와 자동 테스트 장비의 테스트 자원(예컨대, 테스트 자원(220, 230)) 사이의 통신을 허용한다. 따라서, 소프트웨어 엔지니어의 요청 시에 이 애플리케이션 프로그램 인터페이스(246f)를 사용함으로써, 테스트 대상 디바이스는 자동 테스트 장비의 테스트 자원을 제어할 수 있게 된다.
더 나아가, 개발 및 디버그 환경은 또한 자동 테스트 장비와 테스트 대상 디바이스의 통신을 지원하는 테스터 소프트웨어(246g)를 포함한다. 이 테스터 소프트웨어(246g)는, 예를 들어, 소프트웨어 엔지니어의 요청 시에 자동 테스트 장비 상에서의 실행을 위한 테스트 프로그램에 포함되어 자동 테스트 장비와 테스트 대상 디바이스 사이의 통신을 지원할 수 있다.
더 나아가, 개발 및 디버그 환경은 또한 ATE로부터 DUT로의 파라미터 세트의 업로드를 허용하는 프로그램(246h)을 포함한다. 따라서, 예컨대 온-칩-시스템 테스트의 후속 실행들 사이에서 (예컨대, 프로그램(246b)을 사용하여 업로드되고 프로그램(146c)에 의해 시작되는) 온-칩-시스템 테스트의 실행을 위한 파라미터를 업데이트할 수 있고, 그에 따라, 다수의 파라미터만 상이한 유사한 온-칩-시스템 테스트들의 다수의 업로드에 대한 필요성을 극복할 수 있다.
결론적으로, 개발 및 디버그 환경(240)은 온-칩-시스템 테스트 소프트웨어의 개발뿐 아니라 자동 테스트 장비 상에서의 실행을 위한 테스트 프로그램의 개발을 지원하는 다수의 소프트웨어 블록(246a 내지 246h)을 포함할 수 있다. 예를 들어, 짝짓기(mating) 소프트웨어 구성요소는 개발 및 디버그 환경에 의해 온-칩-시스템 테스트 소프트웨어 및 자동 테스트 장비 상에서의 실행을 위한 테스트 프로그램 모두에 자동으로 도입될 수 있는데, 예를 들어 구성요소의 파라미터 세트는 또한 개발 및 디버깅 환경에 의해 적절한 값으로 자동으로 조정될 수 있다.
그러나, 개발 및 디버그 환경은 반드시 본 명세서에 설명된 모든 소프트웨어 부분(246a 내지 246g)을 포함할 필요는 없다는 점에 유의해야 한다. 오히려, 일부 경우에, 개발 및 디버그 환경(240)은 위 소프트웨어 부분들 중 하나 이상을 포함하는 것으로 족하다.
다른 양태에 따르면, 온-칩-시스템 테스트 자체를 로딩하는 것과는 독립적으로 (예컨대, 테스트 대상 디바이스에 파라미터 세트를 업로드하기 위해) DUT 상에 테스트 파라미터를 로딩하는 것이 가능하다. 예를 들어, 온-칩-시스템 테스트(on-chip-system test: OCST)는 로딩된 채로 있을 수 있지만, 그 다음 실행 전에 파라미터가 변경될 수 있다. 이는 OCST를 특성화할 때 더욱 효율적이며 전형적으로 행해진다.
또한, 본 명세서에 설명된 자동 테스트 장비(200)는 선택적으로 본 명세서에 개시된 임의의 특징, 기능 및 세부사항을 개별적으로 그리고 조합하여 사용함으로써 보충될 수 있다는 점에 유의해야 한다.
3. 도 6에 따른 온-칩-시스템 테스트
도 6은 본 발명의 실시예에 따른 온-칩-시스템 테스트의 개략도를 도시한다.
도 6에 따른 온-칩-시스템 테스트는 3개의 주요 구성요소, 즉, 워크스테이션(610), 테스트 시스템(620) 및 SoC(630)에 기초한다. 예를 들어, SoC(630)는 도 4에 도시된 SoC(400)에 대응할 수 있으므로, 위의 설명을 참조한다.
자동 테스트 장비의 일부일 수 있는 워크스테이션(610)은, 예를 들어, 통합형 개발 환경(612) 및 통합형 테스트 실행기(614)를 포함한다.
예를 들어, 통합형 개발 환경(612)은 자동 테스트 장비 프로그램 개발, 디버그 및 실행을 포함할 수 있고, 또한 내장형 소프트웨어 개발, 디버깅 및 실행을 포함할 수 있다. 예를 들어, 통합형 개발 환경(612)은 개발 및 디버그 환경(240)의 기능을 포함할 수 있다. 그러나, 표시된 개발 환경(612)이 내장형 소프트웨어, 즉, 테스트 대상 디바이스(630) 상에서 실행되는 소프트웨어의 개발, 디버그 및 실행을 허용하는 것은 종래의 개발 환경과의 중요한 차이라는 점에 유의해야 한다.
또한, 통합형 테스트 실행기(614)는 예를 들어 ATE 테스트 프로그램을 포함할 수 있고, 테스트 시스템(620)과 협력할 수 있다. 예를 들어, 통합 실행기는 ATE 테스트 프로그램을 실행할 수 있는데, 여기서 ATE 테스트 프로그램은 테스트 시스템(620)의 기능을 제어할 수 있고 테스트 시스템(620)으로부터 데이터(예컨대, 테스트 결과 정보)를 수신할 수 있다.
통상적으로 자동 테스트 장비의 일부이기도 한 테스트 시스템(620)은, 예를 들어, 온-칩-시스템 테스트 제어기(110) 또는 온-칩-시스템 테스트 제어기(210)에 대응할 수 있는 하나 이상의 온라인 시스템 테스트 제어기(622)를 포함한다.
테스트 시스템(620)은 또한, 예를 들어, 전술한 디지털 테스트 자원(230)에 대응할 수 있는 하나 이상의 디지털 입력/출력 기기(624)를 포함한다. 더 나아가, 테스트 시스템(620)은 또한 예를 들어 파라미터 테스트 자원(220)에 대응할 수 있는 하나 이상의 아날로그/무선 주파수(RF)/고속 입출력(HSIO) 기기(626)를 포함한다.
테스트 시스템(620)은 또한, 예를 들어 디지털 테스트 자원(230)에 또한 대응할 수 있는 하나 이상의 디지털 입력/출력 기기(628)를 포함한다. 또한, 테스트 시스템(620)은, 예를 들어 파라미터 테스트 자원(220)에 대응할 수 있는 하나 이상의 디바이스 전력 공급 기기(629)를 포함한다. 또한, 테스트 시스템(620)은 동기화 버스(629a)를 포함하는데, 하나 이상의 온-칩-시스템 테스트 제어기(622), 하나 이상의 디지털 입력/출력 기기(624), 하나 이상의 아날로그/RF/HSIO 기기(626), 하나 이상의 디지털 입력/출력 기기(628) 및 하나 이상의 디바이스 전력 공급 기기(629)는 모두 동기화 버스(629a)에 결합된다. 따라서, 온-칩-시스템 테스트 제어기(622)는, 예를 들어 전술한 파라미터 테스트 자원(220) 및 디지털 테스트 자원(230)의 역할을 담당할 수 있는 기기들(624, 626, 628, 629)을 동기화할 수 있다.
예를 들어, 디지털 입력/출력 기기(624)는 SoC(630)의 입력/출력 멀티플렉서에 결합될 수 있고, 하나 이상의 디지털 신호를 SoC에 제공할 수 있고/있거나 SoC(630)로부터 하나 이상의 데이터 신호를 수신할 수 있다. 아날로그/무선 주파수/HSIO 기기(626)는, 예를 들어, SoC의 하나 이상의 주변 인터페이스에 결합될 수 있다.
하나 이상의 디지털 입력/출력 기기(628)는, 예를 들어, 클록 신호, 리셋 신호 등과 같은 보조 신호를 SoC에 제공할 수 있고, 따라서 또한 테스트 절차를 제어하는 것을 도울 수 있다. 하나 이상의 디바이스 전력 공급기(629)는 하나 이상의 공급 전압을 SoC에 제공할 수 있고, 예를 들어, 온-칩-시스템 테스트 제어기(622)의 제어 하에 상이한 공급 전압들에 대해 SoC를 테스트하기 위해 SoC의 테스트 환경을 변경하는 데에도 사용될 수 있다.
통합형 테스트 실행기(614)는 예를 들어 자동 테스트 장비에 의해 수행되는 전체 테스트 흐름을 제어할 수 있고, 예를 들어 특정 테스트 흐름을 수행하도록 온-칩-시스템 테스트 제어기(622)를 구성할 수 있다. 예를 들어, 통합형 테스트 실행기(614)는 온-칩-시스템 테스트 제어기를 초기화할 수 있는데, 온-칩-시스템 테스트 제어기는 후속하여 테스트 프로세스를 자율적으로 수행하고 제어한다. 그러나, 통합형 테스트 실행기(614)는 온-칩-시스템 테스트 제어기에 의해 수행되는 테스트 실행에 대한 일부 제어를 실행할 수도 있다.
예를 들어, 통합형 테스트 실행기(614)는 온-칩-시스템 테스트 제어기에게 예를 들어 SoC의 디버그 인터페이스를 통해 온-칩-시스템 테스트 소프트웨어를 테스트 대상 디바이스(630)에 업로드하도록 명령할 수 있다. 따라서, 온-칩-시스템 테스트 코드(온-칩-시스템의 테스트 프로그램 또는 간단히 온-칩-시스템 테스트라고도 함)는 테스트 대상 디바이스(630) 상에서 실행될 수 있는데, 여기서 실행은 SoC의 메모리를 이용하여(예컨대, SRAM, L2 캐시 및 NVRAM을 이용하여) SoC의 CPU 코어에 의해 수행될 수 있다.
SoC에 의해 실행되는 온-칩 테스트 코드는, 예를 들어, 통합형 개발 환경(612)에서 개발되고 디버깅될 수 있고, 통합형 테스트 실행기의 제어 하에 OCST 제어기(622) 및 SoC의 디버그 인터페이스를 통해 SoC에 업로드될 수 있다.
결론적으로, 본 명세서에 설명된 자동 테스트 장비는 SoC(또는 일반적으로 말해서, 테스트 대상 디바이스)의 테스트를 수행할 수 있는데, OCST 제어기는 테스트의 제어에서 중요한 부분을 담당하고 하나 이상의 기기의 동기화를 담당할 수 있다. OCST 제어기는 또한 온-칩-시스템 테스트 소프트웨어를 테스트 대상 디바이스 상에 업로드할 수 있는데, 여기서 온-칩-시스템 테스트 소프트웨어("내장형 소프트웨어")의 개발은, 예를 들어, 자동 테스트 장비의 일부인 워크스테이션(610)을 사용하여 수행된다. 전체 테스트 흐름은 통합형 테스트 실행기(614)를 사용하여 워크스테이션(610)에 의해 또한 실행되는 ATE 테스트 프로그램에 의해 제어될 수 있다.
테스트 대상 디바이스와의 직접 통신을 담당하고 또한 (선택적으로) 복수의 기기의 동기화를 담당하는 OCST 제어기(622)를 가짐으로써, 통신 병목현상이 회피될 수 있고 높은 스루풋이 달성될 수 있는데, 이는 고 대역폭 인터페이스를 사용하는 많은 현대의 테스트 대상 디바이스에 바람직하다.
그러나, 도 6에 도시된 온-칩-시스템 테스트는 선택적으로 본 명세서에 개시된 특징, 기능 및 세부사항 중 임의의 것을 개별적으로 그리고 조합하여 사용함으로써 보충될 수 있음에 유의해야 한다.
4. 온-칩-시스템 테스트 코어 개념
이하에서는 일부 온-칩-시스템 테스트 코어 개념이 설명될 것인데, 이는 본 명세서에 설명된 임의의 자동 테스트 장비에서 선택적으로 구현될 수 있다.
제 1 양태에 따르면, 내장형 소프트웨어 개발, 디버그 및 배치 환경을 기존의 ATE 테스트 제어기 소프트웨어에 포함시키는 것이 가능하다.
제 2 양태에 따르면, DUT의 CPU(들) 상에서 실행되는 테스트 프로그램 프래그먼트에 런타임 및 API를 제공하는 것이 바람직하다.
제 3 양태에 따르면, 메인 테스트 프로그램 프래그먼트와 ATE 기기를 제어하는 메인 ATE 테스트 프로그램 사이의 동기화 및 데이터 전송을 위한 장비를 제공하는 것이 바람직하다.
제 4 양태에 따르면, 평균적인 테스트 엔지니어(또는 소프트웨어 엔지니어)가 사용하기 쉽게 하는 것이 바람직하다. 예를 들어, 그들이 자신의 검증 또는 소프트웨어/펌웨어 개발 그룹으로부터 필요한 DUT 특정 소프트웨어를 쉽게 얻을 수 있게 하는 것이 바람직하다.
제 5 양태에 따르면, 제한된 자원(예컨대, 웨이퍼 소트(wafer sort)에서 메모리 누락) 상에서 환경이 실행될 수 있게 하는 것이 바람직하다.
제 6 양태에 따르면, 널리 사용되는 인프라스트럭처 상에서의 공통 테스트 도전(예컨대, AMBA 버스 스트레스 테스트)에 대해 사용할 준비가 된 테스트 프로그램 프래그먼트를 제공하는 것이 바람직하다.
결론적으로, 전술한 양태들 중 임의의 것은 개별적으로 그리고 조합하여 본 명세서에 설명된 자동 테스트 장비에 선택적으로 도입될 수 있다.
5. 응용
이하에서는 도 7 내지 도 11을 참조하여 일부 응용이 설명될 것이다.
도 7은 아날로그/RF 수신기 테스트가 수행되는 제 1 시나리오의 개략도를 도시한다. 이 경우, 예를 들어 워크스테이션(610)에 대응할 수 있는 워크스테이션(710)을 포함하고, 또한 예를 들어 테스트 시스템(620)에 대응할 수 있는 테스트 시스템(720)을 포함하는 자동 테스트 장비가 사용된다. 또한, 테스트 대상 디바이스(730)는, 예를 들어, 테스트 대상 디바이스(630)에 대응할 수 있다.
알 수 있는 바와 같이, 예를 들어 통합형 테스트 실행기에 의해 수행되는 자동 테스트 장비 프로그램은, 아날로그/RF 수신기 테스트를 허용하는 테스트 대상 디바이스 상에 온-칩-시스템 테스트 코드를 업로드하도록 온-칩-시스템 테스트 제어기에 명령한다. 예를 들어, 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트 코드는 아날로그 신호 또는 무선 주파수 신호의 수신을 위해 테스트 대상 디바이스(730)의 주변 인터페이스를 구성할 수 있다.
또한, 통합형 테스트 실행기는 테스트 시스템(720)의 아날로그/무선 주파수 생성기를 제어하여 아날로그 신호 또는 무선 주파수 신호를 테스트 대상 디바이스(730)의 주변 인터페이스에 제공할 수 있다. 예를 들어, 통합형 테스트 실행기 및 워크스테이션(710)은 아날로그/무선 주파수 생성기를 직접 제어할 수 있다. 그러나, 바람직한 실시예에서는, 온-칩-시스템 테스트 제어기가 테스트 시스템의 아날로그/무선 주파수 생성기를 실제로 제어하고 동기화한다. 결과적으로, 테스트 대상 디바이스의 주변 인터페이스는 일반적으로 수신된 아날로그 신호 또는 무선 주파수 신호(주변 인터페이스에 의해 수신됨)를 반영하는 디지털 정보를 생성하고, 온-칩 테스트 코드는, 예를 들어, 주변 인터페이스에 의해 제공된 디지털 데이터를 평가하고/하거나 (예컨대, OCST 제어기에 의한) 평가를 위해 주변 인터페이스로부터 수신된 디지털 데이터를 테스트 시스템으로 포워딩할 수 있다. 따라서, 테스트 결과는 OCST 제어기에 의해 통합형 테스트 실행기에 제공될 수 있는데, OCST 제어기는 테스트 대상 디바이스를 예를 들어 합격(okay) 또는 불합격(failing)으로서 판단할 수 있게 한다.
결론적으로, 테스트 대상 디바이스 상에서 실행되고 또한 OCST 제어기에 의해 지원될 수 있는 온-칩 테스트 코드에 의해 지원될 수 있는, 테스트 대상 디바이스의 아날로그/RF 수신기 테스트가 수행될 수 있는데, OCST 제어기는, 예를 들어, 테스트 대상 디바이스에 온-칩 테스트 코드를 업로드하고, 아날로그/무선 주파수 생성기를 제어하고, 또한 테스트 대상 디바이스로부터 결과 정보의 획득 및 결과 정보의 워크스테이션(710)으로의 포워딩을 처리할 수 있다.
도 8은 아날로그/무선 주파수 송신기 테스트가 수행되는 제 2 시나리오의 개략도를 도시한다.
제 2 시나리오에는, 워크스테이션(610) 또는 워크스테이션(710)에 대응할 수 있는 워크스테이션(810)과, 테스트 시스템(720) 또는 테스트 시스템(620)에 대응할 수 있는 테스트 시스템(820)과, 테스트 대상 디바이스(730) 또는 테스트 대상 디바이스(630)에 대응할 수 있는 테스트 대상 디바이스(830)가 존재한다. 특히, 제 2 시나리오는 제 1 시나리오와 매우 유사하다는 점에 유의해야 한다.
그러나, 제 2 시나리오에서는, 온-칩-테스트 코드가 (예컨대, OCST 제어기를 통해) 테스트 대상 디바이스(830)에 업로드되는데, 이는 테스트 대상 디바이스(830)으로 하여금 주변 인터페이스를 통해 아날로그 신호 또는 무선 주파수 신호를 송신하게 한다. 예를 들어, 테스트 대상 디바이스(830)의 주변 인터페이스를 통해 송신될 데이터는 테스트 대상 디바이스(830) 상에서 실행되는 온-칩-테스트 코드에 의해 제공된다. 또한, 테스트 시스템(820)의 아날로그 샘플러/무선 주파수 샘플러는 테스트 대상 디바이스(830)에 의해 생성된 아날로그 신호 또는 무선 주파수 신호를 수신한다. 테스트 대상 디바이스(830)로부터 테스트 시스템(820)에 의해 수신된 아날로그 신호 또는 무선 주파수 신호에 대한 정보는, 예를 들어 OCST 제어기에 의해 평가될 수 있거나, 또는 예를 들어 OCST 제어기에 의해 워크스테이션(810) 상의 통합형 테스트 실행기로 포워딩될 수 있다. 따라서, 예를 들어 OCST 제어기에 의해 또는 워크스테이션(810) 상에서 실행되는 통합형 테스트 실행기에 의해, 테스트 대상 디바이스에 의해 제공된 아날로그 신호가 기대 또는 요건을 충족하는지 여부가 판정될 수 있다. 따라서, 테스트 대상 디바이스가 합격으로 분류되어야 하는지 또는 불합격으로 분류되어야 하는지가 판정될 수 있다.
여기서, 자동 테스트 장비(워크스테이션(810) 및 테스트 시스템(820)을 포함함)와 테스트 대상 디바이스(830) 사이에 협력이 존재한다는 점에 유의해야 한다. 테스트 대상 디바이스(830)에 업로드된 온-칩 테스트 코드(또는 온-칩-시스템 테스트 소프트웨어)는 아날로그 신호 또는 무선 주파수 신호의 제공을 제어하고, 테스트 시스템은 바람직하게는 OCST 제어기의 제어 하에서 아날로그 신호를 수신하고 평가하는데, OCST 제어기는 일반적으로 아날로그/무선 주파수 샘플러에 대한 고속 및 직접 인터페이스를 갖는다. 또한 OCST 제어기는 일반적으로 매우 직접적인 방식으로 테스트 대상 디바이스(830)와 통신할 수 있기 때문에, OCST 제어기도 테스트 대상 디바이스에 의해 제공되는 아날로그 신호 및 아날로그 신호가 제공되는 타이밍에 대해 어느 정도의 제어를 가질 수 있다.
결론적으로, 본 명세서에 개시된 자동 테스트 장비는 선택적으로 제 2 시나리오를 처리하도록 조정될 수 있다.
도 9는 고속 입출력(HSIO) 파라미터 테스트가 수행되는 제 3 시나리오의 개략도를 도시한다. 제 3 시나리오에서는, 워크스테이션(910) 및 테스트 시스템(920)이 테스트 대상 디바이스(930)를 테스트하기 위해 사용되는데, 여기서 워크스테이션(910)은 전술한 워크스테이션들(610, 710, 810)에 대응할 수 있고, 테스트 시스템(920)는 전술한 테스트 시스템들(620, 720, 820)에 대응할 수 있다.
그러나, 제 3 시나리오에서는, 테스트 시스템(920)의 고속 입출력 기기가 테스트 대상 디바이스에 데이터를 전송하고 테스트 대상 디바이스로부터 데이터를 수신하는 데 사용될 수 있다. 예를 들어, 테스트 시스템(920)의 고속 입출력 기기는 테스트 대상 디바이스의 주변 인터페이스(예컨대, HSIO 주변 인터페이스)에 결합될 수 있다. 예를 들어, 테스트 시스템은 테스트 시스템(920)의 HSIO 인터페이스를 통해 테스트 대상 디바이스(930)에 데이터를 제공할 수 있는데, 여기서 데이터는 통합형 테스트 실행기 상에서 실행되는 ATE 테스트 프로그램에 의해 결정될 수 있다. 예를 들어, 테스트 시스템(920)의 고속 입출력 인터페이스를 통한 테스트 대상 디바이스로의 데이터의 전송에 대한 제어는, 통합형 테스트 실행기 상에서 실행되는 ATE 테스트 프로그램으로부터 데이터를 수신하는 OCST 제어기에 의해 실행될 수 있다.
DUT(930)의 주변 인터페이스는, 예를 들어 (예컨대, 주변 인터페이스의 테스트를 위한 일부 설계를 활용하는) 주변 인터페이스의 적절한 구성에 의해, 테스트 시스템에 의해 제공된 데이터를 루프 백(loop back)할 수 있다. 그러나, 루프 백 기능은 또한, 주변 인터페이스로부터 수신된 데이터를 판독하고 판독된 데이터를 다시 주변 인터페이스의 출력 버퍼에 복사할 수 있는 온-칩 테스트 코드에 의해 제공될 수 있다.
테스트 시스템(920)은 테스트 대상 디바이스(930)의 주변 인터페이스에 의해 송신된 데이터를 수신할 수 있고, 수신된 데이터는 OCST 제어기에 의해 평가될 수 있고/있거나 통합형 테스트 실행기 상에서 실행되는 ATE 테스트 프로그램으로 포워딩될 수 있다. 따라서, 테스트 대상 디바이스(930)의 고속 입출력 인터페이스가 테스트될 수 있는데, 예를 들어 OCST 제어기의 제어 하에, 테스트 시스템(920)의 고속 입출력 기기에 의해 송신 파라미터가 조정될 수 있어서, 테스트 대상 디바이스(930)의 고속 입력 출력 인터페이스의 파라미터가 결정될 수 있다. 또한, 예를 들어 OCST 제어기가 테스트 대상 디바이스의 주변 인터페이스로의 데이터의 송신 및 주변 인터페이스로부터의 데이터의 수신, 더 나아가 테스트 대상 디바이스의 구성을 제어하는 경우, 특히 높은 효율이 달성된다. 따라서, 고속 입출력 파라미터 테스트는 매우 효율적인 방식으로 수행될 수 있다.
도 10은 HSIO 프로토콜 엔진 테스트가 수행되는 제 4 시나리오의 개략도를 도시한다. 제 4 시나리오에서는, 워크스테이션(1010) 및 테스트 시스템(1020)이 테스트 대상 디바이스(1030)를 테스트하기 위해 사용되는데, 워크스테이션(1010)은 워크스테이션들(610, 710, 810, 910)에 대응할 수 있고, 테스트 시스템(1020)은 테스트 시스템들(620, 720, 820, 920)에 대응할 수 있고, 테스트 대상 디바이스(1030)는 테스트 대상 디바이스들(630, 730, 830, 930)에 대응할 수 있다.
제 4 시나리오에서, 테스트 대상 디바이스(1030)의 주변 인터페이스는 루프 백 모드에 있도록 구성될 수 있는데, 이는 예를 들어 테스트용 설계 회로를 사용하여 달성될 수 있다. 따라서, 자동 테스트 장비는, 주변 인터페이스를 루프 백 모드에 있도록 구성하고 데이터를 주변 인터페이스에 전송하고 주변 인터페이스에 의해 루프 백된 데이터를 수신하여 평가하는 온-칩 테스트 코드를 테스트 대상 디바이스(1030) 상에 업로드할 수 있다. 예를 들어, 테스트 대상 디바이스 상에서 실행되는 온-칩 테스트 코드는, 주변 인터페이스로부터 루프 백된 데이터가 예상 데이터에 따르는지 여부를 평가할 수도 있다. 따라서, 고속 입출력 인터페이스의 프로토콜 엔진이 테스트될 수 있다. 특히, 온-칩 테스트 코드는 또한 주변 인터페이스에 의해 제공되는 프로토콜 정보를 평가할 수 있다.
결론적으로, 제 4 시나리오에서, 온-칩-시스템 테스트 제어기는, 예를 들어, 적절한 온-칩 테스트 코드를 테스트 대상 디바이스(1030)에 업로드하고, 테스트 대상 디바이스로부터 결과 정보를 수신하고, 결과 정보를 워크스테이션(예컨대, 통합형 테스트 실행기)에 포워딩하는 것만을 담당할 수 있다. 따라서, 고속 입출력 프로토콜 엔진 테스트가 높은 효율로 수행될 수 있다.
도 11은 상호접속 스트레스 테스트가 수행되는 제 5 시나리오의 개략도를 도시한다. 제 5 시나리오에서는, 워크스테이션(1110) 및 테스트 시스템(1120)이 테스트 대상 디바이스(1130)를 테스트하기 위해 사용된다. 예를 들어, 워크스테이션(1110) 및 테스트 시스템(1120)을 포함하는 자동 테스트 장비는, 테스트 대상 디바이스의 상이한 블록들 사이에서 데이터 전송을 수행하도록 구성되어 비동기식 애플리케이션 상호접속부에 "스트레스를 주는(stress)" 온-칩 테스트 코드를 테스트 대상 디바이스에 업로드하도록 구성된다. 예를 들어, 데이터 전송은 CPU 코어와 SRAM 사이, 테스트 대상 디바이스의 주변 블록과 SRAM 사이, 및 테스트 대상 디바이스의 코프로세서와 SRAM 사이에서 수행될 수 있다. 예를 들어, 온-칩 테스트 코드는 비동기식 애플리케이션 상호접속부를 통해 이러한 "스트레스성(stressful)" 데이터 트래픽을 개시하도록 구성될 수 있고, 또한 데이터 전송의 무결성을 모니터링할 수 있다. 따라서, 테스트 시스템(1120)의 OCST 제어기는 예를 들어 디버그 인터페이스를 통해 테스트 대상 디바이스(1130)로부터 결과 정보를 획득할 수 있고, 예를 들어 결과 정보를 통합형 테스트 실행기 상에서 실행되는 자동 테스트 장비 테스트 프로그램에 포워딩할 수 있다. 따라서, 테스트 대상 디바이스(1130)의 상호접속부는 효율적으로 테스트될 수 있는데, 여기서 테스트 시스템의 부하는 비교적 작다.
6. 테스트 대상 디바이스(SoC)의 동작 모드들
이하에서는 테스트 대상 디바이스를 동작시키기 위한 상이한 모드들이 설명될 것이다. 또한, 부트 프로세스에 관한 일부 세부사항 및 자동 테스트 장비에 관한 선택적인 세부사항이 논의될 것이다.
운영 체제 환경을 갖는 OCST
이하에서는 온-칩-시스템 테스트가 운영 체제 환경에서 수행될 수 있는 방법에 대해 설명한다. 도 12는 운영 체제 환경을 갖는 이러한 온-칩-시스템 테스트의 개략도를 도시한다.
도 12에서 알 수 있는 바와 같이, 자동 테스트 장비는 예를 들어 워크스테이션(1210) 및 자동 테스트 장비 하드웨어(1220)를 포함할 수 있다. 예를 들어, 워크스테이션(1210)은 전술한 워크스테이션(610, 710, 810, 910, 1010, 1110)에 대응할 수 있고, 자동 테스트 장비 하드웨어는 예를 들어 테스트 시스템(620, 720, 820, 920, 1020, 1120)에 대응할 수 있다. 그러나, 자동 테스트 장비(1202)는, 예를 들어, 본 명세서에 개시된 자동 테스트 장비의 기능들 중 일부 또는 전부를 포함할 수 있다. 그러나, 대안적으로, 자동 테스트 장비와 관련하여 본 명세서에 설명된 임의의 기능은 개별적으로 그리고 조합하여 본 명세서에 개시된 임의의 다른 자동 테스트 장비로 선택적으로 인계될 수 있다.
워크스테이션(1210)은 일반적으로 다수의 소프트웨어 모듈을 실행한다는 점에 유의해야 한다. 예를 들어, 워크스테이션은, 예를 들어 전술한 개발 및 디버그 환경(240)에 대응할 수 있는 통합형 개발 환경(1212)을 실행하도록 구성될 수 있다. 통합형 개발 환경은 내장형 소프트웨어 디버거(1214a) 및 ATE 디버거(1214b)를 포함하거나 이들과 협력할 수 있다. 예를 들어, 내장형 소프트웨어 디버거는 "내장형 소프트웨어", 즉, 테스트 대상 디바이스 상에서 실행될 소프트웨어(또한 본 명세서에서 간단히 "온-칩-시스템 테스트"로서 지칭됨)를 디버깅하도록 조정될 수 있다. ATE 디버거(1214b)는, 예를 들어, 사용자에 의해 제공될 수 있는 ATE 흐름(1216)과 같은 자동 테스트 장비 소프트웨어를 디버깅하도록 구성될 수 있다. 예를 들어, 통합형 개발 환경(1212)은, 내장형 소프트웨어 디버거(1214a) 및 자동 테스트 장비 디버거(1214b)와 통신하고 ATE 흐름(1216)을 편집하도록 구성된다. 또한, ATE 디버거(1214b)는 ATE 흐름(1216)을 평가하도록 구성될 수 있다. 내장형 소프트웨어 디버거(1214a)는, 예를 들어, 워크스테이션(1210) 및 ATE 하드웨어(1220)를 통해 테스트 대상 디바이스와 통신할 수 있다. 또한, 워크스테이션 상에서 실행되는 자동 테스트 장비 테스트 모음(automated test equipment test suite)(1218) 및 자동 테스트 장비 런타임 환경(1219)도 존재한다. 예를 들어, 자동 테스트 장비 런타임 환경(1219)은 워크스테이션(또는 워크스테이션의 운영 체제)과 ATE 테스트 모음(1218a) 사이에 있는 소프트웨어 계층이다. 또한, ATE 테스트 모음(1218)는 일반적으로 ATE 흐름(1217)을 실행하고 ATE 디버거(1214b)와 협력한다는 점에 유의해야 한다.
결론적으로, 통합형 개발 환경(1212)은, 예를 들어, 내장형 소프트웨어 디버거(1214a)에 대한 (예컨대, 사용자를 위한) 액세스를 ATE 디버거(1214b)에 제공할 수 있고, 또한 ATE 흐름의 실행을 제어하는 것을 허용한다.
더 나아가, 테스트 대상 디바이스 하드웨어(1230)는 또한 다양한 소프트웨어 모듈을 실행할 수 있다. 예를 들어, 하나 이상의 디바이스 드라이버(1234a, 1234b)을 사용하여 테스트 대상 디바이스의 하드웨어(예를 들어, 하나 이상의 인터페이스)에 액세스하는 운영 체제 커널(1232)이 존재한다. 또한, 운영 체제 커널은, 예를 들어 DUT 하드웨어의 인터페이스 및 어쩌면 DUT 하드웨어에 결합된 추가 메모리를 정의할 수 있는 "디바이스 트리(device tree)"(1236)에 액세스할 수 있다. 또한, 일반적으로, 예를 들어 온-칩-테스트 코드(1240)의 실행을 제어할 수 있는 "OCST 러너(OCST runner)"(1238)가 존재한다. 온-칩 테스트 코드(1240)는 예를 들어 온-칩-시스템 테스트 런타임 환경(1242)을 이용할 수 있는데, 이는 예를 들어 일부 기능을 제공할 수 있다. OCST 런타임 환경(1242)은 (예컨대, OS 커널(1232)의 기능을 호출함으로써) 운영 체제 커널(1232)과 협력하도록 구성된다. 더 나아가, OCST 러너(1238)는 또한, 예를 들어 ATE 하드웨어와 OCST 러너(1238) 사이의 직접 통신을 허용하기 위해, DUT 하드웨어와 직접 통신할 수 있다는 점에 유의해야 한다. 또한, 온-칩-테스트 코드(1240)는, 예를 들어, OS 커널(1232)의 기능에 직접 액세스할 수 있고, OS 커널(1232)의 기능에 액세스하는 OCST 런타임 환경(1242)의 기능에 액세스하는 것도 가능하다. 또한, OS 커널(1232)은, 예를 들어, 하나 이상의 디바이스 드라이버(1232a, 1232b)를 통해 DUT 하드웨어에 액세스하는 것 외에, DUT 하드웨어와 직접 통신할 수 있다.
테스트 대상 디바이스(1230) 상에서 실행되는 소프트웨어 모듈들 중 임의의 것은, 예를 들어, 본 명세서에 설명된 자동 테스트 장비의 개발 및 디버그 환경에 의해 제공될 수 있다는 점에 유의해야 한다. 따라서, 개발 및 디버그 환경은 소프트웨어 모듈들(1232, 1232a, 1232b, 1238, 1244)을 정의하는 하나 이상의 프로그램을 포함할 수 있고, 온-칩-테스트 코드(1240)는 일반적으로 개발 및 디버깅 환경에 대한 사용자 입력에 기초한다.
내장형 운영 체제 부트 시퀀스
이하에서는 내장형 운영 체제 부트 시퀀스의 일 예가 그러한 내장형 운영 시스템 부트 시퀀스의 개략도를 도시하는 도 13을 참조하여 설명될 것이다. 도 13은 테스트 대상 디바이스, 예를 들어, 전술한 테스트 대상 디바이스와 유사할 수 있는 SoC(1310)를 도시한다. 알 수 있는 바와 같이, 시스템-온-칩(1310)은 CPU 코어(1320), SRAM(1322), L2 캐시(1324), NVRAM(1326) 및 ROM(1328)을 포함하는데, 이들은 모두 동기식 애플리케이션 상호접속부에 결합된다. 또한, 시스템-온-칩(1310)은 주변 인터페이스(1330) 및 메모리 제어기(1332)를 포함할 수 있는데, 주변 인터페이스는 예를 들어 상이한 타입의 플래시 메모리에 액세스하고/하거나 직접 메모리 액세스(예컨대, PCIe DMA)를 통해 메모리에 액세스하도록 조정될 수 있다. 또한, 메모리 제어기(1332)는 예를 들어 동적 랜덤 액세스 메모리(DRAM)에 액세스하도록 구성될 수 있다.
부트 시퀀스에서, 예를 들어 ROM(1328)에 저장되는 1차 부트 로더는 주변 인터페이스(1330)를 통해 SRAM(1322)에 2차 부트 로더의 로딩을 야기할 수 있다. 또한, 그런 다음, 2차 부트 로더는 플래시 메모리로부터 또는 다른 "외부" 메모리로부터 DRAM으로의 운영 체제 프로그램의 복사를 야기할 수 있는데, 플래시 메모리 또는 외부 메모리는 주변 인터페이스(1330)를 통해 액세스되고, DRAM은 메모리 제어기(1332)를 통해 액세스된다. 따라서, 운영 체제는, 일반적으로 외부 메모리(플래시 메모리 또는 직접 메모리 액세스(DMA)를 통해 액세스가능한 메모리)보다 훨씬 더 빠르게 액세스가능한 DRAM에 복사된다. 이어서, 운영 체제 프로그램은 CPU 코어(1320)에 의해 실행될 수 있는데, 여기서 L2 캐시(1324)은 캐싱 전략에 따라 운영 체제 프로그램의 부분들을 캐시할 수 있다. 그러나, 종래의 운영 체제의 실행은 일반적으로 일부 테스트 환경에서 보장될 수 없는 DRAM의 존재를 필요로 한다는 점에 유의해야 한다. 특히, 일부 테스트 환경에서는 DRAM의 제공이 어렵다.
이하에서는, OS 후보, 즉, SoC 상의 리눅스에 대한 짧은 논의가 제공될 것이다.
이 OS 후보는 매우 다양한 내장형 CPU 코어 상에서 지원되고, 또한 문서화가 잘 되어 있다.
이 OS 후보는 내장형 CPU의 공통 변형을 묘사하기 위해 장치 트리를 이용한다. 이는 새로운 CPU 변형에 따라 조정하는 것을 용이하게 한다.
전술한 OS 후보는 기본 시스템 구성을 처리하지 않는다(즉, 메모리 제어기를 초기화하지 않음). 오히려, OS 후보는 이를 처리하기 위해 부트 로더에 의존한다.
전술한 OS 후보에 대해, 다수의 CPU 코어 및 메모리 가상화에 대한 즉각적인(out-of-the-box) 지원이 존재한다.
또한, 전술한 OS 후보에 대해, 커널과 사용자 공간의 분리가 존재한다.
사용자 공간으로부터, 모든 하드웨어는 공통의 관념적 API를 통해 액세스된다.
또한, 전술한 OS 후보는 모듈식 하드웨어 드라이버를 포함한다. 많은 드라이버가 커널 코드 분포와 함께 용이하게 이용가능하다. 또한, 고객 특정 드라이버가 쉽게 통합될 수 있다.
또한, 전술한 OS 후보에 대해, 하드웨어 디버그 지원(GDB) 없이 소프트웨어 디버그가 가능하다.
전술한 OS 후보에 대해, JTAG/SWD를 통한 디버깅은 (예컨대, 루터바흐(Lauterbach)로부터) 커널 어드레스 변환 및 프로세스 테이블을 인식하는 디버거를 요구한다.
전술한 운영 체제 후보와 관련하여, (개방 소스) 구축된 루트 환경에서는, 커널만으로 구성된 스트립 다운 리눅스 시스템(stripped down Linux system), 필요한 하드웨어 드라이버 및 단일 사용자 공간 프로그램이 용이하게 구축될 수 있다는 점에 또한 유의해야 한다. 이러한 시스템은 수 초 내에 부팅될 수 있음이 밝혀졌다.
결론적으로, SoC 상의 리눅스는, 예를 들어 테스트 대상 디바이스 상에서의 실행을 위한 운영 체제로서 사용될 수 있음이 밝혀졌다.
베어 메탈 환경을 갖는 OCST
이하에서는, 베어 메탈 환경(bare metal environment)을 갖는 온-칩-시스템 테스트가 이러한 베어 메탈 환경을 갖는 온-칩-시스템 테스트의 개략도를 도시하는 도 14를 참조하여 설명될 것이다.
이 문제와 관련하여, 워크스테이션(1410) 및 자동 테스트 장비 하드웨어(1420)를 포함하는 자동 테스트 장치(1402)는 원칙적으로 자동 테스트 장비(1202)와 동일할 수 있다는 점에 유의해야 한다. 또한, 통합형 개발 환경(1412)은 통합형 개발 환경(1212)에 대응할 수 있고, 내장형 소프트웨어 디버거(1414a)는 내장형 소프트웨어 디비거(1214a)에 대응할 수 있고, ATE 디버거(1414b)는 ATE 디버거(1214b)에 대응할 수 있고, ATE 테스트 모음(1418)은 ATE 테스트 모음(1218)에 대응할 수 있고, ATE 런타임 환경(1419)은 ATE 런타임 환경(1219)에 대응할 수 있다. 그러나, 소프트웨어 모듈(1412, 1414a, 1414b, 1418, 1419)은 테스트 대상 디바이스 상에서 실행되는 운영 체제가 없는 것을 반영하도록 구성될 수 있다.
테스트 대상 디바이스 하드웨어(1430)에 관하여, 이 시나리오에서는 어떤 운영 체제 커널 소프트웨어도 테스트 대상 디바이스 상에서 실행되지 않는다는 점에 유의해야 한다. 오히려, DUT 하드웨어(1430)에 직접 액세스할 수 있는 OCST 런타임 환경(1442)이 존재한다. 예를 들어, OCST 런타임 환경(1442)은, 예를 들어 DUT 하드웨어(1430)의 인터페이스를 정의할 수 있는 디바이스 트리(1444)에 의해 지원될 수 있다. 또한, OCST 런타임 환경(1442)의 기능에 액세스할 수 있고 또한 DUT 하드웨어(1430)에 직접 액세스할 수 있는 온-칩-테스트 코드(1440)가 존재한다. 또한, 예를 들어 온-칩-테스트 코드(1440)와 통신할 수 있는(또는 이를 제어할 수 있는) OCST 러너(1438)가 존재한다. OCST 러너(1438)는 또한 DUT 하드웨어(1430)와 직접 통신할 수 있고, 예를 들어 DUT 하드웨어로부터 직접 제어 커맨드를 수신할 수 있다(여기서, 제어 커맨드는 예를 들어 자동 테스트 장비의 온-칩-시스템 테스트 제어기에 의해 제공됨). 따라서, 온-칩-시스템 테스트 러너(1438)는 온-칩-테스트 코드(1440)의 실행을 제어할 수 있고, 온-칩 테스트 코드(1440)는 DUT 하드웨어(1430)의 테스트를 수행할 때 온-칩-시스템 테스트 런타임 환경(1442)을 사용할 수 있다.
결론적으로, 온-칩-시스템 테스트 런타임 환경이 DUT 하드웨어에 대한 액세스를 지원한다면, 온-칩-시스템 테스트는 또한 테스트 대상 디바이스 상에서 운영 체제를 실행하지 않으면서 수행될 수 있다.
디버그 포트를 통한 내장형 베어 메탈 부트
이하에서는, 오퍼레이팅 시스템을 실행하지 않는 테스트 대상 디바이스(SoC)를 부팅하는 개념("베어 메탈")이 설명될 것이다. 도 15는 디버그 포트를 통한 이러한 내장형 베어 메탈 부트의 개략적 블록도를 도시한다.
테스트 대상 디바이스(1510)는, 예를 들어, 본 명세서에 설명된 임의의 다른 테스트 대상 디바이스와 유사할 수 있다는 점에 유의해야 한다.
그러나, 테스트 대상 디바이스(1510)는, 일반적으로 ROM에 저장되는 1차 부트 로더를 포함한다.
그러나, 디버그 포트를 통한 베어 메탈 부트를 사용할 때, 1차 부트 로더는 일반적으로 사용되지 않는다. 오히려, 디바이스는 예를 들어 온-칩-테스트 시스템 제어기의 제어 하에 디버그 인터페이스를 사용하여 구성된다. 예를 들어, 온-칩-시스템 테스트 제어기는 디버그 인터페이스(예컨대, JTAG 인터페이스 또는 SWD 인터페이스)를 통해 CPU 코어에 액세스할 수 있고, 베어 메탈 프로그램을 SRAM으로 복사하도록 CPU 코어를 구성할 수 있다. 예를 들어, 온-칩-시스템 테스트 제어기는, CPU 코어로 하여금 원하는 베어 메탈 프로그램을 SRAM에 복사하게 하는 적절한 디버그 커맨드 또는 스캔 정보를 제공할 수 있다. 그러나, 대안적으로, 온-칩-시스템 테스트 제어기는 또한, 테스트 대상 디바이스의 설계의 관점에서 가능하다면, 디버그 인터페이스를 통해 SRAM에 직접 액세스할 수 있다. 베어 메탈 프로그램의 이러한 업로드를 행할 때, 온-칩-시스템 테스트 제어기는 예를 들어 1차 부트 로더의 실행을 중단할 수 있다. 또한, 온-칩-시스템 테스트 제어기는, 예를 들어 CPU 코어의 프로그램 카운터를 디버그 포트를 통한 SRAM의 적절한 메모리 어드레스로 설정함으로써, SRAM에 저장된 베어 메탈 프로그램을 실행하도록 CPU 코어에 명령할 수 있다. 그러한 개념은, 문서화가 잘 되어 있지 않을 수 있는 운영 체제의 가능한 비결정적 거동이 회피되기 때문에 유리할 수 있다. 오히려, 소프트웨어 엔지니어에 의해 더 상세히 이해될 수 있고, 따라서 일부 경우에 더 양호한 재현가능한 테스트 결과를 제공할 수 있는 베어 메탈 프로그램(bare metal program)이 제공된다.
또한, 베어 메탈 프로그램의 사용은 외부 DRAM의 사용이 필요하지 않을 수 있도록 프로그램이 더 "슬림"해진다는 이점을 가질 수 있다.
베어 메탈 후보 U-BOOT 부트 로더
소위 "U-부트" 부트 로더는 시스템-온-칩 상에서 양호한 후보가 될 수 있음이 밝혀졌다.
이 베어 메탈 후보는 SoC 상에서 가장 일반적으로 사용되는 부트 로더인 것이 밝혀졌다.
또한, 베어 메탈 후보는 디바이스 트리를 이용하여 내장형 CPU의 공통 변형을 묘사하는 것이 밝혀졌다. 이는 새로운 CPU 변형에 따라 조정하는 것을 용이하게 한다.
또한, 전술한 베어 메탈 후보는 기본 하드웨어 초기화를 처리한다.
또한, 전술한 베어 메탈 후보는 메모리 가상화를 사용하지 않고 최소의 메모리 풋프린트를 갖는 것으로 밝혀졌다.
또한, 전술한 베어 메탈 후보는 (심지어 멀티-코어 시스템 상에서도) 단일 CPU 상에서만 즉각적으로 실행된다고 밝혀졌다. 그러나, 전술한 베어 메탈 후보는 OS 부하를 위한 로컬 및 네트워크 인터페이스의 기본 세트를 지원한다.
전술한 베어 메탈 후보는 직렬 인터페이스를 통해 액세스가능한 커맨드 라인 인터페이스를 제공한다.
전술한 베어 메탈 후보는 밀리초 범위에서 부팅되는 것으로 밝혀졌다.
또한, 상기 베어 메탈 후보는 오픈 소스이며 확장가능하다. 따라서, 누락 특징들(예컨대, 멀티 CPU 지원)을 추가함으로써 내장형 테스트 런타임 환경에 대한 베이스로서 부트 로더를 사용하는 것이 가능할 수 있다.
내장형 테스트 프레임워크: OS 대 베어 메탈
이하에서는 운영 체제를 사용하는 것의 일부 이점 및 베어 메탈을 사용하는 것(예컨대, 운영 체계 없는 것)의 일부 이점이 설명될 것이다.
OS의 이점:
1. 기존의 디바이스 드라이버는 "그대로" 사용될 수 있다. 가장 일반적인 주변 인터페이스의 경우, 디바이스 드라이버는 이미 이용가능하다.
2. 다수의 CPU 상의 멀티-태스킹에 대한 즉각적 지원
3. 메모리 가상화는 물리적 메모리 레이아웃을 숨긴다. 이는 프로그래밍 및 디버그를 단순화한다.
베어 메탈의 이점:
1. 부트 시간은 초에서 마이크로초로 감소된다.
2. 상당히 감소된 메모리 풋프린트
3. 저 레벨 액세스로 인한 완전한 하드웨어 제어. 이는 테스트 커버리지 및 반복성을 개선한다.
4. 누락 DRAM과 같은 불완전한 하드웨어 자원에 대한 더 용이한 조정.
결론적으로, 베어 메탈 접근법이 웨이퍼 소트에서 내장형 테스트에 가장 적합하다고 할 수 있다. 또한, 결론적으로, OS 접근법은 단순화된 사용 모델을 제공한다고 할 수 있다. 연장된 부트 시간 및 더 큰 메모리 풋프린트는 (특히 포스트 실리콘 검증의 경우) 허용가능할 수 있다는 것이 밝혀졌다.
7. 물리적 OCST 제어기
이하에서는 물리적 온-칩-시스템 테스트 제어기의 실시예가 설명될 것이다. 그러나, 본 명세서에 설명된 물리적 온-칩-시스템 테스트 제어기는 선택적으로, 본 명세서의 온-칩-시스템 테스트 제어기에 대해 설명된 특징, 기능 및 세부사항 중 임의의 것을 개별적으로 그리고 조합하여 사용함으로써 보충될 수 있다는 점에 유의해야 한다. 또한, 선택적으로, 도 16의 온-칩-시스템 테스트 제어기와 관련하여 설명된 특징, 기능 및 세부사항 중 임의의 것은 개별적으로 그리고 조합하여 임의의 다른 온-칩-시스템은 테스트 제어기로 인계될 수 있다는 점에 유의해야 한다.
도 16은 자동 테스트 장비의 일부일 수 있는 물리적 온-칩-시스템 테스트 제어기의 개략도를 도시한다. 더 나아가, 도 16은 또한 물리적 온-칩-시스템 테스트 제어기와 협력하는 워크스테이션의 개략도를 도시한다. 즉, 자동 테스트 장비는 워크스테이션 하드웨어(1610) 및 온-칩-시스템 테스트 제어기 하드웨어(1620)를 포함한다.
워크스테이션 하드웨어(1610)는 워크스테이션 소프트웨어(1612)를 실행하도록 구성되고, 온-칩-시스템 테스트 제어기 하드웨어(1620)는 온-칩-시스템은 테스트 제어기 소프트웨어(1622)를 실행하도록 구성된다. 워크스테이션 소프트웨어(1612)는, 예를 들어, 전술한 개발 및 디버그 환경(240)에 대응할 수 있는 통합형 개발 환경(1612a)을 포함할 수 있다. 그러나, 이 워크스테이션 소프트웨어(1612)의 임의의 특징, 기능 및 세부사항은 선택적으로 개발 및 디버그 환경(240)에 포함될 수도 있다.
특히, 워크스테이션 소프트웨어는 예를 들어 내장형 소프트웨어 디버거(1214a)에 대응할 수 있는 내장형 디버거(1612b)를 포함한다. 더 나아가, 워크스테이션 소프트웨어는 예를 들어 ATE 디버거(1214b)에 대응할 수 있는 ATE 디버거(1612c)를 더 포함할 수 있다. 워크스테이션 소프트웨어(1612)는 예를 들어 ATE 테스트 모음(1218)에 대응할 수 있는 ATE 테스트 모음(1612d)를 더 포함할 수 있다. 워크스테이션 소프트웨어(1612)는 예를 들어 ATE 런타임 환경(1219)에 대응할 수 있는 ATE 런타임 환경(1612e)을 더 포함할 수 있다.
또한, 예를 들어, 워크스테이션 소프트웨어는, 커널 공간 내에, 예를 들어 소켓을 통해 ATE 런타임 환경(1612e)에 의해 액세스될 수 있는 리눅스 커널(1612-f)을 포함할 수 있다. 유사하게, 하드웨어 인터페이스 관념(abstraction)을 또한 포함할 수 있는 내장형 디버거(1612b)는 리눅스 커널의 소켓을 통해 리눅스 커널(1612f)과 통신할 수 있다.
또한, 리눅스 커널은 OCST 제어기 하드웨어와의 통신을 허용할 수 있는 소위 "테스트 데이터 버스 드라이버"(1612g)를 사용할 수 있다. 그러나, OCST 제어기 하드웨어와의 통신을 허용하는 임의의 다른 드라이버가 또한 사용될 수 있다.
또한, OCST 제어기 소프트웨어(1622)는 예를 들어 사용자 공간에서 실행되는 소위 OCST 데몬(daemon)(1622a)을 포함한다. 더 나아가, OCST 제어기 소프트웨어(1622)는 예를 들어 커널 공간에서 실행될 수 있는 리눅스 커널(1622b)을 더 포함한다. 예를 들어, OCST 데몬(1622a)과 리눅스 커널(1622b) 사이의 통신은 리눅스 커널의 하나 이상의 소켓을 사용하여 수행될 수 있다.
또한, OCST 제어기 소프트웨어(1622)는, 예를 들어, JTAG 드라이버(1622c), PCIe 드라이버(1622d), "테스트 데이터 버스 드라이버"(1622e), 및 동기화 버스 드라이브(1632f)와 같은 복수의 드라이버를 포함할 수 있다. 예를 들어, 테스트 데이터 버스 드라이버(1622e)는 워크스테이션과의 통신을 지원할 수도 있다. 그러나, 워크스테이션과의 통신을 허용하는 임의의 다른 드라이버도 적절할 것이다. 동기화 버스 드라이버(1622f)는 동기화 버스에 대한 액세스를 허용하는데, 동기화 버스는 (예컨대, 전술한 테스트 자원들(220, 230)과 같은) 다른 테스트 자원들과의 동기화를 허용한다. 또한, JTAG 드라이버(또는, 일반적으로, 임의의 디버그 인터페이스 드라이버)는 디버그 인터페이스를 통한 테스트 대상 디바이스와의 통신을 허용한다. 유사하게, PCIe 드라이버(또는 임의의 다른 고 대역폭 인터페이스 드라이버)는 고 대역폭 인터페이스를 통한 테스트 대상 디바이스와의 통신을 허용한다.
이하에서는 물리적 OCST 제어기의 하드웨어 특징이 또한 설명될 것이다. 예를 들어, 물리적 OCST 제어기는 예를 들어 하나 이상의 중앙 처리 유닛(CPU)을 구현하도록 구성될 수 있는 필드 프로그래머블 게이트 어레이(1640)를 포함할 수 있다. 또한, 필드 프로그래머블 게이트 어레이(1640)는 임의의 내부 또는 외부 랜덤 액세스 메모리, 예를 들어, DRAM(1642)과 통신하도록 구성될 수 있다. 필드 프로그래머블 게이트 어레이(1640)는 예를 들어 동기화 버스(1644)와 결합될 수 있는데, 동기화 버스(1644)는 예를 들어 다른 ATE 기기와 결합될 수도 있다. 예를 들어, 동기화 버스는 물리적 온-칩-시스템 테스트 제어기와 다른 테스트 자원((예를 들어 전술한 바와 같은) 파라미터 테스트 자원 및/또는 디지털 테스트 자원과 같은 것) 사이의 동기화를 허용할 수 있다. 더 나아가, 필드 프로그래머블 게이트 어레이(1640)는 또한 워크스테이션(1610)과의 통신을 허용하는 데이터 버스(또는, 일반적으로 말해서 데이터 인터페이스)(1646)에 결합된다. 제공된 예에서는 소위 "테스트 데이터 버스"가 사용되지만, 워크스테이션에 대한 다른 인터페이스가 또한 사용될 수 있다.
온-칩-시스템 테스트 제어기는 복수의 레벨 시프터(1650)를 더 포함하고, 선택적으로 PCIe 물리적 인터페이스(1652) 및 USB 물리적 인터페이스(1654)(예컨대, USB3 물리적 인터페이스)를 더 포함한다. 예를 들어, 레벨 시프터(1650)는 또한 필드 프로그래머블 게이트 어레이(1640)의 범용 입력/출력 핀에 결합된다. 한편, 선택적 PCIe 물리적 인터페이스 및 선택적 USB 물리적 인터페이스는 필드 프로그래머블 게이트 어레이(1640)의 고속 핀(예컨대, LVDS 핀)에 결합될 수 있다.
레벨 시프터(1650), PCIe 물리적 인터페이스(1652) 및 USB 물리적 인터페이스(1654)의 디바이스측 핀들은, 예를 들어 복수의 입력/출력 멀티플렉서(1660a, 1660b(선택적), 1660c(선택적))를 통해 DUT 인터페이스에 결합될 수 있다.
입력/출력 멀티플렉서(1660a, 1660b, 1660c)를 사용하여, 레벨 시프터(1650), PCIe 물리적 인터페이스 및 USB 물리적 인터페이스(1654)는 테스트 대상 디바이스의 적절한 핀에 결합될 수 있다. 예를 들어, 레벨 시프터(1650)에 의해 제공된 신호는 바람직하게는 테스트 대상 디바이스의 디버그 인터페이스 또는 제어 인터페이스, 예를 들어, JTAG 인터페이스, SWD 인터페이스, UART 인터페이스, TWI 인터페이스 등에 결합될 수 있다. 그러나, PCIe 물리적 인터페이스에 의해 제공된 신호는 일반적으로 각각의 입력/출력 멀티플렉서(1660b)를 통해 테스트 대상 디바이스의 PCIe 인터페이스에 접속되고, USB 물리적 인터페이스(1654)에 의해 제공된 신호는 일반적으로 각각의 입력/출력 멀티플렉서(1660c)를 통해 테스트 대상 디바이스의 USB 인터페이스(예컨대, USB3 인터페이스)에 결합된다. 또한, 입력/출력 멀티플렉서들(1660a, 1660b,1660c)은 파라미터 측정 유닛(1670)을 조정가능한(가변적인) 방식으로 테스트 대상 디바이스의 하나 이상의 핀과 결합시키도록 구성될 수 있다. 따라서, 테스트 대상 디바이스의 각 핀의 아날로그 특성은 물리적 측정 유닛(1670)에 의해 특성화될 수 있다.
결론적으로, 물리적 OCST 제어기의 예시적 구현이 도 16을 참조하여 설명되었다. 예를 들어, 도 16에 설명된 온-칩-시스템 테스트 제어기 하드웨어는 선택적으로 본 명세서에 설명된 임의의 온-칩-시스템 테스트 제어기를 구현하는 데 사용될 수 있다. 그러나, 선택적으로, 도 16에 따른 온-칩-시스템 테스트 제어기의 하나 이상의 구성요소는 본 명세서에 개시된 온-칩-시스템 테스트 제어기들 중 임의의 것에서 사용될 수 있다.
또한, 선택적으로, 본 명세서에 설명된 자동 테스트 장비는 본 명세서에 개시된 특징, 기능 및 세부사항 중 임의의 것을 개별적으로 그리고 조합하여 사용함으로써 보충될 수 있다는 점에 유의해야 한다.
8. 대안적 솔루션의 관점에서의 논의
이하에서는, 일부 대안적 솔루션이 논의될 것이고, 온-칩-시스템 테스트 제어기를 사용하는 것에 대한 이점이 언급될 것이다.
제 1 대안적 솔루션은 시스템 레벨 테스트를 수행하는 것이다. 이러한 접근법에서는, 기존의 평가 보드가 취해지거나 그로부터 특별한 버전이 도출된다. 외부 환경을 제공하기 위해 벤치 장비(bench equipment)가 사용된다. 테스트 자동화를 위해 특수화된 시스템 레벨 테스트 장비가 사용된다. 애플리케이션에 대한 기존의 검증 테스트들이 실행되고, 정확한 실행에 대한 확인이 수행된다.
이러한 접근법은 다수의 이점을 갖는다. 예를 들어, 설계자 및 검증 엔지니어를 위한 고유 환경이 사용된다. 기존의 애플리케이션/검증 소프트웨어가 활용된다. 이 접근법은 모듈 테스트를 위해 잘 수립되어 있고, 원래의 솔루션이 이용가능하다. 이 접근법은 또한 저렴한 장비로 작동한다.
그러나, 이 접근법은 또한 다수의 단점을 가지는데, 이는 아래에서 약술될 것이다. 예를 들어, 애플리케이션 보드의 사용으로 인한 불량한 반복성 및 관찰성이 존재한다. 또한, 애플리케이션 소프트웨어를 사용할 때 긴 테스트 시간 및 애매한 커버리지가 존재한다. 최대 스트레스 조건은 적용될 수 없거나, 또는 클록 및 공급 전압이 애플리케이션 보드 상에서 제어될 수 있을 때에만 적용될 수 있다. 이는 일반적인 경우가 아니다. 또한, 이 접근법은 웨이퍼 소트에 배치될 수 없다. 일반적으로, 애플리케이션 보드를 웨이퍼 프로버(wafer prober)와 통합하는 데 기술적 어려움이 존재한다. 더 나아가, 고가의 프로브 장비에 대한 긴 테스트 시간에 의한 상업적 문제도 존재한다. 또한, 이 접근법은 일반적으로 제조 공정의 늦은 시점에 추가 테스트 단계를 요구한다.
또한, 소위 "종단 간 테스트(end-to-end test)"가 또 다른 접근법으로서 고려될 수 있다. 이 접근법은 특수화된 "프로토콜 인식" 기기를 갖는 ATE를 사용한다. DUT 내부 신호 경로는 종단 간 통신을 사용하여 테스트된다.
이러한 접근법은 다수의 이점을 갖는다. 예를 들어, 이 접근법은 디바이스 인터페이스를 관찰하는 고전적인 ATE 사고를 지원한다. 또한, 이 접근법은 내부 상호접속 패브릭, 프로토콜 엔진 및 아날로그 인터페이스 회로를 한꺼번에 커버한다. 이 접근법은 클록 및 공급 전압 스트레스를 적용하는 것을 허용한다. 또한, 이 접근법은 웨이퍼 소트 동안 이미 상당한 양을 제거한다. 이 접근법은 웨이퍼 소트 동안 포스트 실리콘 검증을 가능하게 하고, 설계에 대한 초기 피드백을 가능하게 한다.
그러나, 종단 간 테스트 접근법은 또한 다수의 단점을 갖는다. 특히, 내부 상호접속부가 일반적으로 인터페이스보다 빠르기 때문에 이 접근법은 최대 트래픽으로 내부 상호접속부에 스트레스를 가하기에 불충분하다. 또한, 실시간 프로토콜 처리는 일반적으로 전용 ASIC 설계를 요구하기 때문에, 고속 트래픽은 일반적인 ATE 기기로 커버될 수 없다. 또한, 검증 테스트 케이스는 화이트 박스 테스트 관점에서 효율적이지 않기 때문에, 이는 대부분 종단 간 통신을 커버하지 않을 것이다. 테스트 케이스는 테스트 엔지니어에 의한 스크래치(scratch)로부터 발생되어야 한다.
이하에서는 "통계 상관(statistical correlation)" 접근법이 설명될 것이다. 이 접근법에서는, 생산 램프 동안, 웨이퍼 소트에서 상이한 클록 및 전압 스트레스 조건 하에서 거의 모든 이용가능한 스캔 벡터가 실행된다. 그러나, 공칭 조건 하에서 불합격인 DUT만이 폐기된다. 또한, 웨이퍼 소트 이탈(wafer sort escapes)을 식별하기 위해 SLT 테스트가 실행된다. 또한, 전체 불합격 DUT는 스트레스 조건 하에서 불합격 스캔 벡터와 상관된다. 이러한 불합격 테스트는 SLT를 제거하기 위해 최종 제조 분류 프로그램에 추가된다.
이러한 접근법은 트리아지 프로세스(triage process)가 완전히 자동화될 수 있고 어떠한 인간 상호작용도 필요로 하지 않는다는 이점을 갖는다.
그러나, 이 접근법은 몇몇 단점을 가지며 이는 이하에서 설명될 것이다. AC 스캔 방법은 고착(stuck-at) 및 지연 고장을 커버하도록 설계된다. 심지어 전압 및 클록 스트레스 조건 하에서도 테스트 이탈이 이들 카테고리에 실제로 맵핑되는지는 불분명하다. 또한, 이 접근법은 제3자 주변 IP가 사양 내에서 작동하는 것을 보장하지 않는다. 또한, 사용자는 이 IP가 제공된 스캔 벡터를 신뢰하지 않을 수 있다. 또한, 이 접근법은 최종 테스트 프로그램에서 테스트 조건의 스위칭 및 추가 스캔 벡터를 요구한다. 이는 웨이퍼 소트에서 테스트 시간을 증가시킨다.
이하에서는 온-칩-시스템 테스트(OCST) 접근법이 설명될 것이다. 이 접근법은 DUT의 내장형 CPU를 사용하여 테스트 프로그램의 일부를 실행한다. 또한, 런타임 환경이 ATE 제품의 일부로서 이들 프래그먼트에 제공된다.
이 접근법은 다수의 이점을 포함한다. 예를 들어, 이 접근법은 내부 상호접속 패브릭, 프로토콜 엔진 및 아날로그 인터페이스 회로를 한꺼번에 커버한다. 또한, 이 접근법은 클록 및 공급 전압 스트레스를 적용하는 것을 허용한다. 이 접근법은 또한 웨이퍼 소트 동안 이미 잠재적인 모든 등급의 테스트 이탈을 다룬다. 또한, 이 접근법은 검증으로부터 약간 수정된 코어 로직 테스트를 실행할 수 있다. 이 접근법은 표준화된 가요성 ATE 기기로 작동한다. 또한, 이 접근법은 웨이퍼 소트 동안 사후 실리콘 검증을 가능하게 하고, 또한 설계에 대한 조기 피드백을 가능하게 한다.
그러나, 이 접근법은 또한 몇몇 단점을 포함한다. 특히, 이 접근법은 MPU 비즈니스 외부의 새로운 접근법이다. 이 접근법은 테스트 엔지니어를 내장형 소프트웨어 개발에 노출시키고, 설계자 및 검증 엔지니어를 ATE에 노출시킨다. 또한, 표준화된 가공된 테스트 케이스가 제공될 수 없다면, 테스트 케이스는 수동으로 생성되어야 한다. 테스트 커버리지는 이들 경우의 품질에 의존한다. 또한, 이 접근법은 특수화된 HSIO 기기에 대한 필요성을 제거하기 위해 DFT(design for test)에 의존한다.
이하에서는 상이한 접근법들 간의 비교가 제공될 것이다.
SLT 및 종단 간 테스트는 많은 사용자, 특히 검증 엔지니어에게 편한 2가지 접근법이라는 점에 유의해야 한다.
또한, SLT는 추가 테스트 삽입을 필요로 하는데, 이를 임의의 ATE 테스트 단계와 조합하는 것은 상업적으로 실행 가능하지 않다는 점에 유의해야 한다.
또한, 종단 간 테스트는 다른 ATE 테스트 셋업에 통합될 수 있다는 점에 유의해야 한다. 그러나, 이것은 "프로토콜 인식" ATE 기기를 요구한다. 또한, DUT를 최대 스트레스 상태에 두는 것은 매우 어렵다.
또한, 타이밍 레벨 스트레스 조건 하에서 스캔 패턴에 대한 통계적 상관은 전통적인 스캔 패턴에서의 갭을 커버하는 흥미로운 접근법이다. 그러나, 스캔 테스팅은 별개의 결함 모델에 기초한다. 오늘날의 ATE 이탈이 이러한 방식으로 조금이라도 커버될 수 있는지 여부는 불분명하다.
내장형 테스트를 사용하면, 웨이퍼 소트 동안 미리 ATE 상에서의 오늘날의 테스트 이탈을 식별하는 것이 가능하다. 새로운 특수화된 ATE 기기에 대한 필요성은 적절한 DFT에 의해서만 제거될 수 있다. 이를 성공적으로 적용하기 위해서는 DUT 지식이 요구되는데, 이는 테스트 엔지니어링에서는 이용가능하지 않지만, 검증 및 설계에서 이용가능하다.
장기적으로는 내장형 테스트가 최선이라고 여겨진다.
9. 결론 - 파트 1
이하에서는 몇몇 결론이 제공될 것이다.
SoC 설계의 증가하는 복잡성은 사후 실리콘 검증과 ATE 테스트 사이에서 컨버전스(convergence)를 유도한다는 것이 밝혀졌다:
1. ATE 능력은 검증에서 하드웨어/소프트웨어 상호작용의 코너 케이스를 발견하기 위해 요구된다.
2. 내장형 CPU 상에서 실행되는 테스트는 코너 케이스 결함을 식별하기 위해 요구된다.
따라서, ATE 상에서 내장형 소프트웨어 테스트를 실행하는 것은 검증 및 디바이스 제조 모두에서 큰 이점을 제공한다. 그러나, ATE 상의 애플리케이션 환경이 불완전하기 때문에, 엔트리에 대한 높은 장벽이 존재한다.
이것은 새로운 타입의 ATE 제품, 즉, 온-칩-시스템 테스트 환경에 대한 기회를 열어준다.
이러한 환경에 대한 기술적 구성요소가 이용가능하고, 기존의 ATE 생태계의 대부분이 활용될 수 있음이 밝혀졌다.
SoC 구성요소들의 컨버전스가 표준화된 제품에 집중하도록 허용하는 것이 또한 밝혀졌다. 심지어 시장에서의 ARM의 우세는 처음에 하나의 특정 아키텍처에 집중하는 것을 허용한다.
결론적으로, 본 발명에 따른 실시예는 효율적인 방식으로 시스템-온-칩을 테스트하는 데 사용될 수 있고, 따라서 다른 개념들에 비해 유리하다.
10. 결론 - 파트 2
이전 솔루션들
이하에서는 몇몇 종래의 솔루션이 설명 및 논의될 것이고, 본 발명에 따른 실시예에서 선택적으로 또한 적용될 수 있는 배경 정보가 제공될 것이다.
온-칩-시스템 테스트(On-Chip System Test: OCST)는 SOC의 내장형 프로세서 코어 상에서 실행되는 내장형 소프트웨어의 도움을 받는 SOC의 하나 이상의 블록 또는 인터페이스의 기능적 테스트를 지칭한다. 내장형 소프트웨어는 테스트 자극을 직접 생성하고, 테스트 응답을 수신하고/하거나 테스트 셋업(예컨대, 레지스터 프로그래밍) 또는 테스트 분석 및 보고를 제어할 수 있다: 예컨대, 테스트 응답을 분석하고 결과를 저장/통신하여 외부에서(예컨대, 테스터가) 테스트 결과에 액세스할 수 있게 한다.
- 종래의 솔루션은 내장형 소프트웨어 개발을 위한 시스템 환경에서 테스트를 개발 및 디버깅하는 것에 의존하지만, 테스트 환경에는 의존하지 않는다. 테스트 환경에서, 디버그 지원은 존재하지 않거나 약하다: 예컨대, 직렬 포트를 통한 중간 값 및 텍스트 스트링 인쇄
- 종래의 솔루션은 테스트 제어/조건 커맨드를 수신하고 테스트 결과를 외부에 통신하는 전용 방식을 사용하기 위해 OCST에 의존한다. 이것은 또한 테스트 환경이 이들 커맨드/결과를 전송/수신하기 위한 전용 솔루션을 필요로 한다. 종종, 이는 OCST와 테스터 환경 사이의 통신 및 제어를 가능하게 하는 테스터 제어기 인터페이스(예컨대, 자신의 USB 포트를 사용하는 경우)에 각각 전용되는 테스터 리소스(예컨대, UART, SWD, I2C 또는 독점 GPIO 통신용)의 지루한 저급 프로그래밍을 필요로 한다. 이는 개발 노력을 증가시키고 OCST의 재사용성을 제한한다.
- 종래의 솔루션은 OCST를 로딩하기 위해 테스트 환경에서 SOC에 이용가능한 비휘발성 메모리 상에 OCST(즉, 테스트 콘텐츠)를 저장하는 것에 의존한다. 도전사항(challenges)은 다음과 같다:
o NV 메모리는 일반적으로 소프트웨어 개발 환경에서 프로그래밍되고 그 후 테스트 환경으로 전달된다.
o NV 메모리는 SOC의 도움으로 테스트 환경에서 프로그래밍될 수 있지만, 이는 다른 타입의 SOC에 적용가능하지 않은 독점적 솔루션이다.
o NV 메모리를 재프로그래밍하는 것은 제조 플로어에서 예외적이고, 비효율적이고, 에러가 발생하기 쉬운 프로세스이다.
- 종래의 솔루션은 종종 개별 OCST의 제어를 제공하기보다는 하나의 실행 런(execution run)에서 실행되는 OCST 모음(suite)을 저장하는데, 이는 (테스트 시스템의 일반적 요구인) 각각의 테스트를 디버깅, 특성화 및 턴 온/오프하는 것을 어렵게 한다.
- 종래의 솔루션은 (예컨대, 프로브 테스트에) 이용가능하지 않을 수 있는 OCST를 실행하기 위해 이용가능한 큰 RAM에 의존할 수 있다. 전형적인 경우는 다른 OCST에 기초가 되는 리치 OS(rich OS)를 부팅하는 것이다.
본 발명에 따른 실시예는 종래의 솔루션의 설명에서 전술한 단점들의 전부(또는 일부)를 완전히 해결하거나 적어도 완화시킨다.
본 발명의 실시예에 의해 해결되는 문제들
이하에서는 종래의 솔루션에 대한 본 발명의 실시예의 몇몇 이점이 논의될 것이다. 그러나, 본 발명에 따른 실시예가 이하에서 언급되는 이점들 중 일부 또는 전부를 반드시 포함할 필요는 없다는 점에 유의해야 한다.
본 발명에 따른 일부 실시예는 종래의 솔루션의 설명에 열거된 모든 단점을 완전히 해결하거나 완화시킨다.
또한, 설명된 발명에 따른 실시예는 선택적으로 미래의 솔루션을 가능하게 한다:
- 표준 인터페이스를 정의함으로써, 본 발명은 각각의 테스트의 효율적인 실행 및 자격(qualification)을 위해 테스트 환경에 대한 SOC 검증 테스트(내장형 소프트웨어로서 구현됨)의 자동화된 흐름을 가능하게 한다.
- DUT 상태의 고 대역폭 추적 및 덤핑(dumping)에 의존하는 진보된 테스트 및 진단 방법론: 예컨대, 유효한 실행 거동을 결정하고 근본 원인 분석을 위한 불합격 영역을 식별하기 위한 "버그 포지셔닝 시스템(Bug Positioning Systems)"에 설명된 통계적 접근법.
- 테스트 환경과 SOC 사이에 효율적 기능 인터페이스를 제공함으로써, 다른 테스트 방법론에 이로움을 줄 수 있다: 예를 들어, 구조적 테스트 자극을 이것을 각각 수신하는 DUT에 유연하게 공급함.
이전에 행해진 것에 대한 본 발명의 장점
본 발명에 따른 실시예는 OCST 자체의 DUT-특정 특성을 테스트에 필요한 인프라스트럭처 및 능력으로부터 분리함으로써 온-칩-시스템 테스트를 위한 효율적인 테스트 환경을 수립한다. 따라서, 본 발명은 테스트 환경이 모든 표준 테스트 사용 케이스, 예컨대,
- 개발
- 디버그
- 특성화
- 효율적 실행
- 데이터 로깅
- 제조 플로어 상의 배치
를 지원해야하는 새로운 테스트 타입으로서 OCST에 대한 유연한 솔루션을 제안한다.
이는 OCST 개발자(일반적으로, 디자인, 벤치 또는 내장형 소프트웨어 개발자)와 테스트 엔지니어 사이의 효율적인 협력을 가능하게 한다. 각각의 사용자는 자신의 환경에서 직관적으로 작업을 계속할 수 있다: 예컨대,
- OCST 개발자는 테스터 상에서 생산적인 개발 및 디버그 환경을 찾는다. 이는 고압의 제 1-실리콘 턴-온(high-pressure first-silicon turn-on) 동안 특히 중요하다.
- 테스트 엔지니어는 다른 테스트 타입에 대해 행해진 것과 동일한 방식으로 각각의 OCST를 특성화할 수 있다: 예컨대, Vmin을 결정하기 위해 Vdd를 스위핑함(sweep).
- OCST를 제조 플로어 상에 배치할 때, 로드보드(loadboard) 상에 위치된 NV 메모리 상에 OCST의 최신 버전을 설치하기 위해 운영자에 의해 어떠한 추가적인 단계도 요구되지 않는다.
또한, 전술한 각각의 문제에 대한 이점을 열거하는 것이 가능하다.
본 발명에 따른 실시예의 구성 및 동작에 대한 설명
이하에서는 본 발명에 따른 일부 실시예의 구성 동작의 설명이 제공될 것이다. 그러나, 이하에서 설명되는 실시예들은 개별적으로 사용될 수 있다는 점에 유의해야 한다. 그러나, 이하에서 언급되는 실시예들의 특징, 기능 및 세부사항은 개별적으로 그리고 조합하여 임의의 다른 실시예에 도입될 수 있다는 점에 또한 유의해야 한다.
가장 높은 레벨에서, 솔루션은 효율적 OCST 환경을 위해 조합되는 다음의 주요 구성요소들을 제안한다(여기서 구성요소들은 또한 개별적으로 사용될 수 있다):
1. OCST 테스트 제어기:
a. 다음과 같은 능력들(또는, 일부 실시예에서는 다음과 같은 능력들 중 하나 이상)을 제공하는 새로운 테스트 구성요소:
i. 물리적 인터페이스를 통한 DUT와의 통신: 예컨대,
1. 저 레이턴시 디버그 및 제어 인터페이스들: 예컨대, JTAG, SWD, SPI, I2C, UART
2. 고 대역폭 기능 인터페이스: 예컨대, USB, PCI
ii. DUT 인터페이스에 대한 정확한 통신 인터페이스의 유연한 할당 또는 물리적 DUT 인터페이스의 접촉 및 DC를 테스트하기 위해 일반적으로 사용되는 파라미터 테스트 자원의 할당
iii. OS(예컨대, 내장형 리눅스), OCST를 위한 범용 서비스, 물리적 인터페이스를 통해 DUT에 통신하기 위한 드라이버, 사용자에 의해 제공된 애플리케이션-특정 셋업 및 루틴(즉, 실행가능한 코드)을 일반적으로 포함하는 다용도 소프트웨어 스택을 실행함
iv. DUT 상에 OCST 환경 및 DUT 인터페이스를 로딩하고 각각 초기화하는 능력. 이는, 예를 들어, 테스트 프로그램의 일부로서 준비 및 유지되고, 각각의 DUT의 신속한 초기화를 위해 OCST 테스트 제어기 메모리에 저장된다.
v. DUT 인터페이스 상의 DUT RAM, DUT NV 메모리 또는 NV 메모리에 OCST를 로딩하는 능력. 예를 들어, 각각의 OCST는 테스트 프로그램의 일부로서 준비 및 유지되고, 각각의 DUT로의 신속한 로딩을 위해 OCST 테스트 제어기 메모리에 저장된다.
vi. DUT 인터페이스 상의 DUT RAM, DUT NV 메모리 또는 NV 메모리에 OCST 파라미터 세트를 로딩하는 능력. 예를 들어, 각각의 OCST 파라미터 세트가 준비되어 테스트 프로그램의 일부로서 유지되고, 각각의 DUT로의 신속한 로딩을 위해 OCST 테스트 제어기 메모리에 저장된다.
vii. DUT 상에 로딩된 특정 OCST를 시작하는 능력
viii. 모든 테스터 자원에 적용되는 범용 테스트 시퀀싱 언어로 사용자에 의해 프로그램되는 전체 테스트 실행 제어: 예컨대, 93000 SmarTest 8에 의해 사용되는 동작 시퀀스.
ix. 다른 테스트 자원의 효율적 제어 및 동기화: 예컨대, OCST 테스트 제어기는 DUT에 인가되는 전력을 직접 제어할 수 있다. 바람직하게는, 이들 동작의 실행은 테스터 제어기 상에서 통상적으로 실행되는 상위 레벨 소프트웨어와의 통신을 필요로 하지 않는다. 대신에, 이것은 예를 들어 테스터 자원들을 직접 연결하는 로컬 통신 및 동기화 인터페이스에 의해 구현된다.
x. 테스트 실행 흐름 및 그에 수반된 테스트 자원을 제어하기 위해 DUT 상에서 실행되는 OCST로부터 커맨드 및 데이터를 수신하는 능력: 예컨대, DUT 상에서 실행되는 OCST에 의해 행해진 관찰에 따라 외부 테스트 조건의 변경 또는 조건부 실행을 구현하는 것.
b. 다양한 장점 및 단점과 함께 물리적 구현과 가상적 구현 모두가 가능하다: 예컨대,
i. 물리적: 바람직하게는 예를 들어 이하의 것을 포함하는 다용도 전용 테스터 서브-시스템으로 구현됨,
1. 내장형 소프트웨어 환경, FPGA 블록뿐만 아니라 통신을 위한 다양한 물리적 인스턴스(예컨대, USB, GPIO)를 제공하는 시스템 SOC(예컨대, Xilinx Zync); 대안적으로, 다른 예로서, x86 내장형 PC가 사용될 수 있다.
2. DUT를 향한 프론트-엔드 전자장치: 예컨대, DC 측정을 위한 PMU, 라우팅을 위한 스위치, 특정 인터페이스 표준에 따라 조정되는 레벨 시프터.
3. 다른 테스터 구성요소와 통신 및 동기화하는 백-엔드 인터페이스
ii. 가상적: 바람직하게는 범용 테스트 모듈(예컨대, 디지털 테스터 카드)을 재사용함으로써 구현됨. 일반적으로, 이 카드의 프론트-엔드 및 백-엔드 능력은 OCST에 사용될 수 있다. 그러나, 다음과 같은 능력이 추가될 필요가 있을 수 있다:
1. 물리적 인터페이스를 통해 DUT/OCST와 통신하기 위한 효율적 고급 프로그래밍 모델. 이는 확장된 테스트 모듈에 의해 속도 및 기능이 제한될 수 있다.
2. OCST 소프트웨어 스택을 분해하여 모듈 상에서 직접 실행하거나(이용가능한 내장형 프로세서를 가정함) 또는 테스터 제어기 상에서 실행하는 능력
2. OCST 개발 및 디버그 툴(선택사항임; 특징들 중 하나 이상이 구현될 수 있음)
a. 툴셋:
i. 일반적으로, OCST를 개발할 책임이 있는 내장형 소프트웨어 개발자는 선호되거나 미리 결정된 개발 및 디버그 환경을 갖는다. 제안된 솔루션은, 예를 들어, 가변 툴 세트를 지원하는 인터페이스를 제공한다.
ii. 솔루션은 테스터 환경(예컨대, 93000의 이클립스 워크 센터(Eclipse Work Center))에 통합된 특정 OCST 개발 및 디버그 환경을 제공한다.
1. 이것은 OCST 소스 코드 및 테스터 상에서 실행되는 테스트 프로그램 내의 구성요소의 일관된 명명 및 사용을 용이하게 한다: 예컨대, OCST 개발 및 디버그 도구는 (OCST 런타임 환경을 통해) OCSTA 소스 코드가 액세스할 수 있는 테스트 자원, 예를 들어 테스트 제한, 테스트 조건 또는 다른 테스트의 결과를 알 수 있다.
2. 컴파일된 코드를 이용가능한 제한된 메모리 자원들, 예컨대, 통합된 SRAM, L2-캐시에 맵핑하는 것을 지원한다. 필요에 따라, SOC의 메모리 서브시스템을 조정하기 위한 코드를 포함한다.
b. 디버그 소프트웨어, 테스터 환경 및 DUT 사이의 인터페이스
i. 디버그 소프트웨어와 테스터 환경 사이의 인터페이스:
1. 원격 제어: 디버그 및 테스트 실행 동안, 테스트 환경은 예컨대 OCST를 DUT에 로딩하기 위해 개발된 특정 동작을 수행하는 (일반적으로, 제3자 또는 오픈 소스로부터의) 디버그 소프트웨어를 사용할 수 있다. 테스트 환경은 이런 목적을 위해 디버그 환경을 사용하기 위해 "원격 제어 API(Remote Control API)"에 의존한다.
2. DUT 드라이버: 디버그 및 테스트 실행 동안 디버그 소프트웨어는 자신의 물리적 인터페이스, 예컨대 JTAG를 통해 DUT에 액세스할 필요가 있을 수 있다. 디버그 소프트웨어는, DUT에 대한 자신의 물리적 인터페이스를 갖기 보다는, DUT에 대한 OCST 테스트 제어기의 물리적 인터페이스에 의존할 수 있다. 따라서, 테스트 환경은 디버그 소프트웨어의 기능을 지원하는 DUT 드라이버를 구현한다.
ii. 디버그 소프트웨어와 DUT 사이의 물리적 인터페이스
1. 예컨대 로드보드 상에서 스위칭될 수 있는 JTAG 포트로의 디버그 환경에 의한 직접 물리적 액세스
2. 통신 채널로서의 OCST 테스트 제어기의 사용.
3. OCST의 효율적인 사용을 가능하게 하는 소프트웨어 구성요소 및 환경
a. 테스트 방법론의 끊김 없는 개발 및 실행을 지원하기 위한 분산 환경은 테스터 환경(즉, 테스터 제어기 워크스테이션 및 OCST 테스트 제어기)뿐만 아니라 DUT 환경(즉, OCST 자체뿐 아니라 NV 메모리와 같은 DUT 인터페이스 상의 다른 구성요소)에서 실행되는 테스트 셋업 및 코드를 포함한다. 이는 OCST 테스트 제어기와 DUT 사이의 가변 통신 인터페이스로부터 독립적으로 구현된다.
i. (DUT 상의) OCST 런타임 환경:
1. 일반적으로 테스터 환경과 통신하기 위해(예컨대, 테스트 파라미터를 수신하고 제어 커맨드를 OCST 테스트 제어기에 전송하기 위해) 그리고 테스터 환경에서 실행되는 특정 테스트 방법과 통신하기 위해(예컨대, 테스터 워크스테이션의 더 높은 계산 능력을 활용하는 중간 변수를 교환하기 위해) OCST가 의존할 수 있는 API 및 서비스.
2. OCST 런타임 환경은 다양한 DUT에 걸쳐 OCST의 재사용을 가능하게 하도록 표준화된다. 이것은 다양한 하드웨어 환경을 관념화하는 소프트웨어의 기초 계층(underlying layer)에 의해, 예컨대 하드웨어 차이를 묘사하는 리눅스 디바이스 트리를 사용하여 활성화된다.
ii. (DUT 상의) OCST 테스트 러너:
1. OCST를 로딩 및 실행하기 위해 테스터 환경과 짝을 이루는 프로그램(바람직하게는 별도의 프로세스로서 실행됨). 또한, 이는 부분적으로 파손된 DUT 또는 불합격 OCST에도 불구하고 테스터 환경에 대한 연속 실행 및 응답성을 보장하는 워치독(watch-dog)으로서 기능할 수 있다.
2. 이것은 그 주요 기능이 DUT의 디버그 인터페이스를 사용하여 테스터 환경으로부터 행해질 수도 있기 때문에 선택적이다.
iii. OCST에 대해 확장된 테스터 런타임 환경:
1. OCST 테스트 제어기를 셋업하고 그와 통신하기 위해 사용자의 테스트 방법이 의존할 수 있는 API 및 서비스
2. DUT 상에서 실행되는 OCST를 셋업하고 그와 통신하기 위해 사용자의 테스트 방법이 의존할 수 있는 API 및 서비스
iv. 테스터 자원, OCST 테스트 제어기 및 OCST의 동기화:
1. OCST 테스트 제어기가 OCST 지원 시의 테스트 실행 동안 수행할 수 있는 동작: 예컨대, OCST로부터 들어오는 제어 정보에 따른 조건부 점프
2. OCST를 지원하기 위한 테스터 모듈의 능력 또는 동작 세트에 대한 확장: 예컨대, OCST가 완료되기를 대기함
3. 테스터 제어기 워크스테이션 소프트웨어를 요구하지 않으면서 테스터 자원 및 OCST 테스트 제어기에 걸쳐 효율적으로 시그널링 및 통신하기 위해 요구되는 하드웨어 인프라스트럭처.
b. 대안적 소프트웨어 환경
i. OCST 운영 체제를 사용함: 풍부한 실행 환경(예컨대, 충분한 RAM)을 제공하면, DUT는 OS 및 필요한 장치 드라이버를 로딩할 수 있다. 이것은 테스트 커버리지를 추가할 수 있고, OCST, OCST 런타임 환경 및 OCST 러너에 대한 진보된 서비스, 예컨대, 파일 시스템에 대한 액세스를 제공할 수 있다.
1. OCST OS는 예컨대 물리적 디스플레이 없이 DUT의 제한된 시스템 환경에 의존하는 OS의 특정 버전이다. 따라서, 표준 디바이스 드라이버 세트가 제한되고 구성될 수 있다.
2. OCST OS는 다양한 DUT에 걸쳐 OCST의 재사용을 가능하게 하도록 표준화된다. 이것은 다양한 하드웨어 환경을 관념화하는 소프트웨어의 기초 계층에 의해, 예컨대 하드웨어 차이를 묘사하는 리눅스 디바이스 트리를 사용하여 활성화된다.
3. OCST OS는 DUT 또는 애플리케이션 특정 디바이스 드라이버를 지원한다.
ii. 베어 메탈(Bare Metal): DUT의 실행 환경은 제약이 있을 수 있고 진보된 OS 서비스를 필요로 하지 않을 수 있다. 따라서, OCST 운영 체제는 사용되지 않을 수 있고, OCST 런타임 환경의 기능은 (부트 로더의 환경에 필적하는) 하드웨어 상에서 직접 구현된다.
모두 선택적인 것으로 간주되어야 하는 세부사항에 대해서는 전체 설명을 참조한다.
본 발명에 따른 실시예는, 예를 들어, 적어도 하나의 내장형 프로세서를 갖는 SOC, SIP 또는 모듈의 테스트에 사용될 수 있다. 이하의 개시는 단지 "SOC" 또는 "DUT"만을 열거하지만, 이는 패키지 또는 (서브-)시스템을 구현하는 임의의 종류의 모듈에서의 더 높은 레벨의 통합에 적용가능하다.
본 발명에 따른 실시예는 예를 들어 93000 칩 테스터에서 사용될 수 있지만, 일반적으로 임의의 테스트 솔루션에 대한 확장으로서 사용될 수 있다.
11. 구현 대안
일부 양태가 장치의 맥락에서 설명되었지만, 이들 양태는 또한 대응하는 방법의 설명을 나타내며, 여기서 블록 또는 디바이스는 방법 단계 또는 방법 단계의 특징에 대응한다. 유사하게, 방법 단계의 맥락에서 설명된 양태들은 또한 대응하는 장치의 대응하는 블록 또는 항목 또는 특징의 설명을 나타낸다. 방법 단계의 일부 또는 전부는 예를 들어 마이크로 프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이를 사용하여) 실행될 수 있다. 일부 실시예에서, 가장 중요한 방법 단계들 중 하나 이상은 그러한 장치에 의해 실행될 수 있다.
소정의 구현 요건에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은, 각각의 방법이 수행되도록 프로그램 가능한 컴퓨터 시스템과 협력하는 (또는 협력할 수 있는) 전자적으로 판독가능한 제어 신호가 저장되는, 디지털 저장 매체, 예를 들어, 플로피 디스크, DVD, 블루레이(Blu-Ray), CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리를 사용하여 수행될 수 있다. 따라서, 디지털 저장 매체는 컴퓨터 판독가능할 수 있다.
본 발명에 따른 일부 실시예는 본 명세서에 설명된 방법 중 하나가 수행되도록 프로그램 가능한 컴퓨터 시스템과 협력할 수 있는 전자적으로 판독가능한 제어 신호를 갖는 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시예는 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때 방법 중 하나를 수행하도록 동작한다. 프로그램 코드는 예를 들어, 머신 판독가능 캐리어에 저장될 수 있다.
다른 실시예는 머신 판독가능 캐리어에 저장된, 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
즉, 그러므로 본 발명의 방법의 실시예는 컴퓨터 프로그램이 컴퓨터에서 실행될 때 본 명세서에 설명된 방법 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법의 추가 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 기록하여 포함하는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터 판독가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 전형적으로 유형적 및/또는 비일시적이다.
따라서, 본 발명의 방법의 추가 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호 시퀀스이다. 데이터 스트림 또는 신호 시퀀스는 예를 들어, 데이터 통신 접속을 통해, 예를 들어, 인터넷을 통해 전송되도록 구성될 수 있다.
추가 실시예는 본 명세서에 설명된 방법 중 하나를 수행하도록 구성되거나 조정된 처리 수단, 예를 들어, 컴퓨터, 또는 프로그램 가능한 로직 디바이스를 포함한다.
추가 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 추가 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기위한 컴퓨터 프로그램을 수신기로 전송(예컨대, 전자적으로 또는 광학적으로)하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어, 컴퓨터, 모바일 디바이스, 메모리 디바이스 등일 수 있다. 예를 들어, 장치 또는 시스템은 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
몇몇 실시예에서, 프로그래밍 가능 로직 디바이스(예컨대, 필드 프로그래밍 가능 게이트 어레이)는 본 명세서에 설명된 방법의 기능 중 일부 또는 전부를 수행하는 데 사용될 수 있다. 몇몇 실시예에서, 필드 프로그램 가능 게이트 어레이는 본 명세서에 설명된 방법 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법은 바람직하게는 임의의 하드웨어 장치에 의해 수행된다.
본 명세서에 설명된 장치는 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 하드웨어 장치와 컴퓨터의 조합을 사용하여 구현될 수 있다.
본 명세서에 설명된 장치 또는 본 명세서에 설명된 장치의 임의의 구성요소는 하드웨어 및/또는 소프트웨어로 적어도 부분적으로 구현될 수 있다.
본 명세서에 설명된 방법은 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 하드웨어 장치와 컴퓨터의 조합을 사용하여 수행될 수 있다.
본 명세서에 설명된 방법 또는 본 명세서에 설명된 장치의 임의의 구성요소는 하드웨어 및/또는 소프트웨어에 의해 적어도 부분적으로 수행될 수 있다.
전술한 실시예는 본 발명의 원리에 대한 예시일 뿐이다. 본 명세서에 설명된 구성 및 세부사항의 수정 및 변경은 당업자에게 자명할 것임이 이해된다. 따라서, 본 명세서에서 실시예의 기술 및 설명에 의해 제시된 특정 세부사항에 의해서가 아니라 다음 특허 청구범위에 의해서만 제한되도록 의도된다.

Claims (29)

  1. 테스트 대상 디바이스(104; 400; 500; 630; 730; 830; 930; 1030; 1130; 1230; 1310; 1430; 1510)를 테스트하기 위한 자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420)로서,
    상기 자동 테스트 장비는 온-칩-시스템 테스트 제어기(on-chip-system-test controller)(110; 210; 1620)를 포함하고,
    상기 온-칩-시스템 테스트 제어기는 상기 테스트 대상 디바이스와 통신하도록 구성된 적어도 하나의 디버그 인터페이스(112; 252; 1650) 또는 제어 인터페이스(112; 254; 1650)를 포함하며,
    상기 온-칩-시스템 테스트 제어기는 시스템-온-칩(system-on-a chip)인 테스트 대상 디바이스의 테스트를 제어하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  2. 제 1 항에 있어서,
    상기 온-칩-시스템-테스트 제어기는 상기 테스트 대상 디바이스와 통신하도록 구성된 적어도 하나의 고 대역폭 인터페이스(114; 256; 1652, 1654)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 자동 테스트 장비는 상기 디버그 인터페이스(112; 252; 1650) 또는 상기 제어 인터페이스(114; 254; 1650) 또는 상기 고 대역폭 인터페이스(114; 256; 1652, 1654)를 테스트 대상 디바이스 인터페이스(216)에 가변적으로 할당하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 상기 테스트 대상 디바이스에 하나 이상의 파라미터 테스트 자원(parametric test resources)(220; 626,629)을 가변적으로 할당하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기는, 운영 체제(1622b), 온-칩-시스템 테스트 서비스 소프트웨어(1622a), 인터페이스들(112, 114; 252, 254, 256; 1650, 1652, 1654)을 통해 상기 테스트 대상 디바이스와 통신하는 하나 이상의 드라이버(1622c, 1622d, 161622e,1622f)를 포함하는 소프트웨어 스택(258; 1622)을 실행하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기(110; 210; 1620)는 사용자에 의해 제공된 애플리케이션-특정 루틴을 실행하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기(110; 210; 1620)는 테스트 대상 디바이스 상에 온-칩-시스템 테스트 환경(246a, 246b, 246c, 246d, 246e, 246f; 1232, 1232a, 12332b, 1236, 1238,1242; 1438,1440)을 로딩하도록 구성되고/되거나,
    상기 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스 상에 온-칩-시스템 테스트(1240; 1440)를 로딩하도록 구성되고/되거나,
    상기 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스 상에서 온-칩-시스템 테스트 환경(244a, 246b, 146c, 246d, 1246e, 265f; 1232, 1232a, 1232b, 1236, 1238, 1242; 1438, 1440)을 초기화하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기(110; 210; 1620)는 온-칩-시스템 테스트를 파라미터화하는 파라미터 세트를 테스트 대상 디바이스에 업로드하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기는 테스트 대상 디바이스에 로딩된 온-칩-시스템 테스트(1240; 1440)를 시작하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기는 테스트 시퀀싱 언어(test sequencing language)의 전체 테스트 실행 프로그램에 기초하여 상기 테스트 대상 디바이스의 테스트를 제어하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기는 하나 이상의 아날로그 테스트 자원(220; 626, 629)을 제어하도록 구성되고/되거나,
    상기 온-칩-시스템 테스트 제어기는, 인터페이스들(112, 114; 252, 254, 256; 1650, 1652, 1654)에 추가하여, 하나 이상의 디지털 테스트 자원(230, 624, 628)을 제어하도록 구성되고/되거나,
    상기 온-칩-시스템 테스트 제어기는 하나 이상의 아날로그 테스트 자원 (220; 626, 629)을 동기화하도록 구성되고/되거나,
    상기 온-칩-시스템 테스트 제어기는, 상기 인터페이스들에 추가하여, 하나 이상의 디지털 테스트 자원(230, 624, 628)을 동기화하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기(110; 210; 1620)는 하나 이상의 아날로그 테스트 자원(220; 626, 629) 및/또는 하나 이상의 디지털 테스트 자원(230, 624, 628)을 제어하기 위한 로컬 통신 인터페이스를 포함하고/하거나,
    상기 온-칩-시스템 테스트 제어기는 하나 이상의 아날로그 테스트 자원(220; 626, 629) 및/또는 하나 이상의 디지탈 테스트 자원(230, 624, 628)을 동기화하기 위한 로컬 동기화 인터페이스를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기(110; 210; 1620)는 상기 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트(1240; 1440)로부터 커맨드 및/또는 데이터를 수신하고, 상기 수신된 커맨드 및/또는 상기 수신된 데이터에 의존하여 테스트 실행 흐름(test execution flow)을 조정하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  14. 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기(110; 210; 1620)는 상기 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트(1240; 1440)로부터 커맨드 및/또는 데이터를 수신하고, 상기 수신된 커맨드 및/또는 상기 수신된 데이터에 의존하여 테스트 자원(220, 230; 624, 626, 628, 629)을 조정하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 온-칩-시스템 테스트 제어기는 내장형 소프트웨어 환경을 제공하도록 구성된 중앙 유닛(250; 1640)과, 상기 디버그 인터페이스 및/또는 상기 제어 인터페이스 및/또는 상기 고 대역폭 인터페이스를 구현하는 하나 이상의 인터페이스 블록을 포함하고,
    상기 온-칩-시스템 테스트 제어기는, 상기 테스트 대상 디바이스에 하나 이상의 신호를 제공하고 상기 테스트 대상 디바이스로부터 하나 이상의 신호를 수신하는 프론트-엔드 전자장치(252, 254, 256; 1650, 1652, 1654)를 포함하고,
    상기 온-칩-시스템의 테스트 제어기는, 상기 자동 테스트 장비의 하나 이상의 다른 구성요소와 통신하고/하거나 상기 자동 테스트 장비의 하나 이상의 다른 구성요소와 동기화하도록 구성된 하나 이상의 백-엔드 인터페이스를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  16. 제 1 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 하나 이상의 개발 및 디버그 환경에 대한 인터페이스(242, 244)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  17. 제 1 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는, 상기 테스트 대상 디바이스 상에서의 실행을 위한 온-칩-시스템 테스트 소프트웨어 및 상기 자동 테스트 장비에 의해 실행될 테스트 프로그램 둘 다를 개발하고 디버그하도록 조정되는 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)을 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  18. 제 17 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은 상기 테스트 대상 디바이스 상에서 실행될 온-칩-시스템 테스트 소프트웨어(1240; 1440)를 개발 및/또는 디버깅할 때 상기 자동 테스트 장비의 테스트 자원(220, 230; 624, 626, 628, 629)에 대한 액세스를 허용하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  19. 제 17 항 또는 제 18 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은, 상기 온-칩-시스템(104; 400; 500; 630; 730; 830; 930; 1030; 1130; 1230; 1310; 1430; 1510)으로부터 상기 자동 테스트 장비의 인터페이스(112, 114; 252, 254, 256; 1650, 1652, 1654)를 통해 메모리 콘텐츠에 대한 액세스를 허용하는 프로그램 코드(246e)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  20. 제 17 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은, 디버그 소프트웨어가 상기 테스트 대상 디바이스로의 프로그램 및/또는 하나 이상의 파라미터 세트의 업로드를 제어할 수 있게 하는 인터페이스(242)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  21. 제 17 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은 디버그 소프트웨어가 상기 테스트 대상 디바이스의 디버그 인터페이스에 액세스할 수 있게 하는 인터페이스(244)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  22. 제 17 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은 상기 테스트 대상 디바이스의 디버그 인터페이스에 디버그 소프트웨어 직접 액세스를 제공하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  23. 제 17 항 내지 제 22 항 중 어느 한 항에 있어서,
    상기 개발 및 디버그 인터페이스(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)는, 온-칩-시스템 소프트웨어의 개발에 사용되어, 개발된 온-칩-시스템 테스트 소프트웨어가 상기 테스트 대상 디바이스 상에서 실행될 때 상기 테스트 대상 디바이스와 상기 자동 테스트 장비의 테스트 자원(220, 230;624,626,628,629) 사이의 통신을 허용하는 애플리케이션 프로그래밍 인터페이스(246f)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  24. 제 23 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은 또한 상기 개발된 온-칩-시스템 테스트 소프트웨어를 실행하는 테스트 대상 디바이스와 상기 자동 테스트 장비의 통신을 지원하기 위한 테스터 소프트웨어(246g)를 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  25. 제 17 항 내지 제 24 항 중 어느 한 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은, 온-칩-시스템 테스트 소프트웨어(1240; 1440)의 개발에 사용되어, 상기 자동 테스트 장비로부터 상기 테스트 대상 디바이스로의 추가 소프트웨어의 업로드 및/또는 상기 자동 테스트 장비에 의한 상기 테스트 대상 디바이스 상의 프로그램 실행의 제어를 허용하는 프로그램 (246b,246c)을 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  26. 제 17 항 내지 제 25항 중 어느 한 항에 있어서,
    상기 개발 및 디버그 환경(240; 612, 614; 1412, 1414a, 1414b, 1418, 1419; 1612a, 1612b, 1612c, 1612e, 1612f)은 온-칩-시스템 테스트 소프트웨어의 개발에 사용되어 상기 테스트 대상 디바이스 상의 프로그램 실행을 감독하는 프로그램 (246d)을 포함하는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  27. 제 1 항 내지 제 26 항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 하나 이상의 테스터 자원, 상기 온-칩-시스템 테스트 제어기, 및 상기 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트를 동기화하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  28. 제 1 항 내지 제 27 항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 상기 테스트 대상 디바이스 상에서 실행되는 온-칩-시스템 테스트(1240;1440)에 의해 제공되는 제어 정보에 응답하여 조건부 점프를 수행하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
  29. 제 1 항 내지 제 28 항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 상기 테스트 대상 디바이스에서 실행되는 온-칩-시스템 테스트의 완료를 대기하도록 구성되는,
    자동 테스트 장비(100; 200; 610, 620; 710, 720; 810, 820; 910, 920; 1010, 1020; 1110, 1120; 1210, 1220; 1410, 1420).
KR1020217026464A 2019-01-22 2020-01-22 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비 KR102604010B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962795456P 2019-01-22 2019-01-22
US62/795,456 2019-01-22
PCT/EP2020/051538 WO2020152230A1 (en) 2019-01-22 2020-01-22 Automated text equipment using an on-chip-system test controller

Publications (2)

Publication Number Publication Date
KR20210116604A true KR20210116604A (ko) 2021-09-27
KR102604010B1 KR102604010B1 (ko) 2023-11-20

Family

ID=69192062

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020217015271A KR102591340B1 (ko) 2019-01-22 2020-01-22 버퍼 메모리를 사용하여 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램
KR1020217026464A KR102604010B1 (ko) 2019-01-22 2020-01-22 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비
KR1020217015278A KR102569335B1 (ko) 2019-01-22 2020-01-22 커맨드 오류 처리를 위해 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217015271A KR102591340B1 (ko) 2019-01-22 2020-01-22 버퍼 메모리를 사용하여 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217015278A KR102569335B1 (ko) 2019-01-22 2020-01-22 커맨드 오류 처리를 위해 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램

Country Status (7)

Country Link
US (3) US11385285B2 (ko)
JP (3) JP7295954B2 (ko)
KR (3) KR102591340B1 (ko)
CN (3) CN111989580B (ko)
DE (3) DE112020000035T5 (ko)
TW (3) TW202202864A (ko)
WO (3) WO2020152231A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461404B1 (ko) * 2022-04-08 2022-10-31 주식회사 세미파이브 시스템 온 칩과 메모리 사이의 통신을 위한 io 파라미터를 설정하는 방법 및 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204849B2 (en) * 2020-03-13 2021-12-21 Nvidia Corporation Leveraging low power states for fault testing of processing cores at runtime
US11809570B2 (en) * 2020-10-06 2023-11-07 Newae Technology Inc Method and apparatus for analyzing side channel-related security vulnerabilities in digital devices
US11719749B1 (en) * 2020-10-22 2023-08-08 Cadence Design Systems, Inc. Method and system for saving and restoring of initialization actions on dut and corresponding test environment
US20220155370A1 (en) * 2020-11-17 2022-05-19 Synopsys, Inc. Device under test synchronization with automated test equipment check cycle
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
CN112597006B (zh) * 2020-12-14 2023-10-03 中国航发控制系统研究所 一种嵌入式软件集成测试自动化执行系统及方法
US11431379B1 (en) 2021-03-31 2022-08-30 Teradyne, Inc. Front-end module
CN115391108A (zh) * 2021-05-25 2022-11-25 爱德万测试股份有限公司 自动测试设备系统及其自动测试设备方法
CN113572661B (zh) * 2021-07-28 2022-12-27 迈普通信技术股份有限公司 一种测试多激活检测性能的系统和方法
CN113961405B (zh) * 2021-09-30 2022-10-28 北京百度网讯科技有限公司 状态切换指令验证方法、装置、电子设备及存储介质
CN114167258B (zh) * 2021-11-29 2024-03-22 上海御渡半导体科技有限公司 一种ate测试系统的数据存储和读取装置及方法
CN113904970B (zh) * 2021-12-09 2022-03-01 伟恩测试技术(武汉)有限公司 一种半导体测试设备的传输系统及方法
CN114461150A (zh) * 2022-02-09 2022-05-10 马来西亚明试国际有限公司 一种用于自动测试设备数据聚合的方法、系统及存储介质
US11853251B2 (en) * 2022-05-04 2023-12-26 Qualcomm Incorporated On-die chip-to-chip (C2C) link state monitor
CN116340191B (zh) * 2023-05-31 2023-08-08 合肥康芯威存储技术有限公司 一种存储器固件的测试方法、装置、设备及介质
CN117290278A (zh) * 2023-10-10 2023-12-26 合芯科技有限公司 芯片内硬件互联结构、芯片、服务器及方法

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0269687A (ja) * 1988-09-05 1990-03-08 Advantest Corp 論理集積回路試験装置
JPH07244130A (ja) * 1994-03-02 1995-09-19 Sony Tektronix Corp テストパターン発生器
JPH08129508A (ja) * 1994-10-31 1996-05-21 Toshiba Corp コンピュータシステム及びその共有メモリ制御方法
JP2001210685A (ja) * 1999-11-19 2001-08-03 Hitachi Ltd テストシステムおよび半導体集積回路装置の製造方法
US20060155886A1 (en) * 2005-01-11 2006-07-13 Da Silva Dilma M Methods and arrangements to manage on-chip memory to reduce memory latency
KR20070088578A (ko) * 2007-04-05 2007-08-29 베리지 (싱가포르) 피티이. 엘티디. 테스트 프로그램 적응 시스템 및 자동화 테스트 시스템
US20080126903A1 (en) * 2006-11-28 2008-05-29 Samplify Systems, Inc. Compression and decompression of stimulus and response waveforms in automated test systems
KR20130084611A (ko) * 2010-05-28 2013-07-25 어드밴테스트 (싱가포르) 피티이. 엘티디. 전속 병렬 dut 테스트용 솔루션
US20140237292A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Gui implementations on central controller computer system for supporting protocol independent device testing
US20140244204A1 (en) * 2013-02-28 2014-08-28 Advantest Corporation Tester with acceleration for packet building within a fpga block
JP2014522961A (ja) * 2011-06-17 2014-09-08 クゥアルコム・インコーポレイテッド 高速入力/出力インターフェースを使用して試験するための集積回路
US20150153405A1 (en) * 2013-12-04 2015-06-04 Princeton Technology Corporation Automatic testing system and method
KR20150075105A (ko) * 2012-10-20 2015-07-02 주식회사 아도반테스토 반도체 테스트를 위한 본연적으로 핀당 테스터인 자동 테스트 장비 상의 의사 사이트당 테스터 기능
KR20150087227A (ko) * 2012-11-19 2015-07-29 테라다인 인코퍼레이티드 반도체 장치 검사 환경에서의 디버깅
US20150212155A1 (en) * 2014-01-24 2015-07-30 Sitronix Technology Corp. Integrated Circuit Testing Interface on Automatic Test Equipment

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103450A (en) * 1989-02-08 1992-04-07 Texas Instruments Incorporated Event qualified testing protocols for integrated circuits
US7328387B2 (en) * 2004-12-10 2008-02-05 Texas Instruments Incorporated Addressable tap domain selection circuit with selectable ⅗ pin interface
US5321702A (en) * 1989-10-11 1994-06-14 Teradyne, Inc. High speed timing generator
JP3114753B2 (ja) * 1991-10-31 2000-12-04 九州日本電気株式会社 Lsiテスト方法
JPH10240560A (ja) * 1997-02-26 1998-09-11 Toshiba Corp 波形信号処理装置
GB9805054D0 (en) * 1998-03-11 1998-05-06 Process Intelligence Limited Memory test system with buffer memory
AU9654198A (en) * 1998-06-29 2000-01-17 Iliya Valeryevich Klochkov A skew calibration means and a method of skew calibration
US6452411B1 (en) * 1999-03-01 2002-09-17 Formfactor, Inc. Efficient parallel testing of integrated circuit devices using a known good device to generate expected responses
US6424926B1 (en) 2000-03-31 2002-07-23 Intel Corporation Bus signature analyzer and behavioral functional test method
KR100374328B1 (ko) * 2000-06-03 2003-03-03 박현숙 칩 설계 검증 및 테스트 장치 및 방법
JP2002156404A (ja) * 2000-11-20 2002-05-31 Seiko Epson Corp 半導体測定方法及び半導体測定装置
JP2002311095A (ja) * 2001-04-12 2002-10-23 Tritec:Kk Lsi検査装置
US6988232B2 (en) 2001-07-05 2006-01-17 Intellitech Corporation Method and apparatus for optimized parallel testing and access of electronic circuits
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
JP2004030765A (ja) * 2002-06-25 2004-01-29 Fujitsu Ltd 自己診断機能内蔵の半導体記憶装置
JP3614838B2 (ja) * 2002-09-19 2005-01-26 Necエレクトロニクス株式会社 半導体検査システム及び半導体デバイスの検査方法
US7131046B2 (en) * 2002-12-03 2006-10-31 Verigy Ipco System and method for testing circuitry using an externally generated signature
GB0315931D0 (en) * 2003-07-08 2003-08-13 Koninkl Philips Electronics Nv Radio device testing system
US7310752B2 (en) * 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
JP4602004B2 (ja) * 2004-06-22 2010-12-22 株式会社東芝 テストパターン作成装置、テストパターン作成方法及びテストパターン作成プログラム
US7089139B2 (en) * 2004-08-16 2006-08-08 Agilent Technologies, Inc. Method and apparatus for configuration of automated debug of in-circuit tests
US7627798B2 (en) * 2004-10-08 2009-12-01 Kabushiki Kaisha Toshiba Systems and methods for circuit testing using LBIST
JP2006266835A (ja) * 2005-03-23 2006-10-05 Advantest Corp 試験装置、試験方法、及び試験制御プログラム
US20070168809A1 (en) * 2005-08-09 2007-07-19 Naoki Kiryu Systems and methods for LBIST testing using commonly controlled LBIST satellites
CN1925384A (zh) * 2005-09-02 2007-03-07 上海乐金广电电子有限公司 数字广播信息流传输错误检测装置及方法
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7389461B2 (en) * 2005-09-28 2008-06-17 Teradyne, Inc. Data capture in automatic test equipment
CN1987236A (zh) * 2005-12-22 2007-06-27 乐金电子(天津)电器有限公司 空调器的错误记录管理控制装置及其管理控制方法
US7552370B2 (en) * 2006-03-31 2009-06-23 Robert Pochowski Application specific distributed test engine architecture system and method
KR20090053960A (ko) * 2006-04-06 2009-05-28 가부시키가이샤 어드밴티스트 시험 장치 및 시험 방법
US7769558B2 (en) * 2006-07-10 2010-08-03 Asterion, Inc. Digital waveform generation and measurement in automated test equipment
CN101501517B (zh) * 2006-08-04 2013-02-06 爱德万测试(新加坡)私人有限公司 具有通用和专门资源的块的测试模块
US7698088B2 (en) * 2006-11-15 2010-04-13 Silicon Image, Inc. Interface test circuitry and methods
US20090112548A1 (en) * 2007-10-30 2009-04-30 Conner George W A method for testing in a reconfigurable tester
US7717752B2 (en) 2008-07-01 2010-05-18 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US20100023294A1 (en) * 2008-07-28 2010-01-28 Credence Systems Corporation Automated test system and method
US8677198B2 (en) * 2009-03-04 2014-03-18 Alcatel Lucent Method and apparatus for system testing using multiple processors
US8195419B2 (en) * 2009-03-13 2012-06-05 Teradyne, Inc. General purpose protocol engine
US8170828B2 (en) 2009-06-05 2012-05-01 Apple Inc. Test method using memory programmed with tests and protocol to communicate between device under test and tester
US8386867B2 (en) * 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure
US8261119B2 (en) * 2009-09-10 2012-09-04 Advantest Corporation Test apparatus for testing device has synchronization module which synchronizes analog test module to digital test module based on synchronization signal received from digital test module
US20110273197A1 (en) * 2010-05-07 2011-11-10 Qualcomm Incorporated Signal generator for a built-in self test
JP2011248597A (ja) * 2010-05-26 2011-12-08 Yokogawa Electric Corp テスタシミュレーション装置、テスタシミュレーションプログラムおよびテスタシミュレーション方法
US8598898B2 (en) * 2010-10-05 2013-12-03 Silicon Image, Inc. Testing of high-speed input-output devices
US9470759B2 (en) * 2011-10-28 2016-10-18 Teradyne, Inc. Test instrument having a configurable interface
TW201337236A (zh) 2012-03-15 2013-09-16 Le & Der Co Ltd 流體自動化採樣控制裝置
US9026869B1 (en) * 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification
US9183952B2 (en) * 2013-02-20 2015-11-10 Micron Technology, Inc. Apparatuses and methods for compressing data received over multiple memory accesses
US9952276B2 (en) * 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US11009550B2 (en) * 2013-02-21 2021-05-18 Advantest Corporation Test architecture with an FPGA based test board to simulate a DUT or end-point
US10161993B2 (en) 2013-02-21 2018-12-25 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block
US20140236527A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
US10162007B2 (en) * 2013-02-21 2018-12-25 Advantest Corporation Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently
US9310427B2 (en) * 2013-07-24 2016-04-12 Advantest Corporation High speed tester communication interface between test slice and trays
US9934831B2 (en) * 2014-04-07 2018-04-03 Micron Technology, Inc. Apparatuses and methods for storing and writing multiple parameter codes for memory operating parameters
US9304846B2 (en) * 2014-04-29 2016-04-05 Ford Global Technologies, Llc Apparatus and method of error monitoring with a diagnostic module
US9811420B2 (en) * 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
JP6458626B2 (ja) * 2015-05-07 2019-01-30 富士通株式会社 デバッグ回路、半導体装置及びデバッグ方法
KR102377362B1 (ko) * 2015-07-08 2022-03-23 삼성전자주식회사 보조 테스트 장치, 그것을 포함하는 테스트 보드 및 그것의 테스트 방법
JP6386434B2 (ja) * 2015-10-08 2018-09-05 株式会社アドバンテスト 試験装置、試験信号供給装置、試験方法、およびプログラム
CN105895163B (zh) * 2016-03-28 2018-09-28 工业和信息化部电子第五研究所 基于镜像备份的单粒子效应检测方法和系统
US10395748B2 (en) * 2016-06-15 2019-08-27 Micron Technology, Inc. Shared error detection and correction memory
JP2018006406A (ja) * 2016-06-28 2018-01-11 東京エレクトロン株式会社 基板検査装置
JP6686769B2 (ja) * 2016-07-27 2020-04-22 富士通株式会社 テストパタン生成装置及びテストパタン生成方法
WO2018144561A1 (en) * 2017-01-31 2018-08-09 Octavo Systems Llc Automatic test equipment method for testing system in a package devices
JP6878071B2 (ja) 2017-03-21 2021-05-26 株式会社東芝 半導体集積回路及び半導体集積回路の診断方法
US10580200B2 (en) 2017-04-07 2020-03-03 Intel Corporation Virtual reality apparatus and method including prioritized pixel shader operations, alternate eye rendering, and/or augmented timewarp
CN107390109B (zh) * 2017-06-09 2019-12-24 苏州迅芯微电子有限公司 高速adc芯片的自动测试平台及其软件架构设计方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0269687A (ja) * 1988-09-05 1990-03-08 Advantest Corp 論理集積回路試験装置
JPH07244130A (ja) * 1994-03-02 1995-09-19 Sony Tektronix Corp テストパターン発生器
JPH08129508A (ja) * 1994-10-31 1996-05-21 Toshiba Corp コンピュータシステム及びその共有メモリ制御方法
JP2001210685A (ja) * 1999-11-19 2001-08-03 Hitachi Ltd テストシステムおよび半導体集積回路装置の製造方法
US20060155886A1 (en) * 2005-01-11 2006-07-13 Da Silva Dilma M Methods and arrangements to manage on-chip memory to reduce memory latency
US20080126903A1 (en) * 2006-11-28 2008-05-29 Samplify Systems, Inc. Compression and decompression of stimulus and response waveforms in automated test systems
KR20070088578A (ko) * 2007-04-05 2007-08-29 베리지 (싱가포르) 피티이. 엘티디. 테스트 프로그램 적응 시스템 및 자동화 테스트 시스템
KR20130084611A (ko) * 2010-05-28 2013-07-25 어드밴테스트 (싱가포르) 피티이. 엘티디. 전속 병렬 dut 테스트용 솔루션
JP2014522961A (ja) * 2011-06-17 2014-09-08 クゥアルコム・インコーポレイテッド 高速入力/出力インターフェースを使用して試験するための集積回路
KR20150075105A (ko) * 2012-10-20 2015-07-02 주식회사 아도반테스토 반도체 테스트를 위한 본연적으로 핀당 테스터인 자동 테스트 장비 상의 의사 사이트당 테스터 기능
KR20150087227A (ko) * 2012-11-19 2015-07-29 테라다인 인코퍼레이티드 반도체 장치 검사 환경에서의 디버깅
US20140237292A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Gui implementations on central controller computer system for supporting protocol independent device testing
KR20150119869A (ko) * 2013-02-21 2015-10-26 주식회사 아도반테스토 프로토콜 독립적 디바이스 테스팅을 지원하기 위한 중앙 컨트롤러 컴퓨터 시스템 상에서의 gui 구현
US20140244204A1 (en) * 2013-02-28 2014-08-28 Advantest Corporation Tester with acceleration for packet building within a fpga block
US20150153405A1 (en) * 2013-12-04 2015-06-04 Princeton Technology Corporation Automatic testing system and method
US20150212155A1 (en) * 2014-01-24 2015-07-30 Sitronix Technology Corp. Integrated Circuit Testing Interface on Automatic Test Equipment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461404B1 (ko) * 2022-04-08 2022-10-31 주식회사 세미파이브 시스템 온 칩과 메모리 사이의 통신을 위한 io 파라미터를 설정하는 방법 및 장치
WO2023195590A1 (ko) * 2022-04-08 2023-10-12 주식회사 세미파이브 시스템 온 칩과 메모리 사이의 통신을 위한 io 파라미터를 설정하는 방법 및 장치

Also Published As

Publication number Publication date
TW202202864A (zh) 2022-01-16
JP7101814B2 (ja) 2022-07-15
US20210055347A1 (en) 2021-02-25
US20210073094A1 (en) 2021-03-11
CN111989580A (zh) 2020-11-24
CN112703409A (zh) 2021-04-23
DE112020000469T5 (de) 2021-10-07
US11385285B2 (en) 2022-07-12
DE112020000035T5 (de) 2020-12-31
JP2021520570A (ja) 2021-08-19
CN113330322A (zh) 2021-08-31
KR20210079348A (ko) 2021-06-29
DE112020000036T5 (de) 2021-01-21
JP7058759B2 (ja) 2022-04-22
KR102604010B1 (ko) 2023-11-20
US11415628B2 (en) 2022-08-16
TW202202865A (zh) 2022-01-16
US20210025938A1 (en) 2021-01-28
WO2020152231A1 (en) 2020-07-30
KR102569335B1 (ko) 2023-08-22
TW202132793A (zh) 2021-09-01
JP2021520001A (ja) 2021-08-12
US11913990B2 (en) 2024-02-27
WO2020152230A1 (en) 2020-07-30
KR102591340B1 (ko) 2023-10-20
JP2022517513A (ja) 2022-03-09
JP7295954B2 (ja) 2023-06-21
WO2020152232A1 (en) 2020-07-30
KR20210079347A (ko) 2021-06-29
CN111989580B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
KR102604010B1 (ko) 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비
US9152520B2 (en) Programmable interface-based validation and debug
US8127187B2 (en) Method and apparatus of ATE IC scan test using FPGA-based system
KR102000957B1 (ko) 프로그램가능한 테스트 기기
US4782461A (en) Logical grouping of facilities within a computer development system
US20140236527A1 (en) Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
JPH10269103A (ja) 製造テスト・システム
US8943377B2 (en) On-chip detection of types of operations tested by an LBIST
JP2004509425A (ja) テストコントローラアクセスデータを用いて回路をテスト及び/または診断する方法及びシステム
KR20190107183A (ko) 프로토콜 디버그를 위해 실패에 대해 트래픽을 실시간으로 캡처하는 기법
KR102024416B1 (ko) 반도체 테스트를 위한 본연적으로 핀당 테스터인 자동 테스트 장비 상의 의사 사이트당 테스터 기능
JPWO2004090562A1 (ja) 試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体
US10997343B1 (en) In-system scan test of chips in an emulation system
JP2014532861A (ja) プログラム可能な試験機器
US10101387B1 (en) Sharing a JTAG interface among multiple partitions
JP2004178590A (ja) データ一致認定および完全または部分的重複によって、多数のサイズのメモリ・アクセスを検出するアドレス範囲比較器
US7017097B1 (en) Simultaneously driving a hardware device and a software model during a test
US11156660B1 (en) In-system scan test of electronic devices
US20030225566A1 (en) JTAG server
CN115933579A (zh) 一种基于ate的dsp芯片测试系统
CN115934432A (zh) 一种dsp芯片的多功能测试方法
CN207946806U (zh) 一种调试器和调试装置
CN117234831B (zh) 一种基于多核cpu的芯片功能测试方法及系统
Clark et al. A code-less BIST processor for embedded test and in-system configuration of boards and systems
Mohamed HW/SW Co-Verification and Co-Debugging

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant