KR101297513B1 - 범용 프로토콜 엔진 - Google Patents
범용 프로토콜 엔진 Download PDFInfo
- Publication number
- KR101297513B1 KR101297513B1 KR1020117023960A KR20117023960A KR101297513B1 KR 101297513 B1 KR101297513 B1 KR 101297513B1 KR 1020117023960 A KR1020117023960 A KR 1020117023960A KR 20117023960 A KR20117023960 A KR 20117023960A KR 101297513 B1 KR101297513 B1 KR 101297513B1
- Authority
- KR
- South Korea
- Prior art keywords
- protocol
- data
- definition
- test
- under test
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31917—Stimuli generation or application of test patterns to the device under test [DUT]
- G01R31/31919—Storing and outputting test patterns
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R19/00—Arrangements for measuring currents or voltages or for indicating presence or sign thereof
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
일 실시예에서, 자동 테스트 장비를 위한 프로토콜 엔진 회로는 테스트받는 장치를 테스트하기 위해 프로토콜 고유 데이터를 검색하고 프로토콜 고유 데이터를 테스트받는 장치에 대응하는 선택된 프로토콜 정의를 이용하여 포맷하도록 구성된 프로토콜 생성 회로를 포함한다. 프로토콜 생성 회로는 프로토콜 정의 테이블로부터 선택된 프로토콜 정의를 검색하도록 구성될 수 있다.
Description
자동화된 저장 패턴 기능 테스트(automated stored pattern functional testing)는 집적 회로(IC) 장치의 제조에서 장치의 파라미터 및 동작 특징(parametric and operational characterization)을 제공하기 위한 중요한 단계를 제공한다. 자동 테스트 장비 시스템은 제어 컴퓨터 또는 호스트 컴퓨터에 연결되는 테스트 회로를 포함한다. 제어 컴퓨터는 테스트받는 장치에 자극 신호를 제공하고 테스트받는 장치로부터 응답 신호를 수신하도록 테스트 회로를 활성화하기 위한 기능 테스트 패턴 데이터를 수신하여 저장하는 사용자 인터페이스를 제공한다. 응답 신호는 집적 회로 장치의 파라미터 및 동작 특징을 결정하기 위해 평가된다.
테스트받는 장치(device under test, DUT)는, 핀 일렉트로닉스(pin electronics)로부터 및 핀 일렉트로닉스로의 물리적 신호들에 대한 물리적 인터페이스를 제공하는, 장치 인터페이스 보드(device interface board 또는 DIB) 위에 실장된다. 테스트 회로로부터의 테스트 자극 신호는 핀 일렉트로닉스를 통하여 DIB를 통해 테스트받는 장치에 공급된다. 테스트받는 장치로부터의 테스트 응답 신호는 DIB를 통하여 핀 일렉트로닉스로 전송되고 계속해서 테스트 회로로 전송된다. 테스트 자극 신호 및 테스트 응답 신호는 테스트받는 장치가 테스트를 통과했는지 또는 실패했는지를 결정하기 위해 테스트 회로에 의해 상호 관련된다.
테스트 회로에 의해 생성된 자극 신호는 데이터 신호 및 자극 입력을 동기화하기 위한 클록 신호를 포함한다. 테스트의 유효성은 이러한 신호들의 서로에 관한 정확한 배치에 의존한다. 예를 들면, 테스트 프로세스 동안에 의미 있는 데이터가 획득되는 것을 보장하기 위해 클록, 데이터, 및 인에이블 신호(enable signal)와 같은 몇몇 상이한 신호들이 조정되고(coordinated) 적절한 시점에 트리거된다. 다양한 집적 회로 기능들은 고정 타이밍 및 데이터 프로토콜들에 따르는 인터페이스 명세(interface specifications)를 갖는다. 예를 들면, 이러한 프로토콜들은 이더넷 관리 데이터 입력/출력(Ethernet Management Data Input/Output(MDIO)), USB(Universal Serial Bus) 또는 I2C(Inter-Integrated Circuit) 버스와 같은 n-와이어 직렬 구조 버스(n-wire serial structured bus), GPIO(General Purpose Input/Output)와 같은 병렬 통신 버스, DDR(double data rate Dynamic Random Access Memory)과 같은 메모리 버스, 및 HDMI(High-Definition Multimedia Interface)와 같은 고속 통신 채널을 포함한다.
전술한 바와 같이, 근년에 저장 패턴 기능 테스트는 결정론적으로 거동하지 않는 장치들로 인해 어려움에 처하는 경우가 증가하고 있다. 현재, 반도체 프로세싱의 통합 및 복잡성의 레벨은 집적 회로 칩들이 사실상 완전한 "시스템 온 칩(system-on-a-chip)"(SOC)이 되는 것을 허용하고 있다. 시스템 온 칩은 컴퓨터 또는 다른 전자 시스템의 모든 기능 회로 요소들을 단일 집적 회로(칩) 안에 통합한다. 이러한 집적 회로 요소들은 디지털 회로, 아날로그 회로, 랜덤 액세스 메모리, 혼합된 아날로그 및 디지털 신호 회로의 임의의 조합일 수 있고, 종종 무선 주파수(radio-frequency) 기능을 포함한다.
시스템 온 칩(SOC)은 동일한 반도체 기판 상에 통합된 다수의 디지털 및 아날로그 집적 회로 기능들을 제공한다. SOC의 일례는 휴대폰 수신, 처리, 및 송신 기능뿐만 아니라, 사진 및 비디오 처리 기능, 오디오 디지털 신호 처리 및 반도체 메모리 회로도 통합하는 휴대폰이다. 현재, 대부분의 SOC 테스트에서, SOC의 개별 기능들은 스캔(SCAN) 테스트, BIST(Built-In-Self-Test), 및 기능 테스트와 같은 다수의 테스트 방법들에서 개별적으로 테스트된다. 시스템 레벨 테스트는 전형적으로 맞춤형 회로(custom circuitry)를 사용하고, 일반적으로 마이크로프로세서와 같은 높은 평균 판매 가격 및 낮은 혼합 장치(high average selling price low mix devices)를 위해서만 사용된다. 최종 시스템 레벨 테스트는 마이크로프로세서와 같은 특정 SOC 장치의 테스트를 위해 특별히 제작된 맞춤화된 테스트 장치(customized test apparatus)에서 구현될 수 있다. 다른 SOC 장치를 위해 시스템 레벨 테스트를 수행하는 것이 바람직하기는 하겠지만, 낮은 평균 판매 가격의 SOC를 위해 맞춤형 기능 테스트 장치를 제작하는 것은 비용 효율적이지 않다.
자동 테스트 회로를 이용하여 SOC를 테스트하는 데 있어서의 어려움은 자동 테스트 회로를 이용한 파라미터 및 개별 기능 테스트는 결정론적인 테스트 동작이라는 점이다. 테스트 자극 신호는 소정의 타이밍 및 구조로 적용되고, 테스트 응답 신호는 특정한 타이밍 및 구조를 가질 것으로 기대된다. 만일 테스트 응답 신호가 주어진 파라미터에 대하여 기대된 타이밍 및 구조와 일치(match)하지 않는다면, 테스트받는 SOC 장치는 실패한 것으로 결정된다. SOC 장치의 기능들은 서로 다른 타이밍 및 클록킹 명세로 동작할 수 있고, 비동기적으로 동작할 수 있다. SOC 장치는, 통신 기능의 비동기성(asynchronicity)이 테스트 응답 신호가 부정확하게 나타나게 할 때, 응답 테스트 신호가 다르게 나타낼 때에 동작 중일 수 있다.
현세대 자동화된 테스트 장비 시스템들은 소정의 레이턴시 팩터(latency factors)를 제공하는 것 이외에 비-결정론적인 SOC 장치를 다루는 데 매우 제한된 능력을 갖는다. 이는, 첫 번째 원형 장치(first prototyped device)는, 아마, 테스트 자극 신호가 설계 검증에서 사용된 시뮬레이션 벡터인 경우 잘 작동하지 않을 것이라는 점에서, 테스트 기술자에게 상당한 문제를 일으킨다. 테스트 기술자가 통과 배열(passing arrangement)을 찾을 때까지 벡터들을 여기저기로 움직이려고 시도하는 일련의 시행착오 루프들(a series of trial and error loops)이 뒤이어 일어난다. 관련된 데이터의 양이 많고 모든 시도마다 다시 시뮬레이션할 필요가 있기 때문에, 각각의 루프는 수일이 걸릴 수 있고, 최종 결과는 새로운 SOC 장치의 테스트 및 평가 단계에 수개월이 추가된다.
현 자동 테스트 장비 시스템 내에서 테스트받는 SOC 장치의 동작 조건들을 시뮬레이션하려는 시도들이 있었다. 회로 기능들 사이의 비동기적인 통신의 비결정론적인 기능 때문에, 기능들의 통상의 동작 환경은 테스트받는 SOC 장치에 대하여 정확히 재현될 수 없다. 현 자동 테스트 장비 환경은 테스트받는 SOC 장치의 통상의 동작 환경의 비결정론적인 전기 및 타이밍 조건들을 쉽고 정확하게 제공하는 능력이 없다. 자동 테스트 장비 시스템 내의 비결정론적인 전기 및 타이밍 조건들의 이러한 결여는 또한 테스트받는 SOC 장치의 통상의 동작 환경에 존재할 수 있는 변하는 동작 조건들 하에서의 그것의 허용 오차(tolerance)에 관하여 테스트받는 SOC 장치에 대한 오차 범위(margin of error)를 측정하지 않는다. 따라서, 테스트받는 장치에 의해 기대되는 지정된 장치 프로토콜에 따르는 자극 신호 및 타이밍을 생성하고 그 지정된 장치 프로토콜에 따르는 타이밍에 따른 응답 신호를 수신하기 위한 자동 테스트 장비 내의 프로토콜 생성 회로 또는 엔진이 요구된다.
일 실시예에서, 자동 테스트 장비를 위한 프로토콜 엔진 회로는 테스트받는 장치를 테스트하기 위해 프로토콜 고유 데이터(protocol unique data)를 검색하고 상기 프로토콜 고유 데이터를 테스트받는 장치에 대응하는 선택된 프로토콜 정의를 이용하여 포맷하도록 구성된 프로토콜 생성 회로를 포함한다. 상기 프로토콜 생성 회로는 프로토콜 정의 테이블로부터 상기 선택된 프로토콜 정의를 검색하도록 구성될 수 있다.
일 구현에서, 자동 테스트 장비와 테스트받는 장치 사이의 통신을 위해 지정된 장치 프로토콜에 따르는 신호들 및 타이밍들을 생성하기 위한 방법은 상기 테스트받는 장치에 대한 고정 프로토콜 데이터를 수신하는 단계, 프로토콜 고유 데이터를 수신하는 단계, 및 상기 테스트받는 장치를 테스트하기 위해 상기 고정 프로토콜 데이터 및 상기 프로토콜 고유 데이터를 상기 지정된 장치 프로토콜 내에 어셈블(assemble)하는 단계를 포함한다. 상기 구현은 프로토콜 정의 위치 번호(protocol definition location number)를 수신하는 단계, 상기 프로토콜 정의 위치 번호에 의해 지시된 테이블 위치로부터 상기 지정된 장치 프로토콜에 대한 고정 프로토콜 데이터를 선택하는 단계, 및 테스트받는 장치를 테스트하기 위해 상기 지정된 장치 프로토콜 내의 상기 고정 프로토콜 데이터 및 상기 프로토콜 고유 데이터를 공급하는 단계를 추가로 포함할 수 있다. 일부 구현들에서, 상기 방법은 오퍼레이션 코드(operation code)를 수신하고 상기 오퍼레이션 코드와 대응하는 테이블 위치로부터 액션 데이터(action data)를 검색하는 단계, 및 테스트받는 장치를 테스트하기 위해 상기 지정된 장치 프로토콜 내의 상기 고정 프로토콜 데이터 및 상기 프로토콜 고유 데이터와 함께 상기 액션 데이터를 공급하는 단계를 추가로 포함한다. 다른 구현들에서, 상기 지정된 장치 프로토콜에 대한 상기 고정 프로토콜 데이터를 검색하는 단계는 액션 데이터를 검색하는 단계를 포함하고, 상기 고정 프로토콜 데이터를 공급하는 단계는 상기 액션 데이터를 공급하는 단계를 포함한다.
<도 1>
도 1은 프로토콜 생성 회로의 일 실시예의 간소화된 블록도.
<도 2>
도 2는 프로토콜 생성 회로의 다른 실시예의 간소화된 블록도.
<도 3>
도 3은 자동 테스트 시스템의 일 실시예 내의 지정된 장치 프로토콜의 구성을 위한 예시적인 동작 액션들(operational actions)의 테이블.
<도 4a 및 도 4b>
도 4a 및 도 4b는 프로토콜 생성 회로의 또 다른 실시예의 보다 상세한 블록도.
<도 5>
도 5는 도 1, 도 2, 또는 도 4a 및 도 4b 의 프로토콜 생성 회로를 포함하는 프로토콜 특정 회로들(protocol specific circuits)의 실시예들 중 하나의 다수의 인스턴스들을 포함하는 자동 테스트 장비 시스템의 블록도.
<도 6>
도 6은 이더넷 관리 데이터 입력/출력(MDIO) 프로토콜 명세에 따르는 신호들의 상대적 구조 및 타이밍을 설명하는 도면.
<도 7>
도 7은 예시의 오퍼레이션 코드들의 테이블.
도 1은 프로토콜 생성 회로의 일 실시예의 간소화된 블록도.
<도 2>
도 2는 프로토콜 생성 회로의 다른 실시예의 간소화된 블록도.
<도 3>
도 3은 자동 테스트 시스템의 일 실시예 내의 지정된 장치 프로토콜의 구성을 위한 예시적인 동작 액션들(operational actions)의 테이블.
<도 4a 및 도 4b>
도 4a 및 도 4b는 프로토콜 생성 회로의 또 다른 실시예의 보다 상세한 블록도.
<도 5>
도 5는 도 1, 도 2, 또는 도 4a 및 도 4b 의 프로토콜 생성 회로를 포함하는 프로토콜 특정 회로들(protocol specific circuits)의 실시예들 중 하나의 다수의 인스턴스들을 포함하는 자동 테스트 장비 시스템의 블록도.
<도 6>
도 6은 이더넷 관리 데이터 입력/출력(MDIO) 프로토콜 명세에 따르는 신호들의 상대적 구조 및 타이밍을 설명하는 도면.
<도 7>
도 7은 예시의 오퍼레이션 코드들의 테이블.
테스트를 개선하기 위해 FPGA에 저장된 특정 SOC에 대한 특정한 프로토콜(들)을 포함하는 프로토콜 특정 회로가 이용될 수 있다. 그러나, 그러한 접근법은 너무 시간이 걸리거나 일부 응용들에서 제한적일 수 있다. 상이한 SOC들은 하나 이상의 상이한 프로토콜들을 요구할 수 있다. 다양한 SOC들은 이더넷 관리 데이터 입력/출력(MDIO), USB(Universal Serial Bus) 또는 I2C(Inter-Integrated Circuit) 버스와 같은 n-와이어 직렬 구조 버스, GPIO(General Purpose Input/Output)와 같은 병렬 통신 버스, DDR(double data rate Dynamic Random Access Memory)과 같은 메모리, 및 HDMI(High-Definition Multimedia Interface)와 같은 고속 통신 채널, 또는 기타 중 하나 이상을 포함할 수 있다. 다양한 DUT들에 대한 다수의 상이한 프로토콜들을 생성할 수 있는 테스터의 이점은 그것이 테스터 기능을 증가시키고 테스트 효율을 개선할 수 있다는 점이다.
도 1은 프로토콜 생성 회로(300) 및 그것의 핀 일렉트로닉스(320)와의 상호 연결의 일 실시예의 간소화된 블록도이다. 테스트 패턴 명령(372)은 호스트 장치에 입력되고, 동적 랜덤 액세스 메모리(DRAM)(도시되지 않음)에 저장되고, 프로토콜 제어 저장 테이블(protocol control storage table)(370)에 전송될 수 있다. 프로토콜 제어 저장 테이블(370)은 지정된 장치 프로토콜에 따르는 자극 신호들 및 타이밍들을 구성하기 위한 명령들을 정의하는 오피코드들(Opcodes)을 저장한다. 오피코드들은 지정된 장치 프로토콜에 따르는 자극 신호들 및 타이밍들을 생성하기 위한 제어 신호들을 직접 제공하도록 디코딩되거나, 부분적으로 디코딩되거나, 구조화될 수 있다. 오피코드들은 연결(309)을 통하여 트랜잭션 상태 기계(transaction state machine)(305)에 전송된다. 스타트 신호(Start signal)(306)의 활성화에서, 트랜잭션 상태 기계(305)는 클록(308)에 의해 동기화된 오퍼레이션 코드에 기초하여 지정된 장치 프로토콜의 동작 액션들의 실행 순서를 정의하는 일련의 타이밍 사이클들을 제공한다. 타이밍 사이클 신호들은 프로토콜 정의 테이블(310)에 전송된다. 타이밍 신호들(307)은 또한 오피코드들(302)(도 2에 도시됨) 및 테이블 번호(304)(도 2에 도시됨)의 전송을 인크리먼트(increment)하기 위해, 트랜잭션 상태 기계(305)로부터 프로토콜 제어 저장 테이블(370)로 전송된다. 타이밍 신호들(307)은 또한 기대 데이터(expect data)(317) 및 드라이브 데이터(drive data)(319)의 전송을 인크리먼트하기 위해 프로토콜 고유 데이터 저장 테이블(315)로 전송된다.
테스트 패턴 명령들(372)은 또한, 일부 실시예들에서 지정된 장치의 대응하는 액션 신호들을 추가로 포함할 수 있는, 고정 프로토콜 데이터의 세트를 포함하는 프로토콜 정의 테이블(310) 내의 위치를 정의하는 프로토콜 정의 위치 번호를 포함한다. 도 2에 관련하여 아래에 논의되는, 다른 실시예들에서, 액션 신호들은 별도의 액션 테이블(350)에 포함될 수 있다.
도 1을 참조하면, 프로토콜 엔진 테스트 패턴 명령들(372)은 또한 실행될 트랜잭션들 각각에 대하여 사용되어야 하는 프로토콜 고유 데이터를 포함한다. 프로토콜 고유 데이터는 프로토콜 고유 데이터 저장 테이블(315)에 배치된다. 프로토콜 고유 데이터는 테스트받는 장치(335)에 대한 자극 신호들로서 드라이브될 데이터, 테스트받는 장치로부터의 응답 신호들과 비교될 기대 데이터, 또는 트랜잭션의 실행 동안에 데이터의 플로우의 제어를 위해 사용되는 마스킹 데이터(masking data)일 수 있다.
핀 일렉트로닉스(320)는, 도시된 바와 같이, 채널 로직(325) 및 I/O 드라이버들(330)을 포함한다. 채널 로직은 실렉터(selector)(321) 및 채널 회로(323)를 포함한다. 실렉터(321)는 프로토콜 정의 테이블(310)로부터 고정 프로토콜 데이터(312), 및 프로토콜 고유 데이터 저장 테이블(315)로부터 프로토콜 고유 데이터(313)를 수신한다. 프로토콜 정의 테이블(310)로부터의 액션 신호들(314)은 채널 회로(323)를 적절히 활성화하기 위해 채널 회로(323)에 명령 신호들(324)이 전송되는지 또는 고정 프로토콜 데이터(312) 또는 프로토콜 고유 데이터(313)가 선택된 데이터 신호(322)로서 전송되는지를 선택하기 위한 제어 명령어들을 제공한다. 채널 회로(323)의 드라이브 데이터 출력(327)은 자동 테스트 장비가 지정된 장치 프로토콜에 따라 테스트받는 장치(335)에 자극 데이터를 드라이브하고 있는 경우에 드라이브될 프로토콜 고유 데이터(313) 또는 고정 프로토콜 데이터(312)를 제공하기 위한 핀 일렉트로닉스(320)의 I/O 드라이버/수신기(330)의 드라이버(332)에의 입력이다. 대안적으로, 채널 회로(323)의 제어 출력(326)은 자동 테스트 장비가 테스트받는 장치(335)로부터 응답 신호를 수신하고 있을 때 드라이버(332)를 비활성화하기 위해 드라이버(332)에 필요한 제어 신호를 제공한다. 수신기(334)는 테스트받는 장치로부터 응답 신호를 수신하도록 연결된다. 수신기(334)는 수신된 데이터(328)를 채널 회로(323)에 전송하도록 연결된다. 채널 회로(323)는 프로토콜 고유 데이터 저장 테이블(315)로부터 기대 프로토콜 고유 데이터(313) 및 프로토콜 정의 테이블(310)로부터 기대 고정 프로토콜 데이터(312)를 수신한다. 기대 프로토콜 고유 데이터(313) 및 고정 프로토콜 데이터(312)는 테스트받는 장치(335)가 정확히 기능하고 있는지를 결정하기 위해 수신기(334)로부터의 응답 신호들과 비교된다. 채널 회로(323)는 비교 결과 신호(340)를 제공하고 그것은 실패 프로세서(failure processor)(도시되지 않음)에 전송된다.
도 2는 프로토콜 생성 회로(300) 및 그것의 핀 일렉트로닉스(320)와의 연결의 다른 실시예의 간소화된 블록도이다. 프로토콜 생성 회로(300)의 이 실시예의 구조는 도 1에 대하여 전술된 것과 유사하다. 프로토콜 제어 저장 테이블(370)은 오피코드들을 위한 고속 버퍼로서 기능하는 FIFO(First-In-First-Out) 메모리(301)를 포함한다. FIFO(301)의 출력은 상태 플립-플롭(state flip-flop)(302)에 전송된다. 프로토콜 제어 저장 테이블(370)은 트랜잭션 상태 기계(305) 및 액션 테이블(350)에 연결을 통해 오피코드들(309a)을 전송한다. 전술한 바와 같이, 트랜잭션 상태 기계(305)는 스타트 신호(306)의 활성화에서, 클록(308)에 의해 동기화된 오퍼레이션 코드에 기초하여 지정된 장치 프로토콜의 동작 액션들의 실행 순서를 정의하는 일련의 타이밍 사이클들을 제공한다.
프로토콜 제어 저장 테이블(370)은 또한 프로토콜 정의 위치 번호들을 위한 고속 버퍼로서 기능하는 FIFO 메모리(303)를 포함한다. FIFO(303)의 출력은 테이블 번호 상태 플립-플롭(304)에 전송된다. 테이블 번호 상태 플립-플롭(304)은 트랜잭션 상태 기계(305)에 연결(309b)을 통해 프로토콜 정의 위치 번호를 전송하고, 그것은 그 후 지정된 장치 프로토콜의 데이터 및 타이밍을 구성하기 위한 고정 프로토콜 데이터(362)의 세트를 포함하는 프로토콜 정의 테이블(360) 내의 위치를 제공하기 위해 프로토콜 정의 테이블(360)에 연결(311)을 통하여 전달된다.
프로토콜 고유 데이터 저장 테이블(315)은 테스트받는 장치로부터의 응답 신호들과 비교될 기대 데이터를 위한 고속 버퍼로서 기능하는 FIFO 메모리(316)를 포함한다. FIFO(316)의 출력은 상태 플립-플롭(317)에 전송된다. 상태 플립-플롭(317)은 채널 로직(325)의 비교 로직(356)에 연결(313a)을 통해 기대 데이터를 전송한다. 유사하게, 프로토콜 고유 데이터 저장 테이블(315)은 지정된 장치 프로토콜에 따라 테스트받는 장치에 드라이브될 프로토콜 고유 데이터를 위한 고속 버퍼로서 기능하는 FIFO 메모리(318)를 포함한다. FIFO(318)의 출력은 상태 플립-플롭(319)에 전송된다. 상태 플립-플롭(319)은 채널 로직(325)의 드라이브 로직(354)에 연결(313b)을 통해 드라이브 데이터를 전송한다.
이 실시예에서는, 개별 프로토콜 정의 및 액션 테이블들(각각, 360 및 350)이 제공된다. 이것은 일부 실시예들에서, 주어진 임의의 프로토콜에 대하여 각 비트 시간 동안 일어날 수 있는 액션들의 서브세트가 존재한다는 사실을 이용하는 것이다. 도 3은 자동 테스트 장비 시스템 내에서 지정된 장치 프로토콜의 구성을 위해 사용될 수 있는 예시의 동작 액션들의 테이블이다. 이러한 액션들은 Drive 0 또는 Drive Data, Hold if Lo, Proceed on Change, 또는 Pulse Lo-Z if H를 포함할 수 있다. 도 3은 예시의 리스트이고, 다른 액션들이 가능하다. 임의의 추가적인 액션들이 리스트에 추가될 수 있고, 프로토콜 생성 엔진(300)은 그것들을 수용하도록 업데이트된다. 일부 실시예들에서는 각 비트 시간 동안 일어날 수 있는 제한된 수의 드라이브 액션, 제한된 수의 비교 액션, 및 제한된 수의 I/O 액션이 존재한다. 프로토콜 정의 테이블(360)은 고정 프로토콜 데이터를 저장하고, 액션 테이블(350)은 오피코드들(309a)에 대응하는 액션들을 저장한다. 오피코드들(309a) 및 고정 프로토콜 데이터(362)는 채널 로직(325)을 적절히 활성화하기 위해 선택된 데이터 신호들(322a 및 322b), 및 명령 신호들(324)을 안내하기 위한 신호들을 선택하는 액션 테이블(350) 내의 위치들에의 포인터들을 제공한다. 액션 테이블(350)의 출력(322a)은 프로토콜 정의 테이블(360)로부터의 고정 프로토콜 데이터(362)를 채널 로직(325) 내의 드라이브 로직(354)으로 안내한다. 유사하게, 드라이브 데이터 상태 플립-플롭(319)의 출력(313b)은 프로토콜 고유 데이터(313a 및 313b)를 드라이브 로직(354)에 제공한다. 드라이브 로직(354)은 자극 데이터를 드라이버(332)에 제공하고 따라서 테스트받는 장치(335)에 제공한다.
액션 테이블(350)의 출력(322b)은 프로토콜 정의 테이블(360)로부터의 고정 프로토콜 데이터(362)를 채널 로직(325) 내의 비교 로직(356)으로 안내한다. 유사하게, 기대 데이터 상태 플립-플롭(317)의 출력(313a)은 기대 프로토콜 고유 데이터(313a)를 비교 로직(356)에 제공한다. 비교 로직(356)은 수신기(334)를 통하여 테스트받는 장치(335)로부터 응답 데이터를 수신한다. 비교 로직(356)은 비교 결과 신호(340)를 제공하고, 그것은 트랜잭션 상태 기계(305) 및 실패 프로세서(도시되지 않음)에 전송된다.
액션 테이블(350)의 출력은 채널 로직(325)의 I/O 로직(352)으로의 액션 신호들(324)을 포함한다. I/O 로직(352)은 테스트받는 장치(335)의 동작 상태를 결정하기 위해 한 비트씩, 적절한 트랜잭션을 생성하기 위해 드라이브 로직(354), 비교 로직(356), 및 I/O 드라이버/수신기(330)의 드라이버(332)의 적절한 제어를 활성화한다.
도 4a 및 도 4b는 프로토콜 생성 회로(300)와 그것의 핀 일렉트로닉스(320)와의 상호 연결의 또 다른 실시예의 보다 상세한 블록도들이다. 이 실시예의 자동 테스트 장비 내의 프로토콜 생성 회로(300)의 소스 데이터 저장 개념은 동적 랜덤 액세스 메모리(DRAM)(도시되지 않음)에 가능한 한 적은 정보를 저장하는 것이다. 이것은 오피코드, 테이블 번호 및 페이로드 비트들(데이터 비트들)만이 DRAM(도시되지 않음)에 저장되어야 하는 것을 의미한다. (스타트/스톱 비트(start/stop bit) 또는 케어 비트(care bit)와 같은) 모든 일정한 프로토콜 특정 비트들은 프로토콜 정의 테이블(410)에 저장되고, 따라서 DRAM(도시되지 않음)에 어떤 공간도 취하지 않는다. DRAM(도시되지 않음)은 오피코드(372a), 테이블 번호(372b), 드라이브 데이터(372c), 기대 데이터(372d) 및 마스킹 데이터(372e)를 위한 테스트 패턴 데이터를 제공한다. 오피코드(372a) 및 테이블 번호(372b)는 프로토콜 제어 저장 테이블(400)에의 입력들이다. 드라이브 데이터(372c), 기대 데이터(372d), 및 데이터 마스크 비트들(372e)은 프로토콜 고유 데이터 저장 테이블(415)에의 입력들이다.
로딩 시퀀스(loading sequence)는 일단 프로토콜 실행 상태 기계(405)가 Next 명령(409)을 발행하면 진행된다. 오피코드는 오피코드 상태 플립-플롭(402) 안에 클로킹되고(clocked), 테이블 번호는 테이블 위치 상태 플립-플롭(404) 안에 클로킹된다. 오피코드는 이것이 판독인지, 기입인지, 또는 마스크 업데이트 트랜잭션인지를 결정하기 위해 충분히 디코딩된다. 드라이브 데이터(372c), 기대 데이터(372d) 및 데이터 마스크(372e) 사이즈들은 작은 RAM에서 검색된다(looked up). 프로토콜 실행 상태 기계(405)는 그 후 이 경우 FIFO들(도시되지 않음)로서 사용되는 블록 랜덤 액세스 메모리들(RAM들)에 적당한 수를 로딩한다. FIFO들의 출력들은 드라이브 데이터 플립-플롭(416), 기대 데이터 플립-플롭(417), 및 데이터 마스크 플립-플롭(418)에의 입력들이다.
드라이브 데이터 플립-플롭(416), 기대 데이터 플립-플롭(417), 및 데이터 마스크 플립-플롭(418)은 프로토콜 실행 상태 기계(405)에 의해 단일 직렬 스트림(single serial stream)으로부터 다중 비트 폭 버스들(multiple bit wide busses)까지 모든 범위에서 변화하는 데이터 폭 요건들(varying data width requirements)을 갖는 프로토콜들에 서비스를 제공하는 데 사용된다. 또한, 더 폭넓은 버스들에 서비스를 제공하기 위해 다수의 프로토콜 생성 회로들이 그룹화될 수 있다. 드라이브 데이터 플립-플롭(416), 기대 데이터 플립-플롭(417), 및 데이터 마스크 플립-플롭(418)의 비트 스위즐(bit swizzle)은 RAM으로부터의 다수의 비트들을 프로토콜이 요구하는 대로 프로토콜 실행 상태 기계(405)로의 1, 2, 4, 또는 임의의 수의 비트들로 변환하도록 버스트의 시작에서(at start of a burst) 프로그램될 것이다.
드라이브 데이터 플립-플롭(416), 기대 데이터 플립-플롭(417), 및 데이터 마스크 플립-플롭(418)의 인에이블 라인들(enable lines)은 데이터의 다음 세트가 다음 비트 클록에서 출력되어야 하는 것을 나타낸다. 리셋 라인(reset line)은 wait until 또는 Repeat 오피코드의 특별한 경우에 사용된다. 이 경우, 조건이 충족되지 않았다면(Transaction Reject가 일어났거나 Repeat가 행해지지 않은 경우), 트랜잭션은 반복될 필요가 있다. Next 명령(409)이 없는 Last Bit 신호는 FIFO들이 트랜잭션을 반복하기 위해 메모리 포인터를 리셋해야 하는 것을 의미한다.
프로토콜 제어 저장 테이블(400) 및 프로토콜 고유 데이터 저장 테이블(415)의 출력은 그 후 다음 트랜잭션의 시작에서 모두 적절히 정렬된 오피코드, 프로토콜 정의 위치 번호, 드라이브 데이터(413a), 기대 데이터(413b) 및 데이터 마스크 비트들(413c)을 가질 것이다. 오피코드 상태 플립-플롭(402)은 디코딩된 또는 부분적으로 디코딩된 오피코드를 포함하는 다중 출력 레지스터(multiple output register)이다. 오피코드 상태 플립-플롭(402)의 출력들 중 한 세트는 프로토콜 실행 상태 기계(405) 상태 카운터를 초기화하기 위해 프로토콜 실행 상태 기계(405)에 최초 정의 코드(initial definition code)(403a)를 제공한다. 오피코드의 일부는 판독/기입 트랜잭션 비트(403b)이고, 이것은 그 후 오피코드 상태 플립-플롭(402)으로부터 프로토콜 정의 테이블들(410)로 전송된다. 트랜잭션 정의(403c)는 오피코드 상태 플립-플롭(402)으로부터 액션 테이블(450)로 전송된다. 오피코드의 트랜잭션 오프셋 부분(transaction offset portion)(403d)은 테이블 오프셋 계산기(406) 내의 테이블 위치 상태 플립-플롭(404)으로부터의 테이블 위치(401)와 조합되어, 실행되고 있는 각각의 트랜잭션에 대한 테이블 위치(401)의 시작 포인터로부터의 정확한 오프셋 위치를 생성한다. 프로토콜 실행 상태 기계(405)로부터의 테이블 위치 비트들(491)은 가산기(407) 내의 오프셋 계산기(406)의 출력과 조합되어, 다음 트랜잭션에 대한 프로토콜 정의 테이블(410) 내의 정확한 위치, 정의 및 고정 데이터를 결정한다.
프로토콜 생성 회로(300)의 이 실시예는 테스트받는 장치(435)의 다수의 핀들을 시뮬레이션하도록 자동 테스트 장비의 다수의 채널들을 제어하기 위해 구성된다. 이를 달성하기 위해, 프로토콜 정의 테이블(410)은 다수의 정의 테이블 RAM 들(461, 462, 463, 464) 및 개별 액션 테이블들(450)을 포함한다. 다수의 정의 테이블 RAM들(461, 462, 463, 464)은 개별 액션 테이블들(450)을 통하여 테스트받는 장치(435)의 개별 핀들에 핀 일렉트로닉스(320)의 I/O 드라이버/수신기(430) 및 채널 로직 회로들(425)에 통신한다. 프로토콜 생성 회로(300)의 이 실시예를 포함하는 자동 테스트 장비에서, 프로토콜 생성 회로(300)는 테스트받는 장치(435)의 8개 핀들과 통신하는 8개 채널들을 지원한다. 더 폭넓은 버스 폭, 예를 들면 64비트 버스를 지원하기 위해 선택적으로 다수의 프로토콜 생성 회로들(300)이 함께 집단화된다(ganged together). 집단화된 프로토콜 생성 회로들(300)은 동일한 오피코드들을 실행할 것이다. 다수의 정의 테이블 RAM들(461, 462, 463, 464)은 각각의 핀들에 대한 기능에 기초하여 테스트받는 장치의 핀들에 적용될 신호들에 대한 상이한 정의 신호들을 포함할 것이다.
테이블 오프셋 계산기(406) 및 가산기(407)는 상이한 다수의 정의 테이블 RAM들(461, 462, 463, 464)이 실행될 때 트랜잭션 정의 어드레스에 대한 오프셋 어드레스를 생성한다. 판독 및 기입 모두를 위한 각각의 새로운 트랜잭션은 상이한 길이들 및 상이한 정의들을 가질 수 있다. 테이블 오프셋 계산기(406) 및 가산기(407)는 각각의 트랜잭션 유형에 대한 오프셋으로 프로그램된다. 이것은 모든 트랜잭션들의 총 길이가 다수의 정의 테이블 RAM들(461, 462, 463, 464) 내의 이용가능한 저장 공간을 초과하지 않는 한, 다수의 정의 테이블 RAM들(461, 462, 463, 464) 내에서 다수의 짧은 트랜잭션 유형들 또는 소수의 긴 트랜잭션 유형들을 허용한다.
프로토콜 정의 테이블(410)은 일반적인 하우스키핑(housekeeping) 기능들을 위한 추가적인 비트들(이 구현에서는 3 비트)을 제공하는 프로토콜 정의 제어 테이블(461)을 포함한다. 그 비트들은 Last 비트(492a), Store(492b), 및 Invert Hold Sense(492c)로서 정의된다. Last 비트는 프로토콜 실행 상태 기계(405)에게 트랜잭션의 최종 비트(last bit)가 전송되는 것을 통지한다. 프로토콜 실행 상태 기계(405)는 Next 명령을 발행한다. Next 명령은 다음 트랜잭션이 홀드되어 있지 않거나, 반복 카운트(repeat count)에 도달하거나, 대기 조건(wait conditions)이 없거나, 또는 이전의 트랜잭션을 반복할 수 있는 경우에 발행된다. Store는 어느 사이클들이 저장 사이클들(store cycles)인지를 정의한다. 저장될 실제 비트들은 캡처 로직(Capture Logic)(475)의 셋업에 의해 버스트 전에 정의된다. Invert Hold Sense는 Hold 라인(493)의 센스를 반전시킨다. Hold 라인(493)의 기능은 이하에 설명된다.
다수의 프로토콜 정의 테이블 RAM들(462, 463, 464)의 출력들(412a, 412b, ..., 412x)은 그들의 개별 액션 테이블들(450)에 적용된다. 액션 테이블(450)은, 주로 그것의 어드레스를 프로토콜 정의 테이블 RAM(462)으로부터 획득하지만, 소정의 수(즉, 2)의 어드레스 비트들(403c)은 오피코드 상태 플립-플롭(402)으로부터 온다. 이것은 오피코드가 트랜잭션, 예를 들면 판독 및 마스크 판독의 소정의 비트들의 액션을 변경하는 경우들을 다루기 위한 것이다. 대안 실시예들에서, 액션의 변경은 프로토콜 정의 테이블 RAM(462)에 트랜잭션 유형들을 추가하는 것에 의해 다루어질 수 있다. 그러나, 프로토콜 정의 테이블 RAM(462)은 액션 테이블(450)과 대비하여 상대적으로 값비싸고, 따라서 어드레스 비트들(403c)을 더 바람직한 구현으로 만든다.
액션 테이블(450)의 출력들로부터의 고정 프로토콜 데이터 신호들(422a) 및 트랜잭션 명령 신호들(424a)은 채널 로직(425)에의 입력들이다. 명령 신호들(424a)은 홀드 액션들 중 하나가 실행되고 있고 조건이 충족되지 않은 것을 나타내는 Hold 신호를 포함한다. 명령 신호들(424a) 내의 펄스 시간 신호는 펄스 생성기(458)에 의해 테스트받는 장치(435)에 대한 클록 펄스들을 생성하는 데 사용되는 타이밍된 펄스(timed pulse)이다. 명령 신호들(424a) 내의 인에이블 마스크는 데이터 마스크 플립-플롭(418)으로부터의 마스크 비트의 판독을 허용한다. 고정 프로토콜 데이터(412a)는 프로토콜 정의 테이블(462)에 저장되고, 고정 프로토콜 데이터(422a)를 생성하기 위한 디코딩을 위해 액션 테이블(450)에 전송된다. 고정 프로토콜 데이터(422a)는 채널 로직(425)에 전송된다. 프로토콜 고유 데이터(413a)는 드라이브 데이터 플립-플롭(416)으로부터 채널 로직(425)으로 전송된다. 데이터 마스킹 비트(413c)는 데이터 마스크 플립-플롭(418)으로부터 채널 로직(425)으로 전송된다. 명령 신호들(424a)의 기능 선택 비트는 테스트받는 장치(435)의 핀에 전송될 데이터의 소스를 선택한다. 드라이브 로직(452)의 출력은 I/O 드라이버/수신기(430)의 핀 드라이버(432)의 입력이다.
명령 신호들(424b)은 I/O 로직(454)에의 입력들이다. I/O 로직(454)은 핀 드라이버(432)를 제어한다. 핀 드라이버(432)가 활발히 데이터를 드라이빙하고 있을 때 I/O 로직(454)은 그 드라이빙을 허용하도록 임피던스 제어를 설정한다. 대안적으로, I/O 로직(454)은 핀 드라이버(432)가 타이밍된 펄스에 기초하여 하이 임피던스 상태 또는 Lo 상태로의 드라이빙 사이에 스위칭하도록 허용한다. 하이 임피던스 상태는 핀 일렉트로닉스(430)의 수신기(434)가 테스트받는 장치(435)로부터 데이터를 수신하도록 허용한다. 대안적으로, 일부 프로토콜들은 시그널링을 위해 클록 라인들이 로우로 풀되는(pulled low) 특별한 코딩을 갖는다(즉, I2C). 임피던스 제어는 이러한 기능들을 용이하게 한다.
수신기(434)의 출력은 비교 로직(456)에의 입력이다. 비교 로직(456)은 도 3의 비교 액션들(Compare Actions)을 구현한다. 비교 로직(456)은 수신기(434)에 의해 획득된 테스트받는 장치(435)로부터의 응답 데이터를 기대 데이터 상태 플립-플롭(417)으로부터의 기대 데이터(413b)와 비교한다. 또한 비교 로직(456)은 데이터 마스크 플립-플롭(418)으로부터 데이터 마스크 비트들(413c)을 수신한다. 응답 데이터와 기대 데이터(413b) 및 데이터 마스크 비트들(413c)의 비교의 결과는 트랜잭션이 실패했는지를 판정한다. 또한 비교 로직(456)은 프로토콜 생성 회로(300)의 플로우 제어를 위한 다양한 홀드 조건들을 관리한다.
프로토콜 생성 회로(370)의 플로우 제어의 일부로서, 라운드 트립(round trip) FIFO(485)는 기대 응답 데이터(413b) 및 데이터 마스크 비트들(413c)을 지연시켜 그것들을 테스트받는 장치(435)을 통하여 라운드 트립 시간만큼 시간에서 나중으로 이동시킨다. 그 지연은 비교 로직(456)이 테스트받는 장치(435)로부터의 응답 데이터를 드라이브 데이터(413a), 기대 응답 데이터(413b) 및 데이트 마스크 비트들(413c) 중 하나와 비교하도록 허용한다. 또한, 라운드 트립 FIFO(485)는 캡처 로직(475) 내의 비교 결과 데이터(459)와의 정렬을 위해 액션 테이블(450)로부터의 트랜잭션 테이블 번호(423)를 지연시킨다. 라운드 트립 FIFO(485)는 기대 고정 데이터 신호들(422b)을, 비교 로직(456)에서 수신기(434)로부터의 응답 데이터와의 비교를 위해 지연시킨다.
프로토콜 생성 회로(300)의 플로우 제어의 다음 기능은 Hold OR 트리(465)이다. Hold OR 트리(465)는 집단화된 프로토콜 생성 회로들(300)의 그룹들 또는 프로토콜 생성 회로(300)에 의해 에뮬레이트(emulate)되고 있는 프로토콜에 대하여 그룹화되고 있는 채널들 각각의 비교 로직(456) 및 I/O 로직(454)으로부터 Hold 및 Enable 신호들을 수신한다. Hold OR 트리(465)의 Hold 출력(493)은 테스트받는 장치(435)의 테스트에서 에뮬레이트되고 있는 프로토콜의 적당한 플로우를 보증하기 위해 프로토콜 실행 상태 기계(405) 및 캡처 로직(475)으로 전송된다. 액션 테이블(450) 출력으로부터 테스트받는 장치(435)까지 및 다시 그 후 Hold OR 트리(465)를 통하여 프로토콜 실행 상태 기계(405)까지의 루프 시간(loop time)은 최대 테스트받는 장치 주파수(maximum device under test frequency)를 설정한다.
비교 로직(456)의 출력들 중 하나는 트랜잭션 거절 OR 트리(transaction reject OR tree)(470)에 전송되는 트랜잭션 거절 신호(457)이다. 트랜잭션 거절 신호(457)는 테스트받는 장치(435)가 특정한 비트 트랜잭션 시간에 일어나는 트랜잭션들 중 하나 이상에서 실패했다는 신호를 제공한다. 집단화된 프로토콜 생성 회로들(300)의 그룹들 또는 프로토콜 생성 회로(300)에 의해 에뮬레이트되고 있는 프로토콜에 대하여 그룹화되고 있는 채널들 각각의 모든 트랜잭션 거절 신호들(457)은 트랜잭션 거절 OR 트리(470)에의 입력들이다. 트랜잭션 거절 OR 트리(470)의 출력(494)은 테스트받는 장치(435)를 테스트하기 위한 프로토콜의 생성의 진행의 조건 표시들을 제공하는 프로토콜 실행 상태 기계(405)에의 입력이다.
캡처 로직(475)은 테스트받는 장치(435)로부터의 응답 데이터와 기대 데이터(413b)의 비교의 상태를 기술하는 비교 결과 데이터 신호(459)를 비교 로직(456)으로부터 수신한다. 캡처 로직은 또한 라운드 트립 FIFO(485)로부터 지연된 트랜잭션 테이블 번호(486a) 및 지연된 저장 신호(486b)를 수신한다. 캡처 로직(475)은 판독/수정/기입(Read/Modify/Write) 동작들을 위해 나중 시간에 사용하기 위해 비교 결과 데이터 신호(459)로부터 판독 데이터를 캡처한다. 캡처 로직(475)은 다른 프로토콜 생성 회로들(300)에서의 데이터와의 상호 관련을 위해 비교 결과 데이터 신호(459)를 타임스탬프 및 테이블 번호(486a)와 함께 저장한다. 비교 결과 데이터(459)는 타임스탬프 및 테이블 번호(486a)와 함께 DRAM(220)에 전송된다.
전술한 바와 같이, 프로토콜 실행 상태 기계(405)는 클록(408)에 의해 동기화된 오프코드에 기초하여 지정된 장치 프로토콜의 동작 액션들을 정의하는 일련의 타이밍 사이클들을 제공한다. 이 타이밍 사이클 신호들은 프로토콜 정의 테이블(410)에 전송된다. 테이블 위치 비트들(491)은 테스트받는 장치에 전송될 자극 신호들을 생성하고 테스트받는 장치로부터의 응답을 수신하고 평가하기 위한 프로토콜을 형성하기 위한 트랜잭션 데이터에 액세스하기 위해 프로토콜 실행 상태 기계(405)로부터 가산기(407)로 전송되고 따라서 프로토콜 정의 테이블(410)로 전송된다.
프로토콜 실행 상태 기계(405)의 다른 기능들은 호스트(Host)와 통신하기 위해 사용되는 플래그들(497)을 제공하는 것을 포함한다. 프로토콜 실행 상태 기계(405)는 제한된 수의 플래그들의 임의의 조합을 설정하거나 그와 비교할 수 있다. 플래그(497)의 오퍼랜드(operand)는 마스크 비트들, 기입 비트들 또는 비교 플래그들을 포함할 것이다. 다수의 프로토콜 생성 회로들(300)이 집단화되는 경우에는, 하나의 프로토콜 실행 상태 기계(405)만이 플래그들을 위해 사용되고 다른 프로토콜 실행 상태 기계들(405)은 마스터 유닛으로부터 상태를 수신할 것이다.
레이턴스 동기화 신호 라인(latency synchronization signal line, ISL)(498)은 프로토콜 실행 상태 기계들(405)을 가로질러 특정한 프로토콜 액션의 개시를 발송하기 위해 마스터 프로토콜 실행 상태 기계(405)에 의해 사용된다.
도 5는 도 1, 도 2, 또는 도 4a 및 도 4b의 프로토콜 생성 회로(300)를 포함하는 프로토콜 특정 회로들(505a, ..., 505n)의 실시예들 중 하나의 다수의 인스턴스들을 포함하는 자동 테스트 장비 시스템(500)의 블록도이다. 자동화된 테스트 장비 시스템(500)은 다수의 핀 전자 유닛들(510a, ..., 510n)에 연결되는 프로토콜 특정 회로들(505a, ..., 505n)의 다수의 채널들을 갖는다. 전술된 다수의 핀 전자 유닛들(510a, ..., 510n) 각각은 로드 어댑터(load adapter)의 물리적 상호 연결들을 통하여 테스트받는 SOC 장치(540)와 자동화된 테스트 장비 시스템(500) 사이의 전기 인터페이스(502a, ..., 502n 및 504a, ..., 504n)를 제공한다. 프로토콜 특정 회로들(505a, ..., 505n) 각각은 테스트받는 SOC 장치(540)에 테스트 자극 신호들을 제공하고 그로부터 테스트 응답 신호들을 수신하기 위해 다수의 핀 전자 유닛들(510a, ..., 510n) 중 적어도 하나에 연결된다.
프로토콜 특정 회로들(505a, ..., 505n) 각각은, 프로토콜 생성 회로(300)의 나머지 회로와 조정되어, 도 1, 도 2, 또는 도 4a 및 도 4b에서 설명된 것들로서 기능하는 프로토콜 생성 회로(300)를 갖는다. 프로토콜 특정 회로들(505a, ..., 505n)의 각각의 프로토콜 생성 회로(300)는 그것의 지정된 DRAM(520a, ..., 520n)과 통신하여 테스트 명령을 제공하고 테스트받는 SOC 장치(540)의 실행의 테스트 결과들을 기록한다.
다수의 핀들을 갖는 프로토콜들에서, 프로토콜 특정 회로들(505a, ..., 505n)은 명령들의 디코딩을 조정하고, 기대 응답들을 동기적으로 시뮬레이션하는 테스트 응답 신호들을 생성한다. 기대 응답들을 동기적으로 시뮬레이션하기 위해, 프로토콜 특정 회로들(505a, ..., 505n)은 협력할 수 있는 프로토콜 특정 회로들(505a, ..., 505n)의 그것들 사이에 동기화 통신 인터페이스(525)를 통하여 통신한다. 동기화 통신 인터페이스(525)는 트랜잭션 거절 OR 트리로부터의 트랜잭션 거절 신호들 및 Hold Or 트리로부터의 HOLD 신호들을 포함한다. 이 협력은 동작의 레이턴시를 실행할 수 있고 따라서 통신은 프로토콜 특정 회로들(505a, ..., 505n) 사이의 교차 통신(cross communication)의 영향을 최소화하도록 구성된다. 예를 들면, 프로토콜 특정 회로들(505a, ..., 505n)에 대한 상태 기계들(도 5에 도시되지 않음) 중 하나는 마스터로서 기능하고 디코딩을 위해 인접한 프로토콜 특정 회로들(505a, ..., 505n)로부터 직접 테스트 자극 신호들을 수신할 수 있다. 마스터 프로토콜 엔진 컨트롤러(도시되지 않음)는 그 후 동작에 대한 레이턴시의 영향을 최소화하면서, 프로토콜에 의해 지정된 테스트 응답 신호들의 구조 및 타이밍을 구성하기 위한 적절한 명령어들을 발송한다. 레이턴시 동기화 신호 라인(ISL)(535)은 다수의 프로토콜 특정 회로들(505a, ..., 505n)을 가로질러 특정 프로토콜 액션의 개시를 발송하기 위해 마스터 프로토콜 엔진 컨트롤러(도시되지 않음)에 의해 사용된다.
자동화된 테스트 장비 시스템(500)은 프로토콜 특정 회로들(505a, ..., 505n)에 의해 결정된 상이한 타이밍들을 생성하는 다수의 마스터 발진기들(master oscillators)(530a 및 530b)을 가질 수 있다. 이것은 특히 자동화된 테스트 장비 시스템(500)의 결정론적 동작을 위해 그러하다. 자동화된 테스트 장비 시스템(500)의 비-결정론적 동작에서, 마스터 발진기들(530a 및 530b)은 결정론적 동작을 포함하는 테스트의 부분들을 위해 사용될 수 있는 반면, 테스트받는 SOC 장치(540)로부터의 외부 타이밍은 비-결정론적 동작에서 프로토콜 엔진 컨트롤러(도시되지 않음)를 위해 사용될 수 있다.
이제 이더넷 관리 데이터 입력/출력(MDIO) 프로토콜 명세에 따르는 신호들 및 타이밍들을 기술하는 예시의 도면에 대한 도 6을 참조한다. MDIO는 버스 상의 한 스테이션은 마스터로서 기능하고 버스 상의 모든 다른 것들은 슬레이브로서 기능하는 2핀 직렬 버스 프로토콜이다. 마스터는 버스에 대한 클로킹 신호들을 생성하고, 마스트에 의해 전송되는 동작들은 READ 동작 및 WRITE 동작이다. 프로토콜의 각 패킷의 시작은 프리앰블(preamble)(652)로부터 시작되고 그 다음으로 프레임의 스타트(653)와 오퍼레이션 코드(654)가 온다. 고정 데이터(650)는 이러한 코드들 각각을 포함하고, 프로토콜 정의 테이블에 저장되도록 정의된다. 비록 개별 오퍼레이션 코드들이 있다 하더라도, 오퍼레이션 코드들을 정의하는 2개의 코드만이 있다. 그것들을 프로토콜 정의 테이블에 배치하는 것은 테스트 패턴들 내의 절약을 허용한다. 물리적 어드레스(657) 및 데스티네이션 어드레스(destination address)(658)는, 프로토콜을 생성하고 따라서 고유 드라이브 데이터 FIFO에 저장된 고유 드라이브 및 기대 데이터(655)를 생성하는 테스트 패턴의 실행으로 생성된다. 턴 어라운드 시간 비트들(turn around time bits)(660)은 수행되고 있는 트랜잭션의 유형에 의존하지만, 그것들은 소수의 조합을 갖고 고정 데이터로 간주되어 프로토콜 정의 테이블에 저장될 것이다. 어드레스/데이터 비트들(665)은 고유 드라이브 데이터 FIFO에 저장될 고유 드라이브 데이터이다. 아이들 시간 비트 시간들(idle time bit times)(670)은 실제로 핀 일렉트로닉스의 드라이버를 하이 임피던스 상태로 강제하도록 설정될 명령을 제공한다.
도 7은 지정된 장치 프로토콜의 정의를 위한 동작 액션들로부터 개발된 예시적인 오피코드들의 테이블이다. 오피코드들은 이제 자동 테스트 장비 내의 프로토콜 생성 회로에게 프로토콜을 실행하기 위한 각 핀에 대한 타이밍 및 신호들을 지시하는 "속기(shorthand)" 명령 언어이다. 이 예의 오피코드들은 프로토콜의 타이밍 및 데이터 구조를 생성하기 위한 트랜잭션 정의들이다. 예시의 오피코드 정의들은 또한 자동 테스트 장비의 호스트가 프로토콜 생성 회로에 직접 명령어들을 제공하기 위한 엔진 업데이트 오피코드들(Engine Update Opcodes)을 포함한다. 플로우 제어 오피코드들은 테스트 패턴 플로우를 제어하기 위하여 집단화된 프로토콜 생성 회로들의 그룹들, 테스트 패턴 생성기 또는 자동 테스트 장비의 호스트 사이의 통신을 제공한다.
프로토콜 생성 회로는 임의의 주어진 프로토콜에 대하여 각 비트 시간 동안 일어날 수 있는, 예를 들면 도 3에 도시된 것과 같은, 액션들의 작은 세트만이 존재한다는 사실을 이용한다. 이러한 액션들로부터, 프로토콜의 각 핀에 대한 일련의 액션들을 어셈블하고 그에 의해 프로토콜을 생성하는 것이 가능하다. 이 액션들의 열(string)은 프로토콜 정의 테이블에 포함된다. 액션들은 트랜잭션의 유형: 판독, 기입, read until 등을 정의하는 오피코드들의 세트로서 구성된다. 프로토콜 정의 테이블 내의 테이블 번호는 다수의 트랜잭션 정의들 중 어느 것이 이 특정 트랜잭션에 대하여 적용되는지를 상태 기계에 통지한다. 기대 응답 데이터는 자동 테스트 장비 관점으로부터 판독 트랜잭션에 포함된 고유 데이터이다. 드라이브 자극 데이터는 기입 및 판독 트랜잭션들 모두에 대한 고유 데이터이다(판독 트랜잭션에 고유 드라이브 데이터가 있을 수 있다: 예를 들면, 어드레스). 프로토콜 실행 상태 기계는 오피코드 및 테이블 번호에 의해 선택된 트랜잭션에 대한 프로토콜 정의를 검색하고; 오피코드는 특정 인에이블 비트들로 액션 테이블에 디코딩되며; 이러한 인에이블 비트들은, 한 비트씩, 적절한 트랜잭션을 생성하기 위해 채널 로직에서 드라이브 자극 및 기대 응답 데이터와 조합된다. 트랜잭션이 완료되면, 프로토콜 실행 상태 기계는 다음 오피코드, 테이블 번호 및 데이터로 진행한다. 다수의 비트들 위에 프로토콜 생성 회로들을 복제하는 것에 의해 단일 비트보다 폭넓은 프로토콜들이 생성된다.
도 1 및 도 2를 참조하여, 일 실시예에서, 프로토콜 제어 정의 테이블(310 또는 360)은 프로토콜 정의 저장 수단을 제공한다. 프로토콜 제어 저장 테이블(370)은 프로토콜 정의 저장 테이블(360)로부터 프로토콜 정의를 선택하고 검색하는 수단을 제공한다. 프로토콜 고유 데이터 저장 테이블(315)은 DUT를 테스트하기 위한 테스트 데이터를 전달하는 수단이다. 일부 실시예들에서, 액션 테이블(350)은 DUT를 테스트하기 위한 테스트 데이터를 제공하는 수단의 일부로서 선택된 프로토콜 정의를 사용하기 위해 제공될 수 있다.
당업자에 의해 이해되는 바와 같이, FPGA(field programmable gate array)와 같은 재구성 가능한 집적 회로에 결합된 컴퓨팅 장치에서 실행가능한 재구성 명령어 코드(reconfiguration instruction code)를 포함하는 프로그램 저장 장치가 생성될 수 있다. 재구성 명령어 코드는 실행될 때 도 1, 도 2, 또는 도 4a 및 도 4b에서 설명된 것과 같은 프로토콜 생성 회로를 형성하도록 재구성 가능한 집적 회로의 내부 회로를 구성한다. 재구성 가능한 집적 회로는, 구성될 때, 자동 테스트 장비와 테스트받는 장치 사이의 통신을 위한 지정된 장치 프로토콜에 따르는 신호들 및 타이밍들을 생성하기 위한 프로세스를 수행한다.
본 명세서에 사용되는 바와 같이 "테이블"이라는 용어는 저장된 및 검색가능한 정보를 포함하는 메모리 저장 장치, 또는 그러한 것이 가능한 다른 장치들을 포함할 수 있다.
본 발명은 그의 실시예들과 관련하여 구체적으로 도시되고 설명되었지만, 본 발명의 사상 및 범위로부터 벗어남이 없이, 형태 및 상세 사항에서 다양한 변경들이 이루어질 수 있다는 것을 당업자들은 이해할 것이다.
Claims (32)
- 자동 테스트 장비를 위한 프로토콜 인식 회로로서,
테스트받는 장치를 테스트하기 위해 상기 테스트받는 장치에 대한 프로토콜 고유 데이터 및 고정 프로토콜 데이터를 검색하고, 상기 테스트받는 장치에 대응하는 선택된 프로토콜 정의를 이용하여 상기 프로토콜 고유 데이터 및 상기 고정 프로토콜 데이터를 포맷하도록 구성된 프로토콜 생성 회로
를 포함하는, 프로토콜 인식 회로. - 제1항에 있어서, 프로토콜 정의 테이블(protocol definition table)을 추가로 포함하고, 상기 프로토콜 생성 회로는 상기 프로토콜 정의 테이블로부터 상기 선택된 프로토콜 정의를 검색하도록 구성되는, 프로토콜 인식 회로.
- 제2항에 있어서, 상기 프로토콜 생성 회로는 프로토콜 제어 회로를 포함하는, 프로토콜 인식 회로.
- 제2항에 있어서, 상기 프로토콜 정의 테이블은 액션 신호 데이터를 포함하는, 프로토콜 인식 회로.
- 삭제
- 제1항에 있어서, 테스트받는 복수의 장치에 대한 복수의 프로토콜 정의를 포함하는 프로토콜 정의 테이블을 추가로 포함하는, 프로토콜 인식 회로.
- 자동 테스트 장비를 위한 프로토콜 인식 회로로서,
테스트받는 장치를 테스트하기 위해 프로토콜 고유 데이터를 검색하고, 상기 테스트받는 장치에 대응하는 선택된 프로토콜 정의를 이용하여 상기 프로토콜 고유 데이터를 포맷하도록 구성된 프로토콜 생성 회로; 및
프로토콜 정의 테이블을 포함하고,
상기 프로토콜 생성 회로는 상기 프로토콜 정의 테이블로부터 상기 선택된 프로토콜 정의를 검색하도록 구성되고, 상기 프로토콜 생성 회로는 프로토콜 제어 회로를 포함하고, 상기 프로토콜 제어 회로는 오퍼레이션 코드(operation code) 및 프로토콜 정의 위치 번호(protocol definition location number)를 수신하고 저장하기 위해 호스트 장치와 통신하는 프로토콜 제어 저장 테이블(protocol control storage table)을 포함하는, 프로토콜 인식 회로. - 제7항에 있어서, 상기 프로토콜 생성 회로는 상기 테스트받는 장치를 테스트하기 위한 액션 신호 데이터를 포함하는 고정 프로토콜 데이터를 생성하기 위해 상기 프로토콜 정의 테이블로부터 고정 프로토콜 데이터 및 상기 프로토콜 제어 저장 테이블로부터 오퍼레이션 코드들을 수신하도록 연결된 액션 테이블(action table)을 추가로 포함하는, 프로토콜 인식 회로.
- 제7항에 있어서, 상기 프로토콜 생성 회로는, 프로토콜 고유 데이터 저장 테이블(protocol unique data storage table)을 포함하는, 프로토콜 인식 회로.
- 제9항에 있어서, 상기 프로토콜 고유 데이터 저장 테이블은,
a) 상기 테스트받는 장치에 대한 상기 프로토콜 고유 데이터를 포함하는 드라이브 데이터 테이블(drive data table); 및
b) 상기 테스트받는 장치로부터의 응답으로서 기대되는 상기 프로토콜 고유 데이터를 포함하는 기대 데이터 테이블(expected data table)을 포함하는, 프로토콜 인식 회로. - 제9항에 있어서, 상기 프로토콜 생성 회로는 상기 오퍼레이션 코드에 기초하여 지정된 장치 프로토콜의 동작 액션들(operational actions)을 정의하기 위해 사용되는 일련의 타이밍 사이클들을 제공하기 위해 상기 프로토콜 제어 저장 테이블과 통신하는 트랜잭션 상태 기계(transaction state machine)를 포함하는, 프로토콜 인식 회로.
- 제11항에 있어서, 상기 프로토콜 제어 저장 테이블은,
a) 상기 오퍼레이션 코드들을 저장하고 상기 오퍼레이션 코드들을 순차적인 순서로 상기 트랜잭션 상태 기계에 전송하기 위한 오퍼레이션 코드 저장 장치; 및
b) 상기 프로토콜 정의 위치 번호를 저장하고 상기 프로토콜 정의 위치 번호를 상기 트랜잭션 상태 기계에 전송하기 위한 트랜잭션 위치 저장 장치를 포함하는, 프로토콜 인식 회로. - 제12항에 있어서, 상기 프로토콜 생성 회로는 상기 테스트받는 장치를 테스트하기 위한 액션 신호 데이터를 포함하는 고정 프로토콜 데이터를 생성하기 위해 상기 프로토콜 정의 테이블로부터 고정 프로토콜 데이터 및 상기 프로토콜 제어 저장 테이블로부터 오퍼레이션 코드들을 수신하도록 연결된 액션 테이블을 추가로 포함하는, 프로토콜 인식 회로.
- 제13항에 있어서, 상기 오퍼레이션 코드는 상기 프로토콜 인식 회로와 상기 호스트 장치 사이에 명령 및 제어를 관리하기 위한 명령어들을 포함하는, 프로토콜 인식 회로.
- 제14항에 있어서, 플로우 제어 회로들(flow control circuits)을 추가로 포함하고, 상기 오퍼레이션 코드는 복수의 프로토콜 인식 회로들 사이에 플로우 제어를 관리하기 위한 명령어들을 포함하는, 프로토콜 인식 회로.
- 자동 테스트 장비를 위한 프로토콜 인식 회로로서,
a) 오퍼레이션 코드 및 프로토콜 정의 위치 번호를 포함하는 테스트 패턴을 수신하고 저장하기 위해 호스트 장치와 통신하는 프로토콜 제어 저장 테이블;
b) 상기 오퍼레이션 코드에 기초하여 지정된 장치 프로토콜의 동작 액션들을 정의하는 일련의 타이밍 사이클들을 제공하기 위해 상기 프로토콜 제어 저장 테이블과 통신하는 트랜잭션 상태 기계;
c) 상기 프로토콜 정의 위치 번호에 대응하는 테스트받는 장치에 대한 고정 프로토콜 데이터를 공급하기 위해 상기 트랜잭션 상태 기계에 응답하는 프로토콜 정의 테이블;
d) 상기 오퍼레이션 코드와 대응하는 액션 데이터를 제공하기 위해 상기 트랜잭션 상태 기계에 응답하는 액션 테이블; 및
e) 기대 데이터 및 드라이브 데이터를 포함하는 테스트 패턴을 수신하고 저장하기 위해 상기 호스트 장치와 통신하는 프로토콜 고유 데이터 저장 테이블 - 상기 프로토콜 고유 데이터 저장 테이블은 상기 테스트받는 장치를 테스트하기 위한 핀 전자 회로(pin electronic circuit)에 상기 고정 프로토콜 데이터 및 액션 데이터와 대응하는 프로토콜 고유 데이터를 공급하기 위해 상기 일련의 타이밍 사이클들에 응답함 - 을 포함하는, 프로토콜 인식 회로. - 자동 테스트 장비와 테스트받는 장치 사이의 통신용으로 지정된 장치 프로토콜에 따르는 신호들 및 타이밍들을 생성하기 위한 방법으로서,
a) 상기 테스트받는 장치에 대한 고정 프로토콜 데이터를 수신하는 단계;
b) 프로토콜 고유 데이터를 수신하는 단계; 및
c) 상기 자동 테스트 장비의 컴포넌트를 이용하여, 상기 테스트받는 장치를 테스트하기 위해 상기 고정 프로토콜 데이터 및 상기 프로토콜 고유 데이터를 상기 지정된 장치 프로토콜 내에 어셈블(assemble)하는 단계를 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법. - 제17항에 있어서,
a) 프로토콜 정의 위치 번호를 수신하는 단계;
b) 상기 프로토콜 정의 위치 번호에 의해 지시된 테이블 위치로부터 상기 지정된 장치 프로토콜에 대한 고정 프로토콜 데이터를 선택하는 단계; 및
c) 상기 지정된 장치 프로토콜 내의 상기 고정 프로토콜 데이터 및 상기 프로토콜 고유 데이터를 사용하여 상기 테스트받는 장치를 테스트하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법. - 제18항에 있어서, 오퍼레이션 코드를 수신하고 상기 오퍼레이션 코드와 대응하는 테이블 위치로부터 액션 데이터를 검색하는 단계, 및 테스트받는 장치를 테스트하기 위해 상기 지정된 장치 프로토콜 내의 상기 고정 프로토콜 데이터 및 상기 프로토콜 고유 데이터와 함께 상기 액션 데이터를 공급하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제18항에 있어서, 상기 지정된 장치 프로토콜에 대한 상기 고정 프로토콜 데이터를 검색하는 단계는 액션 데이터를 검색하는 단계를 포함하고, 테스트하는 단계는 상기 액션 데이터를 사용하는 단계를 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제18항에 있어서, 프로토콜 정의 위치 번호들, 오퍼레이션 코드들, 및 프로토콜 고유 데이터를 순차적인 순서로 저장하고 공급하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제18항에 있어서, 상기 프로토콜 정의 위치 번호를 수신하고 상기 고정 프로토콜 데이터를 검색하는 단계는 상태 기계를 사용하는 단계를 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제22항에 있어서, 상기 프로토콜 정의 위치 번호를 수신하는 단계는 프로토콜 제어 저장 테이블로부터 상기 프로토콜 정의 위치 번호를 수신하는 단계를 포함하고, 상기 상태 기계를 사용하여 프로토콜 정의 테이블로부터 상기 고정 프로토콜 정의를 선택하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제23항에 있어서, 상기 상태 기계를 사용하여 상기 프로토콜 제어 저장 테이블로부터 오퍼레이션 코드를 수신하는 단계 및 상기 프로토콜 제어 저장 테이블로부터의 상기 오퍼레이션 코드에 대응하는 액션 테이블로부터 액션 데이터를 선택하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제24항에 있어서, 테스트하는 단계는 프로토콜 고유 데이터 저장 테이블로부터 상기 프로토콜 고유 데이터를 공급하는 단계를 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제25항에 있어서, 상기 고정 프로토콜 데이터, 상기 액션 데이터, 및 상기 프로토콜 고유 데이터를 핀 일렉트로닉스 로직 회로들(pin electronics logic circuits)에 공급하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제26항에 있어서, 테스트 패턴 명령들을 상기 프로토콜 제어 저장 테이블 및 상기 프로토콜 고유 데이터 저장 테이블 내에 로딩하는 단계를 추가로 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 제18항에 있어서, 상기 프로토콜 정의 위치를 수신하는 단계는 호스트 장치로부터 상기 프로토콜 정의 위치 번호를 수신하는 단계를 포함하는, 신호들 및 타이밍들을 생성하기 위한 방법.
- 범용 프로토콜 엔진(general purpose protocol engine)으로서,
a) DUT에 대한 프로토콜 정의를 포함하는 프로토콜 정의 저장 수단;
b) 상기 프로토콜 정의 저장 수단으로부터 프로토콜 정의를 선택하고 검색하기 위한 수단; 및
c) 상기 DUT를 테스트하기 위해 상기 프로토콜 정의에 따라 상기 DUT에 대한 고정 프로토콜 데이터와 프로토콜 고유 데이터를 조합함으로써 상기 프로토콜 정의를 사용하여 테스트 데이터를 제공하기 위한 수단
을 포함하는, 범용 프로토콜 엔진. - 제29항에 있어서, 상기 프로토콜 정의 저장 수단은 상기 DUT를 기능적으로 테스트하기 위해 필요한 상기 프로토콜 정의를 포함하는 프로토콜 정의 테이블을 포함하는, 범용 프로토콜 엔진.
- 제30항에 있어서, 테스트 데이터를 제공하기 위한 상기 수단은 데이터 저장 테이블 및 액션 테이블을 포함하는, 범용 프로토콜 엔진.
- 제29항에 있어서, 저장된 프로토콜 정의들의 그룹으로부터 상기 프로토콜 정의를 선택하고 검색하기 위한 상기 수단은 프로토콜 제어 저장 테이블 및 프로토콜 정의 테이블을 포함하고, 선택된 프로토콜을 이용하여 테스트 데이터를 제공하기 위한 상기 수단은 데이터 저장 테이블 및 실렉터(selector)를 포함하는, 범용 프로토콜 엔진.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/404,158 | 2009-03-13 | ||
US12/404,158 US8195419B2 (en) | 2009-03-13 | 2009-03-13 | General purpose protocol engine |
PCT/US2010/027247 WO2010105238A2 (en) | 2009-03-13 | 2010-03-12 | General purpose protocol engine |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120003886A KR20120003886A (ko) | 2012-01-11 |
KR101297513B1 true KR101297513B1 (ko) | 2013-08-16 |
Family
ID=42729156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117023960A KR101297513B1 (ko) | 2009-03-13 | 2010-03-12 | 범용 프로토콜 엔진 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8195419B2 (ko) |
EP (1) | EP2406646B1 (ko) |
JP (1) | JP5260758B2 (ko) |
KR (1) | KR101297513B1 (ko) |
CN (1) | CN102341717B (ko) |
MY (1) | MY169817A (ko) |
SG (1) | SG173675A1 (ko) |
WO (1) | WO2010105238A2 (ko) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201236395A (en) * | 2011-02-23 | 2012-09-01 | Novatek Microelectronics Corp | TMDS receiver system and BIST method thereof |
CN102655416A (zh) * | 2011-03-04 | 2012-09-05 | 联咏科技股份有限公司 | 最小化传输差分信号接收器***及其内建自我测试方法 |
US9521062B2 (en) * | 2011-09-23 | 2016-12-13 | Roche Diabetes Care, Inc. | Communication test framework |
US9910086B2 (en) | 2012-01-17 | 2018-03-06 | Allen Czamara | Test IP-based A.T.E. instrument architecture |
US9959186B2 (en) | 2012-11-19 | 2018-05-01 | Teradyne, Inc. | Debugging in a semiconductor device test environment |
US9116785B2 (en) * | 2013-01-22 | 2015-08-25 | Teradyne, Inc. | Embedded tester |
US10162007B2 (en) * | 2013-02-21 | 2018-12-25 | Advantest Corporation | Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently |
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 |
EP2773068B1 (en) | 2013-03-01 | 2019-04-10 | Viavi Solutions Deutschland GmbH | Test device and method |
WO2015018455A1 (en) * | 2013-08-09 | 2015-02-12 | Advantest (Singapore) Pte. Ltd. | Automated test equipment, instruction provider for providing a sequence of instructions, method for providing a signal to a device under test, method for providing a sequence of instructions and test system |
US10288685B2 (en) * | 2014-04-30 | 2019-05-14 | Keysight Technologies, Inc. | Multi-bank digital stimulus response in a single field programmable gate array |
US9679098B2 (en) | 2015-01-29 | 2017-06-13 | Mentor Graphics Corporation | Protocol probes |
US10536553B1 (en) * | 2015-09-04 | 2020-01-14 | Cadence Design Systems, Inc. | Method and system to transfer data between components of an emulation system |
US9883412B2 (en) * | 2016-01-04 | 2018-01-30 | Microsoft Technology Licensing, Llc | Verification of a wireless protocol implementation |
US10481206B2 (en) * | 2016-09-08 | 2019-11-19 | Texas Instruments Incorporated | Automatic test equipment (ATE) platform translation |
US10976361B2 (en) | 2018-12-20 | 2021-04-13 | Advantest Corporation | Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes |
KR102569335B1 (ko) * | 2019-01-22 | 2023-08-22 | 주식회사 아도반테스토 | 커맨드 오류 처리를 위해 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램 |
US11137910B2 (en) | 2019-03-04 | 2021-10-05 | Advantest Corporation | Fast address to sector number/offset translation to support odd sector size testing |
US11237202B2 (en) | 2019-03-12 | 2022-02-01 | Advantest Corporation | Non-standard sector size system support for SSD testing |
US10884847B1 (en) | 2019-08-20 | 2021-01-05 | Advantest Corporation | Fast parallel CRC determination to support SSD testing |
KR102440440B1 (ko) * | 2020-12-16 | 2022-09-06 | 와이아이케이 주식회사 | 반도체 소자 검사 장치 |
TWI770855B (zh) * | 2021-03-04 | 2022-07-11 | 凌華科技股份有限公司 | 裝置測試排序方法、裝置組態生成方法及其設備 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148528A (ja) | 1998-10-30 | 2000-05-30 | Infineon Technol North America Corp | 複数のjtag準拠集積回路のテスト装置および複数の集積回路をテストするためのテストシステム |
US20030033127A1 (en) | 2001-03-13 | 2003-02-13 | Lett Gregory Scott | Automated hypothesis testing |
US20080089682A1 (en) | 2004-07-15 | 2008-04-17 | Verizon Services Corp | Automated testing and analysis of dense wave division multiplexing (dwdm) switching devices |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7222261B2 (en) | 2002-06-19 | 2007-05-22 | Teradyne, Inc. | Automatic test equipment for design-for-test (DFT) and built-in-self-test circuitry |
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 |
US7216273B2 (en) | 2003-06-26 | 2007-05-08 | Teradyne, Inc. | Method for testing non-deterministic device data |
US7702767B2 (en) * | 2004-03-09 | 2010-04-20 | Jp Morgan Chase Bank | User connectivity process management system |
KR100628835B1 (ko) | 2005-02-26 | 2006-09-26 | 한국정보통신기술협회 | 시나리오 기반의 데이터 방송 수신기 시험 자동화 장치 및방법 |
US7233875B2 (en) * | 2005-11-21 | 2007-06-19 | Sigmatel, Inc. | Test set for testing a device and methods for use therewith |
US20090112548A1 (en) | 2007-10-30 | 2009-04-30 | Conner George W | A method for testing in a reconfigurable tester |
US20090113245A1 (en) | 2007-10-30 | 2009-04-30 | Teradyne, Inc. | Protocol aware digital channel apparatus |
-
2009
- 2009-03-13 US US12/404,158 patent/US8195419B2/en active Active
-
2010
- 2010-03-12 KR KR1020117023960A patent/KR101297513B1/ko active IP Right Grant
- 2010-03-12 EP EP10751521.5A patent/EP2406646B1/en active Active
- 2010-03-12 SG SG2011058336A patent/SG173675A1/en unknown
- 2010-03-12 CN CN2010800108730A patent/CN102341717B/zh active Active
- 2010-03-12 WO PCT/US2010/027247 patent/WO2010105238A2/en active Application Filing
- 2010-03-12 MY MYPI2011004070A patent/MY169817A/en unknown
- 2010-03-12 JP JP2011554261A patent/JP5260758B2/ja active Active
-
2012
- 2012-05-04 US US13/464,650 patent/US8521465B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148528A (ja) | 1998-10-30 | 2000-05-30 | Infineon Technol North America Corp | 複数のjtag準拠集積回路のテスト装置および複数の集積回路をテストするためのテストシステム |
US20030033127A1 (en) | 2001-03-13 | 2003-02-13 | Lett Gregory Scott | Automated hypothesis testing |
US20080089682A1 (en) | 2004-07-15 | 2008-04-17 | Verizon Services Corp | Automated testing and analysis of dense wave division multiplexing (dwdm) switching devices |
Also Published As
Publication number | Publication date |
---|---|
JP5260758B2 (ja) | 2013-08-14 |
US20120221285A1 (en) | 2012-08-30 |
KR20120003886A (ko) | 2012-01-11 |
WO2010105238A2 (en) | 2010-09-16 |
US8195419B2 (en) | 2012-06-05 |
US20100235135A1 (en) | 2010-09-16 |
EP2406646A2 (en) | 2012-01-18 |
EP2406646A4 (en) | 2014-08-06 |
JP2012520471A (ja) | 2012-09-06 |
WO2010105238A3 (en) | 2011-01-13 |
MY169817A (en) | 2019-05-16 |
EP2406646B1 (en) | 2017-07-19 |
CN102341717B (zh) | 2013-09-11 |
CN102341717A (zh) | 2012-02-01 |
US8521465B2 (en) | 2013-08-27 |
SG173675A1 (en) | 2011-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101297513B1 (ko) | 범용 프로토콜 엔진 | |
US8725489B2 (en) | Method for testing in a reconfigurable tester | |
US8127187B2 (en) | Method and apparatus of ATE IC scan test using FPGA-based system | |
US8805636B2 (en) | Protocol aware digital channel apparatus | |
US7370255B2 (en) | Circuit testing with ring-connected test instrument modules | |
US9495492B1 (en) | Implementing synchronous triggers for waveform capture in an FPGA prototyping system | |
JP2009503436A (ja) | 標準化テスト計測器シャーシ内の回路カード同期 | |
JPH0548494B2 (ko) | ||
JP2009503435A (ja) | 標準化テスト計測器シャーシ内の回路カード同期 | |
US8949752B2 (en) | System and method of emulating multiple custom prototype boards | |
US20060212768A1 (en) | Verification circuitry for master-slave system | |
CN111090039A (zh) | Fpga功能测试方法及装置 | |
Idris et al. | A VHDL implementation of UART design with BIST capability | |
US9804224B2 (en) | Integrated circuit and method of operating an integrated circuit | |
JP2009503434A (ja) | 標準化テスト計測器シャーシ内の回路カード同期 | |
JP2004157986A (ja) | 論理検証システムとfpgaモジュール | |
CN108155979B (zh) | 一种检测设备 | |
Dhar et al. | Coverage driven verification of I2C protocol using System Verilog | |
US20240118339A1 (en) | System, method for circuit validation, and system and method for facilitating circuit validation | |
Lyons et al. | The implementation and application of a protocol aware architecture | |
CN118035145A (zh) | 一种信号转换电路 | |
CN116594830A (zh) | 硬件仿真工具、调试方法和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
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: 20160720 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170718 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180718 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190718 Year of fee payment: 7 |