KR101993504B1 - Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기 - Google Patents

Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기 Download PDF

Info

Publication number
KR101993504B1
KR101993504B1 KR1020157025775A KR20157025775A KR101993504B1 KR 101993504 B1 KR101993504 B1 KR 101993504B1 KR 1020157025775 A KR1020157025775 A KR 1020157025775A KR 20157025775 A KR20157025775 A KR 20157025775A KR 101993504 B1 KR101993504 B1 KR 101993504B1
Authority
KR
South Korea
Prior art keywords
duts
fpga
test
data
dut
Prior art date
Application number
KR1020157025775A
Other languages
English (en)
Other versions
KR20160016753A (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 KR20160016753A publication Critical patent/KR20160016753A/ko
Application granted granted Critical
Publication of KR101993504B1 publication Critical patent/KR101993504B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • 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/31724Test controller, e.g. BIST state machine
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor

Abstract

반도체 디바이스들의 고속 시험을 수행할 수 있는 자동 시험 장비가 제시된다. 자동 시험 장비 장치는 시험기 프로세서를 포함하는 컴퓨터 시스템을 포함하고, 시험기 프로세서는 복수의 FPGA 컴포넌트들에 통신가능하게 연결된다. 복수의 FPGA 컴포넌트들의 각각은 메모리 모듈에 연결되고, 시험기 프로세서로부터의 커맨드들 및 데이터를 수신하도록 동작가능한 업스트림 포트; 복수의 DUT들로부터의 각각의 DUT와 통신하도록 동작가능한 다운스트림 포트; 및 복수의 하드웨어 가속기 회로들을 포함하고, 가속기 회로들의 각각은 복수의 DUT들 중 하나와 통신하도록 구성된다. 복수의 하드웨어 가속기 회로들의 각각은 복수의 DUT들 중 하나에 기록될 시험 패턴 데이터를 자동으로 생성하도록 구성가능한 패턴 생성기 회로, 및 복수의 DUT들 중 하나로부터 판독된 데이터를 복수의 DUT들 중 하나에 기록된 시험 패턴 데이터와 비교하도록 구성된 비교기 회로를 포함한다.

Description

FPGA 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기{A TESTER WITH ACCELERATION ON MEMORY AND ACCELERATION FOR AUTOMATIC PATTERN GENERATION WITHIN A FPGA BLOCK}
본 개시내용은 일반적으로 전자 디바이스 시험(electronic device testing) 시스템의 분야에 관한 것이고 보다 구체적으로는 피시험 디바이스(Device Under Test: DUT)들을 시험하는 전자 디바이스 시험 장비의 분야에 관한 것이다.
자동화된 시험 장비(Automated Test Equipment: ATE)는 반도체 디바이스 또는 전자 어셈블리에 대한 시험을 수행하는 임의의 시험 어셈블리(testing assembly)일 수 있다. 신속히 측정을 수행하는 자동화된 시험을 실행하고 이후에 분석될 수 있는 시험 결과를 생성하기 위해 ATE 어셈블리가 사용될 수 있다. ATE 어셈블리는, 계측기(meter)에 연결된 컴퓨터 시스템에서부터, 시스템 온 칩(System-On-Chip: SOC) 시험 또는 집적 회로 시험과 같은 반도체 웨이퍼 시험 및/또는 전자 부품을 자동으로 시험할 수 있는 다수의 상이한 시험 기구와 맞춤식 전용 컴퓨터 제어 시스템을 포함할 수 있는 복잡한 자동화된 시험 어셈블리까지 중 임의의 것일 수 있다. ATE 시스템은 디바이스가 설계된 대로 기능함을 보장하기 위해 디바이스를 시험하는 데에 소비되는 시간을 줄일 뿐만 아니라 주어진 디바이스 내의 불량 컴포넌트의 존재를 소비자가 알기 전에 판정하는 진단 툴(diagnostic tool)로서의 역할도 한다.
도 1은 어떤 전형적인 DUT, 가령 DRAM과 같은 반도체 메모리 디바이스를 시험하기 위한 종래의 자동 시험 장비 몸체(automatic test equipment body)(100)의 도식적인 블록도이다. ATE는 하드웨어 버스 어댑터 소켓(110A 내지 110N)을 구비한 ATE 몸체(100)를 포함한다. 특정한 통신 프로토콜, 가령 PCIe, USB, SATA, SAS 등에 특정한 하드웨어 버스 어댑터 카드(110A 내지 110N)는 ATE 몸체 상에 제공된 하드웨어 버스 어댑터 소켓에 연결되고 각자의 프로토콜에 특정한 케이블을 통하여 DUT와 인터페이스한다. ATE 몸체(100)에 내장된 하드웨어 컴포넌트를 제어하고, 하드웨어 버스 어댑터 카드를 통해 시험되고 있는 DUT와 통신하는 데에 필요한 커맨드 및 데이터를 생성하기 위해 ATE 몸체(100)는 연관된 메모리(108)를 구비한 시험기 프로세서(tester processor)(101)를 또한 포함한다. 시험기 프로세서(101)는 시스템 버스(130)를 거쳐 하드웨어 버스 어댑터 카드와 통신한다. 시험기 프로세스는 알고리즘 패턴 생성기(algorithmic pattern generator)(102) 및 비교기(106)를 포함하는 어떤 기능 블록을 포함하도록 프로그램될 수 있다. 대안적으로, 알고리즘 패턴 생성기(102) 및 비교기(106)는 ATE 몸체(100) 내에 꽂히는(plug) 확장 또는 어댑터 카드 상에 장착된 하드웨어 컴포넌트일 수 있다.
ATE 몸체(100)는 ATE 몸체(100)의 하드웨어 버스 어댑터 소켓 내에 꽂힌 하드웨어 버스 어댑터를 통해 ATE 몸체(100)에 연결된 DUT(112A 내지 112N)의 전기적 기능을 시험한다. 따라서, 시험기 프로세서(101)는 하드웨어 버스 어댑터에 고유한 프로토콜을 사용하여 DUT에 구동될 필요가 있는 시험 프로그램을 통신하도록 프로그램된다. 반면, ATE 몸체(100)에 내장된 다른 하드웨어 컴포넌트들은 시험기 프로세서(101) 내에서 동작하는 시험 프로그램에 따라 서로 신호를 통신하고 DUT와 신호를 통신한다.
시험기 프로세서(101)에 의해 구동되는 시험 프로그램은 알고리즘 패턴 생성기(102)에 의해 생성된 입력 신호를 DUT에 기록하는 것, 기록된 신호를 DUT로부터 판독하는 것 및 출력을 예상 패턴과 비교하기 위해 비교기(106)를 사용하는 것을 수반하는 기능 시험을 포함할 수 있다. 만약 출력이 입력과 매칭되지 않는 경우, 시험기 프로세서(101)는 DUT를 결함 있는 것으로 식별할 것이다. 예를 들어, 만약 DUT가 DRAM과 같은 메모리 디바이스인 경우, 시험 프로그램은 기록 동작(Write Operation)을 사용하여 DUT에 알고리즘 패턴 생성기(102)에 의해 생성된 데이터를 기록하고, 판독 동작(Read Operation)을 사용하여 DRAM으로부터 데이터를 판독하며, 비교기(106)를 사용하여 예상 비트 패턴을 판독된 패턴과 비교할 것이다.
종래의 시스템에서, 시험기 프로세서(101)는, 프로세서 상에 직접 소프트웨어로 프로그램된, 알고리즘 패턴 생성기(102) 및 비교기(106)와 같은, DUT를 시험하는 데에 사용되는 커맨드 및 시험 패턴을 생성하는 기능 로직 블록을 가진다. 그러나, 몇몇 경우에는 사용자의 요구에 따라 로직 회로를 프로그램할 수 있는 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC) 유형 반도체 디바이스인 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array: FPGA) 상에 비교기(106)와 같은 어떤 기능 블록이 구현될 수 있다.
종래의 시스템에서 사용된 FPGA는 시험기 프로세서(101)가 커맨드 및 시험 패턴을 FPGA에 전송하는 것에 의존하는데, FPGA는 이를 차례로 DUT로 중계한다. 커맨드 및 시험 패턴을 생성하는 것을 시험기 프로세서가 담당하기 때문에, 주어진 ATE 몸체로 시험될 수 있는 DUT의 개수는 시험기 프로세서의 처리 능력에 의해 한정된다. 시험기 프로세서가 모든 커맨드 및 시험 패턴을 생성하는 경우, 임의의 FPGA 디바이스 및 하드웨어 버스 어댑터 소켓을 포함하는 다양한 하드웨어 컴포넌트에 시험기 프로세서를 연결하는 시스템 버스(130)에 대한 대역폭 제약은 또한 동시에 시험될 수 있는 DUT의 개수에 상한을 둔다.
또한, 종래의 시스템에서, DUT와 통신하기 위해 사용되는 통신 프로토콜은 고정되는데, ATE 몸체(100) 내에 꽂히는 하드웨어 버스 어댑터 카드가 오직 하나의 프로토콜로 통신하도록 설계되고 상이한 프로토콜로 통신하도록 재프로그램될 수 없는 단일 목적 디바이스이기 때문이다. 예를 들어, PCIe 디바이스를 시험하도록 구성된 ATE 몸체는 PCIe 프로토콜만을 지원하는 하드웨어 버스 어댑터 카드가 몸체 내에 꽂힐 것이다. 상이한 프로토콜을 지원하는 DUT를 시험하기 위해서, 사용자는 보통 PCIe 하드웨어 버스 어댑터 카드를 다른 프로토콜을 지원하는 버스 어댑터 카드로 대체하는 것이 필요할 것이다. PCIe 하드웨어 버스 어댑터 카드가 다른 프로토콜을 지원하는 카드로 물리적으로 대체되지 않는 한, 그러한 시스템은 PCIe 프로토콜을 지원하는 DUT만을 시험할 수 있다. 그러므로, 시험 현장에서(on the test floor), 기존의 어댑터 카드가 지원하는 것과는 상이한 프로토콜을 구동하는 DUT가 시험될 필요가 있는 경우에는 하드웨어 버스 어댑터 카드를 교체하는 데 상당한 시간이 소비된다.
이에 따라, 전술된 시스템에 있는 문제점을 다룰 수 있는 시험기 아키텍처(tester architecture)가 필요하다. 시험기 프로세서 상에서의 처리 로드 및 시스템 버스에 대한 대역폭 요구가 최소로 유지될 수 있도록 커맨드 및 시험 패턴 생성 기능이 FPGA 상으로 이전될 수 있는 시험 아키텍처가 필요하다. 그리고 이는 시험기 프로세서가 전체 처리 로드를 감당했고 시스템 버스가 ATE 몸체에 연결된 모든 DUT를 위해 시험 데이터 및 커맨드를 전달했던 이전의 구성보다는 더 많은 DUT가 동시에 시험가능하게 할 것이다.
또한, DUT와 통신하기 위해 사용되는 프로토콜이 재구성가능하도록 통신관련 프로토콜 엔진이 FPGA 디바이스 상에 프로그램될 수 있는 시험 아키텍처가 필요하다. 이는 단일 목적 하드웨어 버스 어댑터 카드가 필요 없게 할 것인데, 프로토콜 엔진이 버스 어댑터 카드 상의 하드웨어 내에 상주하는 것이 아니라 FPGA 디바이스 상의 프로그램가능 로직 블록 내에 상주할 것이기 때문이다.
설명된 시스템의 이로운 양상을 사용하되, 그 각자의 한정 없이, 본 발명의 실시예는 이 문제점을 다루는 신규한 해결책을 제공한다.
일 실시예에서, 자동화된 시험 장비(Automated Test Equipment: ATE) 장치가 제공된다. 장치는 시험기 프로세서를 포함하는 컴퓨터 시스템을 포함하고, 시험기 프로세서는 복수의 FPGA 컴포넌트에 통신가능하게 연결된다. 복수의 FPGA 컴포넌트들 각각은 메모리 모듈에 연결되고, 시험기 프로세서로부터의 커맨드들 및 데이터를 수신하도록 동작가능한 업스트림 포트; 복수의 DUT들로부터의 각각의 DUT와 통신하도록 동작가능한 다운스트림 포트; 및 복수의 하드웨어 가속기 회로를 포함하고, 가속기 회로들 각각은 복수의 DUT들 중 하나와 통신하도록 구성된다. 복수의 하드웨어 가속기 회로들 각각은 복수의 DUT들 중 하나에 기록될 시험 패턴 데이터를 자동으로 생성하도록 구성가능한 패턴 생성기 회로, 및 복수의 DUT들 중 하나로부터 판독된 데이터를 복수의 DUT들 중 하나에 기록된 시험 패턴 데이터와 비교하도록 구성된 비교기 회로를 포함한다.
다른 실시예에서, ATE를 사용하여 시험하는 방법이 제공되며, 방법은 모듈의 복수의 인스턴스화된 FPGA 블록들에 연결된 시험기 프로세서를 사용하여 복수의 DUT로 데이터를 라우팅하기 위한 커맨드들을 생성하는 것을 포함한다. 더욱이, 방법은 복수의 인스턴스화된 FPGA 블록들 중 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 패턴 생성기 회로를 사용하여 시험 패턴 데이터를 자동으로 생성하는 것을 포함한다. 다음으로, 방법은 시험기 프로세서에 의해 생성된 커맨드들에 따라 시험 패턴 데이터를 복수의 DUT들로부터의 제1 DUT로 라우팅하고, 시험기 프로세서에 의해 생성된 커맨드들에 따라 제1 DUT로부터 데이터를 판독하는 것을 포함한다. 마지막으로, 방법은 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 비교기 회로를 사용하여, 제1 DUT에 기록된 시험 패턴 데이터를 제1 DUT로부터 판독된 데이터와 비교하는 것을 포함한다.
일 실시예에서, ATE 장치가 제공된다. 장치는 시험기 프로세서를 포함하는 컴퓨터 시스템을 포함하고, 시험기 프로세서는 복수의 FPGA 컴포넌트들에 통신가능하게 연결된다. 복수의 FPGA 컴포넌트들 각각은 메모리 모듈에 연결되고, 시험기 프로세서로부터의 커맨드들 및 데이터를 수신하도록 동작가능한 업스트림 포트; 복수의 DUT들로부터의 각각의 DUT와 통신하도록 동작가능한 다운스트림 포트; 및 복수의 하드웨어 가속기 회로들을 포함하고, 가속기 회로들 각각은 복수의 DUT들 중 하나와 통신하도록 구성된다. 복수의 하드웨어 가속기 회로들 각각은 메모리 모듈로부터 복수의 DUT들 중 하나에 기록될 시험 패턴 데이터를 판독하도록 구성된 메모리 제어 회로, 및 복수의 DUT들 중 하나로부터 판독된 데이터를 복수의 DUT들 중 하나에 기록된 시험 패턴 데이터와 비교하도록 구성된 비교기 회로를 포함한다.
다른 실시예에서, ATE를 사용하여 시험하는 방법이 제공되며, 방법은 모듈의 복수의 인스턴스화된 FPGA 블록에 연결된 시험기 프로세서를 사용하여 복수의 DUT들로 데이터를 라우팅하기 위한 커맨드들을 생성하는 것을 포함한다. 더욱이, 방법은 복수의 인스턴스화된 FPGA 블록들 중 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 메모리 제어 회로를 사용하여, 복수의 인스턴스화된 FPGA 블록들 중 제1 인스턴스화된 FPGA 블록에 연결된 메모리 모듈로부터 시험 패턴 데이터를 자동으로 판독하는 것을 포함한다. 다음으로, 방법은 시험기 프로세서에 의해 생성된 커맨드들에 따라 시험 패턴 데이터를 복수의 DUT로부터의 제1 DUT로 라우팅하고, 시험기 프로세서에 의해 생성된 커맨드들에 따라 제1 DUT로부터 데이터를 판독하는 것을 포함한다. 마지막으로, 방법은 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 비교기 회로를 사용하여, 제1 DUT에 기록된 시험 패턴 데이터를 제1 DUT로부터 판독된 데이터와 비교하는 것을 포함한다.
첨부된 도면과 더불어 이하의 상세한 설명은 본 발명의 본질 및 이점의 더 나은 이해를 제공할 것이다.
동일한 참조 번호가 동일한 구성요소를 나타내는 첨부된 도면의 그림 내에 본 발명의 실시예들이 한정으로서가 아니라 예로서 도시된다.
도 1은 전형적인 피시험 디바이스(Device Under Test: DUT)를 시험하기 위한 종래의 자동 시험 장비 몸체의 도식적인 블록도이고,
도 2는 본 발명의 일 실시예에 따라 시스템 제어기, 사이트 모듈 및 DUT 간의 상호연결의 고수준(high level)의 도식적인 블록도이며,
도 3은 본 발명의 일 실시예에 따라 사이트 모듈 및 그것과 시스템 제어기 및 DUT와의 상호연결의 상세화된 도식적인 블록도이고,
도 4는 본 발명의 일 실시예에 따라 도 2의 인스턴스화된 FPGA 시험기 블록의 상세화된 도식적인 블록도이며,
도 5는 본 발명의 일 실시예에 따라 DUT를 시험하는 예시적인 방법의 고수준 흐름도이고,
도 6은 도 5의 연속이고 본 발명의 일 실시예에서 바이패스 모드로 DUT를 시험하는 예시적인 방법의 흐름도이며,
도 7은 도 5의 연속이고 본 발명의 일 실시예에서 하드웨어 가속기 패턴 생성기 모드로 DUT를 시험하는 예시적인 방법의 흐름도이고,
도 8은 도 5의 연속이고 본 발명의 일 실시예에서 하드웨어 가속기 메모리 모드로 DUT를 시험하는 예시적인 방법의 흐름도이며,
도 9는 도 5의 연속이고 본 발명의 일 실시예에서 하드웨어 가속기 패킷 형성기 모드로 DUT를 시험하는 예시적인 방법의 흐름도이고,
도 10(a)는 본 발명의 일 실시예에서 도 6에서의 방법에 따라 형성된 예시적인 패킷의 블록도 표현이며,
도 10(b)는 본 발명의 일 실시예에서 도 7에서의 방법에 따라 형성된 예시적인 패킷의 블록도 표현이고,
도 10(c)는 본 발명의 일 실시예에서 도 8에서의 방법에 따라 형성된 예시적인 패킷의 블록도 표현이며,
도 10(d)는 본 발명의 일 실시예에서 도 9에서의 방법에 따라 형성된 예시적인 패킷의 블록도 표현이다.
도면에서, 동일한 명칭을 가지는 구성요소는 동일하거나 유사한 기능을 가진다.
실시예들에 대한 언급이 이제 상세히 이루어질 것인데, 첨부된 도면에 이의 예들이 도시된다. 도면과 함께 실시예들이 기술될 것이나, 그것들은 실시예들을 한정하고자 의도된 것이 아님이 이해될 것이다. 반대로, 실시예들은 대안, 수정 및 균등물을 포함하고자 의도된 것이다. 나아가, 이하의 상세한 설명에서, 철저한 이해를 제공하기 위해서 많은 구체적인 세부사항이 개진된다. 다만, 실시예들은 이 구체적인 세부사항 없이 실시될 수 있다는 점이 통상의 기술자에 의해 인식될 것이다. 다른 경우, 실시예들의 양상들을 불필요하게 모호하게 하지 않도록 잘 알려진 방법, 절차, 컴포넌트 및 회로는 상세히 기술되지 않았다.
표기법 및 명명법 부문(NOTATION AND NOMENCLATURE SECTION)
후속하는 상세한 설명의 몇몇 영역은 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 절차, 로직 블록, 처리 및 다른 상징적 표현의 측면에서 제시된다. 이들 설명 및 표현은 데이터 처리 기술의 당업자에 의해 그의 성과의 실체를 다른 당업자에게 가장 효과적으로 전달하기 위해 사용되는 수단이다. 본 출원에서, 절차, 로직 블록, 프로세스 또는 유사한 것은 원하는 결과로 이어지는 자기 부합적인 일련의 단계 또는 명령어(a self-consistent sequence of steps or instructions)인 것으로 여겨진다. 그 단계는 물리적 양의 물리적 조작을 요구하는 것이다. 반드시 그런 것은 아니지만 대체로, 이 양들은 컴퓨터 시스템 내에 저장, 전송, 조합, 비교 및 그렇지 않으면 조작될 수 있는 전기 또는 자기 신호의 형태를 취한다.
그러나, 이들 용어 및 유사한 용어 전부는 적절한 물리적 양들과 연관될 것이며 이 양들에 적용되는 편리한 라벨에 불과하다는 점에 유념하여야 한다. 이하의 논의로부터 명백한 바와 같이 별도로 명확히 언급되지 않는 한, 본 발명을 통틀어, "중단하기"(aborting), "받아들이기"(accepting), "액세스하기"(accessing), "추가하기"(adding), "조절하기"(adjusting), "분석하기"(analyzing), "적용하기"(applying), "조립하기"(assembling), "할당하기"(assigning), "밸런싱"(balancing), "차단하기"(blocking), "계산하기"(calculating), "포착하기"(capturing), "조합하기"(combining), "비교하기"(comparing), "수집하기"(collecting), "만들기"(creating), "디버깅"(debugging), "정의하기"(defining), "도시하기"(depicting), "검출하기"(detecting), "판정하기"(determining), "디스플레이하기"(displaying), "수립하기"(establishing), "실행하기"(executing), "플리핑"(flipping), "생성하기"(generating), "그룹핑"(grouping), "은닉하기"(hiding), "식별하기"(identifying), "개시하기"(initiating), "상호작용하기"(interacting), "수정하기(modifying), "모니터하기"(monitoring), "이동시키기"(moving), "출력하기"(outputting), "수행하기"(performing), "두기"(placing), "제시하기"(presenting), "처리하기"(processing), "프로그램하기"(programming), "질의하기"(querying), "제거하기"(removing), "반복하기"(repeating), "재개하기"(resuming), "샘플링"(sampling), "시뮬레이션하기"(simulating), "정렬하기"(sorting), "저장하기"(storing), "차감하기"(subtracting), "중지하기"(suspending), "추적하기"(tracking), "변형시키기"(transforming), "차단해제하기"(unblocking), "사용하기"(using) 또는 유사한 것과 같은 용어를 활용하는 논의는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스(컴퓨터 시스템의 레지스터 및 메모리 내에 물리적 (전자적) 양으로서 표현된 데이터를 컴퓨터 시스템 메모리, 레지스터, 또는 다른 그러한 정보 저장, 송신 또는 디스플레이 디바이스 내에 물리적 양으로서 유사하게 표현되는 다른 데이터로 조작하고 변형시킴)의 액션 및 프로세스를 나타낸다는 점이 인식된다.
아래의 설명은 하나 이상의 모듈을 포함할 수 있는 컴퓨터 및 다른 디바이스에 대한 논의를 제공한다. 본 명세서에서 사용되는 바와 같이, "모듈" 또는 "블록"이라는 용어는 소프트웨어, 펌웨어, 하드웨어 및/또는 이들의 다양한 조합을 나타내는 것으로 이해될 수 있다. 블록 및 모듈은 예시적이라는 점에 유의한다. 블록 또는 모듈은 다양한 애플리케이션을 지원하도록 조합, 통합, 분리 및/또는 복제될 수 있다. 또한, 특정한 모듈 또는 블록에서 수행되는 것으로 본 명세서에서 기술된 기능은 기술된 특정한 모듈 또는 블록에서 수행되는 기능 대신에 또는 이에 더하여 하나 이상의 다른 모듈 또는 블록에서 및/또는 하나 이상의 다른 디바이스에 의해 수행될 수 있다. 또한, 모듈 또는 블록은 서로에 대해 로컬(local)이거나 원격(remote)인 다수의 디바이스 및/또는 다른 컴포넌트에 걸쳐 구현될 수 있다. 추가적으로, 모듈 또는 블록은 하나의 디바이스로부터 이동되어 다른 디바이스에 추가될 수 있고/있거나 양 디바이스 모두에 포함될 수 있다. 본 발명의 임의의 소프트웨어 구현은 가령 메모리 디바이스, 플로피 디스크, 콤팩트 디스크(Compact Disk: CD), 디지털 다기능 디스크(Digital Versatile Disk: DVD), 또는 컴퓨터 코드를 저장할 수 있는 다른 디바이스와 같은 하나 이상의 저장 매체 내에 유형적으로 구현될(tangibly embodied) 수 있다.
본 명세서에서 사용된 용어는 단지 특정한 실시예를 기술할 목적의 것이며 본 발명의 범주를 한정하도록 의도된 것은 아니다. 이 개시를 통틀어 사용된 바와 같이, 단수 형태 "한", "일" 및 "그"는 맥락이 명백히 달리 진술하지 않는 한 복수형의 참조를 포함한다. 그러므로, 가령 "한 모듈"에 대한 언급은 단일의 모듈뿐만 아니라 복수의 그러한 모듈과, 당업자에게 알려진 이의 균등물을 포함한다.
FPGA 블록 내 혼합된 프로토콜 엔진을 구비한 시험기(A TESTER WITH MIXED PROTOCOL ENGINE IN A FPGA BLOCK)
시험 처리량(test throughput)은 보통 다수의 방식으로 개선될 수 있다. DUT의 시험 시간(testing time)을 감소시키는 한 가지 방식은 이전에 범용 시험기 프로세서 상에서 소프트웨어로 수행된 기능을 FPGA 디바이스 상에 구현된 하드웨어 가속기로 이전하는 것에 의한다. 다른 방식은, 예컨대 많은 상이한 유형의 프로토콜을 지원하는 DUT가 어떠한 하드웨어 컴포넌트도 대체하거나 교체할 필요 없이 동일한 하드웨어로써 시험될 수 있도록 하드웨어를 구성하는 것에 의해, 지배적인 하드웨어 및 시간 제약 하에서 시험될 수 있는 피시험 디바이스(Device Under Test: DUT)의 개수 및 유형을 증가시키는 것에 의한다. 본 발명의 실시예들은 자동 시험 장비의 하드웨어에서 시험 효율성을 그렇게 개선하는 것에 지향된다.
도 2는 본 발명의 일 실시예에 따라 내장된 기능 모듈을 구비한 FPGA 디바이스를 통해 피시험 디바이스(DUT)들에 시험기 프로세서가 연결된 자동 시험 장비(Automatic Test Equipment: ATE) 장치(200)의 예시적인 고수준 블록도이다. 일 실시예에서, ATE 장치(200)는 다수의 DUT를 동시에 시험하는 것이 가능한 임의의 시험 시스템(testing system) 내에 구현될 수 있다.
도 2를 참조하면, 본 발명의 일 실시예에 따라 더욱 효율적으로 반도체 디바이스를 시험하기 위한 ATE 장치(200)는 시스템 제어기(201), 네트워크 스위치(202)(시스템 제어기를 사이트 모듈(site module) 보드(230A 내지 230N)에 연결함), FPGA 디바이스(211A 내지 211M)(인스턴스화된 FPGA 시험기 블록(210A 내지 210N)을 포함함), 메모리 블록 모듈(240A 내지 240M)(메모리 블록 각각은 FPGA 디바이스(211A 내지 211M) 중 하나에 연결됨) 및 피시험 디바이스(DUT)(220A 내지 220N)(각각의 피시험 디바이스(220A 내지 220N)는 인스턴스화된 FPGA 시험기 블록(210A 내지 210N) 중 하나에 연결됨)를 포함한다.
일 실시예에서, 시스템 제어기(201)는 컴퓨터 시스템, 가령 ATE의 사용자가 시험 프로그램을 로드하고 ATE(200)에 연결된 DUT를 위한 시험을 행하도록 사용자 인터페이스를 제공하는 개인용 컴퓨터(Personal Computer: PC)일 수 있다. Verigy Stylus™ 운영 체제는 디바이스 시험 중에 보통 사용되는 시험 소프트웨어의 하나의 예이다. 그것은 사용자에게 그래픽 사용자 인터페이스(graphical user interface)를 제공하는데, 이로부터 시험을 구성하고 제어한다. 그것은 시험 흐름(test flow)을 제어하고, 시험 프로그램의 상태를 제어하며, 어느 시험 프로그램이 구동 중인지 판정하고, 시험 결과와 다른 데이터(시험 흐름에 연관된 것)를 로그(log)하는 기능을 포함할 수도 있다. 일 실시예에서, 시스템 제어기는 512개에 이르는 DUT에 연결되고 이를 제어할 수 있다.
일 실시예에서, 시스템 제어기(201)는 이더넷(Ethernet) 스위치와 같은 네트워크 스위치를 통해 사이트 모듈 보드(230A 내지 230N)에 연결될 수 있다. 다른 실시예에서, 네트워크 스위치는 예컨대 파이버 채널(Fibre Channel), 802.11 또는 ATM과 같은 상이한 프로토콜과 호환가능할 수 있다.
일 실시예에서, 사이트 모듈 보드(230A 내지 230N) 각각은 DUT(220A 내지 220N)가 로드되는 맞춤제작된(custom-built) 로드 보드 고정부에, 그리고 시스템 제어기(201)(이로부터 시험 프로그램이 수신됨)에도 부착되는 평가 및 개발 목적으로 사용되는 별개의 독립형 보드일 수 있다. 다른 실시예에서, 사이트 모듈 보드는 플러그인 확장 카드로서 또는 직접 시스템 제어기(201)의 섀시(chassis) 내에 꽂히는 도터 보드(daughter board)로서 구현될 수 있다.
사이트 모듈 보드(230A 내지 230N)는 각각 적어도 하나의 시험기 프로세서(204) 및 적어도 하나의 FPGA 디바이스를 포함할 수 있다. 사이트 모듈 보드 상의 시험기 프로세서(204) 및 FPGA 디바이스(211A 내지 211M)는 시스템 제어기(201)로부터 수신된 시험 프로그램 명령어에 따라 각각의 시험 케이스(test case)를 위한 시험 방법을 행한다. 일 실시예에서 시험기 프로세서는 상업적으로 이용가능한 Intel 8086 CPU 또는 임의의 다른 잘 알려진 프로세서일 수 있다. 또한, 시험기 프로세서는 Ubuntu OS x64 운영 체제 상에서 동작 중이고 시험 방법을 행하기 위해 Core Software를 구동 중일 수 있는데, 이는 그것으로 하여금 시스템 제어기 상에서 구동되는 Stylus 소프트웨어와 통신하도록 한다. 시험기 프로세서(204)는 시스템 제어기로부터 수신된 시험 프로그램에 기반하여 사이트 모듈 상의 FPGA 디바이스 및 사이트 모듈에 연결된 DUT를 제어한다.
시험기 프로세서(204)는 버스(212)를 거쳐 FPGA 디바이스에 연결되며 이와 통신할 수 있다. 일 실시예에서, 시험기 프로세서(204)는 별도의 전용 버스(dedicated bus)를 거쳐 FPGA 디바이스(211A 내지 211M) 각각과 통신한다. 일 실시예에서, 시험기 프로세서(204)는 FPGA 디바이스에 할당된 최소의 처리 기능으로써 FPGA를 통해 투명하게(transparently) DUT(220A 내지 220N)의 시험을 제어할 수 있다. 이 실시예에서, 버스(212)의 데이터 트래픽 용량(data traffic capacity)은 신속히 고갈될 수 있는데 시험기 프로세서에 의해 생성된 모든 커맨드 및 데이터가 버스를 거쳐 FPGA 디바이스로 통신될 필요가 있기 때문이다. 다른 실시예에서, 시험기 프로세서(204)는 FPGA 디바이스에 DUT의 시험을 제어하는 기능을 할당하는 것에 의해 처리 로드를 공유할 수 있다. 이 실시예에서, 버스(212) 상의 트래픽은 감소되는데 FPGA 디바이스가 자신의 커맨드 및 데이터를 생성할 수 있기 때문이다.
일 실시예에서, FPGA 디바이스(211A 내지 211M) 각각은 자신의 전용 메모리 블록(240A 내지 240M)에 연결된다. 이 메모리 블록들은 무엇보다도 DUT에 기록된 시험 패턴 데이터를 저장하기 위해 활용될 수 있다. 일 실시예에서, FPGA 디바이스 각각은 본 명세서에서 또한 기술된 바와 같이 통신관련 프로토콜 엔진 및 하드웨어 가속기의 구현을 포함하는 기능을 수행하기 위한 기능 모듈을 구비한 두 개의 인스턴스화된 FPGA 시험기 블록(210A 내지 210B)을 포함할 수 있다. 메모리 블록(240A 내지 240M)은 각각 하나 이상의 메모리 모듈을 포함할 수 있는데, 메모리 블록 내의 각 메모리 모듈은 인스턴스화된 FPGA 시험기 블록(210A 내지 210B) 중 하나 이상에 전용일 수 있다. 따라서, 인스턴스화된 FPGA 시험기 블록(210A 내지 210B) 각각은 메모리 블록(240A) 내의 자신의 전용 메모리 모듈에 연결될 수 있다. 다른 실시예에서, 인스턴스화된 FPGA 시험기 블록(210A 내지 210B)은 메모리 블록(240A) 내의 메모리 모듈 중 하나를 공유할 수 있다.
또한, 시스템 내 DUT(220A 내지 220N) 각각은 "DUT당 시험기"(tester per DUT) 구성에서 전용의 인스턴스화된 FPGA 시험기 블록(210A 내지 210N)에 연결될 수 있는데, 각 DUT는 자신의 시험기 블록을 가진다. 이는 각 DUT를 위한 별개의 시험 실행을 허용한다. 그러한 구성 내의 하드웨어 리소스는 최소의 하드웨어 공유로써 개별 DUT를 지원하는 방식으로 설계된다. 이 구성은 또한 많은 DUT가 병렬로 시험되도록 하는데, 각 DUT는 자신의 전용 FPGA 시험기 블록에 연결되고 상이한 시험 프로그램을 구동하고 있을 수 있다.
도 2에 도시된 본 발명의 실시예의 아키텍처는 여러 이점을 가진다. 우선, 시스템 내의 프로토콜 특정 하드웨어 버스 어댑터 소켓 및 카드가 필요 없게 하는데, 통신 프로토콜 모듈이 직접 FPGA 디바이스 내의 인스턴스화된 FPGA 시험기 블록 상에 프로그램될 수 있기 때문이다. 인스턴스화된 시험기 블록은 DUT가 지원하는 임의의 프로토콜로 DUT와 통신하도록 구성될 수 있다. 따라서, 만약 상이한 프로토콜 지원이 있는 DUT들이 시험될 필요가 있는 경우, 그것들은 동일한 시스템에 연결될 수 있고 FPGA들은 연관된 프로토콜들에 대한 지원으로 재프로그램될 수 있다. 결과적으로, 하나의 ATE 몸체는 많은 상이한 유형의 프로토콜을 지원하는 DUT를 시험하도록 쉽게 구성될 수 있다.
일 실시예에서, 새 프로토콜이 어떠한 종류의 하드웨어 상호작용도 없이 시스템 제어기(201) 상의 캐시(cache)로부터 단순한 비트스트림(bit-stream) 다운로드를 통하여 FPGA 상에 직접 다운로드되고 설치될 수 있다. 예를 들어, ATE 장치(200) 내의 FPGA(211A 내지 211M)는 초기에 PCIe 디바이스를 시험하도록 PCIe 프로토콜로써 구성되고 이후에는 SATA 디바이스를 시험하도록 소프트웨어 다운로드를 통하여 재구성될 수 있다. 또한, 만약 새 프로토콜이 릴리즈되는(released) 경우, FPGA는 시스템 내의 모든 하드웨어 버스 어댑터 카드를 물리적으로 교체(switch)해야 하는 것 대신에 비트스트림 다운로드를 통하여 그 프로토콜로 쉽게 구성될 수 있다. 끝으로, 만약 비표준적(non-standard) 프로토콜이 구현될 필요가 있는 경우, FPGA는 그래도 그러한 프로토콜을 구현하도록 구성될 수 있다.
다른 실시예에서, FPGA(211A 내지 211M)는 한 개보다 많은 통신관련 프로토콜을 구동하도록 구성될 수 있는데, 이 프로토콜들은 또한 시스템 제어기(201)로부터 다운로드되고 소프트웨어를 통해 구성될 수 있다. 예를 들면, 인스턴스화된 FPGA 시험기 블록(210A)은 PCIe 프로토콜을 구동하도록 구성될 수 있는 반면 인스턴스화된 FPGA 시험기 블록(210B)은 SATA 프로토콜을 구동하도록 구성될 수 있다. 이는 시험기 하드웨어로 하여금 상이한 프로토콜들을 동시에 지원하는 DUT들을 시험하게 한다. FPGA(211A)는 이제 PCIe 및 SATA 프로토콜 양자 모두를 지원하는 DUT를 시험하기 위해 연결될 수 있다. 대안적으로, 그것은 두 개의 상이한 DUT(하나의 DUT는 PCIe 프로토콜을 지원하고 다른 DUT는 SATA 프로토콜을 지원함)를 시험하기 위해 연결될 수 있다.
도 2에 제시된 아키텍처의 다른 주된 이점은 커맨드 및 시험 패턴 생성 기능을 FPGA 디바이스에 분산함으로써 시험기 프로세서(204) 상의 처리 로드를 줄인다는 것이다(여기서 각 DUT는 그것에 특정한 시험 프로그램을 구동하는 전용 FPGA 모듈을 가짐). 예를 들면, 인스턴스화된 FPGA 시험기 블록(210A)은 DUT(220A)에 연결되고 DUT(220A)에 특정한 시험 프로그램을 구동한다. 그러한 구성의 하드웨어 리소스는 최소의 하드웨어 공유로써 개별 DUT를 지원하는 방식으로 설계된다. 이 "DUT당 시험기" 구성은 또한 더 많은 DUT가 프로세서당 시험되게 하고 더 많은 DUT가 병렬로 시험되게 한다. 나아가, FPGA가 어떤 모드에서 자신의 커맨드 및 시험 패턴을 생성하는 것이 가능하므로, 시험기 프로세서를 다른 하드웨어 컴포넌트들(FPGA 디바이스들, 디바이스 전력 공급부(Device Power Supply: DPS)들 및 DUT들을 포함함)과 연결하는 버스(212)에 대한 대역폭 요구 역시 감소된다. 결과적으로 이전의 구성보다는 더 많은 DUT가 동시에 시험될 수 있다.
도 3은 본 발명의 일 실시예에 따라 사이트 모듈 및 그것과 시스템 제어기 및 DUT와의 상호연결의 더욱 상세화된 도식적인 블록도를 제공한다. 도 3을 참조하면, 일 실시예에서 ATE 장치의 사이트 모듈들은 시험기 슬라이스(tester slice)들(340A 내지 340N) 상에 기계적으로 구성될 수 있는데, 각 시험기 슬라이스는 적어도 하나의 사이트 모듈을 포함한다. 어떤 전형적인 실시예에서, 각 시험기 슬라이스는 두 개의 사이트 모듈 및 두 개의 디바이스 전력 공급부 보드를 포함할 수 있다. 예를 들어, 도 3의 시험기 슬라이스(340A)는 사이트 모듈(310A 및 310B) 및 디바이스 전력 공급부 보드(332A 및 332B)를 포함한다. 그러나, 한 시험기 슬라이스 상에 구성될 수 있는 디바이스 전력 공급부 보드 또는 사이트 모듈의 개수에는 어떠한 한정도 없다. 시험기 슬라이스(340)는 네트워크 스위치(302)를 통해 시스템 제어기(301)에 연결된다. 시스템 제어기(301) 및 네트워크 스위치(302)는 각각 도 2의 구성요소들(201 및 202)과 동일한 기능을 수행한다. 네트워크 스위치(302)는 32 비트 폭의 버스로써 사이트 모듈 각각에 연결될 수 있다.
디바이스 전력 공급부 보드(332A 내지 332B) 각각은 사이트 모듈(310A 내지 310B) 중 하나로부터 제어될 수 있다. 시험기 프로세서(304) 상에서 구동되는 소프트웨어는 특정한 사이트 모듈에 디바이스 전력 공급부를 할당하도록 구성될 수 있다. 일 실시예에서, 예를 들면, 사이트 모듈(310A 내지 310B) 및 디바이스 전력 공급부(332A 내지 332B)는 고속 직렬 프로토콜, 가령 주변 컴포넌트 상호연결 익스프레스(Peripheral Component Interconnect Express: PCIe), 직렬 AT 부착(Serial AT Attachment: SATA) 또는 직렬 부착 SCSI(Serial Attached SCSI: SAS)를 사용하여 서로와 통신하도록 구성된다.
일 실시예에서, 각 사이트 모듈은 도 3에 도시된 바와 같이 두 개의 FPGA로써 구성된다. 도 3의 실시예에서 FPGA(316 및 318) 각각은 시험기 프로세서(304)에 의해 제어되고 도 2의 FPGA(211A 내지 211M)와 유사한 기능을 수행한다. 시험기 프로세서(304)는 도 3에서 시스템 버스(330 및 332)에 의해 나타내어진 바와 같이 PCIe와 같은 8개 레인(lane)의 고속 직렬 프로토콜 인터페이스를 사용하여 FPGA 각각과 통신할 수 있다. 다른 실시예에서, 시험기 프로세서(304)는 상이한 고속 직렬 프로토콜, 가령 직렬 AT 부착(Serial AT Attachment: SATA) 또는 직렬 부착 SCSI(Serial Attached SCSI: SAS)를 사용하여 FPGA와 통신할 수도 있다.
FPGA(316 및 318)는 각각 메모리 모듈(308 및 304)과 연결되는데, 메모리 모듈은 도 2의 메모리 블록(240A 내지 240N)과 유사한 기능을 수행한다. 메모리 모듈은 FPGA 디바이스 및 시험기 프로세서(304) 모두와 연결되며 이들 모두에 의해 제어될 수 있다.
FPGA(316 및 318)는 각각 버스(352 및 354)를 통해 로드 보드(load board)(380) 상의 DUT(372A 내지 372M)에 연결될 수 있다. 로드 보드(380)는 라인(352 및 354) 상에서 DUT들에 통신하기 위해 사용되는 프로토콜에 대해 비인지적(agnostic)인 사이트 모듈 종단(site module end)에서의 범용 고속 연결(general purpose high speed connection)을 허용하는 물리적 하니스(physical harness)이다. 그러나, DUT 종단에서, 로드 보드는 DUT에 의해 사용되고 있는 프로토콜에 특정적인 커넥터를 가지도록 설계될 필요가 있다.
발명의 일 실시예에서, DUT(372A 내지 372M)는 시험을 위해 열 챔버(thermal chamger)(390) 내부에 배치된 로드 보드(380) 상에 로드된다. DUT(372A 내지 372M) 및 로드 보드(380)는 디바이스 전력 공급부(332A 및 332B)로부터 전력을 끌어낸다.
각 FPGA에 연결될 수 있는 DUT의 개수는 각 DUT에 의해 요구되는 I/O 레인의 개수 및 FPGA 내의 송수신기(transceiver)의 개수에 달려 있다. 일 실시예에서, FPGA(316 및 318)는 각각 32개의 고속 송수신기를 포함할 수 있고 버스(352 및 354)는 각각 32 비트 폭일 수 있으나, 애플리케이션에 따라 더 많거나 더 적은 수가 구현될 수 있다. 예컨대, 만약 각 DUT가 8개의 I/O 레인을 요구하는 경우, 그러한 시스템에서 각 FPGA에는 단지 4개의 DUT가 연결될 수 있다.
도 4는 본 발명의 일 실시예에 따라 도 2의 인스턴스화된 FPGA 시험기 블록의 상세화된 도식적인 블록도이다.
도 4를 참조하면, 인스턴스화된 FPGA 시험기 블록(410)은 PCIe 업스트림 포트(upstream port)(270)를 통해 시험기 프로세서에 연결되고 PCIe 다운스트림 포트(downstream port)(480)를 통해 DUT에 연결된다.
인스턴스화된 FPGA 블록(410)은 프로토콜 엔진 모듈(protocol engine module)(430), 로직 블록 모듈(logic block module)(450) 및 하드웨어 가속기 블록(hardware accelerator block)(440)을 포함할 수 있다. 하드웨어 가속기 블록(440)은 또한 메모리 제어 모듈(memory control module)(444), 비교기 모듈(comparator module)(446), 패킷 형성기 모듈(packet builder module)(445) 및 알고리즘 패턴 생성기(Algorithmic Pattern Generator: APG) 모듈(443)을 포함할 수 있다.
일 실시예에서, 로직 블록 모듈(450)은 시험기 프로세서로부터의 커맨드를 디코딩하는 디코드 로직(decode logic), 시험기 프로세서(304)로부터의 모든 유입 커맨드 및 데이터 그리고 FPGA 디바이스에 의해 생성된 데이터를 적절한 모듈에 라우팅하는 라우팅 로직(routing logic), 그리고 인스턴스화된 FPGA 시험기 블록(410) 내의 다양한 통신 경로 사이에서 중재하는 중재 로직(arbitration logic)을 포함한다.
하나의 구현에서, 시험기 프로세서 및 DUT 간에 통신하기 위해 사용되는 통신 프로토콜은 유리하게도 재구성가능할 수 있다. 그러한 구현에서의 통신관련 프로토콜 엔진은 인스턴스화된 FPGA 시험기 블록(410)의 프로토콜 엔진 모듈(430) 내에 직접 프로그램된다. 따라서 인스턴스화된 FPGA 시험기 블록(410)은 DUT가 지원하는 임의의 프로토콜로 DUT와 통신하도록 구성될 수 있다. 이는 유리하게도 하드웨어 버스 어댑터 카드의 필요성을 없애며 상이한 프로토콜 지원으로 DUT를 시험하기 위해 어떠한 프로토콜 특정 하드웨어(protocol-specific hardware)도 대체될 필요가 없다. 일 실시예에서, 프로토콜은 SATA, SAS 또는 PCIe 등등을 포함하나 이에 한정되지 않는 고속 직렬 프로토콜일 수 있다. 새로운 또는 수정된 프로토콜은 어떠한 종류의 하드웨어 상호작용도 없이 시험기 프로세서를 통해 시스템 제어기로부터의 단순한 비트스트림 다운로드를 통하여 FPGA 상에 직접 다운로드되어 설치될 수 있다. 또한, 만약 새 프로토콜이 릴리즈되는 경우, FPGA는 소프트웨어 다운로드를 통하여 그 프로토콜로 쉽게 구성될 수 있다.
도 4에서, 만약 PCIe 다운스트림 포트(480)에 연결된 DUT가 PCIe 디바이스인 경우, PCIe 프로토콜의 인스턴스화(instantiation)를 포함하는 비트 파일이 PCIe 업스트림 포트(470)를 통해 다운로드되어 프로토콜 엔진 모듈(430) 상에 설치될 수 있다. 각각의 FPGA 디바이스(316 또는 318)는 하나 이상의 인스턴스화된 FPGA 시험기 블록을, 그리고 결과적으로는 하나 이상의 프로토콜 엔진 모듈을 포함할 수 있다. 임의의 하나의 FPGA 디바이스가 지원할 수 있는 프로토콜 엔진 모듈의 개수는 단지 FPGA의 크기(size) 및 게이트 총계(gate count)에 의해 한정된다.
본 발명의 일 실시예에서, FPGA 디바이스 내의 프로토콜 엔진 모듈 각각은 상이한 통신관련 프로토콜로써 구성될 수 있다. 따라서, FPGA 디바이스는 각각 동시에 상이한 통신관련 프로토콜을 지원하는 다수의 DUT를 시험하기 위해 연결될 수 있다. 대안적으로, FPGA 디바이스는 다수의 프로토콜을 지원하는 단일의 DUT에 연결되고 그 디바이스 상에서 구동되는 모든 모듈을 동시에 시험할 수 있다. 예를 들어, 만약 FPGA가 PCIe 및 SATA 프로토콜 양자 모두를 구동하도록 구성된 경우, FPGA는 PCIe 및 SATA 프로토콜 양자 모두를 지원하는 DUT를 시험하기 위해 연결될 수 있다. 대안적으로, FPGA는 두 개의 상이한 DUT(하나의 DUT는 PCIe 프로토콜을 지원하고 다른 DUT는 SATA 프로토콜을 지원함)를 시험하기 위해 연결될 수 있다.
도 4의 하드웨어 가속기 블록(440)은 시험기 프로세서 상의 소프트웨어로 하는 것이 가능할 것보다 FPGA 하드웨어 상의 어떤 기능을 촉진하기 위해 사용될 수 있다. 하드웨어 가속기 블록(440)은 DUT를 시험하는 데에서 사용되는 초기 시험 패턴 데이터를 공급할 수 있다. 그것은 또한 DUT의 시험을 제어하기 위해 사용되는 어떤 커맨드를 생성하는 기능을 포함할 수 있다. 시험 패턴 데이터를 생성하기 위해, 가속기 블록(440)은 알고리즘 패턴 생성기 모듈(443)을 사용한다.
하드웨어 가속기 블록(440)은 DUT로부터 판독되는 데이터를 이전 사이클에서 DUT에 기록된 데이터와 비교하기 위해 비교기 모듈(446)을 사용할 수 있다. 비교기 모듈(446)은 비준수(not in compliance)인 디바이스를 식별하기 위해 시험기 프로세서(446)에 미스매치(mismatch)를 표시하는(flag) 기능을 포함한다. 더욱 구체적으로, 비교기 모듈(446)은 미스매치를 추적하고 이를 시험기 프로세서(304)에 통신하는 에러 카운터(error counter)를 포함할 수 있다.
하드웨어 가속기 블록(440)은 로컬 메모리 모듈(local memory module)(420)에 연결될 수 있다. 메모리 모듈(420)은 메모리 블록(240A 내지 240M) 중 임의의 블록 내의 메모리 모듈과 유사한 기능을 수행한다. 메모리 모듈(420)은 하드웨어 가속기 블록(440) 및 시험기 프로세서(304) 양자 모두에 의해 제어될 수 있다. 시험기 프로세서(304)는 로컬 메모리 모듈(420)을 제어하고 그것에 초기 시험 패턴 데이터를 기록할 수 있다.
메모리 모듈(420)은 DUT에 기록될 시험 패턴 데이터를 저장하며 하드웨어 가속기 블록(440)은 기록 사이클 후 DUT로부터 판독되는 데이터와 저장된 데이터를 비교하기 위해 DUT에 액세스한다. 로컬 메모리 모듈(420)은 불합격을 로그하기 위해 사용될 수도 있다. 그 메모리 모듈은 시험 중에 DUT가 겪은 모든 불합격의 레코드와 함께 로그 파일을 저장할 것이다. 일 실시예에서, 가속기 블록(440)은 임의의 다른 인스턴스화된 FPGA 시험기 블록에 의해 액세스가능하지 않은 전용 로컬 메모리 모듈 블록(420)을 가진다. 다른 실시예에서, 로컬 메모리 모듈 블록(420)은 다른 인스턴스화된 FPGA 시험기 블록 내의 하드웨어 가속기 블록과 공유된다.
하드웨어 가속기 블록(440)은 또한 메모리 제어 모듈(444)을 포함할 수 있다. 메모리 제어 모듈(444)은 메모리 모듈(420)로의 판독 및 기록 액세스와 상호작용하고 이를 제어한다.
끝으로, 하드웨어 가속기 블록(440)은 패킷 형성기 모듈(445)을 포함한다. 패킷 형성기 모듈은 헤더(header)/커맨드(command) 데이터 및 시험 패턴 데이터를 포함하여 DUT에 기록될 패킷을 구성화하기 위해 어떤 모드에서 하드웨어 가속기 블록에 의해 사용된다.
어떤 실시예에서, 하드웨어 가속기 블록(440)은 하드웨어 가속의 여러 모드 중 하나로 동작하도록 시험기 프로세서(304)에 의해 프로그램될 수 있다. 바이패스 모드에서, 하드웨어 가속기는 바이패스되고 커맨드 및 시험 데이터는 시험기 프로세서(304)에 의해 경로(472)를 통해 DUT에 직접 보내진다. 하드웨어 가속기 패턴 생성기 모드에서, 시험 패턴 데이터는 APG 모듈(443)에 의해 생성되는 반면 커맨드는 시험기 프로세서(304)에 의해 생성된다. 시험 패킷은 경로(474)를 통해 DUT에 송신된다. 하드웨어 가속기 메모리 모드에서, 시험 패턴 데이터는 로컬 메모리 모듈(420)로부터 액세스되는 반면 커맨드는 시험기 프로세서(304)에 의해 생성된다. 시험 패턴 데이터는 경로(476)를 통해 DUT에 송신된다. 라우팅 로직(482)은 데이터의 흐름을 DUT로 제어하기 위해 경로(472, 474 및 476) 사이에서 중재하는 데에 필요하다.
사이트 모듈은 범용 커넥터(481)를 포함할 수 있다. 프로토콜 엔진 모듈(430)이 임의의 개수의 다양한 통신관련 프로토콜을 구동하도록 구성될 수 있기 때문에, 범용 고속 커넥터(481)가 사이트 모듈 상에 요구된다. 따라서, 만약 프로토콜 엔진 모듈(430) 상에 구현된 프로토콜이 변경될 필요가 있는 경우, 어떠한 동반되는 물리적 수정도 사이트 모듈 상에 이루어질 필요가 없다. 사이트 모듈은 사이트 모듈 종단 상에서 범용 커넥터에 연결될 수 있는 로드 보드(380)를 사용하여 DUT에 연결되나, DUT 종단 상에 구현되는 프로토콜에 특정적이다. 상이한 통신관련 프로토콜을 지원하는 DUT는 상이한 구성을 요구할 것이다. 따라서, 만약 상이한 구성을 요구하는 DUT를 수용하도록 프로토콜이 재프로그램되는 경우 로드 보드는 빼내어져(switched out) 교체될 필요가 있다.
도 5는 본 발명의 일 실시예에 따라 DUT를 시험하는 예시적인 프로세스의 흐름도(500)를 도시한다. 그러나, 발명은 흐름도(500)에 의해 제공되는 설명에 한정되지 않는다. 오히려, 다른 기능 흐름이 본 발명의 범주 및 사상 내에 있다는 점은 본 명세서에서 제공되는 교시로부터 관련 업계(들)의 숙련된 자에게 명백할 것이다.
흐름도(500)는 도 2, 도 3 및 도 4를 참조하여 앞서 기술된 예시적인 실시예를 계속 참조하여 기술될 것이지만, 그 방법은 그 실시예들에 한정되지는 않는다.
이제 도 5를 참조하면, 블록(502)에서 사용자는 셋업을 개시하고 시험 프로그램을 시스템 제어기 내에 로드한다. 셋업을 개시하는 것은 ATE 장치(200) 내 FPGA 디바이스 상에 구성될 이용가능한 프로토콜의 라이브러리로부터 하나 이상의 프로토콜을 택하는 것을 포함할 수 있다. 프로토콜은 시스템 제어기(301) 상에 파일로서 캐시되며 FPGA 상에 비트 파일로서 다운로드될 수 있다. 사용자는 그래픽 사용자 인터페이스를 통해 이용가능한 릴리즈의 목록으로부터 프로토콜을 선택할 수 있다. 프로토콜이 옵션으로서 이용가능하게 되기 전에, 그것은 형성되고 시험되어 릴리즈로 통합되어야 한다. 릴리즈되는 FPGA 구성은 무엇보다도 DUT를 연결하기 위해 이용가능한 송수신기의 개수 및 지원되는 프로토콜에 관한 정의를 포함한다. 그리고 릴리즈의 라이브러리는 그래픽 사용자 인터페이스를 통해 사용자가 이용가능하게 될 수 있다.
블록(502)에서, 사용자는 또한 그래픽 사용자 인터페이스를 통해 시스템 제어기(301) 내에 시험 프로그램을 로드한다. 시험 프로그램은 DUT에 대해 행해질 필요가 있는 시험의 모든 파라미터를 정의한다. 블록(504)에서, 시스템 제어기는 사이트 모듈(310A) 상의 시험기 프로세서로 명령어를 송신한다. 이 단계는 FPGA 상에 프로그램될 프로토콜 엔진을 위한 비트 파일의 송신을 포함한다. 시스템 제어기는 특정한 시험 프로그램을 위한 명령어를 시험 프로그램에 의해 제어되는 DUT에 연결된 시험기 프로세서로 라우팅하는 라우팅 로직을 포함할 수 있다.
블록(506)에서, 시스템 제어기로부터 명령어를 수신한 후, 시험기 프로세서(304)는 사이트 모듈(310A)에 연결된 DUT에 대한 시험을 행하기 위한 하드웨어 가속 모드를 결정할 수 있다.
일 실시예에서, 시험기 프로세서(304)는 네 개의 상이한 하드웨어 가속 모드 중 하나에서 동작할 수 있다. 각 기능 모듈은 시험기 프로세서(304)와 FPGA(316 및 318) 간에 커맨드 및 시험 데이터를 생성하기 위한 기능을 할당하도록 동작한다. 일 실시예에서, 시험기 프로세서는 바이패스 모드에서 동작하도록 프로그램될 수 있는데, DUT를 시험하기 위한 모든 커맨드 및 시험 데이터는 시험기 프로세서(304)에 의해 생성되고 FPGA(316 및 318)는 바이패스된다.
다른 실시예에서, 시험기 프로세서(304)는 하드웨어 가속기 패턴 생성기 모드에서 동작하도록 프로그램될 수 있는데, DUT의 시험에서 사용될 의사랜덤 데이터가 FPGA(316 및 318)에 의해 생성되고 그 비교 역시 FPGA에 의해 행해지나, 시험기 프로세서는 커맨드 생성을 다룬다.
또 다른 실시예에서, 시험기 프로세서(304)는 하드웨어 가속기 메모리 모듈에서 동작하도록 프로그램될 수 있는데, 시험 패턴은 초기 셋업 중에 시험기 프로세서에 의해 각 FPGA(316 및 318)에 연결된 메모리 모듈 상에 사전기록된다. 이 모드에서의 FPGA는 DUT에 기록될 시험 데이터를 검색하고 DUT로부터 시험 데이터를 판독하며 판독된 데이터를 메모리 디바이스 상에 기록된 데이터와 비교하기 위해 전용 메모리 디바이스에 액세스한다. 이 모드에서, FPGA 각각은 DUT로부터의 판독 및 기록 동작에 응답하여 메모리 디바이스를 제어한다. 그러나, 시험기 프로세서는 이 모드에서 여전히 커맨드 생성을 담당한다.
또 다른 실시예에서, 시험기 프로세서(304)는 하드웨어 가속기 패킷 형성기 모드에서 동작하도록 프로그램될 수 있는데, 데이터 및 기본적인 판독/기록/비교 커맨드는 FPGA(316 및 318)에 의해 생성된다.
블록(508)에서, 시험기 프로세서는 시험이 행해질 모드로 분기해 나간다.
도 6은 본 발명의 일 실시예에 따라 바이패스 모드로 DUT를 시험하는 예시적인 프로세스의 흐름도(600)를 도시한다. 그러나, 발명은 흐름도(600)에 의해 제공되는 설명에 한정되지 않는다. 오히려, 다른 기능 흐름이 본 발명의 범주 및 사상 내에 있다는 점은 본 명세서에서 제공되는 교시로부터 관련 업계(들)의 숙련된 자에게 명백할 것이다.
흐름도(600)는 도 2, 도 3 및 도 4를 참조하여 앞서 기술된 예시적인 실시예를 계속 참조하여 기술될 것이지만, 그 방법은 그 실시예들에 한정되지는 않는다.
이제 도 6을 참조하면, 바이패스 모드에서, 블록(602)에서 시험기 프로세서(304)는 DUT로 라우팅될 시험 패킷을 위해 커맨드 및 패킷 헤더를 생성한다. 시험기 프로세스는 블록(604)에서 또한 DUT로 라우팅될 패킷을 위해 시험 패턴 데이터를 생성한다. 이 모드에서는 어떠한 하드웨어 가속도 없는데 시험기 프로세서가 자신의 커맨드 및 시험 데이터를 생성하기 때문이다. 도 10(a)는 본 발명의 일 실시예에서 도 6에서의 방법에 따라 형성된 패킷의 블록도 표현이다.
블록(606)에서, 시험기 프로세서는 시험 패턴 데이터를 포함하는 시험 패킷을 DUT로 라우팅하기 위해 인스턴스화된 FPGA 블록(410) 및 다운스트림 포트(480)와 통신한다. 바이패스 모드는 지나가기(pass through) 모드인데, 여기서는 몇몇 한정된 예외가 있으나 커맨드 및 데이터가 인스턴스화된 FPGA 블록(410)을 투명하게 지나 직접 DUT로 간다. DUT는 바이패스 모드에서 시험기 프로세서(304)에 의해 직접 제어된다. 인스턴스화된 FPGA 블록은 패킷을 다운스트림 포트로 라우팅하는 로직을 포함할 수 있으나, 그것은 커맨드 생성("시그널링"이라 지칭되기도 함)이나 아니면 데이터 생성에 관여되지는 않는다.
블록(608)에서, 시험기 프로세서(304)는 블록(606)에서 DUT에 이전에 기록된 데이터의 DUT로부터의 판독 동작을 개시하기 위해 다운스트림 포트(480)와 통신한다. 블록(610)에서, 시험기 프로세서는 블록(606)에서 기록된 데이터와 DUT로부터 판독된 데이터를 비교한다. 만약 블록(606)에서 기록된 데이터 및 블록(610)에서 판독된 데이터 간의 어떠한 미스매치라도 있는 경우, 블록(612)에서 시험기 프로세서(304)에 의해 시스템 제어기(301)에 표시(flag)가 보내어진다. 그리고 시스템 제어기는 미스매치를 사용자에게 표시한다.
바이패스 모드에서, 시험기 프로세서(304)는 자신이 지원할 수 있는 DUT의 개수에서 제약되는데, 처리 능력이 DUT를 위한 모든 커맨드 및 시험 데이터를 생성하는 것으로부터 신속히 극대화될 수 있기 때문이다. 또한, 사이트 모듈(310)에 의해 지원될 수 있는 DUT의 개수는 또한 시스템 버스(330 및 332)에 대한 대역폭 제약에 의해 한정된다. 바이패스 모드에서, 버스(330 및 332)의 대역폭은 시험기 프로세서(304)에 의해 DUT로 송신되는 대용량(large volume)의 데이터 때문에 상대적으로 신속히 고갈될 수 있다. 그러므로, 더 많은 하드웨어 가속이 있는 다른 모드가 이용가능하게 되는데, 여기서 FPGA 디바이스는 시험 데이터 및 커맨드를 생성하는 더 많은 기능을 가진다.
도 7은 본 발명의 일 실시예에 따라 하드웨어 가속기 패턴 생성기 모드로 DUT를 시험하는 예시적인 프로세스의 흐름도(700)이다. 그러나, 발명은 흐름도(700)에 의해 제공되는 설명에 한정되지 않는다. 오히려, 다른 기능 흐름이 본 발명의 범주 및 사상 내에 있다는 점은 본 명세서에서 제공되는 교시로부터 관련 업계(들)의 숙련된 자에게 명백할 것이다.
흐름도(700)는 도 2, 도 3 및 도 4를 참조하여 앞서 기술된 예시적인 실시예를 계속 참조하여 기술될 것이지만, 그 방법은 그 실시예들에 한정되지는 않는다.
이제 도 7을 참조하면, 시험기 프로세서(304) 상의 처리 로드 및 시스템 버스(330 및 332) 상의 데이터 로드를 경감하기 위해 FPGA 디바이스가 데이터 생성 기능을 공유하는 하드웨어 가속의 방법이 도시된다. 하드웨어 가속기 패턴 생성기 모드의 블록(702)에서, 시험기 프로세서(304)는 DUT에 라우팅될 패킷을 위한 커맨드 및 패킷 헤더를 생성한다. 시험기 프로세스는 이 모드에서 시그널링을 위한 기능을 보유한다. 하드웨어 가속기 블록(440) 내의 알고리즘 패턴 생성기 모듈(443)은 블록(704)에서 DUT에 기록될 의사랜덤 시험 데이터를 생성한다. 로직 블록 모듈(450)은 생성된 데이터를 라우팅하고 DUT에 기록될 패킷에 그것을 추가하기 위한 기능을 포함한다. 도 10(b)는 본 발명의 일 실시예에서 도 7에서의 방법에 따라 형성된 패킷의 블록도 표현이다.
데이터를 생성하기 위한 기능이 시험기 프로세서에 의해 소프트웨어로 행해지는 것보다 FPGA 디바이스의 알고리즘 패턴 생성기에 의해 하드웨어로 훨씬 더 빨리 행해질 수 있기 때문에 그 모드는 "하드웨어 가속된" 것으로 간주된다. 또한 "DUT당 시험기" 아키텍처는 DUT로 하여금 도 4에 도시된 바와 같이 DUT를 위한 시험 패턴 데이터를 생성하는 자신의 전용 인스턴스화된 FPGA 시험기 블록에 직접 연결되게 하는데, 이는 시험기 프로세서(304)가 시스템 버스(330 및 332)를 거쳐 DUT에 모든 커맨드 및 데이터를 공급하는 바이패스 모드 상에서 대역폭에서의 실질적인 증가를 초래한다. FPGA 디바이스가 데이터 생성 기능을 공유하면, 시스템 버스(330 및 332)는 해방되어(freed up) 바이패스 모드에서보다 더 빠른 레이트로 커맨드가 FPGA에 통신될 수 있다. 또한, 시험의 여러 번 반복을 요구하는 고체 상태 드라이브와 같은 디바이스에 대해, 인스턴스화된 FPGA 시험기 블록을 지나는 전용 데이터 경로를 갖는 것은 여러 DUT에 의해 시험기 프로세서의 리소스가 공유되는 것을 넘어 상당히 시험의 속도를 올린다. 이는 또한 DUT로 하여금 최대성능(full performance)에 가깝게 동작하게 하는데 시험기 프로세서가 DUT에 처리 리소스를 할당하는 것을 기다릴 필요가 없기 때문이다.
일 실시예에서, 알고리즘 패턴 생성기 모듈(443)은 온 더 플라이(on the fly)로 데이터를 생성하도록 프로그램될 수 있다. APG 모듈은 증분적(incremental) 패턴, 의사랜덤 패턴 또는 어떤 유형의 일정한 패턴을 생성할 수 있다. APG 모듈은 줄무늬, 사선 줄무늬 또는 교차적 패턴이 있는 시험 패턴을 생성하는 어떤 게이팅(gating) 능력을 가질 수도 있다. 일 실시예에서, APG 모듈은 무엇보다도 시험 패턴을 생성하기 위해 유한 상태 머신, 카운터 또는 선형 피드백 시프트 레지스터를 사용할 수 있다. 몇몇 구현에서, APG 모듈은 더욱 복합적인 패턴을 생성하기 위해 초기 값으로서 시작 시드(starting seed)를 제공받을 수 있다.
단계(706)에서, 인스턴스화된 FPGA 블록(410)은 시험기 프로세서에 의해 생성된 커맨드 및 패킷 헤더에 따라 DUT에 시험 패턴 데이터를 라우팅하기 위해 다운스트림 포트(480)와 통신한다. 인스턴스화된 FPGA 블록(410)은, 단계(708)에서, 시험기 프로세서에 의해 생성된 커맨드에 따라 DUT로부터 시험 패턴 데이터를 판독하기 위해 다운스트림 포트와 통신한다. 그리고 블록(710)에서 하드웨어 가속기 블록(440)의 비교기 모듈(446)은 판독된 데이터를 DUT에 기록된 데이터와 비교하기 위해 사용된다. APG 모듈(443)은 비교기 모듈이 의사랜덤 데이터를 생성하기 위해 사용되었던 동일한 파라미터로 그것에 대해 판독 동작을 수행하고 블록(704)에서 DUT에 기록되었던 동일한 데이터를 수신할 수 있는 방식으로 설계된다. APG 모듈(443)은 온 더 플라이로 DUT에 기록되었던 데이터를 재생성하고 그것을 비교기 모듈(446)에 통신한다. 블록(712)에서 어떠한 미스매치든 메모리 제어 모듈(444)에 의해 메모리 모듈(420) 상에 로그되거나 아니면 인스턴스화된 FPGA 블록에 의해 시험기 프로세서로 통신된다. 이후 시험기 프로세서는 에러 로그를 수신한 후 블록(714)에서 시스템 제어기에 미스매치를 표시한다.
도 8은 본 발명의 일 실시예에 따라 하드웨어 가속기 메모리 모드로 DUT를 시험하는 예시적인 프로세스의 흐름도(800)를 도시한다. 그러나, 발명은 흐름도(800)에 의해 제공되는 설명에 한정되지 않는다. 오히려, 다른 기능 흐름이 본 발명의 범주 및 사상 내에 있다는 점은 본 명세서에서 제공되는 교시로부터 관련 업계(들)의 숙련된 자에게 명백할 것이다.
흐름도(800)는 도 2, 도 3 및 도 4를 참조하여 앞서 기술된 예시적인 실시예를 계속 참조하여 기술될 것이지만, 그 방법은 그 실시예들에 한정되지는 않는다.
이제 도 8을 참조하면, 시험기 프로세서(304) 상의 처리 로드 및 시스템 버스(330 및 332) 상의 데이터 로드를 경감하기 위해 FPGA 디바이스가 데이터 생성 기능을 공유하는 하드웨어 가속의 방법이 도시된다. 하드웨어 가속기 패턴 생성기 모드에 비해, 하드웨어 가속기 메모리 모드에서, 인스턴스화된 FPGA 시험기 블록은 APG 모듈(443)을 사용하는 것 대신에 DUT에 기록될 데이터를 위해 로컬 메모리 모듈(420)에 액세스한다.
하드웨어 가속기 패턴 메모리 모드의 블록(800)에서, 시험기 프로세서(304)는 DUT에 라우팅될 패킷을 위한 커맨드 및 패킷 헤더를 생성한다. 시험기 프로세스는 이 모드에서 시그널링을 위한 기능을 보유한다. 블록(802)에서, 시험기 프로세서는 DUT에 기록될 시험 패턴으로써 인스턴스화된 FPGA 시험기 블록(410)의 로컬 메모리 모듈(420)을 초기화한다. 하드웨어 가속기 메모리 모드의 한 가지 이점은 하드웨어 가속기 패턴 생성기 모드에서 APG 모듈(443)에 의해 생성되는 의사랜덤 데이터와는 대조적으로 시험기 프로세서에 의해 생성된 시험 패턴이 실제 랜덤 데이터를 구성할 수 있다는 점이다. 시험기 프로세서 및 인스턴스화된 FPGA 시험기 블록 양자 모두는 로컬 메모리 모듈(420)에 대한 판독 및 기록 액세스를 가진다. 그러나, 시험기 프로세서는 초기 셋업 중에 메모리 모듈(420)에 액세스할 뿐이다. 가속기 모드 중에, 시험기 프로세서(304) 상의 추가적인 처리 로드 및 시스템 버스(330 및 332) 상의 추가적인 데이터 로드는 가속을 상당히 더디게 하기 때문에 시험기 프로세서는 메모리 모듈에 액세스하지 않는다.
블록(804)에서, 인스턴스화된 FPGA 시험기 블록은 메모리 모듈(420)로부터 DUT에 라우팅될 시험 패턴 데이터를 판독한다. 메모리 모듈(420)이 FPGA 시험기 블록에 전용이거나 단지 하나의 다른 FPGA 시험기 블록과 공유되기 때문에, 빠른 판독 동작을 초래하는 그 둘 사이의 고대역폭 연결이 있다. 로직 블록 모듈(450)은 생성된 데이터를 라우팅하고 그것을 DUT에 기록될 패킷에 추가하기 위한 기능을 포함한다. 도 10(c)는 본 발명의 일 실시예에서 도 8에서의 방법에 따라 형성된 패킷의 블록도 표현이다.
데이터가 패킷에 추가된 후, 블록(806)에서, 인스턴스화된 FPGA 시험기 블록은 시험기 프로세서에 의해 생성된 커맨드 및 패킷 헤더에 따라 DUT에 시험 패턴 데이터를 라우팅하기 위해 다운스트림 포트(480)와 통신한다. 인스턴스화된 FPGA 블록(410)은, 단계(808)에서, 시험기 프로세서에 의해 생성된 커맨드에 따라 DUT로부터 시험 패턴 데이터를 판독하기 위해 다운스트림 포트와 통신한다. 그리고 블록(810)에서 하드웨어 가속기 블록(440)의 비교기 모듈(446)은 판독된 데이터를 DUT에 기록된 데이터와 비교하기 위해 사용된다. 블록(812)에서 어떠한 미스매치든 메모리 모듈(420) 상에 로그되거나 아니면 인스턴스화된 FPGA 블록에 의해 시험기 프로세서로 통신된다. 이후 시험기 프로세서는 에러 로그를 수신한 후 블록(814)에서 시스템 제어기에 미스매치를 표시한다.
도 9는 본 발명의 일 실시예에 따라 하드웨어 가속기 패킷 형성기 모드로 DUT를 시험하는 예시적인 프로세스의 흐름도(900)를 도시한다. 그러나, 발명은 흐름도(900)에 의해 제공되는 설명에 한정되지 않는다. 오히려, 다른 기능 흐름이 본 발명의 범주 및 사상 내에 있다는 점은 본 명세서에서 제공되는 교시로부터 관련 업계(들)의 숙련된 자에게 명백할 것이다.
흐름도(900)는 도 2, 도 3 및 도 4를 참조하여 앞서 기술된 예시적인 실시예를 계속 참조하여 기술될 것이지만, 그 방법은 그 실시예들에 한정되지는 않는다.
이제 도 9를 참조하면, 시험기 프로세서(304) 상의 처리 로드 및 시스템 버스(330 및 332) 상의 데이터 로드를 경감하기 위해 FPGA 디바이스가 데이터 및 커맨드 생성 기능 양자 모두를 공유하는 하드웨어 가속의 방법이 도시된다. 이 모드는 "최대가속"(full acceleration) 모드로 알려지기도 하는데 디바이스 시험을 행하기 위한 제어의 대부분이 FPGA 디바이스로 옮겨지고 시험기 프로세서(304)는 판독과 기록과 비교가 아닌 커맨드를 위해서만 제어를 보유하기 때문이다.
하드웨어 가속기 패킷 형성기 모드의 블록(902)에서, 시험기 프로세서(304)는 자신의 패킷을 생성하기 위해 인스턴스화된 FPGA 블록(410)에 통신될 커맨드를 생성한다. 시험기 프로세서는 이 모드에서 비 판독/기록/비교 커맨드만을 위한 기능을 보유한다. 판독, 기록 및 비교 동작과 같은 커맨드를 위한 기능은 인스턴스화된 FPGA 블록으로 옮겨진다. 블록(904)에서, 인스턴스화된 FPGA 시험기 블록의 패킷 형성기 모듈(445)은 DUT에 통신될 헤더 및 커맨드 정보를 가진 패킷을 형성한다. 패킷은 적어도 커맨드 유형, 디바이스의 블록 어드레스 및 시험 패턴 데이터를 포함한다. 도 10(d)는 본 발명의 일 실시예에서 도 9에서의 방법에 따라 형성된 패킷의 블록도 표현이다.
하드웨어 가속기 블록(440) 내의 알고리즘 패턴 생성기 모듈(443)은 블록(906)에서 DUT에 기록될 의사랜덤 시험 데이터를 생성한다. 로직 블록 모듈(450)은 인스턴스화된 FPGA 블록에 의해 생성된 데이터 및 커맨드를 라우팅하는 것 및 그것을 DUT에 기록될 패킷 내에 통합시키는 것(consolidating)을 위한 기능을 포함한다.
블록(908)에서, 인스턴스화된 FPGA 시험기 블록은 DUT에 시험 패턴 데이터를 라우팅하기 위해 다운스트림 포트(480)와 통신한다. 인스턴스화된 FPGA 블록(410)은, 단계(910)에서, DUT로부터 시험 패턴 데이터를 판독하기 위해 다운스트림 포트와 통신한다. 그리고 블록(912)에서 하드웨어 가속기 블록(440)의 비교기 모듈(446)은 판독된 데이터를 DUT에 기록된 데이터와 비교하기 위해 사용된다. 블록(914)에서 어떠한 미스매치든 메모리 모듈(420) 상에 로그되거나 아니면 인스턴스화된 FPGA 블록에 의해 시험기 프로세서로 통신된다. 이후 시험기 프로세서는 에러 로그를 수신한 후 블록(916)에서 시스템 제어기에 미스매치를 표시한다.
앞서 언급된 서술은 설명의 목적으로 특정한 실시예들을 참조하여 기술되었다. 다만, 위의 예시적인 논의는 철저하거나 발명을 개시된 정밀한 형태로 한정하도록 의도된 것이 아니다. 위 교시를 고려할 때 많은 수정 및 변화가 가능하다. 발명의 원리 및 그것의 실제적인 적용을 가장 잘 설명하여서 다른 당업자로 하여금 고려되는 특정한 사용에 적합할 수 있는 다양한 수정과 함께 발명 및 다양한 실시예를 가장 잘 활용할 수 있게 하기 위해서 실시예들이 채택되어 기술되었다.

Claims (25)

  1. 자동화된 시험 장비(Automated Test Equipment: ATE) 장치로서,
    시스템 제어기를 포함하는 컴퓨터 시스템 - 상기 시스템 제어기는 네트워크 스위치를 이용하여 사이트 모듈 보드(site module board)에 통신가능하게 연결되고, 상기 사이트 모듈 보드는 복수의 FPGA 컴포넌트들 및 시험기 프로세서를 포함하며, 상기 시험기 프로세서는 상기 복수의 FPGA 컴포넌트들에 통신가능하게 연결되고, 상기 복수의 FPGA 컴포넌트들의 각각은 상기 사이트 모듈 보드 상의 별도의 메모리 모듈에 연결됨 - 을 포함하며,
    상기 복수의 FPGA 컴포넌트들의 각각은,
    상기 시험기 프로세서로부터의 커맨드들 및 데이터를 수신하는 업스트림 포트(upstream port)와,
    복수의 피시험 디바이스(Device Under Test: DUT)들로부터의 각각의 DUT와 통신하는 다운스트림 포트(downstream port)와,
    복수의 하드웨어 가속기 회로들(hardware accelerator circuits) - 상기 복수의 하드웨어 가속기 회로들의 각각은 상기 복수의 DUT들 중 하나와 통신하도록 구성되고, 상기 복수의 하드웨어 가속기 회로들의 각각은 상기 시험기 프로세서에 의해 복수의 하드웨어 가속 모드들 중 하나로 프로그램되며, 상기 하드웨어 가속 모드들의 각각은 연관된 DUT를 시험하기 위해 커맨드들 및 데이터를 생성하기 위한 기능을 상기 시험기 프로세서와 상기 복수의 FPGA 컴포넌트들 간에 할당하도록 구성됨 - 을 포함하고,
    상기 복수의 하드웨어 가속기 회로들의 각각은,
    상기 복수의 DUT들 중 상기 하나에 기록될 시험 패턴 데이터를 자동으로 생성하기 위한 패턴 생성기 회로와,
    상기 복수의 DUT들에 기록될 패킷들을 구성화하기 위한 패킷 형성기 모듈(packet builder module) - 각각의 패킷은 커맨드들 및 상기 시험 패턴 데이터를 포함함 - 과,
    상기 복수의 DUT들 중 상기 하나로부터 판독된 데이터를 상기 복수의 DUT들 중 상기 하나에 기록된 상기 시험 패턴 데이터와 비교하기 위한 비교기 회로(comparator circuit) - 미스매치(mismatch)는 연관된 별도의 메모리 모듈 상에 로그(log)됨 - 를 포함하는
    자동화된 시험 장비(ATE) 장치.
  2. 제 1 항에 있어서,
    상기 복수의 FPGA 컴포넌트들의 각각은 복수의 통신 프로토콜들 중 하나를 구현하도록 구성된 적어도 하나의 재구성가능한 프로토콜 엔진 회로(reconfigurable protocol engine circuit)를 더 포함하는
    자동화된 시험 장비(ATE) 장치.
  3. 제 2 항에 있어서,
    상기 복수의 통신 프로토콜들 중 적어도 하나는 PCIe, SATA, SAS 및 USB를 포함하는 그룹으로부터 선택되는
    자동화된 시험 장비(ATE) 장치.
  4. 제 1 항에 있어서,
    상기 복수의 하드웨어 가속기 회로들의 각각은 상기 시험기 프로세서로부터 수신된 상기 커맨드들에 따라, 상기 패턴 생성기 회로에 의해 생성된 상기 시험 패턴 데이터를 상기 복수의 DUT들 중 상기 하나로 라우팅하기 위한 로직 회로에 연결되는
    자동화된 시험 장비(ATE) 장치.
  5. 제 1 항에 있어서,
    상기 패턴 생성기 회로에 의해 생성된 상기 시험 패턴 데이터는 의사-랜덤(pseudo-random), 증가(incremental) 및 일정(constant)을 포함하는 그룹으로부터 선택되는
    자동화된 시험 장비(ATE) 장치.
  6. 제 1 항에 있어서,
    상기 시험 패턴 데이터는 유한 상태 머신들(finite state machines), 카운터들(counters) 및 선형 피드백 시프트 레지스터들(linear feedback shift registers)을 포함하는 그룹으로부터 선택된 시험 패턴 생성기를 사용하여 생성되는
    자동화된 시험 장비(ATE) 장치.
  7. 제 1 항에 있어서,
    상기 비교기 회로는 상기 복수의 DUT들 중 상기 하나로부터 판독된 상기 데이터와 상기 복수의 DUT들 중 상기 하나에 기록된 상기 시험 패턴 데이터 사이의 임의의 미스매치들(mismatches)을 식별하도록 또한 구성되는
    자동화된 시험 장비(ATE) 장치.
  8. 제 7 항에 있어서,
    상기 복수의 하드웨어 가속기 회로들의 각각은 메모리 제어 회로를 더 포함하고, 상기 메모리 제어 회로는 상기 미스매치들을 상기 메모리 모듈 상으로 레코딩하는데 사용되는
    자동화된 시험 장비(ATE) 장치.
  9. 자동화된 시험 장비(ATE)를 사용하여 시험하는 방법으로서,
    사이트 모듈 보드의 복수의 인스턴스화된(instantiated) FPGA 블록들에 연결된 시험기 프로세서를 사용하여 복수의 DUT들로 데이터를 라우팅하기 위한 커맨드들을 생성하는 단계 - 상기 복수의 인스턴스화된 FPGA 블록들의 각각은 별도의 메모리 모듈에 연결되고, 상기 사이트 모듈 보드는 네트워크 스위치를 이용하여 시스템 제어기에 통신가능하게 연결되며, 상기 시험기 프로세서 및 상기 복수의 인스턴스화된 FPGA 블록들은 상기 사이트 모듈 보드 상에 장착되고, 상기 복수의 인스턴스화된 FPGA 블록들의 각각은 상기 복수의 DUT들 중 하나와 통신하도록 구성된 하드웨어 가속기 회로를 포함하며, 상기 하드웨어 가속기 회로는 상기 시험기 프로세서에 의해 복수의 하드웨어 가속 모드들 중 하나로 프로그램되며, 상기 하드웨어 가속 모드들의 각각은 연관된 DUT를 시험하기 위해 커맨드들 및 데이터를 생성하기 위한 기능을 상기 시험기 프로세서와 상기 복수의 FPGA 블록들 간에 할당하도록 구성됨 - 와,
    상기 복수의 인스턴스화된 FPGA 블록들 중 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 패턴 생성기 회로를 사용하여 시험 패턴 데이터를 자동으로 생성하는 단계와,
    상기 복수의 DUT들에 기록될 패킷들을 형성하는 단계 - 각각의 패킷은 커맨드들 및 상기 시험 패턴 데이터를 포함함 - 과,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 시험 패턴 데이터를 상기 복수의 DUT들 중 제1 DUT로 라우팅하는 단계와,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 제1 DUT로부터 데이터를 판독하는 단계와,
    상기 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 비교기 회로를 사용하여, 상기 제1 DUT에 기록된 상기 시험 패턴 데이터를 상기 제1 DUT로부터 판독된 상기 데이터와 비교하는 단계 - 미스매치는 상기 제1 인스턴스화된 FPGA 블록과 연관된 별도의 메모리 모듈 상에 로그됨 - 를 포함하는
    시험 방법.
  10. 제 9 항에 있어서,
    상기 복수의 인스턴스화된 FPGA 블록들 중 제2 인스턴스화된 FPGA 블록 상으로 프로그래밍된 패턴 생성기 회로를 사용하여 시험 패턴 데이터를 자동으로 생성하는 단계와,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 시험 패턴 데이터를 상기 복수의 DUT들 중 제2 DUT로 라우팅하는 단계와,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 제2 DUT로부터 데이터를 판독하는 단계와,
    상기 제2 인스턴스화된 FPGA 블록 상으로 프로그래밍된 비교기 회로를 사용하여, 상기 제2 DUT에 기록된 상기 시험 패턴 데이터를 상기 제2 DUT로부터 판독된 상기 데이터와 비교하는 단계를 더 포함하는
    시험 방법.
  11. 제 9 항에 있어서,
    상기 시험기 프로세서에 대해 상기 비교하는 동안 임의의 미스매치를 식별하는 단계를 더 포함하는
    시험 방법.
  12. 자동화된 시험 장비(ATE) 장치로서,
    시스템 제어기를 포함하는 컴퓨터 시스템 - 상기 시스템 제어기는 네트워크 스위치를 이용하여 사이트 모듈 보드에 통신가능하게 연결되고, 상기 사이트 모듈 보드는 복수의 FPGA 컴포넌트들 및 시험기 프로세서를 포함하며, 상기 시험기 프로세서는 상기 복수의 FPGA 컴포넌트들에 통신가능하게 연결되고, 상기 복수의 FPGA 컴포넌트들의 각각은 별도의 메모리 모듈에 연결됨 - 을 포함하며,
    상기 복수의 FPGA 컴포넌트들의 각각은,
    상기 시험기 프로세서로부터의 커맨드들 및 데이터를 수신하는 업스트림 포트와,
    복수의 DUT들로부터의 각각의 DUT와 통신하는 다운스트림 포트와,
    복수의 하드웨어 가속기 회로들 - 상기 복수의 하드웨어 가속기 회로들의 각각은 상기 복수의 DUT들 중 하나와 통신하도록 구성되고, 상기 복수의 하드웨어 가속기 회로들의 각각은 상기 시험기 프로세서에 의해 복수의 하드웨어 가속 모드들 중 하나로 프로그램되며, 상기 하드웨어 가속 모드들의 각각은 연관된 DUT를 시험하기 위해 커맨드들 및 데이터를 생성하기 위한 기능을 상기 시험기 프로세서와 상기 복수의 FPGA 컴포넌트들 간에 할당하도록 구성됨 - 을 포함하고,
    상기 복수의 하드웨어 가속기 회로들의 각각은,
    상기 복수의 DUT들에 기록될 패킷들을 구성화하기 위한 패킷 형성기 모듈 - 각각의 패킷은 커맨드들 및 시험 패턴 데이터를 포함함 - 과,
    상기 메모리 모듈로부터 상기 복수의 DUT들 중 상기 하나에 기록될 시험 패턴 데이터를 판독하기 위한 메모리 제어 회로와,
    상기 복수의 DUT들 중 상기 하나에 기록된 시험 패턴 데이터를 상기 복수의 DUT들 중 상기 하나로부터 판독된 시험 패턴 데이터와 비교하기 위한 비교기 회로 - 미스매치는 연관된 별도의 메모리 모듈 상에 로그됨 - 를 포함하는
    자동화된 시험 장비(ATE) 장치.
  13. 제 12 항에 있어서,
    상기 복수의 FPGA 컴포넌트들의 각각은 복수의 통신 프로토콜들 중 하나를 구현하도록 구성된 재구성가능한 프로토콜 엔진 회로를 더 포함하는
    자동화된 시험 장비(ATE) 장치.
  14. 제 12 항에 있어서,
    상기 복수의 하드웨어 가속기 회로들의 각각은 상기 시험기 프로세서로부터 수신된 상기 커맨드들에 따라, 상기 시험 패턴 데이터를 상기 복수의 DUT들 중 상기 하나로 라우팅하기 위한 로직 회로에 연결되는
    자동화된 시험 장비(ATE) 장치.
  15. 제 12 항에 있어서,
    상기 시험기 프로세서는 초기 셋업(initial set-up) 동안 상기 시험 패턴 데이터를 상기 메모리 모듈에 기록하는
    자동화된 시험 장비(ATE) 장치.
  16. 제 12 항에 있어서,
    상기 비교기 회로는 상기 복수의 DUT들 중 상기 하나로부터 판독된 상기 데이터와 상기 복수의 DUT들 중 상기 하나에 기록된 상기 시험 패턴 데이터 사이의 임의의 미스매치들을 식별하도록 또한 구성되는
    자동화된 시험 장비(ATE) 장치.
  17. 제 16 항에 있어서,
    상기 메모리 제어 회로는 상기 미스매치들을 상기 메모리 모듈 상으로 레코딩하는데 사용되는
    자동화된 시험 장비(ATE) 장치.
  18. 자동화된 시험 장비(ATE)를 사용하여 시험하는 방법으로서,
    모듈의 복수의 인스턴스화된 FPGA 블록들에 연결된 시험기 프로세서를 사용하여 복수의 DUT들로 데이터를 라우팅하기 위한 커맨드들을 생성하는 단계 - 상기 복수의 인스턴스화된 FPGA 블록들의 각각은 별도의 메모리 모듈에 연결되고, 사이트 모듈 보드는 네트워크 스위치를 이용하여 시스템 제어기에 통신가능하게 연결되며, 상기 시험기 프로세서 및 상기 복수의 인스턴스화된 FPGA 블록들은 상기 사이트 모듈 보드 상에 장착되고, 상기 복수의 인스턴스화된 FPGA 블록들의 각각은 상기 복수의 DUT들 중 하나와 통신하도록 구성된 하드웨어 가속기 회로를 포함하며, 상기 하드웨어 가속기 회로는 상기 시험기 프로세서에 의해 복수의 하드웨어 가속 모드들 중 하나로 프로그램되며, 상기 하드웨어 가속 모드들의 각각은 연관된 DUT를 시험하기 위해 커맨드들 및 데이터를 생성하기 위한 기능을 상기 시험기 프로세서와 상기 복수의 FPGA 블록들 간에 할당하도록 구성됨 - 와,
    상기 복수의 인스턴스화된 FPGA 블록들 중 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 메모리 제어 회로를 사용하여, 상기 복수의 인스턴스화된 FPGA 블록들 중 상기 제1 인스턴스화된 FPGA 블록에 연결된 메모리 모듈로부터 시험 패턴 데이터를 자동으로 판독하는 단계와,
    패킷 형성기 모듈을 이용하여 상기 복수의 DUT들에 기록될 패킷들을 형성하는 단계 - 각각의 패킷은 커맨드들 및 상기 시험 패턴 데이터를 포함함 - 과,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 시험 패턴 데이터를 상기 복수의 DUT들 중 제1 DUT로 라우팅하는 단계와,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 제1 DUT로부터 데이터를 판독하는 단계와,
    상기 제1 인스턴스화된 FPGA 블록 상으로 프로그래밍된 비교기 회로를 사용하여, 상기 제1 DUT에 기록된 상기 시험 패턴 데이터를 상기 제1 DUT로부터 판독된 상기 데이터와 비교하는 단계를 포함하는
    시험 방법.
  19. 제 18 항에 있어서,
    상기 복수의 인스턴스화된 FPGA 블록들 중 제2 인스턴스화된 FPGA 블록 상으로 프로그래밍된 메모리 제어 회로를 사용하여, 상기 복수의 인스턴스화된 FPGA 블록들 중 상기 제2 인스턴스화된 FPGA 블록에 연결된 메모리 모듈로부터 시험 패턴 데이터를 자동으로 판독하는 단계와,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 시험 패턴 데이터를 상기 복수의 DUT들 중 제2 DUT로 라우팅하는 단계와,
    상기 시험기 프로세서에 의해 생성된 상기 커맨드들에 따라 상기 제2 DUT로부터 데이터를 판독하는 단계와,
    상기 제2 인스턴스화된 FPGA 블록 상으로 프로그래밍된 비교기 회로를 사용하여, 상기 제2 DUT에 기록된 상기 시험 패턴 데이터를 상기 제2 DUT로부터 판독된 상기 데이터와 비교하는 단계를 더 포함하는
    시험 방법.
  20. 제 18 항에 있어서,
    상기 시험기 프로세서에 대해 상기 비교하는 동안 임의의 미스매치를 통신하는 단계를 더 포함하는
    시험 방법.
  21. 제 18 항에 있어서,
    상기 제1 인스턴스화된 FPGA 블록에 연결된 상기 메모리 모듈에 대해 상기 비교하는 동안 임의의 미스매치를 레코딩하는 단계를 더 포함하는
    시험 방법.
  22. 제 18 항에 있어서,
    상기 복수의 하드웨어 가속 모드들은 하드웨어 가속기 패턴 생성기 모드를 포함하며, 상기 하드웨어 가속기 패턴 생성기 모드에서,
    상기 시험기 프로세서는 상기 복수의 DUT들의 시험을 편성하기 위한 모든 커맨드들을 생성하도록 구성되고,
    상기 복수의 FPGA 블록들의 상기 복수의 하드웨어 가속기 회로들은
    시험 패턴 데이터를 생성하는 단계와,
    상기 시험 패턴 데이터를 상기 복수의 DUT들에 기록하고 상기 복수의 DUT들로부터 판독한 데이터와 비교하는 단계
    중 하나로부터 선택된 단계를 수행하는
    시험 방법.
  23. 제 18 항에 있어서,
    상기 복수의 하드웨어 가속 모드들은 하드웨어 가속기 메모리 생성기 모드를 포함하며, 상기 하드웨어 가속기 메모리 생성기 모드에서,
    상기 시험기 프로세서는 상기 복수의 DUT들의 시험을 편성하기 위한 모든 커맨드들을 생성하도록 구성되고,
    상기 복수의 FPGA 블록들의 상기 복수의 하드웨어 가속기 회로들은
    상기 시험 패턴 데이터를 연관된 별도의 메모리 모듈로부터 판독하는 단계와,
    상기 시험 패턴 데이터를 상기 복수의 DUT들에 기록하고 상기 복수의 DUT들로부터 판독한 데이터와 비교하는 단계
    중 하나로부터 선택된 단계를 수행하는
    시험 방법.
  24. 제 18 항에 있어서,
    상기 복수의 하드웨어 가속 모드들은 하드웨어 가속기 패킷 형성기 모드를 포함하며, 상기 하드웨어 가속기 패킷 형성기 모드에서, 상기 복수의 FPGA 블록들의 상기 복수의 하드웨어 가속기 회로들은 상기 복수의 DUT들의 시험을 편성하기 위한 시험 데이터와 커맨드 데이터 모두를 생성하도록 구성된
    시험 방법.
  25. 제 18 항에 있어서,
    상기 복수의 하드웨어 가속 모드들은 바이패스 모드를 포함하며, 상기 바이패스 모드는 상기 시험기 프로세서를 이용하여 상기 복수의 DUT들의 시험을 편성하기 위한 모든 커맨드들 및 데이터를 생성하는 것을 포함하는
    시험 방법.
KR1020157025775A 2013-02-21 2013-02-28 Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기 KR101993504B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/773,555 US10161993B2 (en) 2013-02-21 2013-02-21 Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block
US13/773,555 2013-02-21
PCT/US2013/028433 WO2014130057A1 (en) 2013-02-21 2013-02-28 A tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block

Publications (2)

Publication Number Publication Date
KR20160016753A KR20160016753A (ko) 2016-02-15
KR101993504B1 true KR101993504B1 (ko) 2019-09-30

Family

ID=51351866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157025775A KR101993504B1 (ko) 2013-02-21 2013-02-28 Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기

Country Status (5)

Country Link
US (1) US10161993B2 (ko)
KR (1) KR101993504B1 (ko)
CN (1) CN105229481B (ko)
TW (1) TWI563275B (ko)
WO (1) WO2014130057A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952276B2 (en) 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US20210116494A1 (en) * 2013-02-21 2021-04-22 Advantest Corporation Software directed firmware acceleration
US11009550B2 (en) 2013-02-21 2021-05-18 Advantest Corporation Test architecture with an FPGA based test board to simulate a DUT or end-point
US20210117298A1 (en) * 2013-02-21 2021-04-22 Advantest Corporation Use of host bus adapter to provide protocol flexibility in automated test equipment
US10162007B2 (en) 2013-02-21 2018-12-25 Advantest Corporation Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently
US20160077942A1 (en) * 2014-09-12 2016-03-17 Celestica Technology Consultancy (Shanghai) Co., Ltd. Storage system and test method for testing pci express interface
US20160245864A1 (en) * 2015-02-20 2016-08-25 Texas Test Corporation Automatic test apparatus for functional digital testing of multiple semiconductor integrated circuit devices
TWI564905B (zh) * 2015-03-03 2017-01-01 晨星半導體股份有限公司 記憶體自我測試裝置與方法
CN105786618B (zh) * 2016-02-24 2019-06-18 华为技术有限公司 加速器网络中路由报文的方法和装置
EP3479402B1 (en) * 2016-06-30 2021-10-27 INTEL Corporation Method and apparatus for remote field programmable gate array processing
WO2018000406A1 (en) * 2016-07-01 2018-01-04 Intel Corporation Asymmetric lanes in point-to-point interconnect
CN106526454A (zh) * 2016-11-24 2017-03-22 上海精密计量测试研究所 一种基于ate的fpga配置芯片的测试方法
CN108255523A (zh) * 2016-12-28 2018-07-06 北京普源精电科技有限公司 图形用户界面创建方法、装置、系统及fpga
US10592370B2 (en) * 2017-04-28 2020-03-17 Advantest Corporation User control of automated test features with software application programming interface (API)
US10557886B2 (en) 2017-04-28 2020-02-11 Advantest Corporation Test system supporting multiple users using different applications
US10241146B2 (en) 2017-05-01 2019-03-26 Advantest Corporation Test system and method
US10663515B2 (en) * 2017-11-01 2020-05-26 Nvidia Corp. Method and apparatus to access high volume test data over high speed interfaces
KR20190066482A (ko) * 2017-12-05 2019-06-13 삼성전자주식회사 인터포저를 사용하는 번 인 테스트 장치 및 테스트 방법
CN108254666B (zh) * 2017-12-25 2020-06-05 建荣半导体(深圳)有限公司 一种针对蓝牙系统级的晶圆测试装置及方法
US10585819B2 (en) * 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10955461B2 (en) * 2018-05-16 2021-03-23 Advantest Corporation Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware
US10929260B2 (en) * 2018-05-16 2021-02-23 Advantest Corporation Traffic capture and debugging tools for identifying root causes of device failure during automated testing
US10948540B2 (en) 2018-07-27 2021-03-16 Advantest Corporation Integrated protocol analyzer configured within automated test equipment (ate) hardware
US10761138B2 (en) * 2018-09-18 2020-09-01 Advantest Corporation Low cost built-in-self-test centric testing
KR102583255B1 (ko) * 2018-11-05 2023-09-26 삼성전자주식회사 복수의 프로토콜을 적응적으로 지원하는 스토리지 장치
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
CN111989580B (zh) 2019-01-22 2023-06-30 爱德万测试公司 用于测试一个或多个被测器件的自动化测试设备,用于一个或多个被测器件的自动化测试的方法以及用于应对命令差错的计算机程序
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
CN110246536A (zh) * 2019-05-07 2019-09-17 江苏华存电子科技有限公司 一种存储器集成测试装置
WO2021023372A1 (en) * 2019-08-06 2021-02-11 Advantest Corporation An automated test equipment for testing a device under test which comprises a processing unit and a program and/or data memory, an automated test equipment which comprises a test controller, one or more interfaces to the device under test, a shared memory and a method for testing a device under test
US10884847B1 (en) 2019-08-20 2021-01-05 Advantest Corporation Fast parallel CRC determination to support SSD testing
TWI810523B (zh) * 2020-03-12 2023-08-01 日商愛德萬測試股份有限公司 自動測試裝備系統及設備、以及用於測試受測裝置的方法
KR102421348B1 (ko) * 2020-06-29 2022-07-18 주식회사 자이트론 전자 장치의 인터페이스의 강건성 검증을 위한 검증 장치 및 그 자동 검증 방법
CN112198424B (zh) * 2020-09-25 2023-04-25 杭州加速科技有限公司 Fpga芯片内的测试逻辑分析单元
CN112486748B (zh) * 2020-11-30 2024-04-09 北京泽石科技有限公司 测试系统及其测试方法
US11209482B1 (en) * 2020-11-30 2021-12-28 Stmicroelectronics International N.V. Methods and devices for testing comparators
US11159785B1 (en) 2021-01-13 2021-10-26 Google Llc Testing platform for HDMI enhanced audio return channel
CN112989736B (zh) * 2021-04-23 2022-06-03 芯华章科技股份有限公司 用于检测修改设计的错误实例的方法、设备及存储介质
US20240085471A1 (en) * 2022-09-09 2024-03-14 Infineon Technologies Ag Test arrangement and method for testing an integrated circuit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011150409A2 (en) * 2010-05-28 2011-12-01 Verigy (Singapore) Pte. Ltd Solution for full speed, parallel dut testing

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497378A (en) 1993-11-02 1996-03-05 International Business Machines Corporation System and method for testing a circuit network having elements testable by different boundary scan standards
US5805571A (en) 1996-03-19 1998-09-08 Zwan; Bryan J. Dynamic communication line analyzer apparatus and method
US6026230A (en) 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US6069873A (en) 1997-10-01 2000-05-30 U S West, Inc. Closed-loop automated testing of system equipment and management
US7152027B2 (en) 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
WO1999045042A1 (en) 1998-03-04 1999-09-10 Exxon Chemical Patents Inc. Noncoordinating anions for olefin polymerization
US6357023B1 (en) 1998-04-08 2002-03-12 Kingston Technology Co. Connector assembly for testing memory modules from the solder-side of a PC motherboard with forced hot air
US6681351B1 (en) 1999-10-12 2004-01-20 Teradyne, Inc. Easy to program automatic test equipment
US6651204B1 (en) * 2000-06-01 2003-11-18 Advantest Corp. Modular architecture for memory testing on event based test system
US6766475B2 (en) 2001-01-04 2004-07-20 International Business Machines Corporation Method and apparatus for exercising an unknown program with a graphical user interface
US7047174B2 (en) 2001-05-02 2006-05-16 Freescale Semiconductor, Inc. Method for producing test patterns for testing an integrated circuit
US20020184326A1 (en) 2001-05-31 2002-12-05 Andrew Thomson System and method for providing network interfaces to instruments without networking capabilities
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
US7370256B2 (en) 2001-09-28 2008-05-06 Inapac Technology, Inc. Integrated circuit testing module including data compression
US6631340B2 (en) * 2001-10-15 2003-10-07 Advantest Corp. Application specific event based semiconductor memory test system
JP2003156543A (ja) 2001-11-20 2003-05-30 Advantest Corp 半導体試験装置
US7010782B2 (en) 2002-04-04 2006-03-07 Sapphire Infotech, Inc. Interactive automatic-test GUI for testing devices and equipment using shell-level, CLI, and SNMP commands
US7099438B2 (en) 2002-06-14 2006-08-29 Ixia Multi-protocol, multi-interface communications device testing system
US6714035B2 (en) * 2002-06-28 2004-03-30 Hewlett-Packard Development Company, L.P. System and method for measuring fault coverage in an integrated circuit
US20040168111A1 (en) 2002-09-11 2004-08-26 Arnold Ross J. Graphic user interface for test equipment
US6975956B2 (en) * 2002-09-19 2005-12-13 Rambus Inc. Multiple sweep point testing of circuit devices
US6904375B1 (en) 2003-01-22 2005-06-07 Xilinx, Inc. Method and circuits for testing high speed devices using low speed ATE testers
US7209851B2 (en) 2003-02-14 2007-04-24 Advantest America R&D Center, Inc. Method and structure to develop a test program for semiconductor integrated circuits
US20040225459A1 (en) 2003-02-14 2004-11-11 Advantest Corporation Method and structure to develop a test program for semiconductor integrated circuits
US7184917B2 (en) 2003-02-14 2007-02-27 Advantest America R&D Center, Inc. Method and system for controlling interchangeable components in a modular test system
US20050159050A1 (en) 2003-06-05 2005-07-21 Hiroyuki Hama Device interface apparatus
CN101261530B (zh) 2003-07-28 2011-01-12 日本电气株式会社 移动信息终端
US7181360B1 (en) 2004-01-30 2007-02-20 Spirent Communications Methods and systems for generating test plans for communication devices
WO2005085888A1 (en) 2004-03-05 2005-09-15 Vfs Technologies Limited Testing of embedded systems
US8161402B1 (en) 2004-03-24 2012-04-17 The Mathworks, Inc. Methods and apparatus for graphical test and measurement
KR100647370B1 (ko) 2004-04-20 2006-11-23 주식회사 하이닉스반도체 멀티 프로토콜 시리얼 인터페이스 시스템
US7269805B1 (en) 2004-04-30 2007-09-11 Xilinx, Inc. Testing of an integrated circuit having an embedded processor
US7444454B2 (en) 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
CN100585422C (zh) * 2004-05-22 2010-01-27 株式会社爱德万测试 用于对模块化测试系统进行仿真的方法和系统
US7430486B2 (en) 2004-05-22 2008-09-30 Advantest America R&D Center, Inc. Datalog support in a modular test system
US7353489B2 (en) 2004-05-28 2008-04-01 Synopsys, Inc. Determining hardware parameters specified when configurable IP is synthesized
US20050273685A1 (en) 2004-06-08 2005-12-08 Sanjay Sachdev Automated and customizable generation of efficient test programs for multiple electrical test equipment platforms
TWI257483B (en) * 2004-10-05 2006-07-01 Domintech Co Ltd Automatic testing system for electronic devices and its method
US7363188B1 (en) 2004-12-03 2008-04-22 Litepoint Corp. Apparatus and method for operating automated test equipment (ATE)
US7245134B2 (en) 2005-01-31 2007-07-17 Formfactor, Inc. Probe card assembly including a programmable device to selectively route signals from channels of a test system controller to probes
US20060195744A1 (en) 2005-02-11 2006-08-31 Broadcom Corporation Method and apparatus to simulate automatic test equipment
US7543200B2 (en) * 2005-02-17 2009-06-02 Advantest Corporation Method and system for scheduling tests in a parallel test system
US7343558B2 (en) 2005-03-31 2008-03-11 Teradyne, Inc. Configurable automatic-test-equipment system
JP2009512279A (ja) 2005-10-07 2009-03-19 アギア システムズ インコーポレーテッド ストリーミングと制御処理に異なる素子を用いたメディアデータ処理
KR101387085B1 (ko) 2006-03-07 2014-04-18 스캐니메트릭스 인크. 전자 구성요소에 문의하기 위한 방법 및 장치
US20070220380A1 (en) 2006-03-20 2007-09-20 Credence Systems Corporation Message system for logical synchronization of multiple tester chips
US7590903B2 (en) 2006-05-15 2009-09-15 Verigy (Singapore) Pte. Ltd. Re-configurable architecture for automated test equipment
EP1858028B1 (en) * 2006-05-18 2010-12-22 Dialog Semiconductor GmbH Memory test engine
KR100778459B1 (ko) 2006-05-26 2007-11-21 (주) 컴파스 시스템 복수의 전자장치를 프로그램, 소거 및 검증하는 장치
US7580807B2 (en) 2006-06-15 2009-08-25 Texas Instruments Incorporated Test protocol manager for massive multi-site test
JPWO2008001543A1 (ja) * 2006-06-27 2009-11-26 株式会社アドバンテスト 半導体試験装置および半導体メモリの試験方法
US7788562B2 (en) * 2006-11-29 2010-08-31 Advantest Corporation Pattern controlled, full speed ATE compare capability for deterministic and non-deterministic IC data
US7528623B2 (en) 2007-02-02 2009-05-05 Teradyne, Inc. Distributing data among test boards to determine test parameters
KR100825811B1 (ko) 2007-02-27 2008-04-29 삼성전자주식회사 고속 검사가 가능한 반도체 소자 자동검사장치
JP5432730B2 (ja) * 2007-03-20 2014-03-05 ラムバス・インコーポレーテッド 受信器ジッタ耐性(「jtol」)測定を有する集積回路
US7707468B2 (en) 2007-03-22 2010-04-27 Verigy (Singapore) Pte. Ltd System and method for electronic testing of multiple memory devices
DE102008010290A1 (de) 2007-06-27 2009-02-19 Rohde & Schwarz Gmbh & Co. Kg Verfahren zum Testen eines Mobilfunkgeräts
US20090100304A1 (en) 2007-10-12 2009-04-16 Ping Li Hardware and Software Co-test Method for FPGA
KR100958113B1 (ko) 2007-10-24 2010-05-18 주식회사 아이티엔티 반도체 테스트용 fpga 구성장치 및 이를 이용한 dut 테스트방법
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
US7895485B2 (en) * 2008-01-02 2011-02-22 Micron Technology, Inc. System and method for testing a packetized memory device
US7928755B2 (en) 2008-02-21 2011-04-19 Verigy (Singapore) Pte. Ltd. Methods and apparatus that selectively use or bypass a remote pin electronics block to test at least one device under test
EP2321751A4 (en) 2008-07-07 2014-03-05 Quali Systems Ltd SYSTEM AND METHOD FOR HARDWARE SEQUENCING AND AUTOMATIC SOFTWARE OF COMPUTER-AIDED DESIGN (CAD) FUNCTIONAL TESTING
KR101503812B1 (ko) 2008-08-29 2015-03-19 엘지이노텍 주식회사 마그네틱을 이용한 입출력 일체형 표시 장치 및 그 방법
EP2342950B1 (en) 2008-09-23 2014-08-27 Aegis Industries, Inc. Stun device testing apparatus and methods
WO2010054669A1 (en) 2008-11-11 2010-05-20 Verigy (Singapore) Pte.Ltd. Re-configurable test circuit, method for operating an automated test equipment, apparatus, method and computer program for setting up an automated test equipment
US8175095B2 (en) 2008-12-19 2012-05-08 L3 Communications Integrated Systems, L.P. Systems and methods for sending data packets between multiple FPGA devices
KR101028594B1 (ko) 2008-12-23 2011-04-13 (주) 컴파스 시스템 프로그래머 장치
US7884631B2 (en) 2009-02-25 2011-02-08 Kingston Technology Corp. Parking structure memory-module tester that moves test motherboards along a highway for remote loading/unloading
US8195419B2 (en) * 2009-03-13 2012-06-05 Teradyne, Inc. General purpose protocol engine
KR101111482B1 (ko) 2009-05-15 2012-02-21 (주)아테코 모듈 번-인 테스트 시스템
US8170828B2 (en) 2009-06-05 2012-05-01 Apple Inc. Test method using memory programmed with tests and protocol to communicate between device under test and tester
US7933220B2 (en) 2009-09-21 2011-04-26 Spirent Communications, Inc. Methods and apparatuses for generating network test packets and parts of network test packets
US9164859B2 (en) * 2009-09-25 2015-10-20 Qualcomm Incorporated Computing device for enabling concurrent testing
US8127187B2 (en) 2009-09-30 2012-02-28 Integrated Device Technology, Inc. Method and apparatus of ATE IC scan test using FPGA-based system
US8731493B2 (en) 2009-10-30 2014-05-20 Apple Inc. Wireless local area network test system with forced transmit rates during protocol-based testing
US8545248B2 (en) 2010-01-07 2013-10-01 Life Technologies Corporation System to control fluid flow based on a leak detected by a sensor
JP2011220924A (ja) 2010-04-13 2011-11-04 Advantest Corp 試験装置および接続装置
US8660424B2 (en) 2010-08-26 2014-02-25 Cisco Technology, Inc. Scalable high speed gigabit active bundle link and tester
WO2012070076A1 (en) 2010-11-26 2012-05-31 Microtest S.R.L. An equipment for testing electronic devices in general
CN103477237B (zh) 2011-03-21 2016-03-02 温莎大学 自动化测试和验证电子元件的装置
US9176839B2 (en) 2011-05-20 2015-11-03 Whizchip Design Technologies Pvt. Ltd. Bus transaction monitoring and debugging system using FPGA
JP5717567B2 (ja) 2011-07-14 2015-05-13 日本モレックス合同会社 ケーブルアッセンブリ、コネクタ及び半導体試験装置
US9430345B2 (en) 2011-09-23 2016-08-30 Roche Diabetes Care, Inc. Command interface for communication test framework
US9230046B2 (en) 2012-03-30 2016-01-05 International Business Machines Corporation Generating clock signals for a cycle accurate, cycle reproducible FPGA based hardware accelerator
US8850267B2 (en) 2012-08-02 2014-09-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Middleware for multiprocessor software testing
US8842480B2 (en) 2012-08-08 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Automated control of opening and closing of synchronous dynamic random access memory rows
US9116785B2 (en) 2013-01-22 2015-08-25 Teradyne, Inc. Embedded tester
US20140236527A1 (en) 2013-02-21 2014-08-21 Advantest Corporation Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
US9952276B2 (en) 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US20140237292A1 (en) 2013-02-21 2014-08-21 Advantest Corporation Gui implementations on central controller computer system for supporting protocol independent device testing
US10162007B2 (en) 2013-02-21 2018-12-25 Advantest Corporation Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently
US9810729B2 (en) 2013-02-28 2017-11-07 Advantest Corporation Tester with acceleration for packet building within a FPGA block
US9310427B2 (en) 2013-07-24 2016-04-12 Advantest Corporation High speed tester communication interface between test slice and trays

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011150409A2 (en) * 2010-05-28 2011-12-01 Verigy (Singapore) Pte. Ltd Solution for full speed, parallel dut testing
US20120191402A1 (en) * 2010-05-28 2012-07-26 Scott Filler Flexible storage interface tester with variable parallelism and firmware upgradeability

Also Published As

Publication number Publication date
KR20160016753A (ko) 2016-02-15
WO2014130057A1 (en) 2014-08-28
CN105229481B (zh) 2019-01-11
TWI563275B (en) 2016-12-21
US20140236524A1 (en) 2014-08-21
CN105229481A (zh) 2016-01-06
TW201433804A (zh) 2014-09-01
US10161993B2 (en) 2018-12-25

Similar Documents

Publication Publication Date Title
KR101993504B1 (ko) Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기
KR102043487B1 (ko) 독립적으로 다수의 dut를 시험하기 위한 다수의 fpga 기반 하드웨어 가속기 블록을 갖는 시험 아키텍처
KR101984353B1 (ko) Fpga 블록 내 혼합된 프로토콜 엔진을 구비한 시험기
CN111426935B (zh) 自动化测试设备装置
KR102100533B1 (ko) Fpga 블록 내에 패킷 형성을 위한 가속을 갖는 시험기
US11009550B2 (en) Test architecture with an FPGA based test board to simulate a DUT or end-point
US20210117298A1 (en) Use of host bus adapter to provide protocol flexibility in automated test equipment
KR20190107183A (ko) 프로토콜 디버그를 위해 실패에 대해 트래픽을 실시간으로 캡처하는 기법
US20210116494A1 (en) Software directed firmware acceleration
TWI810523B (zh) 自動測試裝備系統及設備、以及用於測試受測裝置的方法
US11430536B2 (en) Software-focused solution for arbitrary all-data odd sector size support
TWI779458B (zh) 用於任意全資料奇特扇區大小支援之軟體為主解決方案

Legal Events

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