KR100453488B1 - 병렬처리집적회로테스터 - Google Patents

병렬처리집적회로테스터 Download PDF

Info

Publication number
KR100453488B1
KR100453488B1 KR10-1998-0702160A KR19980702160A KR100453488B1 KR 100453488 B1 KR100453488 B1 KR 100453488B1 KR 19980702160 A KR19980702160 A KR 19980702160A KR 100453488 B1 KR100453488 B1 KR 100453488B1
Authority
KR
South Korea
Prior art keywords
signal
node
command
nodes
instruction
Prior art date
Application number
KR10-1998-0702160A
Other languages
English (en)
Other versions
KR19990066930A (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 KR19990066930A publication Critical patent/KR19990066930A/ko
Application granted granted Critical
Publication of KR100453488B1 publication Critical patent/KR100453488B1/ko

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/31813Test pattern generators
    • 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
    • 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/2851Testing of integrated circuits [IC]
    • 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
    • G01R31/3191Calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • G01R31/31921Storing and outputting test patterns using compression techniques, e.g. patterns sequencer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31922Timing generation or clock distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/025Digital function generators for functions having two-valued amplitude, e.g. Walsh functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom

Abstract

집적회로 테스터(10)는 다수의 프로세싱 노드(14)를 포함하며, 하나의 노드는 테스트 중인(DUT) 집적 회로의 각 단자와 관련되어 있다. 정확하게 결정된 시간에, 각 노드는 테스트 신호를 발생하고 이를 관련된 DUT 단자로 전송하거나 DUT 단자에서 생산된 DUT 출력 신호를 샘플링한다. 각 노드(14)는 테스트 신호가 관련된 단자로 전송되는 시간을 표시하고 관련된 단자에서의 DUT 출력을 샘플링하는 시간을 표시하는 커맨드 세트를 발생하는 알고리즘적 인스트럭션을 저장하기 위한 메모리(34)를 포함한다. 또한 각 노드는 알고리즘적 인스트럭션을 처리하여 커맨드를 발생하기 위한 프로세서(36)를 포함한다. 각 노드는 커맨드에 의해 표시된 시간에 테스트 신호를 관련된 DUT 단자로 전송하고 관련된 DUT 단자에서 생산된 DUT 출력을 샘플링하기 위한 커맨드에 반응하는 회로(40)를 포함한다.

Description

병렬 처리 집적회로 테스터
본 발명은 일반적으로 집적회로 테스트 장비에 관한 것으로서, 구체적으로 집적회로 테스트 동작 중에 테스트 신호 발생 및 데이터 획득을 제어하는 알고리즘 인스트럭션(algorithmic instruction)을 병렬 처리하는 집적회로 테스터(tester)에 관한 것이다.
집적회로 또는 유사한 테스트중인 장치(DUT)를 테스트하기 위해, 일반적인 집적회로 테스터는 테스트 신호 펄스를 DUT의 다양한 단자로 전송하고 이 테스트 신호에 응답하여 DUT에 의해 이들 단자에서 발생된 출력 데이터를 획득한다. DUT가 테스트 신호에 예상한 대로 응답하는 지를 판단하기 위해, 획득된 데이터를 분석한다. 일반적으로 테스트 신호의 전송 및 DUT 출력 데이터의 획득은 정확하게 조정되어야 한다.
집적회로 테스터는 일반적으로 모듈 또는 "노드(node)" 세트를 포함하며, 하나의 노드는 DUT의 각 단자와 연결되어 있다. 테스트를 연속된 타임 세그먼트("테스트 사이클") 세트로 편성한다. 소정의 모든 테스트 사이클동안, 각 노드는 테스트 신호를 연결된 단자로 전송하고 그리고 이러한 연결된 단자에서의 DUT 출력 데이터를 획득할 수 있지만, 이들 둘 모두를 실시하지 않을 수도 있다. 각 노드는 커맨드 시퀀스(sequence of commands)를 저장하기 위한 그 자신의 메모리를 포함한다. 각 커맨드는 테스트 사이클 동안, 예를 들어 전송을 시작하거나 중단하거나 획득을 시작하고 중단할 것인지를 판단하는 것과 같은, 노드에 의해 실시될 동작을 표시한다. 또한 각 커맨드는 동작이 실시될 사이클 동안의 시간을 표시한다. 또한 각 노드는 연속된 테스트 사이클동안 메모리로부터 커맨드를 순차적으로 리드하고 표시된 동작을 실시하기 위한 회로를 포함한다.
노드는 일반적으로 버스 네트워크(bus network)를 통해 호스트 컴퓨터(host computer)와 상호연결된다. 테스트를 시작하기 전에, 호스트 컴퓨터는 노드 메모리에 저장될 커맨드를 발생하는 알고리즘을 실행한다. 그 후 호스트 컴퓨터는 발생된 커맨드를 노드에 전송하여 그들의 메모리에 저장한다. 그 후 모든 노드에 전송된 클록 신호는 노드를 동기시켜 이들 모두가 메모리로부터 커맨드를 리드(read)하여 표시된 동작을 일치하여 실시하도록 한다.
일반적으로 테스터는 각 테스트 사이클에 대하여 하나의 커맨드를 각 노드 메모리에 저장한다. 근래 집적회로의 크기 및 복잡성은 상당히 증가하고 있으며, 그리하여 또한 이러한 회로를 완전히 테스트하기 위해 요구되는 커맨드 시퀀스 길이를 가지고 있다. 테스트를 위해 수백만 사이클을 구동하며 그에 따라 수백만의 요소를 가지는 커맨드 시퀀스를 요구하는 것이 일반적이다. 이러한 큰 규모의 커맨드 시퀀스에 필요한 저장 용량은 실제적으로 또는 경제적으로 각 노드에 설치될 수 있는 메모리의 크기를 초과한다. 따라서 긴 테스트는 세그먼트들 내에서 동작하고, 각 세그먼트간에는 테스트 동작을 중단하며, 다음 세그먼트에 대한 커맨드를 노드 메모리에 적재(load)한다. 이것은 테스트에 필요한 전체 시간을 길게 하고 비용을 증가시킨다.
DUT 동작 속도가 증가함에 따라, 각 테스트 사이클 동안 테스트 신호 전송 및 DUT 출력 신호 샘플링(sampling)의 타이밍을 정확하게 그리고 유연성 있게 제어할 필요가 발생한다. 종래 기술에 의한 테스터는 테스트 사이클 동안 선택된 시간에 출력 기준 신호를 발생할 수 있는 타임 포맷 회로(time format circuit)를 포함한다. 시간은 입력 "타임 워드(time word)" --테스트 사이클 동안의 특정 시간을 표시하는 번호를 전송하는 데이터-- 에 따라 선택된다. 시간을 작은 증분(예를 들어 테스트 사이클의 1/1,000,000)으로 분해(resolve)하기 위해, 타임 워드는 아주 길어야(예를 들어 20비트) 한다. 긴 테스트를 위해, 각 테스트 주기의 각 커맨드에 긴 타임 워드를 포함하는 것은 지나치게 많은 경비를 소비한다. 따라서 테스트를 시작하기 전에, 다수의 (예를 들어 4개의) 미리 선택된 타임 워드를 각 노드 내의 레지스터에 저장한다. 4개의 타임 워드는 이벤트(event)가 일어날 수 있는 테스트 주기 내의 4개의 서로 다른 시간을 표시한다. 따라서 각 노드의 커맨드는 이벤트 타이밍을 표시하기 위해 단지 2비트를 포함할 필요가 있다. 그러나 이러한 테스터 시스템에서는, 이벤트 타이밍을 정확하게 제어할 수 있는 반면, 타이밍 선택은 제한된다. 이러한 테스터는 예를 들어 신호 타이밍을 소량으로 증분식 시프트하는 것과 같은 테스트를 실시하여 테스트를 주기적으로 중단하고 새로운 타임 워드를 노드 레지스터에 적재할 필요없이 신호 타이밍을 다양하게 하는 회로의 허용범위를 결정할 수 없다.
타이밍 선택에 있어서 상당한 유연성을 가지며 큰 규모의 노드 메모리를 필요하지 않는, 고속의 긴 집적회로 테스트를 실시할 수 있는 집적회로 테스터에 대한 요구가 대두된다.
도 1은 본 발명에 따른 병렬 처리 집적회로 테스터의 블록도이며;
도 2는 도 1의 집적회로 테스터의 일반적 노드의 블록도이며;
도 3은 도 2의 위상 동기된 발진기를 묘사하는 블록도이며;
도 4는 도 2의 인터페이스 회로를 테스트 중인 장치의 블록도이며;
도 5는 도 2의 타임 포매터를 묘사하는 블록도이며;
도 5a는 도 2의 타임 포매터에 의해 처리된 데이터 워드를 표현하며;
도 6은 도 5의 구동 하이 회로(drive high circuit)를 묘사하는 블록도이며;
도 7은 도 6의 일반적 타임 이벤트 발전기(time event generator; TEG)를 묘0사하는 블록도이며;
도 8은 도 7의 TEGO 회로를 묘사하는 조합 블록 및 회로도이며;
도 9는 도 5의 일반적 다중화 래치(multiplexing latch)를 묘사하는 조합 블록 및 회로도이며;
도 10은 도 2의 인스트럭션 프로세싱 장치(instruction processing unit)를 묘사하는 블록도이며;
도 10a는 도 10의 마이크로프로세서(microprocessor)를 묘사하는 블록도이며;
도 11은 도 2의 네트워크 인터페이스(network interface)를 도시하는 블록도이며;
도 12는 도 11의 상호연결된 네트워크 인터페이스 세트의 선택된 부분을 도시하는 블록도이며;
도 13은 도 12의 신호들의 상대 타이밍(relative timing)을 도시하는 블록도이며;
도 14는 도 11의 타이밍 회로를 도시하는 블록도이며;
도 15 내지 17은 도 1의 집적회로 테스터에 대한 다양한 동작 구성을 도시하는 블록도이며; 그리고
도 18 내지 28은 도 1의 테스터에 의해 실행되는 알고리즘을 도시하는 흐름도이다.
본 발명의 제1 양상에 따라, 집적회로 테스터는 연속된 테스트 사이클 동안 테스트 중인 장치(DUT)의 선택된 단자로 테스트 신호를 전송하고 다른 단자에서 DUT에 의해 발생되는 데이터를 획득한다. 테스터는 다수의 프로세싱 노드(processing node)를 포함하며, 하나의 노드는 DUT의 각 단자와 연결되어 있다. 각 노드는 커맨드 시퀀스를 발생하는 알고리즘 인스트럭션을 저장하는 메모리를 포함한다. 각 연속된 커맨드는 다음 연속된 테스트 주기 동안 실시될 테스트 신호를 인가(assert) 또는 인가해제(deassert)하거나 DUT 출력 데이터의 획득을 시작하거나 종료하는 것과 같은 동작을 표시하는 데이터를 포함한다. 또한 각 노드는 그 다음 테스트 사이클 동안 동작이 실시될 시간을 표시하는 타이밍 데이터를 포함한다. 또한 각 노드는 알고리즘 인스트럭션을 처리하여 커맨드를 발생하는 회로 및 커맨드에 의해 표시된 테스트 신호 및 데이터 획득을 제어하기 위해 커맨드에 응답하는 회로를 포함한다. 긴 커맨드 시퀀스와 관계된 테스트를 위해, 커맨드 시퀀스를 발생하는 알고리즘 인스트럭션을 저장하기 위해 필요한 메모리의 양은 커맨드 시퀀스 자체를 저장하기 위해 필요한 메모리의 양보다 작다.
각 커맨드를 처리하는 회로는 테스트 사이클 동안 정확하게 선택가능한 시간에 선택된 동작을 초기화하기 위한 기준 신호를 발생하는 타임 포매터(time formatter)를 포함한다. 본 발명의 다른 양상에 의해, 기준(reference) 신호 타이밍은 타임 포매터에 미리 적재된 몇 개의 타임 워드 중의 하나에 대한 각 커맨드의 기준에 의해서 결정되는 것이 아니라 발생된 각 커맨드에 포함되어 있는"타임 워드"에 의해 충분히 결정된다. 따라서 본 발명에서, 연속된 테스트 사이클 동안 이벤트 타이밍은 타임 포매터의 전체 범위 및 분해능(resolution) 내에서 충분히 그리고 독립적으로 선택가능하며 몇 개의 선택된 시간으로 제한되지 않는다.
따라서 본 발명의 목적은 대용량 노드 메모리를 필요로 하지 않으며 그리고 노드 메모리에 재적재하기 위해 주기적으로 테스트를 중단시키지 않으면서 긴 집적 회로 테스트를 실시하는 집적회로 테스터를 제공하는 것이다.
본 발명의 다른 목적은 테스트의 각 사이클 동안 이벤트를 테스트하는 매우 유연성 있고 정확한 타이밍을 제공할 수 있는 집적회로 테스터를 제공하는 것이다.
본 명세서의 결론부는 본 발명의 요지를 구체적으로 지적하며 명백하게 권리를 주장한다. 그러나 당업자는 동일한 참조 문자가 동일한 구성요소를 가리키는 다음의 도면을 참조하여 본 명세서의 나머지 부분을 읽음으로써, 본 발명의 구성과 작동 방법 및 본 발명의 특징과 목적을 잘 이해하게 될 것이다.
도 1은 집적회로 또는 다른 테스트 중인 장치(DUT; 12)를 테스트하기 위한 본 발명에 따른 테스터(10)의 블록도이다. DUT(12)는 핀, 패드 또는 입력 및 출력 신호를 위한 다른 형태의 액세스(access) 단자로 이루어진 하나의 세트를 가진다. 테스터(10)는 다수의 프로세싱 노드(14)를 포함한다. 간단함을 위해, 도 1에는 단지 몇 개의 노드(14)만이 도시되어 있지만, 테스터(10)는 훨씬 더 많은 수의 노드(14)를 포함할 수 있다. 각 노드(14)는 개별적인 도체(16)에 의해 DUT(12)의 개별적인 단자와 연결될 수 있다. 테스트 동작 중, 각 노드(14)는 도체(16)를 통해 테스트 신호를 노드로 전송할 수 있으며, 또는 도체(16)상에서 DUT에 의해 발생된 출력 신호를 샘플링할 수 있다.
테스트는 유사한 기간(duration)을 가지는 다수의 테스트 사이클로 분할되며, 각각의 연속된 테스트 사이클 중 정확하게 결정된 시간에 각 노드(14)는 커맨드 시퀀스에 응답하여 하나 이상의 동작을 실시할 수 있다. 각각의 연속된 커맨드는 테스트 신호를 인가하거나 DUT 출력 신호를 샘플링하는 것과 같은 연속된 테스트 사이클동안 실시될 동작을 표시한다. 또한 각 커맨드는 동작이 실시되는 테스트 사이클 동안의 상대 시간을 표시한다.
커맨드 시퀀스를 저장하는 대신, 각 노드(14)는 커맨드 시퀀스를 발생하는 알고리즘 인스트럭션을 저장한다. 각 노드(14)는 커맨드 시퀀스를 발생하는 알고리즘 인스트럭션을 처리하는 회로를 포함하며, 각 커맨드는 테스트 중에 요구되기 직전에 발생된다. 각 커맨드는 데이터 워드(data word)이며 비교적 작은 인스트럭션 세트가 가산, 감산, 비트 시프트(bit shift)와 같은 수학적 연산 및 분기(branching) 및 반복(repetition)과 같은 알고리즘 연산을 사용하여 훨씬 더 많은 데이터 시퀀스를 발생한다. 다수의 커맨드를 요구하는 긴 테스트 동작을 위해, 필요한 커맨드를 발생하는 알고리즘 인스트럭션 세트를 저장하기 위해 필요한 메모리는 커맨드 그 자체를 저장하기 위해 필요한 메모리보다 작다.
따라서, 본 발명의 테스터의 노드는 커맨드 그들 자체보다는 커맨드를 발생하는 알고리즘 인스트럭션을 입력으로 수신한다. 프로세싱 노드(14)는 네트워크 인터페이스로서 동작하는 전송선(transmission lines; 18,19)에 의해 환형(loop)으로 상호연결되어, 제어 데이터 및 신호뿐만 아니라 알고리즘 인스트럭션을 각 노드로 전송하는 환형 네트워크를 형성한다. 노드의 위치에서 네트워크와 상호연결된 호스트 인터페이스 회로(20)에 의해 호스트 컴퓨터(22)는 버스(24)를 통해 네트워크로 액세스(access)한다. 도 1의 클록 회로(25)에 의해 발생된 기준 발진 클록 신호 ROSC는 모든 노드(14)에 공통 타이밍 기준을 제공하여 아래에 기술된 방법으로 테스트 동작 중에 그들의 동작을 동기화하도록 한다.
테스트 동작이 시작되기 전에, 호스트 컴퓨터(22)는 개별 세트의 알고리즘 인스트럭션을 각 노드(14)로 전송한다. 또한 호스트 컴퓨터(22)는 제어 데이터를 네트워크를 통해 각 노드(14)로 전송한다. 각 노드(14) 내의 레지스터에 저장되어 있는 제어 데이터는 DUT(12)로 전송된 테스트 신호의 전압 레벨 또는 테스트 사이클의 기간과 같은 다양한 노드 동작 모드를 선택한다. 테스트 동작을 시작하기 위해, 호스트 컴퓨터(22)는 START 제어 신호를 네트워크를 통해 노드(14)로 전송한다. 각 노드(14)는, START 신호에 응답하여 노드 메모리의 알고리즘 인스트럭션을 리드하고 처리하기 시작하여 커맨드 시퀀스를 발생하는, 그 자신의 내부 인스트럭션 프로세서를 포함한다. 각 커맨드는 그 다음 테스트 사이클 동안 실시될 동작을 표시하며 노드가 표시된 동작을 실시할 다음 테스트 사이클의 특정 시간을 표시한다. 각 노드(14)는 커맨드를 디코드하기 위한 "타임 포매터" 회로를 포함한다. 각 커맨드에 의해 표시된 시간에, 타임 포매터는 내부 DUT 인터페이스 회로를 신호하여 커맨드에 의해 표시된 동작을 실시한다.
도 2는 도 1의 테스터(10)의 일반적인 노드(14)의 블록도이다. 노드(14)는 노드를 환형 네트워크의 선행 및 다음 노드와 연결하기 위한 단방향의 입력 및 출력 직렬 전송선(18,19)과 인터페이스하기 위한 네트워크 인터페이스(30)를 포함한다. 본 발명의 바람직한 실시예에서 4개의 입력 전송선(18) 및 4개의 출력 전송선(19)은 각 노드를 가장 인접한 이웃과 연결한다.
또한 노드(14)는 메모리 관리장치(memory management unit; 32), 인스트럭션 메모리(34) 및 인스트럭션 프로세싱 장치(36)를 포함한다. 인스트럭션 메모리(34)는 알고리즘 인스트럭션을 저장하기 위한, 적당한 종래의 주소지정가능 RAM(random access memory)이다. 프로세싱 장치(36)는 메모리(34)에 저장된 인스트럭션을 실행하여 노드 작동을 제어하는 커맨드 시퀀스를 발생한다. 메모리 관리장치(32)는 메모리(34)로의 리드 및 라이트(write) 액세스를 제어하는 종래의 RAM 제어장치이다. 각 네트워크 인터페이스(30)는 직렬 데이터 및 어드레스를 입력 전송선(18)을 통해 수신하고, 이들을 출력 전송선(19)을 통해 환형 네트워크의 다음 노드로 전송한다. 각 네트워크 인터페이스(30)는 직렬 데이터 및 어드레스 워드를 병렬 형태로 변환하여 이들을 로컬 버스(31)로 전송한다. 메모리 관리장치(32)는 메모리(34)의 주소가 지정되었는 가를 판단하고, 주소지정이 된 경우에는 데이터를 메모리(34)에 저장한다. 테스트 동작 중, 프로세싱 장치(36)는 24비트 버스(33)를 통해 메모리 관리장치(32)로 메모리 어드레스를 전송하고 메모리 관리장치는 메모리(34)로부터 이 어드레스의 인스트럭션을 리드하여 이 인스트럭션을 로컬 버스(31)를 통해 프로세싱 장치(36)로 전송한다.
노드(14)는 추가로 타임 포매터 회로(38) 및 테스트 중인 장치(DUT) 인터페이스 회로(40)를 포함한다. DUT 인터페이스 회로(40)는 도체(16)를 통해 테스트 중인 장치와 연결된 입/출력 포트를 포함한다. 각 테스트 사이클동안, DUT 인터페이스 회로(40)는 도체(16)를 통해 테스트 신호를 DUT로 전송할 수 있으며/또는 DUT에 의해 도체(16)상에서 발생된 데이터 비트를 샘플링하고 저장할 수 있다. 프로세싱 장치(36)가 메모리(34)로부터 리드한 인스트럭션을 실행함에 따라, 처리 장치는 커맨드를 발생시키고 이것을 버스(33)를 통해 타임 포매터(38)로 전송한다. 각 커맨드에 응답하여, 타임 포매터(38)는 적당한 시간에 3개의 출력 신호, COMPARE, DRIVE 및 TRISTATE 중에서 하나를 선택적으로 인가하거나 인가해제한다. 타임 포매터(38)는 DUT 인터페이스 회로(40)에게 테스트 신호로 도체(16)를 구동하는 시간을 알려주기 위해 TRISTATE 신호를 인가하거나 인가해제한다. DRIVE 신호는 DUT 인터페이스 회로(40)에게 테스트 신호가 하이(high) 또는 로우(low)가 되는 시간을 통지하기 위하여 인가되거나 인가해제된다. COMPARE 신호는 DUT 인터페이스 회로(40)에게 DUT에 의해 발생된 신호의 샘플링을 시작하거나 종료하는 시간을 알리기 위하여 인가되거나 인가해제된다. 로컬 버스(31)에 연결되어 있는 입/출력(I/O) 제어장치(44)는 네트워크 인터페이스(30) 및 전송선(18,19)을 통해 네트워크의 다른 노드 및 도 1의 호스트 컴퓨터(22)와 통신한다. 테스트 동작을 시작하기 전에, I/O 제어장치(44)는 네트워크를 통해 제어 데이터를 수신하고 이 데이터를 네트워크 인터페이스(30), 인스트럭션 프로세싱 장치(36), 타임 포매터(38) 및 DUT 인터페이스 회로(40)내의 다양한 레지스터에 저장한다. 제어 데이터는 아래에서 설명하고 있듯이, 테스트 동작 중에 이러한 장치의 다양한 동작 모드를 설정한다. 테스트가 종료되면, I/O 제어장치(44)는 호스트 컴퓨터 또는 다른 장치를 인에이블하여 DUT 인터페이스 회로(40) 내의 획득 메모리로부터 테스트 데이터를 리드한다.
또한 노드(14)는 입력 및 출력 RUNTIME 제어 신호를 전송하기 위한 네트워크 인터페이스(30) 및 프로세싱 장치(36) 사이의 접속(connection)을 포함한다. 이들 RUNTIME 신호는 테스트 동작의 시작 및 종료를 신호하기 위해 선택된 전송선(18,19)을 통과하여 전송될 수 있다. RUNTIME 신호는, 예를 들어 동작 모드의 변화 및 테스트 중 일어나는 에러를 표시하기 위하여, 테스트 동작 중 노드간의 통신을 제공할 수 있다.
각 노드(14)에 포함되어 있는 발진기 회로(42)는 테스트 동작 중 네트워크의 모든 노드의 동작을 동기화하는 것을 돕는다. 발진기 회로(42)는 타임 포매터(38) 및 네트워크 인터페이스(30)로 전송되는 타이밍 신호 T0-T30 세트를 발생한다. 이들 타이밍 신호 T0-T30은 ROSC 신호와 동일한 주파수를 가지고 있지만, ROSC 신호의 주기를 실질적으로 동일한 주기를 가지는 31개의 세그먼트로 분할하기 위하여 서로에 대해 시간 시프트된다. 각 노드(14)에서, 타이밍 신호 T0는 인스트럭션 프로세싱 장치(36)에 의해 인스트럭션 프로세싱을 클록한다. 커맨드에 응답하여, 타임 포매터(38)는 커맨드에 의해 표시된 동작에 대한 기준 타이밍으로서 타이밍 신호 T0-T3 중에서 하나를 선택한다. 모든 노드의 T0-T30 신호가 ROSC 신호와 동일한 위상 관계에서 유지되기 때문에, 모든 노드의 T0-T30 신호는 모든 다른 노드의 유사 신호와 동상(同相)이다. 인스트럭션 프로세싱 장치 및 각 노드의 이벤트 타이밍은 T0-T30 신호를 기준으로 하기 때문에, 모든 노드의 액티버티(activity)를 동기화할 수 있다.
ROSC 신호, 즉 그에 따른 T0 신호는 프로세싱 장치(36)내의 마이크로프로세서의 동작 속도로 적당하게 설정된다. 그러나 COMPARE, DRIVE 및 TRISTATE 신호의 타이밍을 고 분해능으로 제어가능한 것이 좋다. T0-T30 신호는 시간을 ROSC 사이클의 1/31로 분할하지만, 아래에서 서술하는 바와 같이, 타임 포매터(38)는 16 인자에 의해 그 출력 신호 타이밍을 더 분할할 수 있는 회로를 포함한다. 0.8마이크론 기술에 적합한 100Mhz ROSC 신호를 가정하는 경우, 노드(14)는 COMPARE, DRIVE 및 TRISTATE 신호 타이밍 에지를 대략 20psec로 분할할 수 있다. 0.4마이크론 기술을 사용하는 경우, 200Mhz ROSC 신호는 10psec 분할을 허용할 것이다.
장치 30, 32, 34, 36, 38, 42 및 44는 CMOS 논리 기술을 사용하는 단일 대규모 집적회로(15)상에서 실시된다.
도 3은 도 1의 테스터의 모든 노드(14)의 동기 동작을 돕는데 사용되는 도 2의 위상 동기된 발진기(42)를 묘사하는 블록도이다. 발진기(42)는 직렬로 연결되어 환형을 형성하는 동일 인버터(45) 세트를 포함한다. 단일 펄스는 인버터(45)의 전파 지연 시간에 의해 결정되는 속도로 환형 주위를 회전한다. 이러한 지연 시간은 모든 인버터(45)에 전력을 공급하는 전원(46)의 출력 전압에 의해 제어된다. 타이밍 신호 T0-T30은 인버터(45)간의 접속에서 포착된다. 모든 인버터(45)의 전파 지연이 실질적으로 동일하기 때문에, 신호 T0-T30은 실질적으로 동일한 양으로 하나씩 위상 시프트(phase shift)된다. 지연 회로(delay circuit; 47)에 의해 지연된 T0신호는 신호 T0'로서 비교기(48)의 하나의 입력으로 공급된다. ROSC 신호 펄스가 T0' 펄스보다 앞설 때마다, 비교기(48)의 출력은 하이가 된다. T0' 펄스가 ROSC 신호 펄스보다 앞설 때는, 비교기(48)의 출력은 로우가 된다. 비교기(48)의 출력은 필터(49)에 의해 필터되어 전원(46)에 공급된다. 필터(49)의 출력 전압은 전원(46)의 출력 전압을 제어한다.
다른 실시예에서는 소자(45)가 예를 들어 전류 결핍 버퍼(current starved buffer) 또는 차동 소자(differential element)와 같은 인버터 이외의 장치일 수 있다는 것을 이해해야 한다.
T0-T30 신호가 ROSC 신호와 동일한 주파수 및 서로 약간 다른 위상을 가지는 것을 보장하기 위해, 장치 46-49에 의해 제공된 피드백은 T0' 신호와 ROSC 신호를 위상 동기한다. T0-T30 신호는 동일한 양으로 하나씩 위상 시프트되기 때문에, 연속된 T0-T30간의 시간은 ROSC 신호 주기의 1/31과 동일하다.
DUT(12)를 적절하게 테스트하기 위한 도 1의 시스템의 과정에서, 테스트 신호를 DUT로 전송하기 위한 노드(14) 및 DUT에 의해 발생된 신호로부터 샘플 데이터를 획득하기 위한 노드(14)는 서로에 대하여 정확한 시간에 이들을 실시하여야 한다. 모든 노드(14)에 전송된 ROSC 신호는 그들의 해당 타이밍 신호 T0-T30을 동기화하기 위한 기준을 제공한다. 예를 들어, 2개의 노드 각각이 T5 신호의 펄스를 검출하였을 때 각각 테스트 신호 펄스를 DUT로 전송하는 경우, 동일한 양으로 ROSC 신호로부터 위상 시프트된 것으로 간주되는 2개의 T5 신호는 서로 동상이기 때문에, 2개의 테스트 신호가 동시에 DUT로 전송될 것이다. 그러나 두가지 이유로 인해 2개의 테스트 신호가 반드시 동상일 필요는 없다.
첫째, 2개의 노드(14)가 그들의 T5신호 펄스를 검출하는 즉시 그들의 테스트 신호를 발생하기 위해 요구하는 시간은 서로 다를 수 있다. 이는 2개의 노드의 신호 처리 속도가 서로 다른 경우 발생한다. 이들 2개의 노드는 서로 다른 집적회로에서 구현되며, 칩 제조 매개변수의 다양함은 처리 속도에 영향을 미친다. 또한 물리적으로 분리된 2개의 노드는 서로 다른 환경 온도에서 작동할 수 있으며, 칩 온도는 처리 속도에 영향을 미친다. 이러한 문제를 해결하기 위해, 지연 회로(47)가 도 3의 발진기(42)의 피드백 환형에 포함된다. 지연 회로(47)는 T0-T30 신호를 도 2의 타임 포매터(38)의 처리 지연의 원인이 되는 양만큼 시간상 앞으로 위상 시프트한다. 지연 회로(47)는 COMPARE, DRIVE 및 TRISTATE 신호를 제어하기 위해 T0-T30 신호를 처리하는 게이트와 동일한 채널 (따라서 지연) 폭을 가지는 단순한 직렬 게이트이다. 발진기(42) 및 타임 포매터(38)가 동일한 집적 회로(15)상에서 구현되기 때문에, 도 2의 타임 포매터(38)를 통해 신호 전파 속도에 영향을 미치는 모든 절차 및 환경 변화는 도 3의 지연 회로(47)의 지연에 영향을 미친다. 따라서 각 노드의 지연 회로(47)는 그 자신의 지연을 자동적으로 조정하여, 신호 T0-T30을 노드의 타임 포매터를 통과하는 전파 지연의 원인이 되는 적당한 양만큼 위상 시프트한다. 따라서 예를 들어 저속 노드의 T5 펄스가 고속 노드의 T5 펄스 전에 발생하기 때문에 양 노드에 의해 인가된 COMPARE, DRIVE 또는 TRISTATE 신호는 T5 펄스에 응답하여 사실상 동시에 인가된다.
ROSC 신호가 도 1의 모든 노드(14)에 동시에 도달하지 않기 때문에, 제2 타이밍 문제가 발생한다. 노드가 물리적으로 분리되어 있으며, 도 1의 ROSC 클록(25)은 다른 노드보다 일부 노드로부터 더 멀리 떨어져 있다. 따라서 2개 노드의 타이밍 신호 T5 펄스가 동일 양만큼 ROSC 신호 펄스로부터 위상 시프트되어 있을지라도, 그들 자신은 동상이 아니다. 따라서 서로 다른 타이밍 신호 T5 펄스에 따라 타이밍된 테스트 신호는 일치하지 않는다. 본 발명은 ROSC 신호 도달 시간에 있어서 차(difference)의 원인이 되는 지연을 약간 조종함과 동시에 각 노드 내의 타임 포매터(38) 내의 지연 회로를 교정함으로써 이러한 문제를 극복한다.
도 4는 도 2의 DUT 인터페이스 회로(40)의 블록도이다. 회로(40)는 도체(16)를 통해 전송된 테스트 신호를 DUT로 공급하기 위한 종래의 트라이스테이트 구동 회로(50)를 포함한다. 구동 회로(50)는 도 2의 타임 포매터(38)로부터 DRIVE 및 TRISTATE 신호를 수신한다. TRISTATE 신호는 구동기 전송이 도체(16)를 통해 DUT로 출력된 테스트 신호인지를 판단한다. DRIVE 입력 신호는 테스트 신호 출력의 논리 상태를 제어한다. 구동기(50)는 DUT의 요구에 따라 그 테스트 신호 출력의 논리 레벨을 조정할 수 있다는 점에서 프로그램 가능하다. 레지스터(52)는 테스트 동작 이전에 도 2의 I/O 제어장치(44)를 통해 호스트 컴퓨터로부터 전송된 제어 데이터를 저장한다. 레지스터(52)의 데이터는 구동기(50)로 공급되며 테스트 신호 논리 레벨을 제어한다.
또한 DUT 인터페이스 회로(40)는 비교기(54)를 포함한다. 비교기(54)는 도체(16)상의 DUT에 의해 발생된 신호를 디지털-아날로그(D/A) 변환기(56)의 아날로그 신호 출력과 비교한다. DUT 출력 신호의 논리 참 및 논리 거짓 상태간의 중단점(breakpoint)을 표시하는 D/A 변환기(56) 출력 신호의 절대값은 레지스터(58)에 저장된 데이터에 의해 저장된다. 호스트 컴퓨터는 테스트 동작 이전에 데이터를 I/O 제어장치를 통해 레지스터(58)에 적재한다. 도 2의 타임 포매터(38)로부터 COMPARE 신호가 인가되면, 비교기(54)는 DUT 출력 신호의 전압이 D/A 변환기(56) 출력 신호보다 높은지를 표시하는 출력 데이터 비트를 발생한다. COMPARE 신호가 인가해제되면, 메모리 제어장치 회로(60)는 비트를 획득 메모리(62)에 저장한다. 따라서 테스트 동작 중, 획득 메모리(62)는 데이터 시퀀스 값을 획득하고 저장한다. 그 후 도 2의 I/O 제어장치(44)를 통해 작동하는 호스트 컴퓨터는 다음 분석을 위해 메모리 제어장치(60)를 통해 메모리(62)로부터 획득된 데이터를 순차적으로 리드한다.
도 5는 도 2의 타임 포매터(38)를 묘사하는 블록도이다. 타임 포매터(38)는 6개의 타이밍 회로(71-76) 세트 및 다중화 래치(80,82,84) 세트를 포함한다. 구동 하이 회로(drive high circuit; 71)는 DRIVE 신호가 하이로 구동되는 시간을 판단하며, 구동 로우 회로(drive low circuit; 72)는 DRIVE 신호가 로우로 구동되는 시간을 판단한다. 샘플 하이 회로(sample high circuit; 73) 및 샘플 로우 회로(sample low circuit; 74)는 COMPARE 신호가 하이 및 로우로 구동되는 시간을 각각 판단하고 트라이스테이트 하이 회로(tristate high circuit; 75) 및 트라이스테이트 로우 회로(tristate low circuit; 76)는 TRISTATE 신호가 하이 또는 로우로 구동되는 시간을 판단한다.
회로(71-76)는 2개의 모드, PROCESSOR 모드 또는 PATTERN 모드로 동작 가능하다. 이들 모두가 소정의 시간에 동일 모드로 작동할 필요는 없다. 테스트 동작은 연속된 테스트 사이클 세트로 분할되며, 각각은 선택된 개수의 T0 타이밍 신호의 사이클을 스패닝(spanning)한다. PROCESSOR 모드에서, 도 2의 인스트럭션 프로세싱 장치(36)는 각각의 테스트 사이클 동안 하나 이상의 커맨드를 타임 포매터(38)로 전송한다. 각 커맨드는 20비트의 TIMEWORD 및 6비트의 ACTIONWORD를 포함한다. TIMEWORD는 다음 사이클 동안 타임 포매터가 동작을 실시하는 특정 시간을 표시하며, ACTIONWORD는 실시될 특정 동작을 표시한다. PROCESSOR 모드에서, ACTIONWORD의 각 비트 L1-L6은 해당 회로(71-76)로 각각 전송되며, TIMEWORD는 병렬로 해당 회로(71-76)로 전송된다. ACTIONWORD 비트가 설정되면, 이를 수신한 회로(71-76)는 TIMEWORD를 저장하고 TIMEWORD에 의해 표시된 시간의 다음 사이클 동안의 동작을 초기화한다. 따라서 ACTIONWORD는 TIMEWORD를 수신하기 위해 특정 타이밍 회로(71,76)를 선택함으로써 다음 테스트 주기 동안에 실시될 동작을 선택한다.
PATTERN 모드에서, 각 타이밍 회로(71-76)는 테스트 절차가 시작하기 전에 도 1의 호스트 컴퓨터(22)가 도 2의 I/O 제어장치(44)를 통해 타이밍 회로(71-76)로 적재하는 TIMEWORD 시퀀스에 따라 그 타이밍을 결정한다. 예를 들어, DRIVE 신호가 테스트 작동 중에 짧은 반복 패턴으로 인가되고 인가해제될 때, DRIVE 신호의 타이밍을 제어하는 2개의 회로(71, 72)가 PATTERN 모드에서 동작할 수 있다. DRIVE 신호가 긴 패턴으로 인가되고 인가해제되는 경우, PROCESSOR 모드가 선택된다. 회로(73-76)를 위한 동작 모드는 유사한 방식으로 선택된다.
도 5a는 타임 포매터(38)에 의해 처리되는 TIMEWORD의 표현이다. 도 5 및 도 5a를 참조로 하여, PROCESSOR 모드에서 TIMEWORD가 테스트 사이클 동안 회로(71-76)중의 어느 하나에 저장되는 경우, 회로는 TIMEWORD에 의해 표시되는 시간에 다음 테스트 사이클 동안에 특정 동작을 초기화한다. 다음 테스트 사이클의 초기에, 프로세싱 장치는 NEWCYCLE 펄스를 각각의 타이밍 회로(71-76)로 전송한다. 예를 들어, 구동 하이 회로(71)가 PROCESSOR 모드에서 동작하면, T0 신호 사이클을 도 5a에 도시된 바와 같이, 마지막으로 저장된 TIMEWORD의 최초 11비트(비트 0-10)에 의해 표시되는 N번까지 카운트함으로써 NEWCYCLE 펄스에 응답한다. 그 후 구동 하이 회로(71)는 31개의 T0-T30 타이밍 신호 중 8개 신호의 특정 로우그룹 DH0-DH7을 선택하고, 선택된 양만큼 이들을 지연하고, 이들을 출력 신호 DH0-DH7로서 다중화 래치(80)의 "세트"입력으로 통과시킨다. 도 5a에 도시되어 있듯이, TIMEWORD의 비트 11 및 12(TAP)는 31개의 타이밍 신호 T0-T30중 선택된 8개 신호의 특정 로우 그룹(DH0-TH7)을 표시한다. 비트 13-16(DELAY)은 이러한 8개의 타이밍 신호가 지연되는 양을 표시한다. 그 사이에 또한 구동 하이 회로(71)는 TIMEWORD의 마지막 3비트(SELECT)를 선택 신호 DHS0-DHS2로서 다중화 래치(80)의 "세트 선택" 입력으로 전송한다. DHS0-DHS2 비트에 응답하여, 다중화 래치(8)는 8개의 선택된 타이밍신호 DH0-DH7 중 하나를 선택한다. 이 하나의 타이밍 신호가 펄스를 다중화 래치(80)의 세트 입력으로 전달하면, 래치는 그 출력 신호 DRIVE를 세트(하이로 구동)한다.
따라서 구동 하이 회로(71)로 적재되면, TIMEWORD는 다음 테스트 사이클 동안 DRIVE 신호가 하이로 구동되는 시간을 정확하게 표시한다. 유사한 방법으로, 구동 로우 회로(72)가 L2 제어 신호에 응답하여 TIMEWORD를 수신하는 경우, 그 후에 이것은 8개의 타이밍 신호 중 하나를 선택하기 위한 제어 3비트 DLS0-DLS2와 함께 8개의 개별 타이밍 신호 DL0-DL7을 다중화 래치(80)의 리셋(reset) 입력으로 전송한다. 그 후 래치(8)는 선택된 타이밍 신호 DL0-DL7로부터의 펄스에 응답하여 DRIVE 신호를 리셋(로우로 구동)한다. 따라서 구동 로우 회로(72)로 적재되면 TIMEWORD는 NEWCYCLE 신호의 다음 인가에 대하여 DRIVE 신호가 로우로 구동되는 시간을 정확하게 표시한다.
다중화 래치(82)는 샘플 하이 회로(73) 및 샘플 로우 회로(74)로부터의 신호에 응답하여 COMPARE 신호를 발생하고, 다중화 래치(92)는 트라이스테이트 하이 회로(75) 및 트라이스테이트 로우 회로(76)로부터의 신호에 응답하여 TRISTATE 신호를 발생한다. 이러한 회로는 회로(71, 72 및 80)와 유사한 방법으로 동작하여 COMPARE 및 TRISTATE 신호의 상태를 제어한다.
PATTERN 모드에서 동작할 회로(71-76)를 위해, 도 2의 I/O 제어회로(44)를 통해 동작하는 도 1의 호스트 컴퓨터(22)는 테스트 동작이 시작하기 전에 4개의 TIMEWORD의 세트를 각 타이밍 회로(71-76)에 미리 적재한다. PROCESSOR 모드에서, TIMEWORD는 또한 연속된 테스트 사이클 동안 동작이 발생할 시간을 표시한다. 그러나 테스트 동작 중에, PATTERN 모드에서 동작할 회로(71-76)는 연속된 테스트 사이클 동안 그들의 저장된 TIMEWORD에 의해 표시된 동작을 각각 실행하며, 인스트럭션 프로세싱 장치로부터 TIMEWORD를 수신하지 않는다.
도 6은 도 5의 구동 하이 회로(71)를 묘사한다. 도 5의 회로(72-76)는 유사하다. 도 6을 참조하여, 레지스터(90)는 ACTIONWORD의 L1 비트에 응답하여 20비트 TIMEWORD를 저장한다. 레지스터(90)에 저장된 TIMEWORD의 최초 11비트 N은 시퀀서(91)에 입력으로서 제공된다. 레지스터(90)에 저장된 TIMEWORD의 나머지 9비트(TAP, DELAY, 및 SELECT)는 래치(92)에 입력으로서 제공된다. 래치(92)의 출력은 멀티플렉서(93)의 입력으로 공급된다. 프로세싱 장치(36)로부터 NEWCYCLE 신호를 수신하는 즉시 래치(92)는 레지스터(90)의 TIMEWORD의 TAP, DELAY 및 SELECT 부분을 멀티플렉서(93)로 통과시킨다. NEWCYCLE 신호 펄스를 따르는 N번째 ROSC 신호 펄스상에서, 시퀀서(91)는 멀티플렉서(93)의 입력으로서 제공되는 Q출력(DISABLE)을 가지는 플립플롭(94)을 리셋한다. 플립플롭(94)은 도 5의 래치(80)의 DRIVE 신호 출력에 의해 세트된다. 20/10 비트 멀티플렉서(93)는 테스트 동작 이전에 도2의 I/O 제어 회로(44)를 통해 호스트 컴퓨터에 의해 레지스터(95)에 저장되어 있는 MODE 비트에 의해 제어된다. MODE 비트는 구동 하이 회로(71)가 PROCESSOR에서 동작하는 지 아니면 PATTERN 모드에서 동작하는 지를 표시한다.
PROCESSOR 모드에서 동작하는 경우, 멀티플렉서(93)는 래치(92)의 출력의 SELECT 3비트를 선택 신호 DHS0-DHS2로서 도 5의 다중화 래치(80)의 선택 제어 입력으로 통과시킨다. 멀티플렉서(93)는 래치(92)의 출력의 나머지 6비트(TAP 2비트 및 DELAY 4비트)를 도 5의 다중화 래치(80)의 세트 입력에 공급되는 8개의 타이밍신호 DH0-DH7을 발생하는 TEG(100)로 통과시킨다. TEG회로(100)는 DH0-DH7 타이밍 신호를 발생하는 31개의 T0-T30중 8개를 조절가능하게 지연한다. 8개의 타이밍 신호 DH0-DH7은 TAP 비트에 의해 선택되며, 각 타이밍 신호 DH0-DH7이 지연되는 양은 DELAY 4비트에 의해 결정된다.
또한 멀티플렉서(93)는 플립플롭(94)의 DISABLE 비트 출력을 TEG회로(100)로 통과시킨다. 테스트 사이클 중에 다중화 래치(80)가 DRIVE 신호를 인가하면, 플립플롭(94)의 DISABLE 출력 비트를 논리 '참'으로 세트한다. 이러한 비트는 TEG(100)의 DH0-DH7 출력 비트를 로우로 풀링(pulling)하고 이들을 로우로 유지하도록 통지함으로써 TEG(100)을 "디스에이블"한다. 그 다음 테스트 사이클 동안, 시퀀서(91)가 ROSC 사이클 N을 카운트한 후, 플립플롭(94)을 리셋하여 DISABLE 비트를 로우 구동한다. 이것은 TEG(100)을 인에이블하여 그 다음 T0 클록 사이클 동안 DH0-DH7 신호 펄스의 세트를 발생한다.
도 2의 I/O 제어장치(44)를 통해 동작하는 호스트 컴퓨터의 PATTERN 동작 모드에서, 테스트 동작이 시작되기 이전에 4개의 레지스터(6) 세트에 4개의 TIMEWORD를 저장한다. 각 레지스터(96)에 저장된 TIMEWORD는 멀티플렉서(97)의 개별 입력에 인가된다. 멀티플렉서(97)는 하나의 선택된 레지스터(96)의 TIMEWORD 중 TAP, DELAY 및 SELECT의 9비트를 멀티플렉서(93)의 입력으로 전송한다. 멀티플렉서(97)는 선택된 TIMEWORD의 나머지 11비트를 시Z퀀서(98)로 보낸다. NEWCYCLE 펄스를 각각 수신하는 즉시, 시퀀서(98)는 멀티플렉서(97)를 스위치하여 다음 테스트 사이클을 위한 TIMEWORD를 선택하고 T0 신호 펄스를 카운트하기 시작한다. 카운트가 N에 도달하면, 시퀀서(98)는 DISABLE 신호를 멀티플렉서(93)로 공급하는 플립플롭(99)을 리셋한다. PATTERN 모드에서, 레지스터(95)에 저장된 MODE 비트는 멀티플렉서(97)로부터 TAP, DELAY 및 SELECT 비트를 선택하고 플립플롭(99)으로부터 DISABLE 비트를 선택한다. 도 6의 TEG회로(100) 및 도 2의 다중화 래치(80)는 PROCESSOR 모드에서 DRIVE 신호를 인가하는 시간을 판단하는 방법과 동일한 방법으로 이러한 데이터를 처리한다. 플립플롭(99)은 플립플롭(94)과 동일한 방법으로 동작하여 테스트 사이클 동안 DRIVE 신호를 하이로 한 0번 구동한 후 TEG(100)를 디스에이블한다. 각 NEWCYCLE 신호 후에 시퀀서(98)가 레지스터(96)를 선택할 때 따르는 특정 패턴은 테스트 동작이 시작되기 전에 도 2의 I/O 제어장치(44)를 통해 호스트 컴퓨터에 의해 시퀀서(98)로 공급되는 제어 데이터 패턴에 의해 결정된다.
전체 테스트 사이클을 위한 TEG(100)를 디스에이블하기 위해, 레지스터(96)에 저장된(PATTERN 동작 모드) 또는 레지스터(90)에 공급된(PROCESSOR 동작 모드) TIMEWORD의 11비트 N은 테스트 사이클의 길이보다 높은 값으로 설정된다. 이러한 경우, 시퀀서(98,91)는 각 테스트 사이클 동안 플립플롭(99, 94)을 리셋하기에 충분한 높은 값을 카운트할 수 없다. 아래에서 서술되듯이, I/O 제어 회로(44)는 TEG회로(100)에 DH0-DH7 신호의 타이밍을 정확하게 제어하는 교정(calibration; CAL) 데이터를 제공한다.
도 7은 도 6의 TEG회로(100)를 묘사하는 블록도이다. TEG(100)는 8개의 동일 S/D(select and delay) 셀(110-117) 세트를 포함한다. DISABLE 비트가 로우이면, S/D 셀(110)은 시간 신호 T0-T3중에서 하나를 선택하여 TIMEWORD의 TAP 2비트에 응답하여 타이밍 신호 DH0으로서 전송한다. S/D 셀(110)이 선택된 탭 신호 T0-T3를 DH0 신호로서 상승 통과시킴에 따라, 선택된 탭 신호를 DELAY 4비트에 의해 결정된 0 내지 15 "지연 단위"로 지연한다. DISABLE 비트가 하이이면, 셀(110)은 선택된 타이밍 신호 T0-T3의 상태에 상관없이 DH0을 로우로 풀링한다. S/D 셀(111-117)은 유사한 방식으로 동작하며, 각각의 셀은 TAP 및 DELAY 비트에 응답하여 4개의 발진기 탭 신호 중에서 하나를 선택하고 이를 조정가능하게 지연시켜 해당 출력 신호 DH1-DH7을 각각 발생한다. 아래에 서술되어 있듯이, 또한 각 S/D 셀은 아래에서 서술하는 이유로 S/D 셀을 통하는 신호 전파 지연을 조정하는 도2의 I/O 제어 회로(44)로부터 교정 데이터 입력을 수신한다.
S/D 셀이 선택된 탭을 지연할 수 있는 "지연 단위"는 연속된 탭 T0-T30의 펄스간의 시간 차의 1/16 또는 도 3의 발진기(42)의 하나의 게이트(45)의 지연의 1/16이다. 도 2의 위상 동기된 발진기(42)는 ROSC 신호 사이클을 31개의 타임 세그먼트로 분할하는 탭 신호 TOT-30을 발생하며, TEG(100)은 각 타임 서그먼트를 16개의 하위 구획으로 더 분할할 수 있다. TIMEWORD로부터의 DELAY 데이터는 ROSC 신호 사이클의 1/(31×16) 또는 1/496의 단계에서 각 DH0-DH7 신호 펄스의 타이밍을 조정한다. 그리하여 신호 펄스 DH0-DH7을 적당하게 선택하고 지연함으로써, 496개의 동등하게 분배된 시간 중 어느 하나의 시간에 발생하는 기준 신호 펄스를 ROSC 신호 사이클동안 획득할 수 있다.
도 8은 도 7의 S/D 셀(110)을 묘사하는 조합 블록 및 회로도이다. 다른 S/D 셀(111-117)은 유사하다. 도 8을 참조하여, S/D 셀(110)은 TAP 신호 2비트에 의해 제어되는 멀티플렉서(120)를 포함한다. 멀티플렉서(120)는 프로그레머블 지연 회로(programmable delay circuit; 122)에 전송될 탭 신호 T0-T3 중의 하나를 선택한다. DELAY 4비트에 응답하여 지연 회로(122)는 선택된 탭 신호를 0 내지 15 지연 단위에 의해 지연하여 DH0 출력 신호를 발생한다. DISABLE 비트에 의해 제어되는 트랜지스터(164)는 DISABLE 비트가 하이인 경우 DH0 신호를 논리적 "0"(로우)" 소스와 결합한다. 트랜지스터(164)는 테스트 사이클 동안 DRIVE 신호가 한 번 인가된 후 DH0 신호를 다운(down)으로 풀링하여, 선택된 타이밍 신호 T0-T3이 테스트 사이클의 나머지 동안 DRIVE 신호의 인가를 반복하지 않도록 한다.
상기한 바와 같이, 도 1의 ROSC 신호의 펄스는 서로 다른 시간에 다양한 노드 14에 도달하며, 이것은 개별 노드의 해당 발진기 탭 신호 T0-T30간의 타이밍 차를 가져온다. 또한 도 3의 지연 회로(116)가 집적 회로 프로세싱 및 환경 변동에 기인하는 신호 전파 속도의 노드간 차를 보상하는 것을 돕는 반면, 주기적 소음 교란과 같은 다른 인자는 전파 속도 차를 작게 할 수 있다. 한 쌍의 교정 회로(124, 144)가 선택된 T0-T3 신호의 전파 지연을 조정하기 때문에, 개별 노드의 지연 회로(122)에 의해 제공되는 전파 지연은 동등해진다.
도 8의 S/D 회로(110) 내의 교정 회로(124)는 레지스터(126), 멀티플렉서(128), 전류원(130, 131 및 132) 및 3개의 트랜지스터(140, 141 및 142) 세트를 포함한다. 트랜지스터(140-142)는 전류원(130-132)을 지연 회로(122)의 입력과 각각 결합시킨다. 멀티플렉서(128)의 3비트 출력의 각 비트는 트랜지스터(140-142) 중의 개별적인 하나의 트랜지스터의 게이트를 제어한다. 호스트 프로세서는 도 2의 I/O 회로(44)를 통해 레지스터(126)에 12비트를 저장하며, 3비트는 4개의 탭 신호 T0-T3와 각각 연관되어 있다. 2비트의 TAP 데이터의 값에 응답하여, 멀티플렉서(128)는 레지스터(126)의 비트 중 3비트를 선택하여, 트랜지스터(140-142)의 상태를 스위치한다. 따라서 지연 회로(122)의 입력과 결합된 특정 전류원(130-132)은 현재 선택된 탭 신호 T0-T3 및 레지스터(126)에 저장된 관련 데이터(associated data)의 값에 따라 선택된다.
전류원(130-132)은 상대적 크기(1,2,4)의 전류를 각각 발생하고, 트랜지스터(140-142)를 선택적으로 턴온함으로써 지연 회로(122)의 입력에 제공되는 전류의 양을 모든 상대적 크기 0-7로 할 수 있다. 이러한 전류가 지연 회로(122)의 입력 정전용량을 미리 충전(precharge)하기 때문에, 멀티플렉서(128)가 지연 회로 신호를 통과시키는 경우 지연 회로는 보다 빠르게 응답한다. 입력 정전용량을 미리 충전하는데 유효한 전류의 양을 증가시킴으로써, 전파 지연을 감소시킨다. 따라서 레지스터(126)에 적재된 데이터는 각 타이밍 신호 T0-T3을 위한 전파 지연을 개별적으로 교정한다.
제2 교정 회로(144)는 레지스터(146), 멀티플렉서(148), 전류원(150,151,152) 및 3개의 트랜지스터(160,161,162) 세트를 포함한다. 트랜지스터(160-162)는 전류원(150-152)을 지연 회로(122)의 출력과 각각 결합시킨다. 멀티플렉서(148)의 3비트 출력의 각각의 비트는 트랜지스터(160-162) 중 개별적 하나의 트랜지스터의 게이트를 제어한다. 도 2의 I/O 회로(44)는 레지스터(146)에 48비트를 저장하고, 3비트는 4비트 DELAY 데이터에 의해 선택된 16개의 가능한 각각의 지연의 연관되어 있다. 4비트 DELAY 데이터의 값에 응답하여, 멀티플렉서(148)는 레지스터(146)의 비트 중 3비트를 선택하여 트랜지스터(160-162)의 스위칭 상태를 제어한다. 따라서 지연 회로(122)의 출력과 결합된 특정 전류원(150-152)은 지연 회로(122)에서 선택된 지연량 및 레지스터(146)에 저장된 관련 데이터의 값에 의해 결정된다. 교정 회로(144)는 교정 회로(124)와 유사한 방식으로 동작하여, 다음 단계의 입력 정전용량을 미리 충전함으로써 회로의 전파 지연을 조정하여 다음 단계의 응답을 DH0 신호까지 가속화하거나 저속화한다.
교정이 진행되는 동안, 도 1의 모든 노드는 출력 테스트 신호를 동시에 인가할 수 있도록 동작되며, DUT는 신호 펄스간의 작은 시간차를 측정하는 장비에 의해 대체된다. 트랜지스터(140-142)를 턴오프하여, 지연 회로(122)의 지연은 최소로 설정하며, 모든 노드에서의 멀티플렉서(120)는 T0을 선택하도록 스위치된다. 모든 노드가 적당하게 교정되면, 그 후 모든 노드는 그들의 테스트 신호를 동시에 인가한다. 모든 노드에 대하여 타이밍 차를 모니터하여, 타이밍 차를 모니터링하고, 탭 T0과 연관되어 있는 레지스터(126)에 저장되어 있는 데이터 3비트를 모든 노드에 대해 반복 방식(iterative basis)으로 조정한 후 모든 노드들은 자신들의 테스트 출력 신호를 교정 회로(124)에 의해 제공된 분해능 내에서 동시에 발생한다. 모든 노드에 대한 각 기준 신호 T1-T3에 대하여 이 절차를 반복한다.
그 후 각 노드에서 T0 탭을 선택하고, 지연 회로(122)의 모든 다른 지연 설정을 위하여 테스트 신호 타이밍을 비교하고, 레지스터(146)의 데이터를 반복하여 조정하여 모든 노드가 교정 회로(144)에 의해 제공된 분해능 내에서 지연 회로(122)의 각 설정을 위한 테스트 신호를 동시에 인가했다는 것을 보장한다. 도 6 및 도 7의 TEG(100)의 S/D 셀(111-117)에 대하여 교정 절차를 반복하고, 도 5의 구동 로우, 샘플 하이, 샘플 로우, 트라이스테이트 하이 및 트라이스테이트 로우 회로(71-76)에 포함되어 있는 유사한 각각의 TEG에 대하여 교정 절차를 반복한다.
도 9는 도 5의 일반적 다중화 래치(80)를 묘사하는 조합 블록 및 회로도이다. 다중화 래치(82, 84)는 유사하다. 다중화 래치(80)는 8개의 CMOS NAND 게이트 N0-N7, 8개의 CMOS AND 게이트 A0-A7, 8개의 pMOS 트랜지스터 T0-T7, 8개의 nMOS 트랜지스터 T8-T15, 쌍안정 래치(bistable latch; 70) 및 한 쌍의 디코더(decorder; 172,174)를 포함한다. 구동 하이 선택 신호 DHS0-DHS2은 디코더(172)로 입력을 제공한다. 디코더(172)는 8개의 출력을 가지며, 각각은 NAND 게이트 G0-G7 중의 개별적인 하나의 게이트의 입력을 구동하며, 각각은 디코더 입력 비트의 개별 조합에 응답하여 인가된다. 디코더(174)는 구동 로우 선택 신호 DLS0-DLS2를 디코드하여 8개의 출력을 발생하고, 각각은 DLS0-DLS2 비트의 개별적인 조합에 응답하여 AND 게이트 A1-A7 중 개별적인 하나의 게이트의 입력을 구동한다.
DH0-DH7 구동 하이 타이밍 비트는 NAND 게이트 N0-N7의 제2 입력에 각각 인가되며, DL0-DL7 구동 로우 비트는 AND 게이트 A1-A7의 제2 입력에 각각 인가된다. NAND 게이트 N0-N7의 출력은 트랜지스터 T0-T7의 게이트를 각각 제어하며, AND 게이트 A0-A7의 출력은 트랜지스터 T8-T15의 게이트를 각각 제어한다. 각 트랜지스터 T0-T7의 소스는 공통 전압원 VSS에 결합되며, 각 트랜지스터 T8-T15의 소스는 그라운드에 결합된다. 모든 트랜지스터 T0-T15의 드레인은 노드(176)에서 함께 접속된다. 쌍안정 래치(170)는 한 쌍의 CMOS 인버터(I1,I2)로 구성된다. I2의 출력은 I1의 입력과 연결되며, I1의 출력은 I2의 입력 및 회로 노드(176)와 연결된다. 회로 노드(176)에 래치 출력 신호 DRIVE가 나타난다. 특정 DHS0-DHS2 비트 패턴에 응답하여, 디코더(172)는 입력을 예를 들어 NAND 게이트 N0을 하이 구동한다. NAND 게이트 N0이 타이밍 신호 DH0으로부터 펄스를 순차적으로 수신하면 트랜지스터 T0이 턴온되며, 그 결과로, DRIVE 신호를 하이로 풀링한다. DRIVE 신호가 하이로 스윙(swing)함에 따라, 인버터 I2의 출력은 로우가 되고 그 후 인버터 I1의 출력은 하이가 된다. 타이밍 신호 DH0이 로우가 된 후, 인버터 I1의 출력은 계속하여 DRIVE 신호상에서 풀업(pull up)한다. 따라서 DRIVE 신호는 리셋될 때까지 하이로 래치된다.
그 후 DRIVE 신호를 논리 로우 레벨로 리셋하기 위해, DLS0-2의 어느 특정 비트 패턴에 응답하여 디코더(174)는 입력을 예를 들어 AND 게이트 A0을 하이 구동한다. AND 게이트 A0이 타이밍 신호 DL0으로부터 펄스를 순차적으로 수신하면 트랜지스터 T8이 턴온되고 그 결과로 DRIVE 신호를 로우로 풀링한다. 트랜지스터 T8은 인버터(I1,I2)를 구성하는 트랜지스터들 비해 상대적으로 크므로, 이러한 트랜지스터들의 래치 동작을 극복한다. DRIVE 신호가 로우가 됨에 따라 인버터(I2)의 출력은 하이가 되고 이에 따라서 인버터 I1의 출력을 로우가 되도록 한다. 타이밍 신호가 로우가 된 후, 인버터(I1)의 출력은 계속하여 DRIVE를 로우로 풀링한다. 그 후 DRIVE 신호는 구동 하이 신호 DH0-DH7중 하나의 신호에 의해 하이 상태로 리셋되기 전까지 논리 로우 상태로 남는다.
도 10은 도 2의 인스트럭션 프로세싱 장치(36)를 묘사하는 블록도이다. 인스트럭션 프로세싱 장치(36)는 메모리 관리장치(32)를 통해 도 2의 메모리(34)로부터 로컬 버스(31)상으로 전송되는 인스트럭션을 실행하는 마이크로프로세서(180)를 포함한다. 마이크로프로세서(180)가 24비트 개시(starting) 어드레스를 버스(33)를 통해 도 2의 메모리 관리장치(32)로 보내고 제어 라인(183)을 통해 메모리 관리장치(32)를 신호하면, 메모리 관리장치(32)는 도 2의 메모리(34)로부터 표시된 어드레스에서 시작하여 8비트 데이터 워드를 리드함으로써 응답한다. 메모리 관리장치(32)는 3개의 8비트 데이터 워드를 3개의 레지스터(181) 세트에 적재하고, 제어라인(183)상에서 제어 신호 SI에 시프트를 인가함으로써 24비트 데이터 워드로서의 레지스터의 내용을 FIFO(first-in/first-out) 버퍼(182)에 동시에 적재한다. 도 2의 메모리 관리장치(32)는 계속하여 메모리(34)의 연속된 어드레스에서 8비트 데이터 워드를 리드하고 FIFO 버퍼가 찰 때까지 이들을 24비트 워드로서 FIFO 버퍼(182)에 시프트한다. 그 후 메모리 관리 장치(32)는 제어 라인(183)을 통해 마이크로프로세서(180)에게 이 인스트럭션이 FIFO 버퍼(182)에서 유효함을 통지하는 신호를 보낸다.
그 후 마이크로프로세서(180)는 FIFO 버퍼(182)가 다음 인스트럭션을 버스(33)상에서 시프트하도록 하는 시프트 신호 S0를 순차적으로 발생한다. 그 후 마이크로프로세서(180)는 버스(33)상에 나타나는 인스트럭션을 리드하고 이를 실행한다. 이러한 인스트럭션은 알고리즘 텔링 마이크로프로세서(algorithm telling microprocessor; 180)를 형성하여 커맨드 시퀀스를 발생하고, 각 커맨드는 TIMEWORD 및 ACTIONWORD를 포함한다. 상기에서 서술한 바와 같이, ACTIONWORD는 다음 테스트 사이클 동안 실시될 특정 동작을 표시하고, TIMEWORD는 도 4의 타임 포매터가 표시된 동작을 초기화할 다음 테스트 사이클 동안의 시간을 표시한다. 마이크로프로세서(180)는 6개의 제어 라인 L1-L6 세트상에서 커맨드의 ACTIONWORD 부분을 출력하고, 버스(33)상에서 커맨드의 20비트 TIMEWORD 부분을 출력한다. 라인 L1-L6 및 버스(33)의 20개의 라인은 ACTIONWORD/TIMEWORD 커맨드를 도 5의 타임 포매터 회로(38)로 전송한다.
테스트 동작이 시작되기 전에, 호스트 프로세서는 도 2의 I/O 회로(44)를 통해 다수의 T0 신호 사이클에 의하여 각 테스트 사이클의 길이를 표시하는 데이터 값을 인스트럭션 프로세싱 장치(36)내의 카운터(counter; 184)에 저장한다. 마이크로프로세서(180)로부터 START 제어 신호를 수신하는 즉시, 카운터(184)는 T0 신호 펄스를 카운트하기 시작한다. 카운트가 표시된 한계에 도달하면, 카운터(184)는 NEWCYCLE 펄스를 발생하고 T0 신호 펄스를 다시 카운트하기 시작한다. 앞에서 서술하였듯이, NEWCYCLE 펄스는 도 5의 회로(71-76)로 전송되어 새로운 테스트 사이클이 시작되는 시간을 표시한다.
마이크로프로세서(180)는 4개의 RUNTIME 출력 신호 중의 하나를 인가할 수 있으며, 각각은 도 2의 4개의 링크(30)중 개별적인 하나의 링크로 전송된다. 마이크로프로세서(180)는 4개의 RUNTIME 입력 신호중의 어느 하나를 수신할 수 있으며, 하나의 신호는 각 링크(30)로부터 나온다. 출력 RUNTIME 신호는 예를 들어 테스트 완료를 표시하기 위해 그렇게 하기를 표시 받은 경우, 테스트 동작 중에 마이크로프로세서(180)가 호스트 컴퓨터 또는 다른 노드를 신호하는 것을 허용한다. 예를 들어 테스트의 개시 또는 종료를 표시하거나 또는 마이크로프로세서(180)에게 인터럽트 루틴을 실행할 것을 통지하기 위해, 입력 RUNTIME 신호는 호스트 컴퓨터 또는 다른 노드가 테스트 중에 마이크로프로세서(180)에 신호하는 것을 허용한다.
테스트가 시작될 때, 마이크로프로세서(180)는 T0 신호 사이클의 카운트를 시작할 것을 통지하기 위해 START 신호를 카운터(184)에 보냄으로써, 그리고 버스(33)를 통해 메모리 관리장치에 최초 어드레스를 보냄으로써, RUNTIME 신호에 응답한다. 그 후 메모리 관리장치는 커맨드 시퀀스를 FIFO 버퍼(182)로 보낸다. 마이크로프로세서(180)가 이 인스트럭션을 리드하고 실행함에 따라, 다음 테스트 사이클 동안 실시될 각 동작에 대한 TIMEWORD/ACTIONWORD 커맨드를 도 2의 타임 포매터(38)로 보낸다. FIFO 버퍼(182)의 인스트럭션이 부족한 경우, 마이크로프로세서(180)는 반드시 다른 어드레스를 도 2의 메모리 관리장치(32)로 보내고, 메모리 관리장치는 다음 세트의 인스트럭션을 FIFO 버퍼에 재적재한다. 각 사이클 동안의 최종 인스트럭션은 카운터(184)로부터 새로운 테스트 사이클의 개시를 표시하는 NEWCYCLE 신호를 수신할 때까지 리셋할 것을 마이크로프로세서(180)에게 통지한다. 그 후 마이크로프로세서(180)는 다시 FIFO 버퍼(182)로부터 인스트럭션을 리드하기 시작하고, 이들을 실행하여 다음 테스트 사이클을 위한 TIMEWORD/ACTIONWORD 커맨드를 발생한다. 테스트의 각 사이클에 대하여 이 절차를 계속한다. 테스트 동작이 끝날 때, 최종 인스트럭션은 마이크로프로세서(180)에게 테스트 종료를 표시하는 출력 RUNTIME 신호를 인가할 것을 통지한다. 도 2의 네트워크 인터페이스(30)는 이 신호를 호스트 프로세서 또는 적당한 다른 노드로 전송하도록 구성될 수 있다.
도 10a는 도 10의 마이크로프로세서(180)의 적당한 구조를 도시하는 블록도이다. 마이크로프로세서(180)의 주요 기능은 가산, 감산, 비트 시프트 및 서브루틴, 재귀, 분기 및 다른 잘 알려진 알고리즘 기술을 포함하는 알고리즘 인스트럭션을 실행하여 커맨드 시퀀스를 발생하는 것이다. 각 커맨드는 버스(33)상에서 발생한 TIMEWORD 및 6개의 라인 L1-L6상에서 발생한 ACTION 워드를 포함한다.
당업자는 다수의 잘 알려진 24비트 마이크로프로세서 구조가 이러한 기능을 수행할 수 있다는 것을 알고 있을 것이다. 바람직한 실시예에서, 마이크로프로세서(180)는 인스트럭션 디코더(185), 산술 연산 장치(ALU; 186), 한 쌍의 레지스터(187), 한 쌍의 프로그램 카운터(188) 및 스택 회로(stack circuit; 189)를 포함한다, 인스트럭션 디코더(185)는 버스(33)상에서 24비트 인스트럭션을 디코드하여 다수의 제어 출력 비트를 발생한다. 이러한 비트 중의 일부는 데이터를 레지스터(187)에 적재하는 것을 제어하고, ALU(186)에 의해 수행될 동작을 선택한다. ALU(186)은 디코더(185)에 의해 제어되는 트라이스테이트 버퍼(186A)를 통해 버스(33)와 선택적으로 결합된 출력을 가진다. ALU(186)는 2개의 입력을 가지며, 각각은 2개의 레지스터(187)중의 개별적인 하나에 저장되어 있는 데이터를 수신하기 위해 연결되어 있다. 레지스터(187)는 디코더(185)로부터의 신호에 의해 입력이 인에이블되는 시간을 버스(33)상에 나타내는 데이터를 수신하고 이를 저장한다. ALU(186)는 레지스터(187)에 저장되어 있는 2개의 값의 합 또는 그들 사이의 차의 선택 또는 양 레지스터에 저장되어 있는 값의 비트 시프트된(2로 곱해지거나 또는 2로 나누어지는) 버전인 출력을 발생한다. ALU(186)은 예를 들어 TIMEWORD 시퀀스를 발생할 때 유효하며, 각 연속된 TIMEWORD는 마지막으로부터 일정한 양으로 위상 시프트된 시간을 표현한다. 프로그램 카운터(188)는 트라이스테이트 버퍼(188A)를 통하는 버스(33)와 결합된 출력과 트라이스테이트 버퍼(188B)를 통하는 버스(33)와 결합된 입력을 가진다. 버퍼(188A, 188B)는 디코더(185)로부터의 신호에 의해 제어된다. 카운터(188)는 인스트럭션 어드레스의 트랙을 유지하는데 유효하다. 디코더(185)에 의해 제어되는 스택 회로(189)는 트라이스테이트 버퍼(189A)를 통하는 버스(33)상에서 어드레스를 수신하는 출력 및 트라이스테이트 버퍼(189B)를 통하는 버스(33)상에 어드레스를 놓는 입력을 가진다. 스택 회로(189)는 프로그램 카운터, 스택 레지스터 및 디코더(185)의 제어를 받는 어드레스를 푸시(push), 팝(pop), 소거(clear), 보류(holding) 또는 증분식 서브루틴 귀환하기 위해 잘 알려진 방식으로 동작하는 다른 회로를 포함한다.
도 11은 도 2의 4개의 네트워크 인터페이스(30) 세트 중 하나의 네트워크 인터페이스(30)를 도시하는 블록도이다. 각 링크(30)는 개별 직렬 입력 전송선(18) 상에서 선행 네트워크 노드로부터 데이터를 수신하고 이 데이터를 직렬 출력 전송선(19)상에서 잘 정의된 전송 시간에 다음 네트워크 노드로 전송한다. 이것은 표준 버스로는 가능하지 않은 고속 단방향 대역폭을 제공한다. 트라이스테이트 버퍼(191)는 입력 전송선(18)을 직/병렬 인터페이스 회로(190)와 선택적으로 결합할 수 있다. 다른 트라이스테이트 버퍼(192)는 직/병렬 인터페이스 회로(190)를 출력 전송선(19)과 선택적으로 결합할 수 있다. IEEE 표준 1596-1993 확장가능 동기 인터페이스(scalable coherent interface)에 적당한 인터페이스 회로(190)는 전송선(18)으로부터 데이터를 직렬 형태로 수신하고 출력 전송선(19)상에서 이를 직렬 형태로 전송하며 로컬 버스(31)상에서 병렬 형태로 전송한다. 또한 직/병렬 인터페이스 회로(190)는 버스(31)상에서 수신한 병렬 데이터를 직렬 형태로 전송선(19)상으로 밖으로 전송한다.
동기 회로(193)는 입력 전송선(10) 및 출력 전송선(19)상에 실려진 RUNTIME 신호를 전송하고 수신하기 위한 정확한 타이밍을 제공한다. 동기 회로(193)는 3개의 트라이스테이트 버퍼(195-197), 3개의 D형 플립플롭(200-201) 및 타이밍 회로(203)를 포함한다. 링레트(ringlet; 18)는 플립플롭(200, 201)의 D출력에 결합되어 있으며, 버퍼(195)는 플립플롭(200)의 Q출력을 출력 전송선(19)과 결합한다. 버퍼(196)는 RUNTIME 신호를 플립플롭(201)으로부터 인스트럭션 프로세싱 장치(36)로 전송한다. 도 2의 인스트럭션 프로세싱 장치(36)에 의해 발생된 RUNTIME 신호는 플립플롭(202)의 D출력을 구동한다. 버퍼(197)는 플립플롭(202)의 Q출력의 RUNTIME 신호를 출력 전송선(19)과 결합한다. 타이밍 회로(203)는 타이밍 신호 T0-T30을 기준으로 사용하여 도 2의 I/O 제어장치(44)로부터의 제어 입력에 응답하여 플립플롭(200-202)의 클록 입력을 제어한다. 레지스터(206)는 도 2의 I/O 제어장치(44)로부터의 데이터 워드를 저장하고, 저장된 데이터 워드의 각 비트는 트라이스테이트 버퍼(190-197)의 인에이블을 제어한다.
전송선(18, 19)을 사용하여 노드간의 인스트럭션 또는 제어 데이터를 전송하는 경우, 버퍼(191,192)가 인에이블되어 그 결과로 전송선 사이에 인터페이스 회로(190)를 위치시킨다. 이러한 구성에서, 호스트 컴퓨터는 직/병렬 인터페이스(190)를 통해 각 노드의 로컬 버스(31)에 액세스할 수 있다. 버스(31)에 액세스함으로써, 호스트 컴퓨터는 메모리 관리장치(32)를 통해 도 2의 메모리에 인스트럭션을 라이트할 수 있으며, 도 2의 I/O 제어장치(44)를 통해 도 2의 다양한 장치(36,38,40)에 제어 데이터를 라이트할 수 있으며, I/O 제어장치(44)를 통해 도 2의 DUT 인터페이스 회로 내의 획득 메모리로부터 획득된 테스트 데이터를 리드할 수 있다.
테스트 동작 중에, 전송선(18,19)을 사용하여 RUNTIME 신호를 노드를 향하여 그리고 노드 밖으로 전송할 수 있다. 이러한 모드에서, 버퍼(195)가 인에이블되며, 타이밍 회로(203)는 주기적으로 플립플롭(200)을 클록하여 그 결과로 전송선(18)상에 나타나는 RUNTIME 신호를 전송선(19)상에서 래치한다. 노드가 전송선(18)상의 RUNTIME 신호에 응답한다고 가정하면, 버퍼(196)가 인에이블되고, 타이밍회로(203)는 주기적으로 플립플롭(201)을 클록하여 플립플롭(201)이 전송선(18)상에 나타나는 RUNTIME 신호를 도 2의 프로세싱 장치(36)로 전송하도록 한다. 노드가 테스트 동작 중에 RUNTIME 신호를 발생한다고 가정하면, 버퍼(197)가 인에이블된다. 타이밍 회로(203)가 주기적으로 플립플롭(202)을 클록하여 플립플롭(202)이 그 RUNTIME 신호를 주기적으로 전송선(19)상으로 래치하도록 한다.
도 12는 RUNTIME 신호가 네트워크 인터페이스를 거쳐 노드간을 통과하는 방법을 도시하는 블록도이다. 도 12는 환형으로 연결되어 있는 노드 0부터 노드 N-1이라고 이름 붙여진 N개의 노드로 구성된 네트워크의 각 링크(30)의 해당 부분을 보여준다. 각 노드의 출력 전송선(19)은 다음 노드의 입력 전송선(18)과 연결되어 있다. 예에서 노드 0의 프로세서는 환형 네트워크 주위로부터 각 노드의 링크로, 링크로부터 각 노드내의 인스트럭션 프로세싱 장치로 통과하는 RUNTIME 신호를 발생한다. 도 12의 예에서, 도 11의 버퍼(191,192) 및 (195-197)은 보이지 않지만, 모든 노드의 버퍼(191,192)는 디스에이블되고, 모든 노드의 버퍼(196)는 인에이블되고, 버퍼(195)는 노드 0에서만 디스에이블되고, 버퍼(197)는 노드 0에서만 인에이블된다고 가정한다.
모든 노드에 의한 RUNTIME 신호에 동기식 응답하기 위해, RUNTIME 신호의 펄스는 모든 노드 내의 모든 마이크로프로세서에 동시에 전달되어야 한다. 분명히 노드 0에서 발생되는 RUNTIME 펄스는 모든 노드에 동시에 도달하지 않는다. 그러나 노드 0에서 발생하는 RUNTIME 펄스는 환형의 각 연속된 노드의 플립플롭(200)의 D출력으로 순차적으로 래치되며, 그 후 모든 플립플롭(201)을 동시에 클록하여 신호가 동시에 각 노드의 마이크로프로세서로 보내지도록 한다.
도 13은 도 2의 플립플롭 타이밍을 도시하며, 노드 N의 개수를 4와 동등하다고 가정한다. 모든 타이밍 신호 0T, 1T ... NT는 동일 주기 N*T를 가지며, 여기에서 T는 단위 지연 주기이며 네트워크의 최저속 노드의 가능한 최대 신호 전파 지연 보다 적당히 크거나 이와 동등하다. 노드 0의 플립플롭(202)을 클록하는 신호 0T 및 모든 노드의 플립플롭(201)을 클록하는 신호 NT는 서로 동상이다. 그러나 모든 다른 신호 1T-NT는 T 피코초(picoseconds)에 의해 하나씩 위상 시프트된다.
노드 0이 RUNTIME 신호를 인가하면, 노드 0의 플립플롭(202)은 0T 신호가 이것을 시간 0으로 클록할 때까지 아무 것도 하지 않는다. 이 때, RUNTIME 신호 상태는 노드 0의 플립플롭(202)의 Q출력을 통과하여 노드 2의 플립플롭(200)의 D출력에 나타난다. T피코초 후, 노드(1)의 플립플롭(200)이 클록되며, 그 결과로 RUNTIME 신호를 노드(2)의 플립플롭(200)으로 통과시킨다. 시간 2*T에서, 노드(2)의 플립플롭(200)이 클록되며, 그 결과로 RUNTIME 신호를 노드(3)의 플립플롭(200,201)으로 통과시킨다. 시간 (N-1)*T에서 노드 N의 플립플롭(200)이 클록될 때까지 이 절차를 반복하여 그 결과로 RUNTIME 신호를 노드 0의 플립플롭(201)으로 통과시킨다. 이 때, 동일 RUNTIME 신호 상태가 모든 래치(201)로의 D출력에 나타난다. 최종적으로 시간 N*T 신호에서 NT가 모든 노드의 플립플롭(201)을 동시에 클록하여 그들이 RUNTIME 신호를 그들의 인스트럭션 프로세싱 장치로 동시에 전송하도록 한다.
도 14는 플립플롭(200-202)에 플립플롭을 클록하는 신호를 제공하는 도 11의 타이밍 회로(203)를 도시하는 블록도이다. 타이밍 회로(203)는 도 11의 플립플롭(202)을 클록하는 타이밍 신호를 발생하는 타이머(211) 및 도 11의 플립플롭(200,201)을 클록하는 타이밍 신호를 발생하는 타이머(212A,212B)를 포함한다. 타이머(211)는 테스트 동작이 시작되기 전, 도 2의 I/O 제어장치(44)를 통해 호스트 컴퓨터로부터 전송된 제어 데이터를 포함하는 레지스터(216) 세트를 포함한다. 레지스터(216)의 데이터를 제어 중인 멀티플렉서(213)는 도 2의 발진기(42)에 의해 발생된 기준 타이밍 신호 T0-T30중에서 하나의 신호를 선택하고, 이를 D형 플립플롭(214)의 클록 입력에 전송한다. 카운터(215)는 T0 신호 펄스를 카운트하고, 카운트가 레지스터(216)의 데이터가 표시하는 한계에 도달할 때마다 플립플롭(214)의 D출력에 출력 신호 펄스를 제공한다. 카운터(215)의 카운트를 리셋하는 플립플롭(214)의 Q출력은 도 11의 플립플롭(202)을 클록하는 타이밍 신호를 제공한다. 레지스터(216)의 데이터를 세트하여 플립플롭(214)의 Q출력의 타이밍 신호가 주기 N*T를 가지도록 한다.
내부 카운터가 그들 자신의 출력에 의해서가 아니라 타이머(211)의 출력에 의해 리셋된다는 점을 제외하고는 타이머(212A,212B)는 타이머(211)와 유사하다. 그들의 내부 카운터가 NT 신호에 의해 리셋되기 때문에, 또한 그들의 출력 신호는 각각 주기 N*T를 가진다. 그러나 타이머(212A, 212B)의 제어 데이터를 조정함으로써, 그들의 출력 신호는 모든 원하는 양에 의해 NT신호로부터 위상 시프트된다.
테스터의 바람직한 실시예에 있어서 모든 노드는 도 11에 도시된 하나의 링크(30)와 유사한 4개의 링크를 포함한다. 노드의 각 링크는 개별 입력 전송선(18) 및 개별적인 출력 전송선(19)을 가진다. 모든 4개의 링크는 그들의 입력 및/또는 출력 전송선을 로컬 버스(31)와 결합하지만, 병행되는 것은 아니다. 각 노드의 4개의 링크는 그들의 2개의 인접 노드의 해당 링크와 연결되어 4개의 독립적인 환형 네트워크를 형성한다. 이러한 4개의 독립 네트워크는 테스터가 아래에 도시된 다양한 방법으로 구성되는 것을 허용한다.
도 1의 호스트 컴퓨터 인터페이스(20)는 각 노드 내에 포함된 도 2의 링크(30)에 대한 구조 및 작동과 실질적으로 유사하다.
도 15는 도 1의 집적회로 테스터(10)에 대한 "핀당 1노드" 동작 구성을 나타낸 블록도로, 이 테스터는 단일 16핀 DUT(220)상에서 테스트를 실행한다. DUT 핀은 A0 내지 A15로 부호표시되어 있다. 도 15의 테스터는 단지 ND0 내지 ND15의 16개의 노드를 가지고 있지만, 테스터는 훨씬 더 많은 수의 노드를 가질 수 있으며, DUT 상의 핀보다 많은 노드를 가질 수 있다. 도 15에 도시되어 있는 바와 같이, 각 노드 ND0-ND15는 노드(14)의 인스트럭션 저장 및 프로세싱(instruction storage and processing; ISP)부와 함께 4개의 링크(A-D)를 포함하며, 네트워크 인터페이스(30)를 제외한 도 2의 모든 것을 포함한다. 각 노드 ND0∼ND15는 각 노드를 향하여 테스트 신호를 전송하고/또는 각 노드로부터 출력신호를 수신하는 DUT(220)의 해당 핀 A0∼A15에 접속되어 있다. 호스트 프로세서는 도시하지 않았다.
이와 같은 구성에 있어서, 각 노드내의 인스트럭션 메모리는 노드가 접속된 DUT 핀에 대하여 테스트 신호 및 데이터 획득 동작을 규정하기 위하여 필요한 모든 인스트럭션을 저장한다. 테스트 중 노드(14) 사이의 통신은 RUNTIME 신호에 의해서만 이루어진다. 도 15의 실시예에서 노드(16)의 링크(A)는 도 12에서와 유사한 방식으로 결합되며, 테스트 동작 중 RUNTIME 신호를 노드에서 노드로 전송한다. 나머지 링크(B∼D)는 그 트라이스테이트 버퍼(191-197, 도 11)가 인에이블이 아니기 때문에, 비활성이다. 하나 이상의 RUNTIME 신호가 테스트 중 필요하다면, 적당한 버퍼(195∼197, 도11)를 턴온함으로써 하나 이상의 다른 링크(B∼D)를 활성화할 수 있다.
도 16은 도 1의 집적회로 테스터에 대한 "핀당 다중 노드" 동작 구성을 도시하는 블록도이다. 이와 같은 구조에 있어서, 테스터는 DUT(230)상에서 하나 이상의 핀에 대한 인스트럭션 저장 요구가 로컬 인스트럭션 메모리의 용량을 초과하는 테스트를 실행한다. 이러한 경우 시스템은 다른 노드에서 유효한 인스트럭션 메모리 용량을 사용하게 한다. 도 16의 단순화된 실시예에서 DUT(230)은 노드 ND6, ND7 및 ND8에 의하여 각각 액세스되는 A0 내지 A2의 3개의 핀만을 가진다. 나머지 노드는 DUT 핀에 접속되어 있지 않다. 테스트 동작 중, 모든 노드의 A, C 및 D 링크는 노드간 직렬 데이터 전송을 위해 상호접속되어 있다. 도 11을 참조로 하여, 링크 A 버퍼(191 및 192)는 인에이블되고 버퍼(195∼197)는 디스에이블된다. 테스트 중, 노드(7)의 ISP회로는 그 자신의 로컬 인스트럭션 메모리뿐만 아니라 노드 ND0, ND1 및 ND3의 인스트럭션 메모리로부터 링크 네트워크를 통해 인스트럭션을 리드한다. 이와 유사하게 노드 ND8은 노드 ND10, ND12 및 ND14로부터 C 링크 네트워크를 통하여 인스트럭션을 획득할 수 있으며, 노드 ND6은 노드 ND2, ND4 및 ND5로부터 D 링크 네트워크를 통해 인스트럭션을 획득할 수 있다. 한편, 모든 노드의 B 링크는 도 12에서처럼 상호접속되어 RUNTIME 신호경로를 제공할 수 있다.
DUT 핀에 접속되어 있지 않으며 다른 노드에 대한 인스트럭션을 저장하지 않는 다른 노드 중의 하나의 노드, 예를 들면 노드 ND15는 "호스트 컴퓨터"로 동작할 수 있다. 다시 말해 이것은 그 메모리 내에 저장되어 있는 인스트럭션은 테스트 개시를 통지하는 RUNTIME 신호를 B 링크를 통하여 다른 노드로 전송할 시간을 그 인스트럭션 프로세서에 통지할 수 있다. 또한 노드 ND15는 에러 또는 테스트 종료와 같은 다른 노드로부터 응답하는 방법을 통지하는 인터럽트 루틴을 저장할 수 있다. 입력 RUNTIME 신호는 노드 ND15에게 다른 노드들 중 하나의 노드 내에 있는 획득 메모리로부터 획득한 테스트 데이터를 예를 들면, 링크 A를 통해 리드하고, 이 데이터의 값에 기초하여 동작을 실행하기를 통지한다. 이러한 한 동작은 실행할 하나의 세트의 인스트럭션의 로컬 메모리 위치를 표시하는 어드레스를 링크 A를 통해 하나 이상의 다른 노드로 보낼 수 있다. 이것은 테스터가 획득한 테스트 데이터의 값에 응답하여 테스트 과정을 자동적으로 변화하도록 한다.
도 17은 도 1의 집적회로 테스터에 대한 "다중 DUT" 동작 구성을 나타낸 블록도이다. 이와 같은 구조에 있어서, 테스터는 하나 이상의 DUT 상에서 독립적인 테스트를 실행할 수 있다. 도 17의 실시예에서 2개의 8핀 DUT(240,250)는 테스트 중이다. 노드 ND0-ND3 및 ND12-ND15는 DUT(250)의 핀 B0-B7을 테스트하고, 노드 ND4-ND7 및 8-11은 DUT(250)의 핀 A0-A7을 테스트한다. 모든 노드의 A 링크는 도 12에 도시된 방법과 동일한 방식으로 상호접속되어 DUT(250)의 테스트를 위한 RUNTIME 신호 경로를 제공하고, 모든 노드의 B 링크는 유사하게 상호접속되어 DUT(240)의 테스트를 위한 RUNTIME 신호 경로를 제공한다. 이 두 테스트는 두 테스트 사이의 RUNTIME 신호 조정 없이 완전하게 독립적인 방식으로 수행될 수 있다. 이 구성에 있어서, 테스트는 독립적인 두 개의 테스트로서 작동한다.
테스터 프로그래밍
테스터를 프로그래밍하기 위하여 사용자는 호스트 컴퓨터에 테스트의 HDL(hardware description language) 기술(description)을 공급한다. HDL기술은 (TIME, ACTIONWORD, NODE) 형식의 일련의 데이터 항목이다. "NODE"는 동작을 행하는 특정 노드를 표시한다. NODE의 크기는 테스터 내의 노드의 수에 따라 결정된다. 256 노드 테스터에서 NODE는 8-비트이다. TIME는 동작을 실행하는 테스트가 개시된 이후의 경과시간을 표시한다. 테스트를 2N 테스트 사이클로 나누고 각 테스트 사이클을 2N 시간 슬롯으로 분해하면, TIME는 (M+N)-비트 워드가 된다.
"ACTIONWORD"는 노드에 의하여 실행된 동작 또는 동작들을 표시하는 6-비트 값이다. 가능한 동작은 구동 하이, 구동 로우, 비교 하이, 비교 로우, 트라이스테이트 하이 및 트라이스테이트 로우이다. ACTIONWORD는 도 1에 나타낸 바와 같이 코드화된다. 예를 들어, ACTIONWORD값 (100010)은 테스터가 노드 출력을 하이로 구동하고 동시에 트라이스테이트 버퍼 컨트롤을 하이로 설정하여 하이 논리값 테스트 신호를 테스트 중인 핀 장치로 보내도록 한다. 도 1에 나타낸 것 이외의 ACTIONWORD값은 무효이다.
[표 1]
호스트 컴퓨터는 HDL 테스트 기술을 각 노드에 대하여 하나의 세트의 알고리즘으로 변화하고, 알고리즘을 노드 메모리 내에 저장한다. 각 테스트 사이클 중, 각 저장된 알고리즘은 노드에게 (TIMEWORD, ACTIONWORD) 형식의 테스트 벡터를 발생하도록 통지한다. 이전에 기술한 바와 같이, TIMEWORD는 동작이 실행되는 테스트 사이클을 시작하는 특정시간을 표시한다. 6-비트 테스트 벡터 ACTIONWORD는 의미상으로 6-비트 HDL 언어 ACTIONWORD과 동일하다. 그러나 그 20-비트 TIMEWORD는 HDL 시퀀스의 10+N 비트 TIME와 다르다는 사실에 주목하라. TIMEWORD는 동작이 발생하는 테스트 기간 내의 상대적 시간을 표시하는 반면에, TIME은 동작이 발생하는 테스트가 시작된 이후의 총시간을 표시한다. 20-비트 TIMEWORD는 테스트 사이클 번호를 포함하지 않기 때문에 해당 TIME값보다 작은 N비트이다. 관련된 테스트에서, 예를 들면 220 테스트 사이클에서 TIME는 테스트 사이클을 표시하는 20비트를 추가로 요구한다. 각 테스트 벡터는 도 2의 타임 포매터(38)로 전달된다. 포매터(38)는 상기에서 기술한 방식으로 지정된 시간에 지정된 동작을 실시함으로써 테스트 벡터에 응답한다.
입력 HDL 테스트 기술에 응답하여 호스트 컴퓨터에 의해 발생된 각 알고리즘은 노드 메모리의 연속적인 어드레스에 저장된 24-비트의 인스트럭션 시퀀스를 포함한다. 이와 같은 인스트럭션의 몇 개의 타입을 표 2에 나타내었다. 이들 각 인스트럭션은 아래에서 상세히 기술한다.
[표 2]
도 18은 도 1의 호스트 컴퓨터(22)가 테스트의 입력 HDL 기술을 노드 메모리 내에 저장되어 있는 개별 알고리즘으로 변환하는 방식을 도시하는 데이터 흐름도이다. 스텝 300에서 시작하여 호스트 컴퓨터는 입력 HDL 코드 노드 값을 초기에 분석하여 테스트 중 활성이 될 테스터 노드를 결정한다. 스텝 301에서 호스트 컴퓨터는 모든 하나의 노드에서의 연속 동작간의 최단기간을 결정함으로써 테스트에 사용될 테스트 사이클 시간을 선택한다. 호스트 컴퓨터는 노드에서의 연속 동작에 대한 HDL 기술 TIME값을 비교함으로써 이를 실시한다.
스텝 302에서 호스트 컴퓨터는 "현재 노드"가 될 제1 활성 노드를 선택하고, 스텝 302에서는 HDL 기술을 필터하고 변경하여 현재 노드에 한정되는 신규 데이터 시퀀스를 발생한다. 스텝 302에 대한 HDL 입력은 (TIME, ACTIONWORD,NODE) 형식의 워드 시퀀스이다. 스텝 302에서 HDL 시퀀스는 NODE가 스텝 302에서 선택된 현재 노드를 참조하지 않는 워드를 스트리핑(stripping)한다. NODE값은 나머지 HDL 워드에서 제거된다. 그리하여 스텝 302의 출력은 (TIME,ACTIONWORD)의 시퀀스이고 단지 현재 노드만을 위한 타이밍 및 동작정보를 전송한다.
스텝 306에서 호스트 컴퓨터는 스텝 304의 출력 시퀀스가 현재 노드에 의해 실행될 한 세트의 인스트럭션으로 변환되는 "변환" 서브루틴을 호출한다. 스텝 308에서 호스트 컴퓨터는 노드의 메모리 내에 인스트럭션을 저장한다. 또한, 노드 메모리 내에 각 인스트럭션을 실행하는 방법을 노드에게 통지하는 한 세트의 서브루틴을 저장한다(이들 서브루틴은 아래에서 상세하게 서술할 것이다). 스텝 310에서 호스트 컴퓨터에 의해 현재 노드가 활성 노드의 리스트 상의 최종 노드가 아닌 것이 판정된 경우에는, 스텝 302로 되돌아가, 호스트 컴퓨터는 현재 노드가 될 리스트 상에서 다음 노드를 선택하고 스텝 302 내지 308을 반복하여 다음 노드를 위한 알고리즘을 발생한다. 호스트 컴퓨터가 노드 메모리 내에서 각 활성 노드에 대한 개별적인 알고리즘을 발생하고 저장할 때까지 이 절차를 계속 진행한다. 이 시점에서 주요 루틴이 종료된다(스텝 314).
도 19는 도 18의 스텝 306에서 호출된 변환 서브루틴을 도시한 데이터 흐름도이다. 이 서브루틴은 단일 노드에 대한 HDL 기술을 그 노드에 대한 한 세트의 알고리즘 인스트럭션으로 변환시킨다. 스텝 320의 초기에, 입력 HDL 시퀀스의(TIME,ACTIONWORD) 데이터 항목은 (O,TIMEWORD,ACTION) 형식의 NOMAP 인스트럭션으로 변환된다. NOMAP 인스트럭션의 최상위 비트는 NOMAP 타입의 인스트럭션을 식별하는 "0"이다. NOMAP 인스트럭션의 다음 20비트(TIMEWORD)는 동작을 수행하는 테스트 사이클 내의 타임 슬롯을 표시한다. NOMAP 인스트럭션의 나머지 3비트(ACTION)는 수행될 동작을 표시한다. 3-비트 ACTION값은 HDL 테스트 기술의 6-비트 ACTIONWORD 코드의 압축된 형식이다. 표 3은 ACTION과 ACTIONWORD 사이의 변환을 보여준다.
[표 3]
스텝 320으로의 입력 시퀀스에서, 각 (TIME,ACTIONWORD) 워드는 특정시간에서 실행될 동작을 표시한다. HDL 기술이 테스트를 테스트 사이클로 구성하지 않기 때문에, (TIME,ACTIONWORD)워드 및 테스트 사이클간에는 통신되지 않는다. 그러나 호스트 컴퓨터는 스텝 320에서 각 테스트 사이클에 대하여 하나씩의 NOMAP 인스트럭션 시퀀스를 발행하며, 테스트 사이클 기간으로 구성된 테스트는 도 18의 스텝 301에서 미리 판단된다. 두 개의 연속적인 입력 (TIME,ACTIONWORD) 워드에 의하여 표현된 시간 사이에 수회의 테스트가 발생하는 경우, 호스트 컴퓨터는 각 테스트 사이클에 대하여 하나씩 다수의 유사한 NOMAP 워드를 발생한다. 발생된 시퀀스내의 각 NOMAP 인스트럭션의 위치는 실행될 동작에 대한 테스트 사이클을 표시하며 그 TIMEWORD값은 동작이 실행될 사이클 동안의 시간을 표시한다. 스텝 320은 단지 출력 시퀀스가 입력 시퀀스보다 긴 변환 루틴에서의 변환 스텝이다. 나머지 변환 스텝 322-328은 스텝 320 출력 시퀀스를 점진적으로 압축한다.
스텝 320에서 HDL 시퀀스를 일련의 24-비트 NOMAP 인스트럭션으로 변환한 후에, 호스트 컴퓨터는 가능한 한 21 NOMAP 인스트럭션의 인접 군을 단일 24-비트 ACTSEL 인스트럭션으로 변환시킴으로써 NOMAP 인스트럭션의 시퀀스를 압축한다.(스텝 322). 그리하여 24-비트 ACTSEL 인스트럭션은 21 NOMAP 인스트럭션과 동일한 정보를 전송한다. ACTSEL 인스트럭션 포맷은 테스트의 다수의 연속적인 사이클 동안 동일한 상대적 시간에 노드에 의하여 종종 동작이 실행되는 사실을 이용한다. 그리하여 TIMEWORD의 값이 많은 테스트 사이클이 끝난 후 변경되지 않는 상태로 남을 수 있다. 따라서 TIMEWORD의 값이 NOMAP 인스트럭션에 의하여 한번 고정되면, 그 TIMEWORD값은 변경 요구가 있을 때까지 연속적인 사이클 동안 사용될 수 있다. 그리하여 TIMEWORD값을 정의하는 NOMAP 인스트럭션 후의 인스트럭션은 타이밍이 그 선행 사이클로부터 변경되지 않는 한 타이밍을 표시할 필요가 없다. ACTSEL 인스트럭션은 그 자체가 어떠한 타이밍 정보를 직접 전송하지 않으나, 21 연속적인 테스트 사이클 동안에 동일 상대 시간에 21개의 연속적인 동작이 각각 실행되고, 상대 시간은 최종 선행 NOMAP 인스트럭션에 의하여 제공된 TIMEWORD에 의해 표시된다는 것을 본질적으로 표시한다.
또한 ACTSEL 인스트럭션 포맷은 소정의 노드에서 동작이 4개의 선택보다 대개 2개로 제한된다는 사실을 이용한다. 표 3을 다시 참조하여, 연속적인 사이클 동안에 노드는 종종 구동 하이 및 구동 로우(ACTION코드 101 및 100)간 또는 비교 하이 및 비교 로우(ACTION 코드 011 및 010)간을 토글하는 것으로 흔히 한정될 수 있다. 구동 하이 및 구동 로우, 또는 비교 하이 및 비교 로우간을 토글하는 데에 있어서, ACTION 코드의 최종 비트만이 변경된다는 사실을 주목하라.
ACTSEL 인스트럭션은 (100, A[0],..., A[20]) 형식으로 구성되어 있다. 최초 3비트 (101)는 ACTSEL 인스트럭션으로서 그것을 식별하고 나머지 21비트 A[0]...A[20]은 각각 21 연속적인 테스트 사이클 동안 실행될 동작을 표시한다. 나머지 21비트 A[0] ... A[20]은 각각 ACTION 코드의 최종 비트만을 표현한다. 노드가 ACTSEL 인스트럭션을 실행할 때 ACTION 코드의 최초 2비트는 최종 선행 NOMAP 인스트럭션에 의하여 전송된 것과 동일하다고 간주된다.
그리하여 ACTION 코드 및 TIMEWORD 코드가 NOMAP 인스트럭션에 의하여 구축되면, TIMEWORD코드가 변경되지 않는 상태로 남으며 ACTION 코드의 최종 비트만이 NOMAP 인스트럭션에서 인스트럭션으로 변경된다고 가정하면, 호스트 컴퓨터는 21개의 연속적인 NOMAP 인스트럭션 세트를 ACTSEL 인스트럭션으로 교체할 수 있다. 하나의 24-비트 ACTSEL 인스트럭션이 21 NOMAP 인스트럭션을 교체하기 때문에, ACTSEL 인스트럭션은 21/1 압축을 제공한다. 그러므로 스텝 322에서 각 노드에 대하여 제공된 출력 시퀀스는 하나 이상의 NOMAP 인스트럭션에 의하여 분리된 ACTSEL 인스트럭션 세트로 구성된다. 시퀀스의 최초 인스트럭션은 항상 현재 TIMEWORD 및 ACTION 코드를 구축하는 NOMAP 인스트럭션이다. NOMAP 인스트럭션은 TIMEWORD가 변경되거나 ACTION 코드의 최초 2비트 중의 하나가 변경될 때마다 시퀀스에 나타난다.
ACTION 코드의 최초 2비트가 빈번히 변경되면, 호스트 컴퓨터에 의하여 발생된 시퀀스는 ACTSEL 인스트럭션으로 교체될 수 없는 NOMAP 인스트럭션을 여전히 포함할 수 있다. 스텝 324에서, 호스트 컴퓨터는 유사한 TIMEWORD값을 가지는 7개의 연속 NOMAP 인스트럭션 군을 (101, ACTION[0],......,ACTION[6]) 형식의 NOTIME 인스트럭션으로 교체한다. 최초 3비트 (101)는 인스트럭션을 NOTIME 타입으로 식별한다. 나머지 21비트는 NOTIME 인스트럭션이 교체하는 7개의 연속적인 NOMAP 인스트럭션의 7개의 ACTION 코드, ACTION[0]... ACTIION[6]으로 구성되어 있다. 각 사이클에 대한 TIMEWORD값은 최종 선행 NOMAP 인스트럭션에 의하여 구축된 값으로 간주된다. 각 NOTIME 인스트럭션이 7 NOMAP 인스트럭션을 교체하기 때문에, NOTIME 인스트럭션은 7/1 압축을 제공한다.
상대적인 타이밍(TIMEWORD값) 및 ACTION 코드의 최초 2비트 중의 하나가 사이클간에 변경되면, 스텝 324의 인스트럭션 시퀀스 출력은 여전히 더 많은 콤팩트 ACTSEL 또는 NOTIME 인스트럭션으로 변환될 수 없는, 많은 연속 NOMAP 인스트럭션을 포함할 것이다. 그러나 TIMEWORD가 220의 서로 다른 값을 가질 수 있지만, 소정의 테스트에서 실제적으로 할당된 TIMEWORD의 서로 다른 값의 수는 흔히 16이하로 제한될 수 있다. TIMEWORD가 16 이하의 값으로 제한되지 않으면, TIMEWORD의 어떤 값은 흔히 다른 것보다 보다 많은 회수로 발생할 수 있다.
그리하여 스텝 326에서, 호스트 컴퓨터는 모든 나머지 NOMAP 인스트럭션을 체크하여 16개의 가장 일반적으로 발생하는 TIMEWORD값을 결정한다. 이들 TIMEWORD를 16개와 20-비트 "TSEL" TIMEWORD 워드로서 인스트럭션 시퀀스의 전위에 위치시킨다. 그리고 나서, 가능하다면 호스트 컴퓨터는 3개의 연속 NOMAP 인스트럭션 군을 (110,ACTION[0],TSEL[0] ...ACTION[2],TSEL[2]) 형식의 TIMESEL 인스트럭션과 교체한다. 최초 3개의 비트 (110)는 인스트럭션을 TIMESEL 타입으로 식별한다. 3개의 3비트 값 세트 ACTION[0] ... ACTION[2]는 TIMESEL 인스트럭션에 의해 교체되는 3개의 연속 NOMAP 인스트럭션에 포함된 동작 코드이다. 3개의 4비트 값 세트 TSEL[0] ... TSEL[2]는 교체된 NOMAP 인스트럭션 내에 포함된 TIMEWORD를 사상(matching)하는 16개의 저장된 TSEL 워드 중에서 하나를 참조한다. 각 TIMESEL 인스트럭션은 3개의 NOMAP 인스트럭션을 교체하기 때문에, TIMESEL 인스트럭션은 3/1 압축을 제공한다.
스텝 326의 출력 시퀀스는 반복성 인스트럭션 세트를 포함할 수 있다. 예를 들면, 노드가 다수의 테스트 사이클이 끝난 후 상태가 변경되지 않으면, 동일 ACTSEL 인스트럭션은 연속으로 여러 차례 발생할 것이다. 아니면, 노드가 다수의 테스트 사이클이 끝난 후 동일 패턴의 동작을 반복하면, 동일한 패턴의 NOTIME 인스트럭션을 연속하여 여러 차례 반복할 수 있다. 스텝 326의 인스트럭션 시퀀스 출력에 의하여 정의된 알고리즘을 더욱 압축하기 위하여, 스텝 328에서 호스트 컴퓨터는 각 반복성 인스트럭션 각 패턴의 최초 발생을 제외한 모든 것을 LOOP 인스트럭션으로 교체한다. LOOP 인스트럭션은 (1110, STEP_NUM,LOOP_NUM)으로 되어있다. 최초 4비트 (1110)는 인스트럭션을 LOOP 인스트럭션으로 식별한다. STEP_NUM는 최고 패턴 길이가 1024임을 표시하는 적당한 10-비트의 양이다. LOOP_NUM는 최고 패턴 연속 발생 회수가 1024임을 표시하는 적당한 10-비트의 양이다. 그리하여 각 LOOP 인스트럭션은 최고 220의 다른 인스트럭션으로 교체한다(STEM_NUM 및 LOOP_NUM는 다른 크기일 수 있다).
최종적으로 스텝 330에서, 호스트 프로세서는 HALT 및 FORWARD 인스트럭션을 시퀀스에 가산한다. HALT 인스트럭션은 (1111, RUNTIME, x ... x) 형식으로 되어 있는데, 최초 5비트가 인스트럭션을 HALT로 식별한다. 다음 비트 (RUNTIME)는 테스트 종료를 신호하기 위해 호스트 프로세서에게 RUNTIME 신호를 되돌려 전송 할것인지를 프로세서에게 통지한다. HALT 인스트럭션의 나머지 비트는 사용되지 않는다. HALT 인스트럭션은 인스트럭션 시퀀스의 끝에 위치하여 테스트의 종말을 표시한다. 스텝 332에서, 도 19의 변환 서브루틴은 도 18의 주요 루틴의 스텝 308로 돌아간다.
(11110,,NODE,CYCLES,PACKET_SIZE)형식의 FORWARD 인스트럭션은 시스템이 유휴중인 노드 내의 메모리를 사용하여 활성 노드에 대한 추가 인스트럭션을 저장하도록 허용한다. 노드에 대한 인스트럭션 시퀀스가 노드 메모리에서 유지될 수 있는 것보다 큰 경우 이것은 유용하다. 이러한 경우에, 인스트럭션 세트의 부분은 FORWARD 인스트럭션에 의해 선행되는 유휴중인 노드의 메모리에 저장될 수 있다. FORWARD 인스트럭션을 만나면 노드는 CYCLES에 의해 표시된 다수의 테스트 사이클을 기다린 후 노드 메모리 위치(PACKET_SIZE)의 지정된 번호에 저장되어 있는 인스트럭션 세트를 네트워크 버스를 통해 NODE에 의해 식별된 노드로 전송한다. 이들 인스트럭션은 수신 노드에 의해 이미 실행된 인스트럭션을 덮어쓰면서 수신 노드 메모리에 있는 순차적 어드레스에 저장된다. CYCLES에 의해 표시된 대기 시간은 수신 노드가 전송된 인스트럭션을 수신할 노드 메모리의 영역에 있는 인스트럭션을 이미 실행했다는 것을 보장하기에 충분하다. 수신 노드 프로세서는 HALT 인스트럭션을 만나지 않고 인스트럭션을 위해 예약된 노드 메모리 영역의 최종 어드레스에 저장된 인스트럭션을 리드한 후, 노드 메모리의 인스트럭션 영역의 최초 어드레스에 새로이 수신된 인스트럭션을 리드하기 시작한다.
도 20은 도 2의 인스트럭션 프로세싱 장치(36)에 의해 실행되는 메인 루트를 도시한다. 호스트 컴퓨터는 인스트럭션 세트가 상기 노드 메모리에 저장된 경우 도 18의 스텝 308에서 노드 메모리의 메인 루틴 및 여러 가지 서브루틴을 저장한다. 상기 노드 프로세싱 장치는 START 신호에 응답하여 테스트의 초기에 메인 루틴(도 20)의 실행을 시작한다. 상기 인스트럭션 프로세싱 장치는 각 인스트럭션에 대한 메인 루틴을 통해 패스하도록 한다. 각 패스에서 상기 인스트럭션 프로세싱 장치는 메모리의 인스트럭션을 리드하고 상기 인스트럭션의 타입을 결정하고 그 인스트럭션의 타입에 대한 정확한 서브루틴을 실행한다.
도 20을 참조하여 설명하면, 상기 메인 루틴은 상기 인스트럭션 프로세스가 이전에 "환형" 플러그를 설정하였는지를 판단하도록 확인하는 스텝 400에서 시작한다. 만약 상기 환형 플러그가 설정되지 않았다면, 상기 인스트럭션 프로세싱 장치는 환형 인스트럭션의 실행을 처리하지 않는다. 이러한 경우에, 상기 인스트럭션은 즉시 다음 노드 메모리 어드레스(스텝 402)의 인스트럭션을 리드한다(만약 선행 인스트럭션이 인스트럭션을 위해 예약된 노드 메모리 영역의 최종 어드레스에서 리드되었다면, 스텝 402에 있는 프로세싱 장치는 상기 인스트럭션 영역의 제1 어드레스로부터 다음 인스트럭션을 리드한다. 상기 인스트럭션은 FORWARD 인스트럭션에 응답하여 다른 노드에 의해서 상기 메모리 어드레스로 진행하게 될 것이다).
이후, 상기 프로세싱 장치는 상기 인스트럭션의 식별 비트를 확인하여 상기 인스트럭션 (스텝 404-414)의 상태를 판단하고 적절한 서브루틴(스텝 416-428)을 호출하여 상기 인스트럭션으로 표시된 테스트 벡터를 발생한다. 이후에, 상기 메인 루틴은 스텝 400으로 복귀하고 다음 인스트럭션의 프로세스를 반복한다. 인스트럭션이 HALT 인스트럭션(즉, ACTSEL, NOTIME, TIMESEL, NOMAP, LOOP 또는 FORWARD 인스트럭션이 아님)이라면, 상기 메인 루틴은 스텝 429에서 HALT 서브루틴을 호출하고 스텝 430에서 종료한다.
만약 스텝 404에서, 상기 노드가 인스트럭션이 ACTSEL 타입이라고 판단한다면, 도 21의 ACTSEL 서브루틴이 호출된다. 이 루틴은 상기 인스트럭션 프로세싱 장치가 ACTSEL 인스트럭션에 응답하는 형태(TIMEWORD, ACTIONWORD)의 21개의 출력 테스트 벡터의 시퀀스를 발생하도록 한다. 상기 ACTEL 인스트럭션의 데이터 부분은 각 비트 A(n)가 상기 21개의 테스트 벡터 중 하나의 ACTIONWORD 부분이 유도되는 ACTION 코드의 적어도 의미상 비트의 상태를 나타내는 형태 (A[0],...A[20])이다. 스텝 440에서 시작하는 도 21을 참조하여 설명하면, 카운터 J는 0으로 설정된다. J는 출력 테스트 벡터의 숫자의 트랙을 유지하도록 사용된다. 스텝 442에서, 상기 인스트럭션 프로세싱 장치는 메모리에서 최종 발생된 테스트 벡터에 대한 TIMEWORD 및 ACTION의 값을 복구한다(이하에서 알 수 있듯이, 상기 인스트럭션 프로세싱 장치는 이들 값이 변화될 때마다 메모리에 이들 값을 저장한다). 스텝 444에서, 상기 인스트럭션 프로세싱 장치는 비트 A(J)를 A(J)로 복구된 ACTION 코드의 최종 비트를 대체하고, 그 결과를 표 III에 개요된 변환 패턴에 따라 ACTIONWORD로 변환하여 적절한 ACTIONWORD로 변환한다. 이후, 도 10의 카운터 184에서 나온 NEWCYCLE 펄스에 응답하여 상기 인스트럭션 프로세싱 장치(스텝 446)는 스텝 442에서 메모리 리드된 TIMEWORD 값을 이용하여 테스트 벡터를 출력한다. 만약 J가 아직 20이 아니라면, J의 값은 스텝 450에서 증가하고, 상기 프로세스는 스텝 444에서 시작하는 것이 반복된다. J가 스텝 448에서 20에 도달하면, 상기 인스트럭션 프로세싱 장치는 발생된 21개의 출력 벡터를 가질 것이고, 상기 서브루틴은 스텝 452에서 메인 루틴으로 복귀한다.
도 20의 메인 루틴을 다시 참조하여 설명하면, 스텝 406에서, 상기 노드는 상기 인스트럭션이 NOTIME 타입인 지를 판단하고 도 22의 NOTIME 서브루틴을 호출한다. 이 루틴은 상기 인스트럭션 프로세싱 장치가 상기 NOTIME 인스트럭션에 응답하여 7개의 출력 테스트 벡터의 시퀀스를 발생하도록 한다. ACTSEL 인스트럭션의 데이터 부분은 각 3-비트 ACTION[n] 코드가 발생될 7개의 테스트 벡터 중 하나의 ACTIONWORD 부분으로 변환될 형태(ACTION[0],‥‥,ACTION[6])이다. 스텝 460에서 시작하는 도 22를 참조하여 설명하면, 카운터 J는 0으로 설정된다. J는 출력 테스트 벡터 수의 트랙을 유지한다. 스텝 462에서, 상기 인스트럭션 프로세싱 장치는 메모리에서 최종 발생된 테스트 벡터를 위해 저장된 TIMEWORD를 복구하고, 스텝 464에서 ACTION(J)를 표 III에 개요된 변환 패턴에 따라 ACTIONWORD로 변환한다. 이후, 도 10의 카운터 184에서 나온 NEWCYCLE 펄스에 응답하여 인스트럭션 프로세싱 장치(스텝 466)는 스텝 462에서 메모리를 리드한 TIMEWORD 값 및 스텝 464에서 형성된 상기 ACTIONWORD 값을 이용하여 테스트 벡터를 출력한다. 만약 J가 아직 6이 아니라면(스텝 268), J의 값은 스텝 470에서 증가되고, 프로세스는 스텝 464에서 시작하는 것이 반복된다. 스텝 448에서 6에 도달하면, 상기 인스트럭션 프로세싱 장치는 모든 7개의 출력 테스트 벡터를 발생할 것이다. 이후, 스텝 472에서, 인스트럭션 프로세싱 장치는 이 시점에 해당하는 최종 발생된 출력에 해당하는 저장 ACTION 값으로 ACTION(J)를 저장하고 스텝 474에서 메인 루틴으로 복귀한다.
도 20의 상기 메인 루틴의 스텝 408에서, 상기 노드가 상기 인스트럭션이 TIMESEL 인스트럭션이라고 판단하면, 도 23의 TIMESEL 서브루틴이 호출된다. 이 루틴은 상기 인스트럭션 프로세싱 장치가 TIMESEL 인스트럭션에 응답하여 3개의 출력 테스트 벡터의 시퀀스를 발생하도록 한다. 상기 TIMESEL 인스트럭션의 데이터 부분은 다음의 형태(ACTION[0], TSEL[0]…ACTION[2], TSEL[2])이다. 스텝 480에서 시작하는 도 23을 참조하여 설명하면, 카운터 J는 0으로 설정된다. J는 출력 테스트 벡터 수의 트랙을 유지한다. 스텝 482에서, 인스트럭션 프로세싱 장치는 메모리에서 최종 발생된 테스트 벡터를 위해 저장된 ACTIONWORD를 복구하고 스텝 484에서 ACTION(J)에서 표 III에 개요된 변환 패턴에 따라 ACTIONWORD로 변환한다. 스텝 486에서 TSEL(J)로 참고된 메모리 위치에서 다음 출력 벡터에 사용될 TIMEWORD를 획득한다. 도 10의 카운터 184에서 나온 NEWCYCLE 펄스에 응답하여 인스트럭션 프로세싱 장치(스텝 488)는 스텝 486에서 메모리의 리드된 TIMEWORD 값 및 스텝 484에서 형성된 ACTIONWORD 값을 이용하여 테스트 벡터를 출력한다. J가 아직 2가 아니라면, J의 값은 스텝 491에서 증가되고 상기 프로세스는 스텝 484에서 시작하는 것이 반복된다. 스텝 490에서 J가 2에 도달하면, 인스트럭션 프로세싱 장치는 모든 3개의 출력 테스트 벡터를 발생할 것이다. 인스트럭션프로세싱 장치는 이후에(스텝 492) 최종 발생된 벡터의 TIMEWORD를 저장하고 메인 루틴으로 복귀한다(스텝 494).
스텝 410에서 상기 노드가 인스트럭션이 NOMAP 인스트럭션이라고 판단한다면, 도 24의 TIMESEL 서브루틴이 호출된다. 이 루틴은 상기 인스트럭션 프로세싱 장치가 상기 NOMAP 인스트럭션에 응답하여 출력 테스트 벡터의 하나를 발생하도록 한다. NOMAP 인스트럭션의 데이터 부분은 다음의 형태이다(TIMEWORD, ACTION). 스텝 500에서 시작하는 도 24를 참조하여 설명하면, 상기 인스트럭션 프로세싱 장치는 ACTION을 표 Ⅲ에 개요된 변환 패턴에 따라 ACTIONWORD로 변환한다. 스텝 502에서 상기 인스트럭션 프로세싱 장치는 TIMEWORD 및 ACTION의 값을 메모리에 저장하고 스텝 504에서 도 10의 카운터(184)에서 나온 NEWCYCLE 펄스에 응답하여 인스트럭션 프로세싱 장치(스텝 488)는 상기 NOMAP 인스트럭션에 포함된 TIMEWORD 값 및 스텝 500에서 형성된 ACTIONWORD 값을 이용하여 테스트 벡터를 출력한다. 이후, 상기 인스트럭션 프로세싱 장치는 상기 메인 루틴으로 복귀한다(스텝 506).
스텝 412에서 상기 노드가 인스트럭션이 LOOP 인스트럭션이라고 판단되는 경우, 도 25의 FLAG 서브루틴이 호출된다. 스텝 520에서 시작하는 도 25를 참조하여 설명하면, 인스트럭션 프로세싱 장치는 LOOP_FLAG 비트가 현재 환형 인스트럭션을 실행하고 있다고 표시하도록 설정한다. 스텝 522 및 524에서 상기 환형 인스트럭션에 포함된 STEP_NUM 및 LOOP_NUM의 값을 메모리에 저장하고, 스텝 526에서 메모리에 보유된 LOOP_CNT 및 STEP_CNT 변수의 값을 초기화하고, 그리고 스텝 528에서 상기 메인 프로그램으로 복귀한다. STEP_NUM은 반복될 인스트럭션의 시퀀스의 크기를 표시하고 LOOP_NUM은 인스트럭션의 시퀀스의 반복 회수를 표시한다. LOOP_CNT 변수는 실행해왔던 시퀀스의 반복 수의 트랙을 유지하고 STEP_CNT는 실행된 최종 인스트럭션의 인스트럭션 시퀀스 내에 위치의 트랙을 유지한다.
도 20의 메인 루틴을 참조하여 설명하면, 상기 인스트럭션 프로세스는 스텝 400에서 상기 환형 플러그가 설정되었다는 것을 탐지한 경우, 스텝 426에서 LOOP 루틴을 호출한다. 상기 환형 루틴은 다음 인스트럭션을 획득하는 인스트럭션 프로세스에 요청한다. 도 26에서 도시된 바와 같이, 상기 환형 루틴은 STEP_CNT의 현재 값은 STEP_NUM과 비교하는 스텝 530에서 시작하여 최종 실행된 인스트럭션이 반복되고 있는 인스트럭션 시퀀스의 최종 인스트럭션인지를 판단한다. 만약 아니라면, 상기 인스트럭션 프로세싱 장치는 상기 STEP_CNT 값(스텝 532)을 증가하고 메모리에서 다음 인스트럭션을 획득하는 단계 402로 복귀한다(스텝 533에서).
인스트럭션 프로세싱 장치는 최종 획득된 인스트럭션(도 20, 스텝 402에서)의 메모리 위치의 기록(인스트럭션 카운트)을 유지하고 다음 인스트럭션을 다음 메모리 위치에서 획득한다. 만약 도 26의 스텝 534에서 LOOP_CNT가 LOOP_NUM과 동일하지 않다면, 스텝 536에서 상기 프로세싱 장치는 LOOP_CNT를 증가하여 인스트럭션 시퀀스의 새로운 반복이 시작된 다는 것을 표시하고, 스텝 538에서 STEP_CNT를 0으로 재설정하는 것은 상기 프로세싱 장치는 시퀀스의 제1 인스트럭션을 얻는 것을 표시한다. 스텝 540에서, 인스트럭션 프로세싱 장치는 메인 루틴의 스텝 402 (도 20)에서 유지된 인스트럭션 카운트를 조정하여 다음 인스트럭션의 메모리 위치를 결정한다. 도 26의 스텝 540에서, 카운트가 설정되어 반복된 시퀀스의 제1 인스트럭션이 얻어진다.
도 26을 참조하여 설명하면, 상기 처리기는 스텝 530에서 STEP_CNT가 STEP_NUM과 동일할 때까지 설정된 반복 인스트럭션을 계속한다. 이 시점에서, 상기 인스트럭션 프로세싱 장치는 상기 LOOP 인스트럭션에 응답하여 반복될 시퀀스의 최종 인스트럭션을 실행하는 것이다. 이후, 스텝 534에서 상기 시퀀스의 최종 반복(즉, LOOP_CNT가 LOOP_NUM과 동일한 경우에)을 처리하는 지를 판단한다. 이러한 경우에, 상기 인스트럭션 프로세싱 장치는 상기 LOOP_FLAG(스텝 542)를 재 설정하여 실행되고 있는 환형 인스트럭션이 없다는 것을 표시하고 상기 최종 인스트럭션이 메모리에서 복구되는 메인 루틴(도 20, 스텝 402)으로 복귀한다.
상기 도 20의 메인 루틴을 참조하여 설명하면, 스텝 414에서 FORWARD 인스트럭션을 만나면, FORWARD 서브루틴이 스텝 428에서 호출된다. 상기 FORWARD 서브루틴은 도 27에서 설명된다. 상기 FORWARD 인스트럭션의 데이터 부분은 NODE가 테스터 노드가 인스트럭션을 받았다는 것을 표시하고, CYCLES가 테스트 사이클의 수가 인스트럭션을 전송하기 전에 기다리고 있다는 것을 표시하고 그리고 PACKET_SIZE는 수신 노드에 전송될 인스트럭션의 수라는 것을 표시하는 형태(NODE, CYCLES, PACKET_SIZE)이다. 스텝 550에서, 상기 인스트럭션 카운트는 ADDR에 매칭되도록 조정되고, 스텝 552에서 상기 인스트럭션 프로세싱 장치는 사이클의 표시된 수를 기다린다. 이후, 단계 552에서 상기 프로세싱 장치는 네트워크 버스를 통해서 인스트럭션을 수신 노드로 전송한다.
도 20의 메인 루틴을 참조하여 설명하면, 스텝 414에서 HALT 인스트럭션을 만나면, 스텝 429에서 HALT 서브루틴이 호출된다. 상기 HALT 서브루틴은 도 28에서 설명된다. 상기 HALT 인스트럭션의 데이터 부분은 다음의 형태(RUNTIME, x‥‥x)이다. RUNTIME은 상기 노드가 RUNTIME 신호를 테스트의 종말을 표시하는 호스트 처리기로 전송하였는지를 표시하는 비트이다. 만약 RUNTIME 신호가 전송되지 않았거나 스텝 562로 진행하지 않았다면, 상기 HALT 서브루틴은 상기 메인 루틴으로 복귀한다(스텝 564). 이후, 상기 루틴은 종료된다(도 20, 스텝 430).
따라서 다중 링크(30)가 테스터에게 도 15-17에 도시된 것들을 포함한 유효한 구성, 다수의 조합 및 그들의 치환을 다양하게 작동하도록 하는 것은 당업자에게 이해될 것이다.
따라서 설명되고 도시되었던 집적 회로 테스터는 테스트 시그널을 테스트 중인 장치의 선택된 터미널로 전송하고 연속적인 테스트 사이클 동안 이의 다른 터미널에서 DUT에 의해 발생된 데이터를 인지한다. 상기 테스터는 수 개의 처리노드를 포함하고, 하나의 노드는 상기 DUT의 각 터미널과 연계되고, 각 노드는 인스트럭션의 시퀀스를 발생하는 알고리즘 인스트럭션을 저장하기 위한 메모리를 포함한다. 각 인스트럭션은 특정 액션이 다음 테스트 사이클동안 실시되는 것을 표시하는 액션 데이터 및 상기 액션이 실시되는 경우 다음 테스트 사이클 동안 시간을 나타내는 타이밍 데이터를 포함한다. 각 노드는 또한 인스트럭션 및 상기 인스트럭션에 해당하는 회로를 발생하기 위해서 알고리즘 인스트럭션 및 상기 인스트럭션에 의해 표현되는 데이터인지를 처리하는 회로를 포함한다. 상기 집적 회로 테스터는 큰 노드 메모리의 요구가 없고 상기 노드 메모리를 재적재하도록 상기 테스트를 정기적으로 중지시키지 않고도 긴 집적 회로 테스트를 실현할 수 있다. 상기 테스터는 높은 유연성 및 테스트의 각 사이클동안 이벤트를 테스트하는 정확한 타이밍을 허가할 수 있다. 상호연결은 노드 대 노드이기 때문에, 신호 전송률은 최대화될 수 있고 전송라인은 적정화될 수 있고 노드 팽창을 물리법칙에 의해서 제한되지 않는다.
이상의 명세서는 본 발명의 바람직한 실시예(들)를 설명하였지만, 당업자들은 본 발명의 정신에 이탈됨 없이 바람직한 실시예에 많은 수정을 가할 수가 있다. 따라서 첨부한 청구항은 본 발명의 진정한 범주와 정신 안에 있는 모든 수정을 포함하고자 의도된 것이다.

Claims (13)

  1. 제어된 시간에 테스트 신호를 인가하는 장치에 있어서,
    다수의 노드로서, 각각의 노드는 시간을 표시하는 커맨드를 발생하는 알고리즘 인스트럭션의 개별 세트를 실행하며 상기 발생된 커맨드에 의해 표시된 시간에 상기 테스트 신호 중 개별적인 하나의 신호를 인가하는, 상기 다수의 노드; 및
    상기 알고리즘 인스트럭션의 개별 세트를 상기 각각의 다수의 노드로 전송하는 수단을 포함하며,
    상기 다수의 노드 각각은
    상기 알고리즘 인스트럭션을 저장하는 메모리 수단,
    상기 메모리 수단에 저장된 상기 알고리즘 인스트럭션을 실행하여 상기 커맨드를 발생하는 프로세싱 수단, 및
    상기 커맨드에 의해 표시된 상기 시간에 상기 테스트 신호 중 상기 개별적인 하나의 신호를 인가하는 수단을 포함하는 장치.
  2. 제1항에 있어서, 개시 커맨드를 서로 다른 시간에 상기 각 다수의 노드로 전송하기 위하여 상기 다수의 노드를 직렬로 연결하는 수단을 더 포함하며, 각 상기 다수의 노드의 상기 프로세싱 수단은 상기 개시 커맨드에 응답하여 상기 알고리즘 인스트럭션을 실행하기 시작하고 각 상기 다수의 노드는 상기 개시 커맨드에 대한 그 응답을 서로 다른 양의 시간만큼 지연하여 상기 개시 커맨드를 수신한 후 실질적으로 동일한 시간에 상기 모든 다수의 노드가 상기 알고리즘 인스트럭션의 실행을 시작하도록 하는 장치.
  3. 제1항에 있어서, 중단 커맨드를 서로 다른 시간에 상기 각 다수의 노드로 전송하기 위하여 상기 다수의 노드를 직렬로 연결하는 수단을 더 포함하며, 각 상기 다수의 노드의 상기 프로세싱 수단은 상기 중단 커맨드에 응답하여 상기 알고리즘 인스트럭션을 중단하고 각 상기 다수의 노드는 상기 중단 커맨드에 대한 그 응답을 서로 다른 양의 시간만큼 지연하여 상기 중단 커맨드를 수신한 후 실질적으로 동일한 시간에 상기 모든 다수의 노드가 상기 알고리즘 인스트럭션의 실행을 중단하도록 하는 장치.
  4. 제1항에 있어서, 상기 전송 수단은 노드 네트워크를 형성하기 위해 상기 노드를 상호접속하는 다수의 전송선을 포함하며, 상기 다수의 전송선은 각각 한 쌍의 상기 노드를 상호접속하여 그들 간에 상기 알고리즘 인스트럭션을 전송하는 장치.
  5. 제어된 시간에 신호를 인가하는 장치에 있어서,
    다수의 노드로서, 각각의 노드는 시간을 표시하는 커맨드를 발생하는 알고리즘 인스트럭션의 개별 세트를 실행하며 상기 발생된 커맨드에 의해 표시된 시간에 상기 신호 중 개별적인 하나의 신호를 인가하는, 상기 다수의 노드; 및
    상기 다수의 노드에 의해 상기 인스트럭션의 실행 속도를 동기화하는 수단을 포함하며,
    상기 다수의 노드 각각은
    상기 알고리즘 인스트럭션을 저장하는 메모리 수단,
    상기 메모리 수단에 저장된 상기 알고리즘 인스트럭션을 실행하여 상기 커맨드를 발생하는 프로세싱 수단, 및
    상기 커맨드에 의해 표시된 상기 시간에 상기 신호 중 상기 개별적인 하나의 신호를 인가하는 수단을 포함하는 장치.
  6. 제5항에 있어서, 상기 다수의 노드에 의해 상기 인스트럭션의 실행 속도를 동기화하는 상기 수단은 주기적 클록 신호를 발생하는 수단, 및
    상기 클록 신호를 각 상기 노드로 전송하는 수단으로서, 상기 각각의 노드는 상기 주기적 클록 신호에 따라 결정된 속도로 상기 알고리즘 인스트럭션을 실행하는, 상기 전송하는 수단을 포함하는 장치.
  7. 제6항에 있어서, 상기 커맨드는 상기 클록 신호의 다수의 주기를 표시함으로써 시간을 표시하는 장치.
  8. 제6항에 있어서, 각 상기 노드는
    상기 클록 신호에 대하여 각기 서로 다른 위상을 가지는 다수의 주기적 타이밍 신호를 발생하기 위하여 상기 클록 신호를 수신하는 타이밍 신호 발생기 수단, 및
    상기 타이밍 신호 중 하나의 신호에 따라 결정된 속도로 상기 커맨드를 발생하기 위한 상기 알고리즘 인스트럭션을 실행하는 프로세싱 수단을 포함하는 장치.
  9. 제8항에 있어서, 각 상기 노드는
    상기 프로세싱 수단에 의해 발생된 상기 커맨드에 응답하고 상기 커맨드에 따라 선택된 상기 타이밍 신호 중의 하나에 응답하여 상기 신호 중의 상기 개별적인 하나를 인가하기 위하여 상기 다수의 타이밍 신호에 응답하는 수단을 더 포함하는 장치.
  10. 제9항에 있어서, 상기 커맨드에 응답하는 상기 수단은
    상기 커맨드에 따라 선택된 상기 타이밍 신호 중의 하나와 동상인 출력 타이밍 신호를 발생하기 위하여 상기 다수의 타이밍 신호를 수신하는 멀티플렉서 수단,
    지연된 타이밍 신호를 발생하기 위해 멀티플렉서 수단 출력 타이밍 신호를 상기 커맨드에 따라 조정된 양만큼 지연하는 수단, 및
    상기 지연된 타이밍 신호에 응답하여 상기 신호중의 상기 개별적인 하나를 인가하기 위해, 상기 지연된 타이밍 신호를 수신하는 수단을 포함하는 장치.
  11. 클록 신호의 주기와 관련된 시간에 출력 신호를 인가하는 장치에 있어서,
    클록 신호를 수신하고 상기 클록 신호와 동일한 주기를 가지며 각기 서로 다른 위상을 가지는 다수의 타이밍 신호를 발생하는 제1 수단;
    상기 출력 신호가 인가되는 시간을 표시하는 커맨드를 발생하는 알고리즘 인스트럭션 세트를 발생하는 제2 수단; 및
    발생된 커맨드를 수신하고 상기 커맨드에 따라 선택된 상기 타이밍 신호 중의 하나에 응답하여 상기 출력 신호를 인가하는 타임 포매팅 수단을 포함하는 장치.
  12. 제11항에 있어서, 상기 제1 수단, 제2 수단 및 타임 포매팅 수단은 모두 공통 집적회로 상에서 구현되며, 상기 제1 수단은
    제어 신호의 크기에 따라 결정되는 주파수를 가지는 상기 타이밍 신호를 발생하는 전압 제어 발진기,
    상기 타이밍 신호를 지연하여 그 결과로 지연된 타이밍 신호를 발생하는 수단, 및
    상기 제어 신호를 발생하기 위하여 상기 클록 신호 및 상기 지연된 타이밍 신호에 응답하는 수단으로서, 상기 제어 신호는 상기 지연된 타이밍 신호 및 상기 클록 신호간의 위상 차에 따라 결정되는 크기를 가지는, 상기 응답하는 수단을 포함하는 장치.
  13. 제12항에 있어서, 상기 타이밍 신호를 지연하는 상기 수단은 상기 타임 포매팅 수단에 응답하여 상기 타이밍 신호 중 상기 하나의 지연과 실질적으로 동등한 주기에 의해 상기 타이밍 신호를 지연시키는 장치.
KR10-1998-0702160A 1995-09-25 1996-09-10 병렬처리집적회로테스터 KR100453488B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/534,015 1995-09-25
US8/534,015 1995-09-25
US08/534,015 US5748642A (en) 1995-09-25 1995-09-25 Parallel processing integrated circuit tester
PCT/US1996/014728 WO1997012254A1 (en) 1995-09-25 1996-09-10 Parallel processing integrated circuit tester

Publications (2)

Publication Number Publication Date
KR19990066930A KR19990066930A (ko) 1999-08-16
KR100453488B1 true KR100453488B1 (ko) 2005-04-13

Family

ID=24128358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0702160A KR100453488B1 (ko) 1995-09-25 1996-09-10 병렬처리집적회로테스터

Country Status (6)

Country Link
US (4) US5748642A (ko)
EP (1) EP0852730B1 (ko)
JP (1) JPH11511565A (ko)
KR (1) KR100453488B1 (ko)
DE (1) DE69634824T2 (ko)
WO (1) WO1997012254A1 (ko)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19631289A1 (de) * 1996-08-02 1998-02-05 Ibm Verfahren zum Testen eines Protokollumsetzers und Protokollumsetzer
US5925145A (en) * 1997-04-28 1999-07-20 Credence Systems Corporation Integrated circuit tester with cached vector memories
US5930735A (en) * 1997-04-30 1999-07-27 Credence Systems Corporation Integrated circuit tester including at least one quasi-autonomous test instrument
US5917834A (en) * 1997-08-21 1999-06-29 Credence Systems Corporation Integrated circuit tester having multiple period generators
US5919270A (en) * 1997-08-29 1999-07-06 Credence Systems Corporation Programmable formatter circuit for integrated circuit tester
US5825787A (en) * 1997-11-25 1998-10-20 Xilinx, Inc. System and method for accessing a test vector memory
US6064948A (en) * 1998-03-02 2000-05-16 Tanisys Technology, Inc. Tester systems
US6107818A (en) * 1998-04-15 2000-08-22 Teradyne, Inc. High speed, real-time, state interconnect for automatic test equipment
WO2000000836A1 (en) * 1998-06-29 2000-01-06 Iliya Valeryevich Klochkov A skew calibration means and a method of skew calibration
US6820234B2 (en) 1998-06-29 2004-11-16 Acuid Limited Skew calibration means and a method of skew calibration
US6363507B1 (en) * 1998-10-19 2002-03-26 Teradyne, Inc. Integrated multi-channel analog test instrument architecture providing flexible triggering
GB2359162B (en) * 1998-11-10 2003-09-10 Fujitsu Ltd Parallel processor system
US6499125B1 (en) * 1998-11-24 2002-12-24 Matsushita Electric Industrial Co., Ltd. Method for inserting test circuit and method for converting test data
US6351769B1 (en) * 1998-12-04 2002-02-26 Dell Usa, L.P. Dynamic burn rack monitor listener server
US6647027B1 (en) * 1999-11-10 2003-11-11 Lsi Logic Corporation Method and apparatus for multi-channel data delay equalization
US6581019B1 (en) * 2000-03-20 2003-06-17 Koninklijke Philips Electronics N.V. Computer-system-on-a-chip with test-mode addressing of normally off-bus input/output ports
US20030110427A1 (en) * 2000-04-12 2003-06-12 Advantest Corporation Semiconductor test system storing pin calibration data in non-volatile memory
US6737875B2 (en) 2000-05-22 2004-05-18 Damerco, Inc. Method and apparatus for in-circuit impedance measurement
US6549036B1 (en) 2000-05-31 2003-04-15 Micron Technology, Inc. Simple output buffer drive strength calibration
JP2002123562A (ja) * 2000-07-31 2002-04-26 Hitachi Ltd テスタ構築データの生成方法およびテスタの構築方法並びにテスト回路
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
CN1205540C (zh) * 2000-12-29 2005-06-08 深圳赛意法微电子有限公司 含有解码器的电路、时分寻址的方法和一个微控制器
US6665627B2 (en) * 2001-03-30 2003-12-16 Intel Corporation Method and apparatus for evaluating and correcting the tester derating factor (TDF) in a test environment
US6711509B2 (en) * 2001-04-02 2004-03-23 Square D Company Impulsive transient hardware simulation
US20020152046A1 (en) * 2001-04-13 2002-10-17 Velichko Sergey A. Concurrent control of semiconductor parametric testing
US7035755B2 (en) * 2001-08-17 2006-04-25 Credence Systems Corporation Circuit testing with ring-connected test instrument modules
JP2003066099A (ja) * 2001-08-23 2003-03-05 Advantest Corp 測定制御装置、方法、プログラムおよび該プログラムを記録した記録媒体
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US6976183B2 (en) * 2001-11-09 2005-12-13 Teradyne, Inc. Clock architecture for a frequency-based tester
US7162386B2 (en) * 2002-04-25 2007-01-09 Micron Technology, Inc. Dynamically adaptable semiconductor parametric testing
JP2004055076A (ja) * 2002-07-23 2004-02-19 Yamaha Corp 光ピックアップ及び光ディスク記録装置
KR100457225B1 (ko) 2002-07-25 2004-11-16 동부전자 주식회사 모스펫의 제조 방법
US7181660B2 (en) * 2002-07-26 2007-02-20 Verigy Pte. Ltd. Reconstruction of non-deterministic algorithmic tester stimulus used as input to a device under test
US20040225459A1 (en) * 2003-02-14 2004-11-11 Advantest Corporation Method and structure to develop a test program for semiconductor integrated circuits
US7290192B2 (en) * 2003-03-31 2007-10-30 Advantest Corporation Test apparatus and test method for testing plurality of devices in parallel
US7010451B2 (en) * 2003-04-17 2006-03-07 Micron Technology, Inc. Dynamic creation and modification of wafer test maps during wafer testing
BRPI0410885B1 (pt) 2003-06-02 2018-01-30 Qualcomm Incorporated Gerar e implementar um protocolo de sinal e interface para taxas de dados mais altas
AU2004300958A1 (en) 2003-08-13 2005-02-24 Qualcomm, Incorporated A signal interface for higher data rates
ATE424685T1 (de) 2003-09-10 2009-03-15 Qualcomm Inc Schnittstelle für hohe datenrate
CN1894931A (zh) 2003-10-15 2007-01-10 高通股份有限公司 高数据速率接口
EP1692842A1 (en) * 2003-10-29 2006-08-23 Qualcomm Incorporated High data rate interface
TWI381686B (zh) 2003-11-12 2013-01-01 Qualcomm Inc 具有改良的鏈路控制之高資料速率介面
BRPI0416895A (pt) 2003-11-25 2007-03-06 Qualcomm Inc interface de alta taxa de dados com sincronização de link melhorada
CA2731265A1 (en) 2003-12-08 2005-06-23 Qualcomm Incorporated High data rate interface with improved link synchronization
EP1733537A1 (en) 2004-03-10 2006-12-20 Qualcomm, Incorporated High data rate interface apparatus and method
WO2005091593A1 (en) 2004-03-17 2005-09-29 Qualcomm Incorporated High data rate interface apparatus and method
BRPI0509147A (pt) 2004-03-24 2007-09-11 Qualcomm Inc equipamentos e método para interface de alta taxa de dados
US7079973B2 (en) * 2004-04-06 2006-07-18 Avago Technologies General Ip Pte. Ltd. Apparatus and method for compensating clock period elongation during scan testing in an integrated circuit (IC)
US7516379B2 (en) * 2004-04-06 2009-04-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Circuit and method for comparing circuit performance between functional and AC scan testing in an integrated circuit (IC)
KR100914420B1 (ko) 2004-06-04 2009-08-27 퀄컴 인코포레이티드 고 데이터 레이트 인터페이스 장치 및 방법
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
US7484122B2 (en) * 2004-06-17 2009-01-27 International Business Machines Corporation Controlling timing of execution of test instruction by target computing device
US7319936B2 (en) * 2004-11-22 2008-01-15 Teradyne, Inc. Instrument with interface for synchronization in automatic test equipment
US7454681B2 (en) * 2004-11-22 2008-11-18 Teradyne, Inc. Automatic test system with synchronized instruments
US8692838B2 (en) 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8667363B2 (en) 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US8723705B2 (en) 2004-11-24 2014-05-13 Qualcomm Incorporated Low output skew double data rate serial encoder
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8112654B2 (en) * 2005-06-01 2012-02-07 Teklatech A/S Method and an apparatus for providing timing signals to a number of circuits, and integrated circuit and a node
JP4657053B2 (ja) * 2005-07-29 2011-03-23 株式会社アドバンテスト タイミング発生器及び半導体試験装置
US20070094557A1 (en) * 2005-10-21 2007-04-26 Skala Kenneth L Semiconductor integrated circuit tester
US8692839B2 (en) 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8730069B2 (en) 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US7890822B2 (en) * 2006-09-29 2011-02-15 Teradyne, Inc. Tester input/output sharing
US8851072B2 (en) * 2007-02-16 2014-10-07 Wasatch Manufacturing, Llc Supplemental air diffusion devices, kits and methods
US7725793B2 (en) * 2007-03-21 2010-05-25 Advantest Corporation Pattern generation for test apparatus and electronic device
US7707000B2 (en) * 2007-04-19 2010-04-27 Agilent Technologies, Inc. Test instrument and system responsive to execution time data
US7831865B1 (en) * 2007-09-26 2010-11-09 Sprint Communications Company L.P. Resource allocation for executing automation scripts
JP5580709B2 (ja) * 2010-10-05 2014-08-27 株式会社アドバンテスト 試験装置及び試験方法
JP5787829B2 (ja) * 2012-06-01 2015-09-30 株式会社東芝 マルチプロセッサ
WO2014145624A1 (en) * 2013-03-15 2014-09-18 General Instrument Corporation Dlna/dtcp stream conversion for secure media playback
CN104570990B (zh) 2013-10-29 2018-10-16 恩智浦美国有限公司 智能操作装置资源分配系统
TWI742865B (zh) * 2020-09-28 2021-10-11 蔚華科技股份有限公司 具數據處理功能的自動化測試機及其資訊處理方法
CN115312110A (zh) * 2021-05-08 2022-11-08 瑞昱半导体股份有限公司 芯片验证系统及其验证方法
CN116243137B (zh) * 2022-12-22 2023-12-01 无锡麟聚半导体科技有限公司 一种测试模式保护电路及芯片

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931506A (en) * 1974-12-30 1976-01-06 Zehntel, Inc. Programmable tester
US4070565A (en) * 1976-08-18 1978-01-24 Zehntel, Inc. Programmable tester method and apparatus
US4354268A (en) * 1980-04-03 1982-10-12 Santek, Inc. Intelligent test head for automatic test system
US4402055A (en) * 1981-01-27 1983-08-30 Westinghouse Electric Corp. Automatic test system utilizing interchangeable test devices
US4439858A (en) * 1981-05-28 1984-03-27 Zehntel, Inc. Digital in-circuit tester
US4397021A (en) * 1981-06-15 1983-08-02 Westinghouse Electric Corp. Multi-processor automatic test system
US4517512A (en) * 1982-05-24 1985-05-14 Micro Component Technology, Inc. Integrated circuit test apparatus test head
US4637020A (en) * 1983-08-01 1987-01-13 Fairchild Semiconductor Corporation Method and apparatus for monitoring automated testing of electronic circuits
US4806852A (en) * 1984-09-07 1989-02-21 Megatest Corporation Automatic test system with enhanced performance of timing generators
JPH0750159B2 (ja) * 1985-10-11 1995-05-31 株式会社日立製作所 テストパタ−ン発生装置
US5032783A (en) * 1985-10-23 1991-07-16 Texas Instruments Incorporated Test circuit and scan tested logic device with isolated data lines during testing
JPS62195572A (ja) * 1986-02-21 1987-08-28 Mitsubishi Electric Corp 半導体テスト装置
JPH0746127B2 (ja) * 1986-05-20 1995-05-17 三菱電機株式会社 半導体試験装置
JPS63271180A (ja) * 1987-04-30 1988-11-09 Fujitsu Ltd 集積回路用試験装置
US4928278A (en) * 1987-08-10 1990-05-22 Nippon Telegraph And Telephone Corporation IC test system
US5127011A (en) * 1990-01-12 1992-06-30 International Business Machines Corporation Per-pin integrated circuit test system having n-bit interface
US5068601A (en) * 1991-02-11 1991-11-26 Credence Systems Corporation Dual function cam-ring system for DUT board parallel electrical inter-connection and prober/handler docking
US5345186A (en) * 1993-01-19 1994-09-06 Credence Systems Corporation Retriggered oscillator for jitter-free phase locked loop frequency synthesis
US5552733A (en) * 1993-01-19 1996-09-03 Credence Systems Corporation Precise and agile timing signal generator based on a retriggered oscillator
KR100317727B1 (ko) * 1993-01-19 2002-04-06 이데이 노부유끼 디바이스의 자동 측정방법 및 측정장치
DE4305442C2 (de) * 1993-02-23 1999-08-05 Hewlett Packard Gmbh Verfahren und Vorrichtung zum Erzeugen eines Testvektors
US5696772A (en) * 1994-05-06 1997-12-09 Credence Systems Corporation Test vector compression/decompression system for parallel processing integrated circuit tester
EP0686917A1 (en) * 1994-06-07 1995-12-13 International Business Machines Corporation Apparatus for processing a series of timing signals
FR2728690B1 (fr) * 1994-12-23 1997-01-24 Schlumberger Ind Sa Procede et equipement de test automatique de composants electroniques

Also Published As

Publication number Publication date
EP0852730B1 (en) 2005-06-08
JPH11511565A (ja) 1999-10-05
US5748642A (en) 1998-05-05
KR19990066930A (ko) 1999-08-16
DE69634824T2 (de) 2006-05-04
US5931953A (en) 1999-08-03
US5935256A (en) 1999-08-10
WO1997012254A1 (en) 1997-04-03
US5931952A (en) 1999-08-03
EP0852730A4 (en) 1999-06-16
EP0852730A1 (en) 1998-07-15
DE69634824D1 (de) 2005-07-14

Similar Documents

Publication Publication Date Title
KR100453488B1 (ko) 병렬처리집적회로테스터
US5696772A (en) Test vector compression/decompression system for parallel processing integrated circuit tester
US20230253962A1 (en) Synchronization in a quantum controller with modular and dynamic pulse generation and routing
US5802348A (en) Logic analysis system for logic emulation systems
KR100538404B1 (ko) 테스팅의 병렬 및 스캔 모드용으로 단일 메모리를사용하는 집적회로용 테스트 시스템
EP0149048B1 (en) Method and apparatus for testing semiconductor devices
US6243841B1 (en) Automated test and evaluation sampling system and method
US5682390A (en) Pattern generator in semiconductor test system
US9251906B1 (en) Data strobe signal generation for flash memory
US20230042521A1 (en) Highly Scalable Quantum Control
EP0645717A1 (en) System for data synchronization and method therefor
US4903240A (en) Readout circuit and method for multiphase memory array
EP0228332B1 (en) Automatic test system having a "true tester-per-pin" architecture
EP0589662A2 (en) Digital signal processing system
EP0553080B1 (en) High speed tester and method of providing successive loops of data signals at a predetermined clock rate
JPH06510416A (ja) 高速の時間多重化されたデータ伝送システム
KR0138258B1 (ko) 고속 집적 회로의 테스팅 방법 및 테스팅 장치
KR100492231B1 (ko) 자동시험장치(ate)테스터의아날로그채널에서의펄스발생
US10288685B2 (en) Multi-bank digital stimulus response in a single field programmable gate array
JP3612694B2 (ja) 被試験信号生成装置及びディジタルデータ信号出力装置
US6978340B2 (en) I/O multiplexer and pin controller with serial and parallel capabilities for microprocessor based engine control
KR100376731B1 (ko) 서로 다른 버스 폭을 가지는 장치 사이의 데이터 정합방법 및 장치
KR0182068B1 (ko) 반도체 시험 장치
GB2221328A (en) Emulative tester
JP2000162287A (ja) パターン信号を生成するパターン発生器

Legal Events

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

Payment date: 20080930

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee