KR100858382B1 - 테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로 - Google Patents

테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로 Download PDF

Info

Publication number
KR100858382B1
KR100858382B1 KR1020010045014A KR20010045014A KR100858382B1 KR 100858382 B1 KR100858382 B1 KR 100858382B1 KR 1020010045014 A KR1020010045014 A KR 1020010045014A KR 20010045014 A KR20010045014 A KR 20010045014A KR 100858382 B1 KR100858382 B1 KR 100858382B1
Authority
KR
South Korea
Prior art keywords
test
circuit
signal
semiconductor device
alpg
Prior art date
Application number
KR1020010045014A
Other languages
English (en)
Other versions
KR20020011082A (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 KR20020011082A publication Critical patent/KR20020011082A/ko
Application granted granted Critical
Publication of KR100858382B1 publication Critical patent/KR100858382B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • 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
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/31813Test pattern generators
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • 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/318364Generation of test inputs, e.g. test vectors, patterns or sequences as a result of hardware simulation, e.g. in an HDL environment
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

시판되는 테스터(테스트 장치)를 이용하지 않고 반도체장치의 테스트를 행하여, 소요비용이 적게 드는 반도체장치의 테스트회로 구성기술을 제공한다.
테스터 언어로 기술되어 있는 테스트 대상의 반도체장치에 관한 테스트 프로그램을 해석하여, 실시하고자 하는 테스트 내용에 따른 테스트 회로(ALPG)의 구성요소를 추출 즉, 불필요한 구성요소를 삭제하여, HDL(Hardware Discription Language)에 의해 소망의 테스트 단위로의 테스트가 가능한 회로의 기술(記述)(테스트회로 구축 데이터)을 생성하도록 하였다.
테스터, 테스트 프로그램, 테스트 회로, 데이터

Description

테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및 테스트회로{Tester Architecture Construction Data Generating Method, Tester Architecture Constructing Method and Test Circuit}
도 1은, 종래의 일반적인 테스터의 개념을 나타내는 블록도,
도 2는, 테스터 방식의 차이를 나타내는 블록도,
도 3은, 테스트 프로그램의 작성순서의 개략을 나타내는 플로우챠트,
도 4는, 테스트 프로그램에서 테스트 패턴을 발생하는 ALPG를 FPGA 내에 구축하는 순서의 일예를 나타내는 플로우챠트,
도 5는, FPGA 내부로의 ALPG의 구축순서의 일예를 나타내는 플로우챠트,
도 6은, 소정의 알고리즘에 따라 메모리를 검사하기 위한 테스트 패턴을 발생하는 ALPG의 개략 구성을 나타내는 블록도,
도 7은, 도 6의 ALPG의 시퀀스 제어회로의 구성예를 나타내는 블록도,
도 8은, 도 6의 ALPG의 어드레스 연산회로의 구성예를 나타내는 블록도,
도 9는, 도 6의 ALPG의 데이터 연산회로의 구성예를 나타내는 블록도,
도 10은, ALPG에 의해 대각 핑퐁(ping-pong) 테스트를 행하는 경우의 테스트 프로그램의 일예를 나타내는 명령 리스트도,
도 11은, 대각 핑퐁 테스트의 순서를 나타내는 설명도,
도 12는, 메모리 테스트용 이외의 ALPG의 시퀀스 제어회로의 구성예를 나타내는 블록도,
도 13은, 메모리 테스트용 이외의 ALPG의 어드레스 연산회로의 구성예를 나타내는 블록도,
도 14는, ALPG에 의해 마칭(marching) 테스트를 행하는 경우의 테스트 프로그램의 일예를 나타내는 명령 리스트도,
도 15는, ALPG에 의해 대각 핑퐁 테스트를 행하는 경우의 테스트 프로그램을 포트란(FORTRAN)으로 기술한 예를 나타내는 명령 리스트도,
도 16은, ALPG 구축 데이터의 생성에 이용 가능한 기능 엔트리 툴(entry tool)에서의 디스플레이 화면의 표시예를 나타내는 표시 구성도,
도 17은, 도 16의 디스플레이 화면에서의 ALPG의 더 상세한 내용을 나타내는 표시 구성도,
도 18은, 도 17의 ALPG의 디스플레이 화면에서의 시퀀스 제어회로 모듈의 상세한 내용을 나타내는 표시 구성도,
도 19는, 도 17의 ALPG의 디스플레이 화면에서의 명령 메모리회로 모듈의 상세한 내용을 나타내는 표시 구성도,
도 20은, 도 17의 ALPG의 디스플레이 화면에서의 어드레스 연산모듈의 상세한 내용을 나타내는 표시 구성도,
도 21은, 기능 엔트리 툴에 의해 생성된 시퀀스 제어회로에 관한 HDL 기술문을 나타내는 도면,
도 22는, 기능 엔트리 툴에 의해 생성된 명령 메모리 회로에 관한 HDL 기술문을 나타내는 도면,
도 23은, 기능 엔트리 툴에 의해 생성된 어드레스 연산회로에 관한 HDL 기술문을 나타내는 도면,
도 24는, 기능 엔트리 툴에 의해 생성된 데이터 연산회로에 관한 HDL 기술문을 나타내는 도면,
도 25는, 쉐어드 리소스(shared resource) 방식의 논리용 ALPG의 구체적인 구성예를 나타내는 블록도,
도 26은, 도 25의 ALPG의 신호형성 비교회로의 구성예를 나타내는 블록도,
도 27은, 도 25의 ALPG의 타이밍 발생부에서 공급되는 타이밍 클록과 신호형성 비교회로에서 ALPG 전용 버스상에 출력되는 신호의 일예를 나타내는 타이밍도,
도 28은, 퍼핀(per-pin)방식의 논리용 ALPG의 구체적인 구성예를 나타내는 블록도,
도 29는, 도 28의 ALPG의 신호형성 비교회로의 구성예를 나타내는 블록도이다.
(부호의 설명)
11 명령 메모리
12 프로그램 카운터
13 시퀀스 제어회로
14 어드레스 연산회로
15 테스트 데이터 생성회로
100 테스터
110 전원장치
120 드라이버
130 비교기
140 패턴 발생기
150 타이밍 발생기
160 컨트롤러(CPU)
200 반도체장치
본 발명은, 반도체 메모리나 논리집적회로 등의 반도체장치를 테스트(시험)하는 이른바, 테스트 회로기술 나아가서는 반도체장치의 테스트 프로그램에서 테스트회로를 구성하는 기술에 관한 것으로, 예를 들면 테스트 대상이 되는 반도체장치에 적합한 테스트회로를 임의의 논리를 구성할 수 있는 가변논리회로상에 구축하는 경우에 이용하는 유효한 기술에 관한 것이다.
논리집적회로(이하, 논리IC라 칭함) 등의 반도체장치의 테스트 방식으로는, 테스터라 불리는 장치에 의해 테스트 패턴 데이터를 발생하여 그것을 논리 IC에 입력하고, 논리 IC에서 출력된 데이터 신호와 기대치 신호를 비교하여 판정하는 방식 이 일반적이었다. 또한, 반도체장치 내에 유사 난수발생회로와 같은 랜덤한 테스트 패턴 데이터를 발생하는 패턴발생회로를 내장시킨 BIST(Built in self test) 방식의 테스트 기술이 있다. 또한, 반도체 메모리의 테스트 기술로서, 소정의 알고리즘에 따라 메모리 회로의 테스트를 위한 테스트 패턴(어드레스와 데이터)을 생성함과 동시에 메모리 회로에 기록한 데이터의 판독을 행하는 마이크로 명령방식의 제어부와, 데이터의 연산부 및 메모리 회로에서 판독된 데이터를 판정하여 판정결과를 출력하는 데이터 판정수단 등으로 이루어지는 내장 프로그램에 따라 소정의 테스트 패턴을 발생할 수 있는 ALPG(Algorithmic Memory Pattern Generator)라 불리는 테스트 회로를 탑재한 반도체 메모리에 관한 발명이 본 발명자들에 의해 제안되어 있다(국제공개 WO98/47152).
도 1에는, 종래의 일반적인 테스터로 간주할 수 있는 테스터의 개념도가 나타나 있다. 도 1에 나타내는 바와 같이, 테스터(100)는, 테스트되는 반도체장치(200)에 전원전압을 공급하는 전원장치(110)와, 반도체장치(200)의 입력핀에 신호를 입력하는 드라이버(120)와, 반도체장치(200)의 출력핀에서 출력되는 신호와 기대치 신호를 비교하는 비교기(130)와, 반도체장치(200)에 입력하는 신호열(이른바 테스트 패턴) 및 기대치 신호를 생성하는 패턴발생기(140)와, 반도체장치(200)에 입력하는 신호의 인가 타이밍을 발생하는 타이밍 발생기(150)와, 이들 회로를 제어하는 컨트롤러로서의 CPU(160) 등으로 구성되어 있다. 상기 CPU(160)는 외부의 기억장치에서 테스트 프로그램을 판독하여, 그것을 OS(Operating System)에 의해 해석하면서, 테스트용의 신호(이른바 테스트 패턴)의 발생과 판정을 행하고, 소정의 테스트를 실시하도록 구성되어 있다. 테스터(100)에는, 출력핀의 전압레벨 검출 등의 직류 테스트를 행하기 위한 DC 테스트회로(170)가 설치되는 경우도 있다.
일반적으로 테스터는, 극히 범용성이 높은 장치로 제공되고, 그 높은 범용성을 가져오기 위해 복잡하고 고도의 큰 하드웨어를 갖게 되어, 매우 고가가 된다. 즉, 테스터는, 새롭게 개발되는 다양한 반도체장치를 포함한 각종 반도체장치를 그것 1개로 시험할 수 있도록, 필요한 여러 가지의 테스트 항목에 반응하도록 하기 위해 복잡한 구성이 되고, 또 테스트되어야 할 반도체장치의 성능이나 핀수 등에 관해서도 넓은 범위의 동작 주파수나 예상되는 최대급의 핀수에 대응할 수 있도록, 성능, 수량상에서도 고도이며 복잡한 구성을 갖게 되기 때문이다.
사용자가 새롭게 개발한 반도체장치의 테스트를 행하는 경우, 테스트하고자 하는 반도체장치의 규모에 따라서, 테스터를 갖는 기능의 몇 배밖에 사용하지 않는 경우도 발생한다. 테스터의 비용은, 잘 알려져 있는 바와 같이, 반도체칩 내지는 반도체장치로 이루어지는 피(被)테스트 제품의 제조비용에 반영한다. 이것에 의해, 테스터의 매우 비싼 비용은, 반도체칩 내지는 반도체장치의 단가에 되미치거나, 시장에서의 경쟁이나 수요와의 관계에서 비용상승이 불가능한 경우에는 비용삭감을 초래하게 된다.
테스터에 로드되는 테스트 프로그램은, 1개의 반도체장치에 관하여 필요한 모든 종류(수백 ~ 수천에 달하는 경우도 있다)의 테스트에 관한 루틴이 포함되어 있고, 그 프로그램의 길이는, 전체적으로 장대한 길이가 되어버린다. 그 때문에, 테스트 프로그램의 버그(bug) 검출이 곤란한 이상, 버그가 검출된 경우에 수정도 번거로웠다.
종래의 테스터는, 이하와 같은 방식으로 분리된다.
하나는, 도 2(A)에 나타내는 바와 같이, 타이밍 발생기(150)에 의해 생성되어 패턴발생기(140)에서 발생된 신호에 인가 타이밍을 공급하기 위한 클록을, 테스트 헤드(190)의 복수의 핀 일렉트로닉스(P/E1 ~ P/En)에 대하여 공통의 타이밍 클록으로 분배기(180)에서 분배하여 공급함으로써 테스터의 하드웨어의 량을 줄이는 쉐어드 리소스(shared resource) 방식이다. 그 이외에, 도 2(B)에 나타내는 바와 같이 테스트 헤드(190)의 핀 일렉트로닉스(P/E1 ~ P/En) 마다 타이밍 발생기를 갖는 퍼핀 테스트 리소스 방식이다. 또한, 상기 핀 일렉트로닉스(P/E1 ~ P/En)는, 테스트되는 반도체장치의 각 입력핀에 신호를 인가하는 드라이버와 결합수단 등으로 구성된다.
동도 (A)의 쉐어드 리소스 방식의 테스터는, 상술한 바와 같이 하드웨어를 비교적 간단히 할 수 있고, 그 때문에 비교적 저렴한 반면, 동일한 클록이 공급되는 핀 일렉트로닉스(P/E1 ~ P/En)는 동일한 타이밍에서 테스트 신호를 출력하게 되므로, 클록의 수만큼 밖에는 타이밍을 선택할 수 없다. 그 때문에, 이러한 방식의 테스터는, 클록이 적고 하드웨어가 간단하며, 저렴하지만, 타이밍 클록을 어떻게 분배하는가를 설계하지 않으면 않되고 디버그(debug)에서 변경이 발생한 경우에는 재분배 설계가 필요해 지는 등 사용상의 제약이 커 사용하기 어려운 면이 있다. 이 에 비해, (B)의 퍼핀방식(per-pin)의 테스터는, 쉐어드 리소스 방식의 결함을 해소할 수 있는 이점이 있지만, 하드웨어량이 크고 비용이 비싸며, 회로설계가 많아지므로 테스트 소용시간이 길어진다는 문제가 있다. 또한, 쉐어드 리소스 방식은 퍼핀방식 보다도 패턴압축이 곤란한 테스트 프로그램이 길어지는 문제가 있다.
이와 같이, 종래의 테스터는, 매우 고가임과 동시에, 높은 범용성이 기대되는 구성임에도 불구하고 각각의 방식에 고유하게 고려해야 할 특징을 가지고 있다는 것이 이해될 것이다.
이 발명의 목적은, 소요비용이 적게 드는 반도체장치의 테스트회로 구성기술을 제공하는데 있다.
이 발명의 다른 목적은, 반도체장치의 테스트를 위한 단순한 구성으로 하는 것이 가능한 테스트회로 구성기술을 제공하는데 있다.
이 발명의 다른 목적은, 테스트 방식의 선택이 가능한 테스트 방식을 제공하는데 있다.
이 발명의 다른 목적은, 다른 테스트 방식의 혼재를 가능하게 하는 테스트 방식을 제공하는데 있다.
이 발명의 다른 목적은, 반도체장치의 성능향상에 뒤따라 갈 수 있는 테스트 기술을 제공하는데 있다.
이 발명의 또다른 목적은, 테스트 회로를 비교적 단기간에 얻을 수 있는 테스트회로 기술을 제공하는데 있다.
이 발명의 다른 목적은, 테스터를 용이하게 구축하는 것이 가능한 테스트방 식을 제공하는데 있다.
이 발명의 다른 목적은, 테스터 언어를 이용할 수 있는 테스트방식을 제공하는데 있다.
이 발명의 또다른 목적은, 디버그가 용이한 테스트방식을 제공하는데 있다.
이 발명의 다른 목적은, 정보통신에 적합한 테스트방식을 제공하는데 있다.
이 발명의 상기 및 그 이외의 목적과 신규의 특징에 대해서는, 본 명세서의 기술(記述) 및 첨부도면으로부터 명백해질 것이다.
본원에서 개시되는 대표적인 것의 개요를 설명하면 하기와 같다.
즉, 테스터 언어로 기술되어 있는 테스트 대상의 반도체 장치에 관한 테스트 프로그램을 해석하여, 테스트 패턴의 생성 알고리즘을 추출하고, 실시하고자 하는 테스트 내용에 따라 기능을 취사(取捨)한 테스트 회로(ALPG)의 구성을 결정하고, 상기 결정한 구성에 의거하여 HDL(Hardware Discription Language : 하드웨어 기술언어)에 의해 소망의 테스트 단위로의 테스트가 가능한 테스트 회로의 기술(테스트 회로 구축 데이터)을 생성한다.
상기한 수단에 의하면, HDL로 기술된 테스트회로 구축데이터를 이용하여, 임의의 논리를 구성할 수 있는 가변논리회로로서의 FPGA(Field Programmable Gate Array) 등의 테스트 회로를 구축할 수 있으므로, 그 테스트 회로를 이용하여 테스트 대상의 반도체장치의 테스트를 실시함으로써, 시판되는 대형 테스터를 사용하지 않고 테스트를 행할 수 있다. 게다가, 테스트의 내용마다 최적의 테스트 회로를 구 축하므로, 테스트 회로에 필요한 하드웨어량을 대폭으로 줄일 수 있고, 그것에 의해 FPGA 등으로 구축할 수 있어, 저비용으로 테스트를 실시할 수 있다.
또한, HDL에 의한 테스트 회로의 기술은, 기능 엔트리 툴(entry tool)(예를 들면, 「Visual Test」)가 ATE 서비스(주)와 같은 EDA 벤더에서 제공되고 있으므로, 그 툴을 사용함으로써 효율적으로 행할 수 있다. 또한, 상기 기능 엔트리 툴은, 디스플레이 장치의 화면상에 테스트회로를 블록도와 같은 도면으로 표시시켜 각 블록(모듈이라 칭함)간의 접속이나 신호의 입출력 방향의 설정 등을 행하고 모듈을 선택하여 명령기호나 동작내용을 입력하면 자동적으로 HDL 기술을 작성하는 기능을 갖는 툴이기도 하다. 또한, 테스트 회로의 HDL 기술에서 FPGA 내에 논리를 구축하는 정(正)툴(예를 들면 「Leonardo」)도 EDA 벤더에서 제공되고 있으므로, 그 툴을 사용함으로써 용이하게 테스트 회로를 구축할 수 있다.
또한, 테스터 언어로 기술된 테스트 프로그램에서 테스트 대상의 반도체장치를 시험하는 테스트회로(ALPG)를 FPGA 내에 구축하기 위한 데이터의 작성까지를 컴퓨터상에서 행할 수 있으므로, 예를 들면 소프트웨어 메이커는, 반도체 메이커가 개발한 반도체장치에 관한 테스트 프로그램을 반도체 메이커에서 받아 그것을 해석함으로써 HDL로 기술된 ALPG 구축 데이터를 작성하여 반도체 메이커로 넘겨준다. 그리고, 반도체 메이커는 소프트웨어 메이커가 작성한 ALPG 구축 데이터를 받아 FPGA 내에 ALPG를 구축하고, 그것을 이용함으로써 고가의 테스터를 사용하지 않고 개발한 반도체장치의 테스트를 행할 수 있다.
(발명의 실시형태)
이하, 본 발명의 적합한 실시예를 도면에 의거하여 설명한다.
새롭게 반도체장치가 개발되면, 테스팅 엔지니어에 의해 테스트 프로그램이 작성된다.
도 3에 나타내는 바와 같이 테스팅 엔지니어는, 우선, 몇 홀드의 신호를 어느 핀에 인가하는가 등이 기재되어 있는 테스트 사양서(TSB)를 참고로, 개발한 반도체장치의 테스트 수법 및 사용하는 테스터 언어를 결정한다(스텝 S1). 다음에, 결정한 테스터 언어에 관한 메뉴얼(TLM)을 참조하면서, 결정한 테스트 수법에 따라 프로그래밍을 행한다(스텝 S2). 상기 테스터 언어는, 테스터 업계에서 일반적으로 이용되고 있는 기존의 언어로 이해되어 좋고, 예를 들면 어드번스 테스트사(社)의 테스터 언어 등을 생각할 수 있다. 그리고, 다음의 스텝 S3에서는, 회로 시뮬레이션 데이터(SMD)가 있는 경우에는 시뮬레이션에 이용된 테스트 패턴을 테스터에 적합한 테스트 패턴으로 변환하여, 테스트 패턴을 포함하는 테스트 프로그램(TPR)이 작성된다. 또한, 상기 시뮬레이션 데이터를 테스트 패턴으로 변환하는 툴(지원 프로그램)로서는, 예를 들면 TSSI사(社)에서 제공되고 있는 TDS(Test Development Series)라 불리는 툴이 있다. 시뮬레이션은, 그러한 툴을 이용함으로써 효율적으로 행할 수 있다.
또한, 상기 스텝 S3에서는, 시뮬레이션 데이터가 없는 경우, 새롭게 테스트 패턴을 작성한다. 혹은 이미 개발되어 테스트가 종료되어 있는 유사한 반도체장치용의 테스트 패턴으로 다른 테스터 언어로 기술되어 있는 것이 있으면, 그것을 상기 TDS로 변환하여 작성하는 것도 가능하다. 이 스텝 S3에서 작성되는 테스트 패턴 은, 테스트 프로그램에 의해 테스트 대상이 반도체장치의 핀에 입력하는 "1", "0"의 데이터의 나열이며, 반복하여 행하는 경우에는 그 반복의 단위가 되는 최소의 데이터 열이다. 한편, 스텝 S2에서 행해지는 프로그래밍은, 이 테스트 패턴의 출력순서나 출력 타이밍, 출력시간, 전압레벨 등을 공급하는 명령리스트의 작성이다. 테스트 프로그램이 완성되면, 다음의 스텝 S4에서 그 테스트 프로그램에 버그가 포함되어 있지 않은지 조사하여, 버그가 없어지면 완성된다.
시뮬레이션 데이터를 테스트 패턴으로 변환하는 경우, 시뮬레이션 데이터는 일반적으로 모든 패턴열에 대하여 타이밍 정보를 구비시키는 타임 드리븐(time-driven) 형식으로 기술되어 있지만, 테스터에는 동작속도에 상한이 있으므로, 테스터에서의 테스트 패턴의 기술은, 테스트 패턴의 동작 레이트(클록 주파수)에 대해 패턴 및 타이밍 정보를 구비시키는 테스터의 테스트 레이트 기술형식으로 되어 있다. 그 때문에, 타임 드리븐 형식의 시뮬레이션 데이터는 테스트 레이트 기술형식의 테스터와는 기술형식이 합치하지 않으므로, 상기 TDS는, 이 형성의 차이를 흡수하여, 소망의 테스터에 적합한 패턴으로 변환하는 기능을 가지고 있다.
구체적으로는, TDS는, 시뮬레이션 데이터의 대국적인 상태(회로 전체가 어떻게 동작하고 있는 상태에 있는가)를 인식하여 테스트 레이트를 생성하고, 그 레이트에 맞추어 시뮬레이션 데이터에서 테스트 패턴을 잘라내고, 또, 타이밍을 생성함으로써, 타임 드리븐 형식의 데이터에서 테스트 레이트 형식의 테스트 패턴을 자동생성하도록 구성되어 있다. 그리고, TDS는, 입력신호에 대하여 소정의 타이밍이 테스터의 하드상의 제한으로 생성할 수 없다면 에러정보를 조작자에 대하여 나타내어 알린다. 다른 2개의 클록에서 타이밍을 공급하는 더블 레이트 방식이나 복수의 핀을 사용하여 타이밍을 공급하는 핀멀티방식 등의 적당한 테스트 패턴 생성방식을 선택시켜 문제를 해결한다. 또한, 출력신호에 관해서는, 생성할 수 없었던 타이밍에 대하여 알람을 꺼내어 조작자에게 주의를 촉구하는 구조로 되어 있다. 또한, TDS는, 다른 테스터용의 테스트 패턴을 다른 테스터용의 테스트 패턴으로 변환하는 기능도 구비하고 있다.
테스트 프로그램이 완성되면, 다음에 테스트 회로를 구축하겠지만, 본 발명에서는 이하와 같은 순서에 따라, 소정의 알고리즘에 따라 메모리를 검사하기 위한 테스트 패턴을 발생하는 ALPG로 이루어지는 테스트 회로를 반도체장치로 제공되고 있는 FPGA 내에 구축한다. 이 경우, ALPG의 논리규모와의 관계에서 1개의 FPGA로는 부족할 때에는, 2 이상의 FPGA를 이용하여 소망의 ALPG를 구축하도록 하면 된다. 또한, 네번째 대상이 되는 반도체장치와 동일한 반도체칩상에 FPGA를 설치하여, 그 FPGA 내에 ALPG를 구축하도록 해도 된다. 테스트 대상이 되는 반도체장치와, FPGA를 동일한 반도체 칩상에 설치하는 기술은 앞서 제안한 출원(PCT/JP99/01974) 등에 개시되어 있다.
도 4에는 테스트 프로그램에서 테스트 패턴을 발생하는 ALPG를 FPGA 내에 구축하는 순서의 일예가 나타나 있다. 또한, 여기서는, 테스트 프로그램을 작성한 엔지니어와, 테스트 회로로서의 ALPG를 구축하는 데이터를 작성하는 엔지니어는 다른 사람으로 하여 설명한다.
우선, ALPG 구축 데이터를 작성하는 일반적인 엔지니어는, 주어진 테스트 프 로그램과 그것을 기술하고 있는 테스터 언어의 메뉴얼로 테스트 프로그램의 해석을 행할 수 있고, 그것에 의해 테스트 프로그램이 의미하는 내용, 즉, 어떤 처리순서와, 어떤 데이터가 형성되는가를 명확히 할 수 있다. 이것에 의해, 테스트 프로그램에 대응되어야 할 테스트 회로의 구조가 인식된다. 즉, 테스트하고자 하는 반도체장치에 따른 테스트 패턴의 생성 알고리즘을 추출하여 구축하는 ALPG의 형식 즉, 개략구성(회로의 블록도적인 구성)이 해결된다(스텝 S11). 예를 들면, 테스트하고자 하는 반도체장치가 메모리일 때는, 어드레스와 데이터를 생성하는 ALPG 형식이 결정되고, 또 논리 LSI이면 입력 데이터와 기대치 데이터를 생성하는 ALPG의 형식이 결정되도록, 시험하는 반도체장치에 따른 알고리즘과 그것을 구체화하는 ALPG의 형식(을 결정하여 행함)이 결정된다. 통상의 테스팅 엔지니어에게 있어서는, 테스터의 회로도가 없어도, 테스터 언어로 기술된 테스트 프로그램과, 테스터 언어 메뉴얼에서 테스트 동작을 인식할 수 있고, 그 테스트 동작에서 테스터의 구조를 인식할 수 있으므로, 테스트 프로그램에서 테스트하고자 하는 반도체장치의 ALPG(테스트 회로)의 형식을 결정할 수 있다.
다음에, 완성한 테스트 프로그램을 해석하여 최소 테스트 단위로 분해하여, 각 단위 테스트마다 필요한 기능을 취사(取捨)하여 최적의 ALPG의 구조(구성) 즉, 구성요소와 그들의 접속관계 등을 결정한다(스텝 S12). 이 경우, 우선 테스트 프로그램에 기술되어 있는 모든 테스트를 실행하는데에 필요한 구성요소를 결정하고 그 구성요소 중에서, 착안하는 테스트의 실행에 필요하지 않은 구성요소를 삭제하도록 해도 된다.
다음에, 결정한 구조를 갖는 ALPG를 HDL(Hardware Discription Language)로 기술한다(스텝 S13). 이 HDL에 의한 ALPG의 기술은, 테스팅 엔지니어가 수작업으로 행해도 되지만, 예를 들면 ATE 서비스(주)에서 「Visual Test」라 불리는 기능 엔트리 툴이 제공되어 있으므로, 그것을 이용하여 행할 수 있다.
그 후, HDL로 기술된 데이터를 이용하여 FPGA와 검사되는 반도체장치를 하나의 보드상에 탑재하여 테스트를 실행한다(스텝 S15). 본 발명자들에 앞서 제안한 출원(PCT/JP99/01974)에 개시되어 있는 바와 같이, FPGA를 테스트하고자 하는 논리 LSI에 내장시키는 것도 가능하며, FPGA를 내장한 논리 LSI에서는 HDL 기술에서 칩 내의 FPGA에 ALPG를 구축하여, 그 ALPG에 의해 칩 내의 논리부의 테스트를 행하도록 하는 것도 가능하다. 이 경우, 구축한 ALPG에 의한 1개의 테스트가 종료했다면, 다른 테스트를 행하는데 적합한 ALPG를 FPGA 내에 다시 구축하여 재차 테스트를 실행하는 것도 가능하다.
또한, 임의의 논리를 구성할 수 있는 FPGA는, 예를 들면 알테라사(社)에서 130K 게이트 규모의 1칩 LSI(형번 EPF10K130E)가 제공되어 있으므로, 그것을 이용함으로써 ALPG를 구축할 수 있다. 또한, HDL 기술에서 FPGA 내에 논리를 구성하기 위한 지원툴로서는, 예를 들면 알테라사에서 제공되어 있는 「MAX+plus11」이 있으므로 그것을 이용하여 컴퓨터로 자동적으로 행할 수 있다.
본 발명자가 검토를 행한 결과로는, 예를 들면 메모리의 테스트 패턴을 생성하는 후술과 같은 메모리용 ALPG는 논리 게이트수로 환산하여 1만개 이하로 구축할 수 있는 것을 알 수 있었으므로, 상기 ALPG를 FPGA 내에 구축하는 것은 충분히 가 능하다.
그런데, 상기와 같은 수법에 의한 테스터의 제공자는, 상기와 같이 ALPG가 구축된 FPGA를, 반도체장치의 테스트를 행하고자 하는 사용자에게 제공해도 되고, 도 4의 스텝 S13에서 생성한 HDL로 기술한 테스트 회로구축 데이터를 제공하도록 해도 된다. 그 경우, 테스트 회로구축 데이터를 기억매체 혹은 전송매체의 형태로 제공하고, 제공을 받은 사람이 컴퓨터를 이용하여 제공된 HDL에서 예를 들면 FPGA에 테스트 회로를 구성한다.
도 5에, 상기 툴에 의해 내부에 ALPG가 구축된 FPGA와 그것을 이용한 메모리의 테스트 보드의 구성예를 나타낸다.
도 5에서, 510은 내부에 ALPG가 구축된 FPGA이며, 이 FPGA는 내부에 메모리 회로가 탑재되어 있고, 본 실시예에서는 그 내부 메모리 회로를, 소정의 테스트 패턴 생성 알고리즘에 따라 기술된 복수의 마이크로 명령군으로 이루어지는 마이크로 프로그램을 저장하는 명령 메모리로서 이용하고 있다. 또한, 520은 FPGA(510)의 동작에 필요한 클록신호(CLK)를 발생하는 클록발생기, 530은 FPGA(510)에 대하여 메뉴얼 리셋을 했을 때에 리셋신호(RST)를 발생하는 리셋 스위치, 540은 FPGA(510)에 의해 생성된 기대치와 FPGA에 의해 테스트 대상의 피측정 LSI(550)에서 출력된 데이터를 비교하여 양/불량을 판정하는 판정기이며, 이들의 회로는 프린트 기판과 같은 1개의 보드(500)상에 탑재되고, 테스트를 구성하고 있다.
또한, 도 5에서, 561, 562는 FPGA(510) 내에 소망의 논리를 구성시키는 데이터하기 위한 디바이스이다. FPGA는 임의의 논리를 구성할 수 있는 가변논리회로와 임의의 가변논리회로간을 배선을 통하여 접속 가능하게 하는 가변 스위치 어레이가 교대로 배치되는 구성을 가지고 있으며, 상기 디바이스(561, 562)에는 FPGA 내의 각 가변논리회로에서의 논리를 결정하는 데이터와 각 가변스위치 어레이 내의 도통되야 할 스위치를 설정하는 데이터가 저장되고, 이것들에 의해 FPGA 내에 소망의 논리가 구성된다.
또한, 도 5의 테스트 보드에서는, 특히 제한되지 않지만, 보드(500)상에 프린트 배선으로 FPGA와 접속된 소켓이 설치되어 있고, 테스트 대상의 LSI(550)는 이 소켓에 삽입됨으로써, FPGA에서의 신호를 받아 동작 가능하게 된다.
다음에, 일예로서 반도체 메모리(DRAM)를 시험하는 메모리 테스트회로를 예로 하여, 상기 방법에 의해 생성된 테스트 회로구축 데이터에 의거하여 구축되는 메모리 테스트 회로의 구체예를 설명한다.
도 6은, 소정의 알고리즘에 따라 메모리를 검사하기 위한 테스트 패턴을 발생하는 ALPG의 개략 구성을 나타낸다. 이 실시예의 ALPG는, 테스트 패턴생성 알고리즘에 따라 기술된 복수의 마이크로 명령군으로 이루어지는 마이크로 프로그램이 저장된 명령 메모리(11)와, 상기 명령 메모리(11)에서 판독해야 할 마이크로 명령을 지정하는 프로그램 카운터(12)와, 명령 메모리(11)에서 판독된 마이크로 명령 내의 명령코드를 해독하여 메모리 회로에 대한 제어신호나 프로그램 카운터(12) 등 ALPG를 구성하는 기능 블록에 대한 제어신호를 형성하는 시퀀스 제어회로(13)와, 명령 메모리(11)에서 판독된 마이크로 명령에 따라 테스트 어드레스를 생성하는 어드레스 연산회로(14)와, 판독된 마이크로 명령에 따라 테스트 데이터 및 기대치 데 이터를 생성하는 테스트 데이터 생성회로(15) 등으로 구성되어 있다.
또한, 검사대상의 메모리 회로가 정상인지 아닌지를 판정하는데는 메모리 회로에서 판독된 데이터와 기록된 데이터를 비교하여 일치하고 있는가를 판정하는 수단이 필요하므로, 그러한 비교판정회로도 ALPG에 설치하는 것은 충분히 가능하지만, 외부의 컴퓨터에서 행하는 것도 가능하다. 그래서, 본 실시예에서는, 이해를 용이하게 하기 위해 그러한 비교판정기능은 외부의 컴퓨터가 갖게 하고, 이 실시예의 ALPG는 비교판정의 기능을 가지고 있지 않은 것으로 하여 설명한다.
상기 명령 메모리(11)에 저장되는 마이크로 명령은, 도 6에 나타나 있는 바와 같이, 점프명령으로 사용하는 명령의 점프번지를 나타내는 PC 어드레스가 저장되는 어드레스 필드(MFa)와, 시퀀스 제어코드가 저장되는 OP코드 필드(MFb)와, 명령의 반복회수 등이 저장되는 오퍼랜드 필드(MFc)와, 어드레스나 데이터의 출력 및 리드/라이트를 지시하는 제어코드가 저장되는 제어필드(MFd)와, 어드레스 연산명령코드가 저장되는 어드레스 연산코드 필드(MFe)와, 데이터생성 명령코드가 저장되는 데이터생성 코드필드(MFf) 등으로 이루어진다.
도 7에는, 시퀀스 제어회로(13)의 구성예가 나타나 있다. 이 실시예의 시퀀스 제어회로(13)는, 오퍼랜드 필드(MFb)의 제어코드를 해독하여 제어신호를 형성하는 디코더 등으로 이루어지는 명령 해독 제어부(30)와, 프로그램 카운터(12)의 값을 「+1」하기 위한 인크리멘터(31)와, 상기 인크리멘터(31) 또는 어드레스 필드(MFa) 내의 점프번지 중 하나를 선택하여 프로그램 카운터(12)로 공급하는 멀티플렉서(32)와, 오퍼랜드 필드(MFc) 내의 반복수를 유지하는 인덱스 레지스터(33) 와, 상기 인덱스 레지스터(33)의 값을 「-1」하기 위한 디크리멘터(34)와, 「-1」된 값을 유지하는 워킹 레지스터(35)와, 후술하는 JDX 명령(표 1 참조)에서 이용하는 데이터 반전의 유무를 나타내는 플래그(36)와, JNI 명령에서 이용하는 오퍼랜드의 프로그램 카운터(12)로의 전송의 유무를 나타내는 플래그(37)와, 레지스터(33, 35)의 값을 선택적으로 상기 디크리멘터(34)에 공급하는 멀티플렉서(38)와, 디크리멘터(34)의 값을 워킹 레지스터(35)의 어떤 플레인(plane)으로 분배하는 디멀티플렉서(39) 등으로 구성된다.
표 1에는, 상기 마이크로 명령 내의 OP코드 필드(MFb)에 저장되어 상기 시퀀스 제어에 이용되는 OP코드의 종류와 그 내용이 나타나 있다.
Figure 112001018481771-pat00001
표 1에서, 「NOP」로 나타나는 명령은, 프로그램 카운터(12)의 값을 인크리 멘터(31)에서 「+1」하여 프로그램 카운터(12)에 다시 입력하는 것을 지시하는 넌오퍼레이션(non-operation) 명령 즉, 프로그램 카운터의 갱신 이외에 어떤 조작도 행하지 않고 다음의 명령으로 이동하는 것을 지령하는 명령이다.
또한, 「JNI1」 ~ 「JNI4」는, 점프에 의한 명령루프를 돌리기 위해 준비된 명령이다. 메모리의 패턴 테스트에서는, 점프명령을 이용하여 같은 명령을 몇 회 반복하여 실행함으로써 명령수를 줄일 수 있는 경우(예를 들면, 어드레스를 최종번지까지 증가함으로써, 모든 메모리셀에 「1」을 기록하여 판독하는 경우)가 있다. 이 루프(점프)의 회수를 설정할 수 있도록 하기 위해 본 실시예에서는, 인덱스 레지스터(33)를 설치하고 있고, 게다가 복수 종류의 판정방식을 실행할 수 있도록 하기 위해, 점프명령과 인덱스 레지스터(33) 및 워킹 레지스터(35)를 각각 4개씩 설치하고 있다.
각 점프명령은 같은 제어내용이므로, 이하 「JNI1」에 의한 제어동작을 설명하고, 다른 것은 생략한다.
OP코드 필드(MFb)에서 JNI1 명령이 판독되면, 그것이 최초의 JNI1 명령인지 판정되고, 그 판정결과가 플래그(37)에 반영된다. 구체적으로는, 최초의 JNI1일 때는 플래그 JF1 =0이 되고, 2회째 이후에는 JF1=1이 된다.
플래그 JF1=0일 때에 JNI1 명령이 판독되면, 그 마이크로 명령의 어드레스 필드(MFa) 내의 PC 어드레스를 프로그램 카운터(12)에 설정하도록 멀티플렉서(32)가 제어되고, 그것에 의해 마이크로 명령은 그 번지로 점프됨과 동시에, 플래그(JF1)는 「1」로 셋트된다. 이것과 동시에, 오퍼랜드 필드(MFc) 내의 루프회 수가 인덱스 레지스터(33)의 IDX1로 읽어들인다.
플래그 JF1=1일 때에 JNI1 명령이 판독되면, 그 마이크로 명령의 어드레스 필드(MFa) 내의 PC 어드레스를 프로그램 카운터(12)에 설정함과 동시에, 인덱스 레지스터(33)의 IDX1 내의 루프회수가 멀티플렉서(38)를 통하여 디크리멘터(34)에 공급되어 「-1」되고, 디멀티플렉서(39)를 통하여 워킹 레지스터(35)의 IDXW1에 저장된다. 그리고, 워킹 레지스터(35)의 IDXW1이 「0」이 되면, 마이크로 명령의 어드레스 필드(MFa) 내의 PC 어드레스를 프로그램 카운터(12)에 설정하지 않는 대신에, 프로그램 카운터(12)의 어드레스를 인크리멘터(31)에서 「+1」하여 프로그램 카운터(12)로 되돌아 가도록 멀티플렉서(32)가 제어된다.
따라서, 마이크로 명령의 OP코드 필드(MFb)에 JNI 명령이 저장되고, 그 어드레스 필드(MFa) 내에 해당 마이크로 명령의 PC 어드레스가 저장되어 있으면, 오퍼랜드 필드(MFc) 내의 회수만큼 동일한 JNI 명령을 실행하여 루프를 반복하고, 마지막에 프로그램 카운터(12)가 증가되어 다음의 마이크로 명령으로 진행하여 루프에서 벗어나도록 제어가 행해진다.
또한, 표 1 내의 「JZD」는, 인덱스 레지스터(33)의 IDX의 값을 「-1」하여 워킹 레지스터(35)의 IDXW에 입력함과 동시에, 플래그(37) 내의 DFLG가 「0」일 때는 오퍼랜드를 프로그램 카운터로 전송하여 오퍼랜드를 나타내는 점프번지의 명령으로 점프하고 또 DFLG 플래그를 「1」로 셋트하여, DFLG 플래그가 「1」일 때는 프로그램 카운터의 값을 증가하여 프로그램 카운터로 되돌아 가고, 또 DFLG 플래그를 「0」으로 리셋하는 것을 지령하는 명령이다.
또한, 「JMP」는 오퍼랜드를 프로그램 카운터로 전송하여 오퍼랜드를 나타내는 점프번지의 명령으로 점프하는 것을 지령하는 명령이다. 「STOP」은, 시퀀스 제어를 종료시키는 정지명령이다.
도 8에는, 상기 어드레스 연산회로(14)의 구성예가 나타나 있다. 이 실시예의 어드레스 연산회로(14)는, 크게 나누어 X 어드레스의 생성을 행하는 X 어드레스 연산부(41)와, Y 어드레스의 생성을 행하는 Y 어드레스 연산부(42)로 구성되어 있다. X 어드레스 연산부(41)와 Y 어드레스 연산부(42)는 거의 동일한 구성이므로, 이하, X 어드레스 연산부(41)의 구성을 설명하고, Y 어드레스 연산부(42) 구성의 설명을 생략한다. 또, 필요에 따라 불가한 Z 어드레스 연산부를 설치함으로써, 부분적인 패턴의 생성(파셜(partial)패턴)을 행하도록 할 수 있다.
X 어드레스 연산부(41)는, X 어드레스의 초기치를 저장하는 초기치 레지스터(XH)와, 「0」을 유지하는 제로설정수단(43)과, X 어드레스의 초기치 또는 「0」중 어느 하나를 선택하는 멀티플렉서(MUX1)와, 선택된 초기치 또는 「0」을 유지하는 베이스 레지스터(XB)와, 레지스터(XB)의 값을 가산하는 제1 연산기(ALU1)와, 연산기(ALU1)의 연산결과 또는 「0」 또는 귀환치 중 어느 하나를 선택하는 제2 멀티플렉서(MUX2)와, 선택된 값을 유지하는 커런트 레지스터(XC)와, 레지스터(XC)의 값을 가산 혹은 감산하는 제2 연산기(ALU2)와, 이 제2 연산기(ALU2) 또는 상기 제1 연산기(ALU1)의 출력 중 어느 하나를 선택하는 제3 멀티플렉서(MUX3)와, 선택된 출력을 반전시킬 수 있는 인버터(INV)로 구성되어 있다. 이 인버터(INV)는, 메모리의 패턴 테스트에서는 어드레스 신호의 전환 노이즈에 의 한 오동작을 시험하는 경우가 있고, 그 때에 어드레스 신호의 반전신호를 출력할 필요가 있으므로 설치된 것으로, 이 인버터를 사용함으로써 그러한 테스트에서 어드레스의 반전신호를 용이하게 형성할 수 있다.
특히, 제한되지 않지만, 이 실시예에서는, 상기 X 어드레스 연산부(41)의 연산기(ALU1, ALU2)에서 생성된 X 어드레스를 Y 어드레스측으로, 또는 Y 어드레스 연산부(42)에서 생성된 Y 어드레스를 X 어드레스측으로 출력할 수 있도록, 각각의 제3 멀티플렉서(MUX3)가 구성되어 있다. 이것에 의해, 복수의 종류의 메모리, 예를 들면 어드레스 멀티플렉스 방식의 메모리 및 어드레스 넌멀티플렉스방식의 메모리중 어떤 테스트 회로로도 사용할 수 있게 구성되어 있다. 결국, 명령 메모리(11)에 저장하는 마이크로 명령을 재기록하는 것만으로 수단이 다른 복수의 메모리에 대하여 그것에 필요한 테스트 패턴을 발생하여 검사를 행할 수 있다.
또한, 상기 X 어드레스 연산부(41)와 Y 어드레스 연산부(42)가 다른 점은, X 어드레스 연산부(41)의 제1 연산기(ALU1)가 오버플로우했을 때에 Y 어드레스 연산부(42)의 제1 연산기(ALU1)에 대해서는 바로우(borrow)신호(BR)가 공급되게 되어 있는 점이다.
표 2에는, 상기 마이크로 명령 내의 연산코드 필드(MFe)에 저장되고, 상기 Y 어드레스 연산부(42)의 제1 연산기(ALU1)에서의 Y 어드레스 연산(베이스 연산)에 이용되는 연산코드의 종류와 그 내용이 나타나 있다.
Figure 112001018481771-pat00002
표 2에서, YB<YB는 아무것도 하지 않는 넌오퍼레이션 명령, YB<0은 베이스 레지스터(YB)의 값을 「0」으로 하는 것을 지령하는 명령, YB<YH는 초기치 레지스터(YH)의 내용을 베이스 레지스터(YB)에 입력하는 것을 지령하는 명령, YB<YB+1은 베이스 레지스터(YB)의 값을 인크리먼트(+1)하여 레지스터(YB)에 다시 입력하는 것을 지령하는 명령, YB<YB-1은 베이스 레지스터(YB)의 값을 감소(-1)하여 레지스터(YB)에 다시 입력하는 것을 지령하는 명령, YB<YB+1^BX는 베이스 레지스터(XB)의 값이 최대치가 아니면 YB의 값을 그대로 하고 XB의 값이 최대치이면 YB의 값을 증가하여 레지스터(YB)에 다시 입력하는 것을 지령하는 명령, YB<YB+1+BX는 베이스 레지스터(XB)의 값이 최대치가 아니면 YB의 값을 증가(+1)하여 레지스터(YB)에 다시 입력하고, XB의 값이 최대치이면 YB의 값을 더블 인크리먼트(+2)하여 레지스터(YB)에 다시 입력하는 것을 지령하는 명령, YB<YB-1-BX는 베이스 레지스터(XB)의 값이 최대치가 아니면 YB의 값을 감소(-1)하여 레지스터(YB)에 다시 입력하고 XB의 값이 최대치가 아니면 YB의 값을 더블 디크리먼트(-2)하여 레 지스터(YB)에 다시 입력하는 것을 지령하는 명령이다.
표 3에는, 상기 X어드레스 연산부(41)의 제1 연산기(ALU1)에서의 어드레스 연산에 이용되는 연산코드의 종류와 그 내용이 나타나 있다. 표 4에는, 상기 Y 어드레스 연산부(42)의 제2 연산기(ALU2)에서의 Y 어드레스 연산(커런트 연산)에 이용되는 연산코드의 종류와 그 내용이 나타나 있다. 표 5에는, 상기 X 어드레스 연산부(41)의 제2 연산기(ALU2)에서의 어드레스 연산에 이용되는 연산코드의 종류와 그 내용이 나타나 있다.
Figure 112001018481771-pat00003
Figure 112001018481771-pat00004
Figure 112001018481771-pat00005
또한, 도 8에 나타나 있는 부호 X<XB, X<XC, Y<YB, Y<YC는 각각 레지스터 XB, XC, YB, YC의 값을 출력하는 명령, /X, /Y는 인버터(INV)에 의해 출력을 반전시키는 명령이다.
도 9에는 상기 테스트 데이터 생성회로(15)의 구성예가 나타나 있다. 이 실시예의 테스트 데이터 생성회로(15)는, 라이트 데이터의 초기치를 저장하는 초기치 레지스터(TH)와, 상기 초기치(또는 연산기(ALU)의 결과)를 출력해야 하는 테스트 데이터의 기준데이터로서 유지하는 베이스 데이터 레지스터(TP)와, 비트쉬프트 기능을 갖는 연산기(ALU)와, 상기 연산기(ALU)의 출력을 반전시킬 수 있는 인버터(INVERT)로 구성되어 있다.
표 6에는, 상기 마이크로 명령 내의 데이터 생성코드 필드(MFf)에 저장되고, 상기 테스트 데이터 생성회로(15)에서의 동작제어에 이용되는 제어코드의 종류와 그 내용이 나타나 있다. 표 6에서, TP<TP는 아무것도 하지 않는 넌오퍼레이션 명령, TP<0은 레지스터(TP)의 값을 「0」으로 하는 명령, TP<TPH는 초기치 레지스터(TH)의 값을 레지스터(TP)에 입력하는 명령, /D는 레지스터(TP)의 값을 반전하여 출력하는 명령, TP<TP*2는, 레지스터(TP)와 연산기(ALU)를 제어하여 레지스터(TP) 내의 18비트의 데이터를 연산기(ALU)로 처리하여 비트열을 MSB측 혹은 LSB측으로 1비트 쉬프트시키고, 레지스터(TP)에 다시 입력하는 명령이다. 이 명령에 의해, 메모리부가 1워드 혹은 1바이트의 단위로 데이터의 리드ㆍ라이트가 행해지는 타입의 메모리여도, 메모리셀에 대하여 1비트씩 데이터 「1」를 기록하기 위한 테스트 데이터를 비교적 용이하게 생성할 수 있다.
Figure 112001018481771-pat00006

도 10에, 도 6 ~ 도 9와 같은 구성을 갖는 ALPG에 의해, 도 11에 나타내는 바와 같은 대각 핑퐁(ping-pong)테스트를 행하는 경우의 테스트 프로그램의 명령리스트를 나타낸다. 이 대각 핑퐁테스트는, 대각선상에 있는 다른 비트의 판독동작에 의해 지적한 비트의 기억 데이터가 변화하지 않는지의 여부를 검출하는 테스트이다.
도 10의 명령 리스트에서, 제1행은 테스트의 내용을 나타내는 선언문, 제2행의 "REGISTER"부터 제9행의 "D3B=#1"은 테스트 대상의 메모리 기억용량에 따른 상한치 등 레지스터의 규정치를 설정하는 명령, 제10행의 "PC=#000"은 프로그램 카운터값을 "000"으로 설정하는 명령, 제11행은 스타트명령, 제12행은 시퀀스 제어회로(13)에서는 아무것도 하지 않고 연산부에서는 각 레지스터(XB, YB, TP) 등의 초기치를 설정하는 명령이다.
또한, 제 13 ~ 20행의 스텝 ST1 ~ ST4의 명령은, 표1 ~ 표6의 명령을 조합시킨 것으로, 이것들을 순차적으로 실행함으로써, ALPG에 의해, 도 11(a)와 같이 「메모리 어레이의 모든 비트에 "0"을 기록한 후, 도 11(b) ~ (f)와 같이 메모리 어레이의 선두비트에서 순서대로 "1"을 기록하여 대각선상의 다른 비트에서 "0"을 판독하여 다시 원래의 비트로 되돌아가 "1"을 판독하는 동작을 반복하여 행하는 어드레스와 데이터가 생성되어 출력된다. 또한, 표 1 ~ 표 6에는 나타나 있지 않지만, 상기 리스트에서, D3, D3B는 「+2」나 「+3」과 같이 어드레스의 가산량을 저장하는 레지스터를 의미하고, D3<D3B는 레지스터(D3B)의 값을 D3에 입력하는 명령, XC<XB+D3는 레지스터 XB의 값에 D3B의 값을 가산하여 레지스터 XC에 입력하는 명령이다. YC<YB+D3 등도 동일하다. 또한, "W"와 "R"은 명령코드의 제어필드(MFd)에 저장되는 기록이나 판독을 나타내는 부호, STOP은 정지명령이다.
도 12 및 도 13에는, 메모리 테스트의 하나인 마칭(marching) 테스트를 행하는 경우의 ALPG의 시퀀스 제어회로와 어드레스 연산부의 구성이 나타나 있다. ALPG 전체의 구성 및 데이터 연산회로의 구성은 제1의 실시예(도 6 및 도 9)와 같다.
마칭 테스트에서는, 메모리 어레이 내의 메모리셀의 모든 비트가 순서대로 선택되고, 선택된 메모리셀에는, 「0」의 데이터가 기록된 후, 기록된 「0」의 데이터의 판독이 행해진다. 이어서, 모든 비트가 순서대로 선택되고, 선택된 메모리셀에는 「1」의 데이터가 기록된 후, 기록된 「1」의 데이터가 판독되고, 각각 기대치와 비교하여 결함의 유무가 판정된다.
도 6 ~ 도 9의 ALPG와 이 실시예의 ALPG와의 차이는, 이 실시예의 ALPG에서는, 도 12에 나타나 있는 바와 같이, 시퀀스 제어회로(13)에서는, 인덱스 레지스터(33)와, 워킹 레지스터(35)와, JNI 명령에서 이용하는 오퍼랜드의 프로그램 카운터(12)로의 전송의 유무를 나타내는 플래그(37)가 각각 4개가 아니라 1개이면 됨과 동시에, 인덱스 레지스터(33)의 값을 디크리멘터(34)의 어떤 플레인으로 분배하는 디멀티플렉서(38)와, 디크리멘터(34)의 값을 워킹 레지스터(35)의 어떤 플레인으로 분배하는 디멀티플렉서(39)가 불필요해진다.
또한, 연산부에서는, 도 13에 나타나 있는 바와 같이, X 어드레스 연산부(41)에서의 연산기(ALU1)의 연산결과 또는 「0」또는 귀환치 중 어느 하나를 선택하는 제2 멀티플렉서(MUX2)와, 선택된 값을 유지하는 커런트 레지스터(XC)와, 레지스터(XC)의 값을 가산 혹은 감산하는 제2 연산기(ALU2)가 불필요하며, Y 어드레스 연산부(42)에서의 연산기(ALU1)의 연산결과 또는 「0」또는 귀환치 중 어떤 것을 선택하는 제2의 멀티플렉서(MUX2)와, 선택된 값을 유지하는 커런트 레지스터(YC)와, 레지스터(YC)의 값을 가산 혹은 감산하는 제2 연산기(ALU2)가 불필요하다. 이러한 것은 테스트 프로그램을 해석함으로써 용이하게 알 수 있으므로, 상술한 바와 같이, 실행하고자 하는 테스트에 필요한 구성만을 갖는 ALPG를 구축함으로써 하드웨어량을 줄이고, 간결한 ALPG를 실현할 수 있다.
도 14는, 마칭(marching) 테스트를 실행하는 마이크로 명령의 리스트를 나타낸다. 이 명령리스트의 스텝 ST1 ~ ST3도 표 1 ~ 표 6의 명령을 조합하여 구성되어 있다.
도 14의 명령 리스트를 실행함으로써, ALPG에 의해, 메모리 어레이 내의 메모리셀의 모든 비트를 순서대로 선택하여 선택된 메모리셀에 「0」의 데이터를 기록한 후, 기록된 「0」의 데이터를 판독하고, 이어서, 모든 비트를 순서대로 선택하여 선택된 메모리셀에 「1」의 데이터를 기록한 후, 기록된 「1」의 데이터를 판독하도록, 어드레스와 데이터의 생성이 행해진다.
이상, 대각 핑퐁 테스트와 마칭 테스트의 2개의 테스트에 대하여 구체적으로 설명하였지만, 반도체 메모리에서는 상기 테스트 이외에, 모든 메모리셀에 「0」 또는 「1」이 기록되는지 검사하는 올(all)「0」 판정 테스트 또는 올「1」 판정 테스트나, 어떤 비트에 「1」을 기록하여 그것에 의해 다른 비트가 오기(誤記)되어 있지 않은지 모든 비트에 대하여 검사하는 이른바 N2승 패턴 테스트(혹은 갤러핑(galloping) 테스트) 등도 행하는 경우가 있지만, 본 발명을 적용하여 각각의 테스트에 필요한 최소의 구성을 갖는 테스트 회로를 구축하여 시험할 수 있다.
또한, 상기 실시예에서는, ALPG를 HDL로 기술한 경우를 설명하였지만, ALPG는 HDL뿐만 아니라, 예를 들면 포트란이나 C언어 등 컴퓨터가 해석할 수 있는 언어로 기술할 수 있다. 도 15에, 대각 핑퐁 테스트를 행하는 경우의 시퀀스 제어회로에 대한 명령리스트를 포트란으로 기술한 예를 나타낸다. 동일하게, 어드레스 연산부나 데이터 연산부에 대한 명령리스트도 포트란으로 기술할 수 있다.
다음에, 도 16 ~ 도 23을 참조하면서, 도 4의 스텝 S13에서 ALPG 구축 데이터의 생성을, 기능 엔트리 툴을 이용하여 행하는 경우의 구체적인 순서를 설명한다.
본 실시예에서 이용되는 기능 엔트리 툴은, 디스플레이 장치의 화면상에, 도 16 ~ 도 20과 같이, 회로블록도와 같은 도면을 표시시켜 각 블록(이하, 모듈이라 칭함)의 입출력신호와 모듈간의 접속을 행하고, 모듈을 선택하여 명령기호나 동작내용 등을 키보드에서 입력하면, 자동적으로 도 21 ~ 도 23과 같은 HDL 기술문을 작성하는 기능을 갖는다. 이하, 그 기능의 상세한 내용을 설명한다.
도 16은 탑모듈의 기술(記述)화면이며, 우측의 블록은 ALPG를 나타낸다. 또한, 좌측의 블록은, ALPG에 입력되는 클록신호(CLK)나 리셋신호(RST), 라이트 인에이블 신호(WE_BAR) 등을 공급하여 ALPG를 기동시키는 신호원(소스)과, ALPG에서 출력되는 어드레스나 데이터 등의 목적지(데스티네이션)를 가상적으로 1개의 블록 test-bench로서 나타낸 것이다. 결국, 도 16은, ALPG의 입출력 신호를 모두 나타내기 위한 화면이다. 이 화면에서 좌측의 툴을 이용하여, ALPG의 입출력신호를 모두 표기한 후, 우측의 블록에 포인터를 맞추어 클릭하면 다음의 화면이 나타난다. 이 화면에서, 도 17과 같이 ALPG의 기본구성을 블록도로 나타냄과 동시에, 각 블록(B1, B2, B3, B4, B5)간의 접속과 신호의 입출력 방향의 설정을 행한다.
도 17에서, 예를 들면 블록(B2)(Sequence Controller)을 클릭하면, 시퀀스 제어회로에 관한 화면이 나타난다. 이 화면에서, 도 18과 같이 시퀀스 제어회로에 의한 제어내용을 플로우챠트로 나타내고, 각 블록에 명령기호 혹은 처리, 조건 등을 기재하고, 또 「NOP」나 「JN1」등의 명령에 관해서는 블록을 클릭하여, 표 1의 우측의 「PC+1→PC」와 같은 동작내용을 키보드로 입력하여 행한다. 그러면, 도 21에 나타내는 바와 같은 시퀀스 제어회로에 관한 HDL 기술문이 자동적으로 작성된다.
명령 메모리에 관해서도 동일하며, 도 17에서 블록(B1)을 클릭하여 다음의 화면을 표시시키고, 도 19와 같은 플로우챠트를 작성하여 각 블록에 조건이나 처리 등을 정의하여 행하면, 도 22에 나타내는 바와 같은 HDL 기술문이 자동적으로 작성된다. 어드레스 연산회로에 관해서도 동일하며, 도 17에서 블록(B5)을 클릭하여 다음의 화면을 표시시켜, 도 20과 같은 플로우챠트를 작성하여 각 블록에 처리나 레지스터 등을 정의하여, 표 2 ~ 표 5의 동작내용을 입력하면, 도 23에 나타내는 바와 같은 HDL 기술문이 자동적으로 작성된다. 데이터 연산회로에 관해서도 동일하며, 도 24에 나타내는 바와 같은 HDL 기술문이 자동적으로 작성된다.
다음에, 논리회로(논리IC)를 시험하는 경우에 FPGA 내에 구축되고, 테스트 패턴을 발생하는 논리용 ALPG의 구체예를, 도 25 ~ 도 29를 이용하여 설명한다. 이들 중, 도 25는 복수의 입력핀에 대한 테스트 신호를 몇 종류의 공통클록에 동기하여 발생하는 쉐어드 리소스 방식의 ALPG에서의 시퀀스 제어회로의 예, 도 28은 각 입력핀에 대한 테스트 신호를 다른 회로에서 발생하는 퍼핀(per-pin)방식의 ALPG에서의 시퀀스 제어회로의 예를 나타낸다.
쉐어드 리소스 방식의 논리용 ALPG의 시퀀스 제어회로는, 상기 실시예에서 설명한 메모리의 테스트 패턴을 생성하는 ALPG와 유사한 구성을 가지고, 예를 들면 도 25에 나타나 있는 바와 같이, 소정의 테스트 패턴 발생 알고리즘에 따라 기술된 복수의 마이크로 명령군으로 이루어지는 마이크로 프로그램이 저장된 명령 메모리(411)와, 상기 명령 메모리(411)에서 판독해야 할 마이크로 명령을 지정하는 프로그램 카운터(412), 명령 메모리(411)에서 판독된 마이크로 명령 내의 명령코드를 해독하여 상기 프로그램 카운터(412) 등 시퀀스 제어회로(400) 내의 회로에 대한 제어신호를 형성하는 명령해독 제어회로(430), 기준클록(Φ0)에 의거하여 타이밍 제어신호를 형성하는 타이밍 발생부(420), 마이크로 명령 내의 타이밍 설정비트(MFd)(TS비트)에 의거하여 타이밍 발생부(420)에 대한 제어 데이터를 출력하는 데이터 레지스터 셋트(417), 마이크로 명령 내의 타이밍 설정비트(MFd)(TS 비트)를 디코드하여 데이터 레지스터 셋트(417)에서 제어데이터를 판독하는 디코더(418) 등을 구비하고 있다.
또한, 테스트 대상이 되는 논리회로의 내부에, 그 기능이 특정되어 있는 회 로(예를 들면, ALU : Arithmetic Logic Unit)의 경우에는, 이미 적절한 테스트 패턴 형성방식이 확립되어 있는 경우가 많으므로, 그 테스트 패턴의 자산을 이용함으로써, 효율이 좋은 테스트 패턴의 생성이 가능하다. 또한, 조합논리회로에 관해서는, 고장 가정법 및 하나의 회로에는 고장은 하나라는 단일고장이라는 생각에 의거하여 D 알고리즘이라 불리는 효율적인 테스트 패턴의 생성방법이 알려져 있다. 이 수법을 이용함으로써, 테스트 패턴 생성을 위한 마이크로 프로그램을 짧게 할 수 있고, 명령 메모리(411)의 용량의 증대를 실현할 수 있는 정도까지 억제할 수 있다.
이 실시예의 ALPG에서는, 특히 제한되지 않지만, 디코더(418)에서 디코드되는 타이밍 설정비트(TS)는 2비트로 구성되고, 데이터 레지스터 셋트(417)에는 7개의 제어데이터가 저장되어 있다. 이들 제어데이터 중 하나는 테스트 사이클을 규정하는 데이터 "RATE", 남은 6개의 제어 데이터는, ALPG 전용버스의 각 신호선마다 하이레벨 혹은 로우레벨 신호의 출력 타이밍을 공급하는 2종류의 제어데이터 "ACLK1", "ACLK2"와, 펄스신호의 상승 타이밍을 공급하는 2종류의 제어 데이터 "BCLK1", "BCLK2"와, 펄스신호의 하강 타이밍 및 기대치와의 비교출력 타이밍을 공급하는 2종류의 제어데이터 "CCLK1", "CCLK2"이다.
이들 각 제어 데이터가, 타이밍 발생부(420)에 공급되면, 제어 데이터 RATE에 관해서는 미리 규정된 타이밍의 신호 RATE가 프로그램 카운터(412)에 공급되어 명령 메모리(411)에서의 마이크로 명령코드의 삽입이 행해진다. 또한 제어 데이터로서 "ACLK1" ~"CCLK2"가 타이밍 발생부(420)에 공급되면, 타이밍 클록(ACLK1 ~ CCLK2) 중에서 그 제어코드에 대응하는 클록이 신호형성 비교회로(300)에 출력된다. 각 클록의 사용을 위한 접속이나 선택은 필요에 따라 적절히 실시된다.
또한, 논리용 ALPG에는, 상기 프로그램 카운터(412)의 값을 「+1」로 증가하기 위한 인크리멘터(421)나, 상기 인크리멘터(421) 또는 어드레스 필드(MFa) 내의 점프번지 중 어느 하나를 선택하여 프로그램 카운터(412)에 공급하는 멀티플렉서(422), 오퍼랜드 필드(MFc) 내의 반복수를 유지하는 인덱스 레지스터(423), 상기 인덱스 레지스터(423)의 값을 「-1」하기 위한 디크리멘터(424), 「-1」로 감소된 값을 유지하는 워킹 레지스터(425), 소정의 명령으로 이용되는 오퍼랜드의 프로그램 카운터(412)로의 전송의 유무를 나타내는 플래그(427), 레지스터(423, 425)의 값을 선택적으로 상기 디크리멘터(424)에 공급하는 멀티플렉서(428), 디크리멘터(424)의 값을 워킹 레지스터(425)의 어떤 것의 플레인으로 분배하는 디멀티플렉서(429) 등이 설치되어 있다.
이 논리용 ALPG에서는, 마이크로 명령코드에 명령의 반복수를 저장하는 오퍼랜드 필드(MFc)를 설치함과 동시에, 그 반복수를 유지하는 인덱스 레지스터(423)를 설치하고 있으므로, 동일 테스트 신호를 반복하여 생성하는 경우에, 필요한 마이크로 명령수를 줄여 마이크로 프로그램을 짧게 할 수 있다. 또한, 이 실시예의 ALPG에서는, 인덱스 레지스터(423)나 워킹 레지스터(425), 플래그(427)가 복수 플레인(도면에서는 4개) 설치되어 있음으로써, 어떤 루프처리 내에서의 서브루프처리, 또한 그 서브루프처리 내에서의 서브루프처리를 용이하게 실행할 수 있고, 마이크로 프로그램을 짧게 할 수 있다.
도 26에는, 상기 신호형성 비교회로(300)의 실시예가 나타나 있다. 또한, 도 26의 회로는, ALPG 전용버스(220)를 구성하는 신호선 중 1개에 대응하는 신호형성 비교회로만이 대표적으로 나타나 있지만, 실제로는 ALPG 전용버스(220)를 구성하는 신호선의 수만 도 26에 나타내는 회로가 설치된다.
도 26에 나타내는 바와 같이, 이 실시예의 신호형성 비교회로는, ALPG 전용버스로 출력하는 신호를 형성하는 드라이버 회로(신호형성회로)(340)와, ALPG 전용버스상의 신호와 기대치 신호를 비교하여 일치/불일치를 비교하는 비교회로(350)와, 드라이버 회로(340)와 비교회로(350)를 전환하는 전환회로(360)로 구성된다. 전환회로(360)는, 드라이버회로(340)와 입출력 노드(Nio)와의 사이에 설치된 전송 게이트(TG1)와, 입출력 노드(Nio)와 비교회로(350)와의 사이에 설치된 전송 게이트(TG2)로 구성되고, 상기 시퀀스 제어회로(400)에서 공급되는 입출력 제어비트 I/O에 따라 어느 한쪽이 열리고 다른 쪽은 차단상태가 된다.
드라이버 회로(340)는, 타이밍 발생부(420)에서 공급되는 타이밍 클록(ACLKi)에 의해 입출력 제어비트(TP)를 삽입하여 유지하는 에지 트리거형 플립플롭(341)과, 타이밍 발생부(420)에서 공급되는 타이밍 클록(BCLKi, CCLKi)과의 논리합을 취하는 OR 게이트(342)와, 이 OR 게이트(342)의 출력과 상기 에지 트리거형 플립플롭(341)의 출력을 입력신호로 하는 J/K 플립플롭(343)과, 이 J/K 플립플롭(343)의 출력과 시퀀스 제어회로(400)에서 공급되는 입출력 제어비트(CONT)를 입력신호로 하는 AND 게이트(344)와, 상기 에지 트리거형 플립플롭(341)의 출력과 시퀀스 제어회로(400)에서 공급되는 입출력 제어비트(CONT)를 입 력신호로 하는 AND 게이트(345)와, 이들 AND 게이트(344, 345)의 출력에 의해 ALPG 전용버스를 구동하는 드라이버(346)로 구성되어 있다.
한편, 비교회로(350)는, 타이밍 발생부(420)에서 공급되는 타이밍 클록(CCLKi)과 시퀀스 제어회로(400)에서 공급되는 입출력 제어비트(CONT)를 입력신호로 하는 AND 게이트(351)와, 상기 D형 플립플롭(341)의 출력(기대치)과 전송 게이트(TG2)를 통하여 공급되는 ALPG 전용버스상의 신호를 입력신호로 하는 배타적 OR 게이트(352)와, 이 배타적 OR 게이트(352)와 상기 AND 게이트(351)와의 출력을 입력신호로 하는 AND 게이트(353)와, 이 AND 게이트(353)의 출력을 래치하는 플립플롭(354)으로 구성되어 있고, 모두 비교회로(350) 출력의 논리합을 취한 신호가 토탈 패일(total fail)신호(TFL)로서 출력된다. 상기 입출력 제어비트 I/O, TP, CONT는, 상기 제어신호에 상당한다.
도 25에 나타나 있는 바와 같이, 본 실시예의 논리용 ALPG에서의 마이크로 명령은, 점프명령에서 사용하는 명령의 점프번지를 나타내는 PC 어드레스가 저장되는 어드레스 필드(MFa)와, 시퀀스 제어코드가 저장되는 OP코드 필드(MFb)와, 명령의 반복수 등이 저장되는 오퍼랜드 필드(MFc)와, 상기 데이터 레지스터 셋트(14)에서 타이밍 발생부(420)에 대한 제어신호를 판독하기 위한 타이밍 설정비트(TS)가 저장되는 타이밍 설정필드(MFd)와, 상기 신호형성 비교회로(300)의 입출력 제어비트가 저장되는 입출력 제어필드(MFe)로 이루어진다.
상기 타이밍 설정필드(MFd)에 저장되는 타이밍 설정비트(TS)는, 상술한 바와 같이 이 실시예에서는 2비트이지만, 3비트 이상 설치해도 된다. 또한, 상기 입출력 제어필드(MFe)에 저장되는 입출력 제어비트는, ALPG 전용버스(220)의 n개의 신호선에 대응하여, 드라이버 비트(TP)와 I/O 비트와 컨트롤 비트(CONT)의 3비트를 1셋트로 하여, n셋트만큼 설치되어 있다. 이들의 비트 중, I/O 비트는 입력인지 출력인지를 지정하는 제어비트로 "1"일 때는 전송게이트(TG1)를 열고, 또 TG2를 차단하여 드라이버의 출력신호를 ALPG 전용버스(220)의 대응하는 신호선상으로 출력하고, "0"일 때는 전송 게이트(TG1)를 차단하고, 또 TG2를 열어 ALPG 전용버스(220)의 대응하는 신호선상의 신호를 비교용의 게이트(352)로 입력시킨다. 드라이버 비트(TP) 및 컨트롤 비트(CONT)는, 그 조합에 따라 하이출력 또는 로우출력인가, 정(正)펄스 혹은 부(負)펄스의 출력인가, 입력무효상태인가, 출력 하이임피던스 상태인가를 지정한다.
표 7에는, 상기 입출력 제어비트(TP, I/O, CONT)와 신호형성 비교회로(300)에서 출력되는 테스트신호(테스트 패턴)와의 관계가 나타나 있다.
Figure 112001018481771-pat00007
표 7에 나타나 있는 바와 같이, 입출력 제어비트(TP, I/O, CONT)가 「111」일 때는 드라이버 회로(340)가 하이레벨의 신호를 출력하고, 「011」일 때는 드라 이버 회로(340)가 로우레벨의 신호를 출력하며, 「110」일 때는 드라이버 회로(340)가 정(正)의 펄스신호를 출력하고, 「110」일 때는 드라이버 회로(340)가 부(負)의 펄스신호를 출력하도록 제어가 행해진다. 또한, 입출력 제어비트 TP, I/O, CONT가 「101」일 때는 비교회로(350)가 하이레벨의 입력신호를 기대하고, 「001」일 때는 비교회로(350)이 로우레벨의 입력신호를 기대하며, 「100」일 때는 입력신호를 무효로 하도록 제어가 행해진다.
또한, 이 실시예의 신호형성 비교회로(300)에서는, 제어비트 TP, I/O, CONT가 「000」이 되는 상태는 어떤 의미를 갖지 않도록 구성되어 있다. 단, 제어비트 TP, I/O, CONT가 「000」일 때는, 예를 들면 전송 게이트(TG1)를 닫고 TG2를 열며, 또 배타적 OR 게이트(352)를 상기 하이레벨과 로우레벨 사이에 있는 2개의 레벨로 동작하는 슈미트(schmidt)회로로서 그 2개의 레벨 사이에 ALPG 전용버스(220)에 접속된 입출력 노드(Nio)의 전위가 존재하는 상태(하이임피던스 상태)를 비교할 수 있도록 신호형성 비교회로(300)를 구성해 두는 것도 가능하다.
도 27에는 상기 실시예에서의 타이밍 발생부(420)에서 공급되는 타이밍 클록(ACLK1 ~ CCLK2)과 신호형성 비교회로(300)에서 ALPG 전용버스(220)상에 출력되는 신호의 일예가 나타나 있다. 도 27에서, (a)는 외부에서 공급되는 기준클록(Φ0)을, (b) ~ (g)는 타이밍 클록(ACLK1 ~ CCLK2)의 파형을, (h)는 표 9의 출력 테스트 신호로서 「1」이 지정되고 또 클록으로서 ACLK1이 선택된 단자의 출력신호의 파형을 나타낸다. 또한, (i)는 표 9의 출력 테스트 신호로서 「0」이 지정되고 또, 클록으로서 ACLK2가 선택된 단자의 출력신호의 파형을 나타낸다. 또한, (j)는 표 7 의 출력 테스트 신호로서 「P」가 지정되고 또, 클록으로서 BCLK1, CCLK1이 선택된 단자의 출력신호의 파형을 나타낸다. 또한, (k)는 표 9의 출력 테스트 신호로서 「N」이 지정되고 또, 클록으로서 BCLK2, CCLK2가 선택된 단자의 출력신호의 파형을 나타낸다.
도 27에서 알 수 있는 바와 같이, 입출력 제어비트(TP, I/O, CONT)가 「111」로 설정되어, 클록(ACLK1)이 지정된 단자에서는 클록(ACLK1)에 따라 도 27(h)와 같은 하이레벨의 신호가 출력되고, TP, I/O, CONT가 「011」로 설정되어 클록(ACLK2)이 지정된 단자에서는 클록(ACLK2)에 따라 도 27(i)와 같은 로우레벨의 신호가 출력되고, TP, I/O, CONT가 「110」으로 설정되어, 클록(ACLK1, BCLK1, CCLK1)이 지정된 단자에서는 클록(ACLK1)에서 셋트된 데이터에 따라 BCLK1, CCLK1을 에지로 하는 도 27(j)와 같은 정의 펄스가 출력되고, TP, I/O, CONT가 「010」으로 설정되어, 클록(ACLK2, BCLK2, CCLK2)이 지정된 단자에서는 클록(ACLK2)에서 셋트된 데이터에 따라 BCLK2, CCLK2를 에지로 하는 도 27(k)와 같은 부의 펄스가 출력된다.
또한, 도시하지 않지만, 입출력 제어비트(TP, I/O, CONT)가 「101」로 설정되어, 클록(CCLK1)이 설정된 단자에서는 기대치를 하이레벨로 하여 도 27(f)의 클록(CCLK1)을 스트로브 신호로서 비교가 행해지며, TP, I/O, CONT가 「001」로 설정되어, 클록(CCLK2)이 지정된 단자에서는 기대치를 로우레벨로 하여, 도 27(g)의 클록(CCLK2)을 스트로브 신호로서 비교가 행해진다. 또한, 클록의 선택은 상기에 한정되지 않고 임의의 조합으로 할 수 있다.
도 28은 퍼핀(per-pin)방식의 ALPG와 그것에 이용되는 시퀀스 제어회로(410)의 구성을, 도 29는 퍼핀방식의 ALPG로 이용되는 신호형성 비교회로(430)의 구성을 나타낸다. 또한, 이 실시예의 퍼핀방식의 ALPG는, 도 2(B)의 퍼핀방식 보다도 더 진행되어 있고, 각 핀마다 시퀀스 제어회로(410)가 설치되어 있다. 도 28에서는, 시험되는 논리IC의 신호입력단자마다 시퀀스 제어회로(410)가 설치되어 있지만, 도 2(B)의 퍼핀방식과 동일하게, 타이밍 제어회로(420) 및 신호형성 비교회로(430)는 시험되는 논리IC의 신호입력단자마다 설치되고, 그것들을 제어하는 시퀀스 제어회로(210)는 공통의 1개의 회로로 하는 것도 가능하다.
상기 쉐어드 리소스 방식의 ALPG(도 25)에서는 테스터 버스의 모든 신호선에 대한 출력신호 또는 기대치 신호의 생성을 제어하는 공통의 시퀀스 제어회로(400) 및 신호형성 비교회로(300)를 설치하여 1개의 마이크로 명령으로 복수의 신호를 형성하도록 하고 있는데 비해, 이 퍼핀방식의 ALPG는, ALPG 전용버스(170)의 각 신호선마다 제어회로(410)와 타이밍 제어회로(420) 및 신호형성 비교회로(430)를 설치하도록 한 것으로, 쉐어드 리소스 방식의 ALPG에 비해 마이크로 명령의 비트길이가 짧아짐과 동시에 마이크로 프로그램의 압축율이 높아진다.
도 28에 나타나 있는 퍼핀방식의 ALPG의 시퀀스 제어회로(410)의 구성과, 도 25에 나타나 있는 쉐어드 리소스 방식의 ALPG의 시퀀스 제어회로(400)와의 차이점으로서는, 도 28의 퍼핀방식의 ALPG에서는, 마이크로 명령의 타이밍 설정 필드(MFd)에 타이밍 발생회로(420)에 대한 제어 데이터가 직접 저장되어 있는 점과, 이것에 따라 제어 데이터를 저장하는 데이터 레지스터 셋트(417)가 생략되어 있는 점과, 타이밍 발생회로(420)는 타이밍 설정필드(MFd) 내의 제어데이터의 구성에 따른 구성을 가지고 있는 점과, 입출력 제어필드(MFe)에 ALPG 전용버스(170)의 한 신호선에 관한 3비트의 제어비트만 저장되어 있는 점과, 신호형성 비교회로(430) 중 드라이버 회로(340)(도 29에 나타냄)가 타이밍 발생회로(420)에서 출력되는 타이밍 클록에 따른 구성으로 되어 있는 점이 있다.
상기 차이점에 대하여 더 상세하게 설명하면, 퍼핀방식의 ALPG에서 마이크로 명령의 타이밍 설정필드(MFd)에 저장되는 타이밍 발생회로(420)에 대한 제어데이터는, 테스트 사이클 즉 테스트 신호의 주파수 혹은 주기를 지정하는 사이클 제어코드(CYCLE)와, 클록신호의 상승 타이밍을 지정하는 제어코드(RISE)와, 클록신호의 하강 타이밍을 지정하는 제어코드(FALL)로 이루어진다.
한편, 타이밍 발생회로(420)는, 기준클록(Φ0)으로 동작하는 3개의 다운 카운터로 이루어지고, 상기 타이밍 설정필드(MFd) 내의 3개의 제어코드에 의해 지정된 타이밍을 갖는 3개의 클록신호(CTG, RTG, FTG)를 출력한다. 이들 클록신호 중 CTG는, 프로그램 카운터(12)에 공급되어 마이크로 명령의 판독 타이밍을 공급함과 동시에, 클록신호(RTG, FTG)는 신호형성 비교회로(430)에 공급되고, RTG에 대응한 상승에지를 가지며 FTG에 대응한 하강에지를 갖는 신호를 형성하거나 비교 타이밍을 공급하는데 시용된다.
또한, 도 29에 나타나 있는 퍼핀방식의 ALPG에서 신호형성 비교회로(430)와 도 26에 나타나 있는 쉐어드 리소스 방식의 ALPG의 신호형성 비교회로(300)와의 차이점은, 퍼핀방식의 ALPG에서는 쉐어드 리소스 방식의 ALPG에서의 클록(ACLK)으로 래치동작하는 플립플롭(41)이 생략되어 있는 점과, 도 26의 회로에서 OR 게이트(342)에 입력되어 있는 클록(BCLK, CCLK) 대신에 퍼핀방식의 ALPG에서는 도 28의 타이밍 발생회로(420)에서 출력되는 클록(RTG, FTG)이 입력되어 있는 점뿐이다. 신호형성 비교회로(430)에 입력되는 입출력 제어비트 셋트 TP, I/O, CONT와 신호형성 비교회로(430)의 동작상태와의 관계는, 쉐어드 리소스방식의 ALPG의 신호형성 비교회로(300)에 대하여 나타낸 표 7과 동일하다.
제어회로(410), 타이밍 발생회로(420) 및 신호형성 비교회로(430)가 상기와 같은 구성으로 됨으로써, 퍼핀방식의 ALPG에서는 ALPG 전용버스(170)의 각 신호선마다 마이크로 명령이 제어회로(410)의 명령 메모리 내에 저장될 필요가 있지만, 각 마이크로 명령은 쉐어드 리소스 방식의 ALPG에 비해 전체의 비트길이가 짧아짐과 동시에, 신호마다 반복회수나 루프를 자유롭게 설정할 수 있게 되기 때문에, 마이크로 프로그램을 압축하여 마이크로 명령수를 줄이는 것이 가능하며, 메모리 사이즈를 작게 할 수 있다는 이점이 있다. 단, 퍼핀방식의 ALPG는 쉐어드 리소스 방식의 ALPG에 비해 제어회로부분의 하드웨어량은 꾀 커진다.
따라서, 퍼핀방식의 ALPG를 채용하거나 쉐어드 리소스방식의 ALPG를 채용하는가는, 테스트 대상의 논리회로(논리IC)에 따라 결정하면 된다. 즉, 쉐어드 리소스방식에서 반복이나 루프 혹은 서브루틴화를 행함으로써 마이크로 프로그램을 꾀 많이 압축할 수 있는 경우에는 쉐어드 리소스 방식의 ALPG를 채용하여 제어회로의 규모를 작게 하고, 쉐어드 리소스 방식에서는 충분한 압축율을 얻을 수 없는 경우에는 퍼핀방식의 ALPG를 채용하여 메모리를 작게 하면 된다. 또한, 1개의 논리회로(논리IC)에 관해서도, 어떤 몇 개의 신호(핀)는 쉐어드 리소스 방식에서도 꾀 많이 압축할 수 있는 경우에는, 그들 신호에 관해서는 쉐어드 리소스 방식의 ALPG를 채용하고, 다른 신호에 관해서는 퍼핀 방식의 ALPG를 채용하도록 해도 된다.
상기와 같은 구성을 갖는 논리용 ALPG도 상술한 메모리용 ALPG와 마찬가지로, 도 4의 플로우챠트에 따라 테스트 프로그램을 해석하여 ALPG의 구성을 결정하고, 테스트 내용에 따른 ALPG의 구성요소를 추출하여 ALPG 구축 데이터를 생성하고, 그것을 이용하여 FPGA 내에 ALPG를 구축할 수 있다. 그리고, ALPG 구축 데이터를 생성할 때에는, 메모리용 ALPG와 동일하게 기능 엔트리 툴을 이용하여 디스플레이 장치의 화면상에서 효율적으로 작업을 행할 수 있다.
이상 본 발명자에 의해 이루어진 발명을 실시예에 의거하여 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되지 않고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능하다는 것은 말할 필요도 없다. 예를 들면 상기 실시예에서는, 메모리와 논리IC를 시험하는 ALPG를 FPGA 내에 구축하는 경우를 예로 설명하였지만, 아날로그 집적회로를 시험하기 위한 FPGA 내에 구축하는 경우에도 적용할 수 있다. 그리고, 그 경우에도, 예를 들면 AD 변환회로와 DA 변환회로를 갖는 아날로그 집적회로용 ALPG에 대하여, DA 변환회로만 가지며 AD 변환회로를 갖지 않는 아날로그 집적회로를 시험하는 ALPG를 구축하는 경우에는 AD 변환회로를 시험하는 기능을 구성하는 요소를 삭제하여 ALPG 구축 데이터를 생성하는 등 하여, 간결한 ALPG를 구축하는 것이 가능하다.
또한, 아날로그 회로를 시험하는 테스트 회로를 FPGA 내에 구축하는 기술에 관해서는, 본 발명자들이 앞서 제안한 일본 특원평 11-258554호 등에 개시되어 있고, 그것을 이용함으로써 용이하게 실현할 수 있다. 단, 아날로그 회로를 시험하는 테스트 회로를 FPGA 내에 구축하기 위한 데이터를 기술하는 언어는, 아날로그 HDL이나 SHDL(SpectrumHDL) 등이 된다.
또한, 메모리의 테스트에 관해서는, 메모리의 테스트 프로그램에는 테스트의 제어뿐만 아니라 불량비트의 구제처리 등도 포함되어 있는 것이 있다. 그리고, 메모리에서는 이 불량비트 구제처리도 소정의 구제 알고리즘에 따라 행할 수 있으므로, 테스트 프로그램을 해석하여 구제처리회로도 HDL로 기술함으로써, HDL 기술에서 FPGA 내에 구제회로를 구축하여 이 구제회로에서 메모리의 불량비트 구제를 행하게 하는 것도 가능하다.
본원에서 개시되는 발명 중 대표적인 것에 의해 얻어지는 효과를 간단하게 설명하면 하기와 같다.
즉, 본 발명에 따르면, HDL로 기술(記述)된 테스트 회로구축 데이터를 작성할 수 있고, 그것을 이용하여 임의의 논리를 구성할 수 있는 FPGA 등 중에서 테스트회로를 구축할 수 있으므로, 그 테스트회로를 이용하여 테스트 대상의 반도체장치의 테스트를 실시함으로써, 시판되는 대형 테스터를 사용하지 않고 테스트를 행할 수 있다. 게다가, 테스트의 종류마다 FPGA 등 중에서 테스트 회로를 다시 구축함으로써, 테스트 회로에 필요한 하드웨어량을 대폭으로 줄여 저비용으로 테스트를 실시할 수 있다.

Claims (16)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 테스터 언어로 기술되어 있는 테스트 대상의 반도체장치에 관한 테스트 프로그램을 준비하고, 상기 테스트 프로그램의 해석에 의거하여 실시되야 할 테스트 내용에 따른 기능을 갖는 테스트 회로의 구성을 결정하여, 상기 결정한 구성에 의거하여 하드웨어 기술언어에 의해 테스트 회로의 기술 데이터를 생성하며,
    상기 테스트 대상의 반도체장치는 논리집적회로이며,
    상기 테스트회로는, 명령코드를 해독하여 소정의 순서에 따라 제어신호를 생성하는 시퀀스 제어부와, 상기 시퀀스 제어부에 공급되어야 할 명령코드를 기억하는 명령 기억부와, 상기 시퀀스 제어부에서의 상기 제어신호에 따라 상기 테스트 대상의 반도체장치에 대한 입력신호 및 기대치 신호를 순차적으로 생성함과 동시에 해당 반도체장치에서의 출력신호와 기대치 신호를 비교하는 신호생성 비교부와, 상기 시퀀스 제어부에서의 상기 제어신호에 따라 상기 신호생성 비교부에서의 테스트 대상의 반도체장치에 대한 입력신호의 타이밍을 생성하는 타이밍 생성부를 포함하며,
    적어도 상기 신호생성 비교부 및 상기 타이밍 생성부는, 테스트 대상의 반도체장치의 복수의 신호입력단자의 각각에 대응하여 설치되어 있는 것을 특징으로 하는 테스터 구축 데이터의 생성방법.
  8. 제7항에 기재된 방법에 의해 생성된 테스트 구축 데이터를 이용하여, 임의의 논리를 구성할 수 있는 가변논리회로 내에 테스트 회로를 구축하도록 한 것을 특징으로 하는 테스트 회로의 구축방법.
  9. 제 8항에 있어서,
    상기 가변논리회로는, 상기 가변논리회로 내에 구축된 테스트 회로에 의해 시험되는 회로와 동일 칩상에 형성되어 있는 것을 특징으로 하는 테스트 회로의 구축방법.
  10. 명령코드를 해독하여 소정의 순서에 따라 제어신호를 생성하는 시퀀스 제어부와,
    상기 시퀀스 제어부에 공급되어야 할 명령코드를 기억하는 명령 기억부와,
    상기 시퀀스 제어부에서의 상기 제어신호에 따라 상기 테스트 대상의 반도체장치에 대한 입력신호 및 기대치 신호를 순차적으로 생성하여 해당 반도체 장치에서의 출력신호와 기대치 신호를 비교하는 신호생성 비교부와,
    상기 시퀀스 제어부에서의 상기 제어신호에 따라 상기 신호생성 비교부에서의 테스트 대상의 반도체장치에 대한 입력신호의 타이밍을 생성하는 타이밍 생성부를 포함하여 1개의 반도체 칩상에 구축된 테스트회로로서,
    상기 명령 기억부에 기억되는 명령코드의 압축율에 의거하여, 상기 신호생성 비교부 및 상기 타이밍 생성부가 테스트 대상의 반도체장치의 복수의 신호입력단자에 대하여 공통의 회로 또는, 반도체장치의 복수의 신호입력단자의 각각에 대응하여 독립한 회로로 설치되어 있는 것을 특징으로 하는 테스트 회로.
  11. 제 10항에 있어서,
    테스트 대상의 반도체장치의 복수의 신호입력단자에 대하여 공통회로로 설치되어 있는 상기 신호생성 비교부 및 상기 타이밍 생성부를 제어하는 시퀀스 제어부 는, 공통의 제어부로 구성되고,
    테스트 대상의 반도체장치의 복수의 신호입력단자의 각각에 대하여 독립하여 설치되어 있는 상기 신호생성 비교부 및 상기 타이밍 생성부를 제어하는 시퀀스 제어부는, 상기 복수의 신호입력단자의 각각에 대응하여 독립한 회로로 구성되어 이루어지는 것을 특징으로 하는 테스트 회로.
  12. 삭제
  13. 삭제
  14. 각각 테스트 내용에 따른 복수의 기능을 갖는 프로그램에서, 테스트되어야 할 반도체장치의 테스트에서 요구되는 기능을 추출하고, 추출한 기능을 나타내는 데이터를 제공하며,
    상기 데이터에 의거하여 구성된 회로가 제공되는 것을 특징으로 하는 시스템.
  15. 삭제
  16. 삭제
KR1020010045014A 2000-07-31 2001-07-26 테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로 KR100858382B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2000-00231435 2000-07-31
JP2000231435 2000-07-31
JPJP-P-2001-00203776 2001-07-04
JP2001203776A JP2002123562A (ja) 2000-07-31 2001-07-04 テスタ構築データの生成方法およびテスタの構築方法並びにテスト回路

Publications (2)

Publication Number Publication Date
KR20020011082A KR20020011082A (ko) 2002-02-07
KR100858382B1 true KR100858382B1 (ko) 2008-09-11

Family

ID=26597049

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010045014A KR100858382B1 (ko) 2000-07-31 2001-07-26 테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로

Country Status (4)

Country Link
US (1) US6889348B2 (ko)
JP (1) JP2002123562A (ko)
KR (1) KR100858382B1 (ko)
TW (1) TWI221614B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102308990B1 (ko) 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법
KR102314419B1 (ko) 2021-07-27 2021-10-19 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845480B2 (en) * 2002-01-28 2005-01-18 Winbond Electronics Corp. Test pattern generator and test pattern generation
JP4062226B2 (ja) * 2003-09-30 2008-03-19 株式会社リコー 基板検査装置
JP2006038629A (ja) * 2004-07-27 2006-02-09 Fujitsu Ltd メモリテストパターン合成方法,装置及びプログラム
US8082541B2 (en) * 2004-12-09 2011-12-20 Advantest Corporation Method and system for performing installation and configuration management of tester instrument modules
KR100673373B1 (ko) * 2005-06-24 2007-01-24 지 . 텍 (주) 패턴 제너레이터 및 그 운용방법
KR100831945B1 (ko) * 2007-01-17 2008-05-26 삼성중공업 주식회사 전자회로보드 검사 방법 및 시스템
JP2010078536A (ja) * 2008-09-29 2010-04-08 Yokogawa Electric Corp ピン接続算出装置
WO2010125793A1 (ja) * 2009-04-28 2010-11-04 株式会社アドバンテスト 試験装置および試験方法
US8683451B1 (en) * 2010-04-30 2014-03-25 The United States Of America As Represented By The Secretary Of The Navy System and method for translating software code
EP2645255B1 (en) * 2010-11-26 2019-10-02 Mitsubishi Electric Corporation Program generating device, program generating program, and program generating method
JP5822772B2 (ja) 2012-04-11 2015-11-24 太陽誘電株式会社 再構成可能な半導体装置
JP5927012B2 (ja) 2012-04-11 2016-05-25 太陽誘電株式会社 再構成可能な半導体装置
US9423843B2 (en) * 2012-09-21 2016-08-23 Atmel Corporation Processor maintaining reset-state after reset signal is suspended
JP6054151B2 (ja) * 2012-11-26 2016-12-27 ルネサスエレクトロニクス株式会社 テスト装置
JP6313018B2 (ja) * 2013-11-13 2018-04-18 ルネサスエレクトロニクス株式会社 設計支援装置、半導体装置及びコンパイルプログラム
US10114912B1 (en) * 2014-03-26 2018-10-30 Cadence Design Systems, Inc. System and method for monitoring address traffic in an electronic design
US9316689B2 (en) 2014-04-18 2016-04-19 Breker Verification Systems Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models
CN104505126B (zh) * 2014-12-09 2018-08-03 深圳市国微电子有限公司 一种动态存储器测试系统及方法
US9619312B2 (en) * 2015-02-12 2017-04-11 International Business Machines Corporation Persistent command parameter table for pre-silicon device testing
US10429437B2 (en) * 2015-05-28 2019-10-01 Keysight Technologies, Inc. Automatically generated test diagram
KR102301651B1 (ko) * 2015-06-02 2021-09-14 에스케이하이닉스 주식회사 테스트 패턴 발생 장치 및 방법, 이를 이용한 테스트 시스템과, 컴퓨터 프로그램
US9506984B1 (en) * 2015-07-02 2016-11-29 Intel Corporation Protocol based automated tester stimulus generator
CN105205264B (zh) * 2015-09-23 2018-10-19 中国南方电网有限责任公司调峰调频发电公司 预测抽水蓄能发电电动机转子构件使用寿命的试验方法
US11327114B2 (en) * 2018-06-15 2022-05-10 State Grid Hebei Electric Power Research Institute Fully-automatic closed-loop detection method and device for intelligent substation
CN112416665B (zh) * 2019-08-20 2024-05-03 北京地平线机器人技术研发有限公司 检测处理器运行状态的装置和方法
US11226372B2 (en) * 2019-10-09 2022-01-18 International Business Machines Corporation Portable chip tester with integrated field programmable gate array
CN112527690B (zh) * 2021-02-10 2021-05-18 武汉精鸿电子技术有限公司 一种针对半导体存储器老化测试的离线调试方法及装置
KR102594471B1 (ko) * 2022-12-07 2023-10-26 주식회사디아이 반도체 테스트 장비의 다중 테스트 존 제어장치
CN117607657B (zh) * 2023-11-23 2024-08-27 合肥精智达集成电路技术有限公司 基于交织多路模式的芯片自动化测试用alpg测试系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883905A (en) * 1997-02-18 1999-03-16 Schlumberger Technologies, Inc. Pattern generator with extended register programming
US5931953A (en) * 1995-09-25 1999-08-03 Credence Systems Corporation Parallel processing integrated circuit tester
US6357027B1 (en) * 1999-05-17 2002-03-12 Infineon Technologies Ag On chip data comparator with variable data and compare result compression

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2288096B (en) * 1994-03-23 1999-04-28 Roke Manor Research Apparatus and method of processing bandwidth requirements in an ATM switch
KR100278016B1 (ko) * 1995-12-26 2001-01-15 윤종용 비동기 전송모드 교환시스템의 스위칭 장치 및 방법
US5689506A (en) * 1996-01-16 1997-11-18 Lucent Technologies Inc. Multicast routing in multistage networks
US6049546A (en) * 1996-10-15 2000-04-11 At&T Corporation System and method for performing switching in multipoint-to-multipoint multicasting
US6324165B1 (en) * 1997-09-05 2001-11-27 Nec Usa, Inc. Large capacity, multiclass core ATM switch architecture
CA2239133C (en) * 1998-05-28 2007-08-28 Newbridge Networks Corporation Multicast methodology and apparatus for backpressure - based switching fabric
FR2783118B1 (fr) * 1998-09-08 2004-05-28 Bull Sa Routeur pour acheminer des paquets de donnees
US6477169B1 (en) * 1999-05-14 2002-11-05 Nortel Networks Limited Multicast and unicast scheduling for a network device
US6678279B1 (en) * 1999-12-13 2004-01-13 Nortel Networks Limited System and method to implement a packet switch buffer for unicast and multicast data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931953A (en) * 1995-09-25 1999-08-03 Credence Systems Corporation Parallel processing integrated circuit tester
US5935256A (en) * 1995-09-25 1999-08-10 Credence Systems Corporation Parallel processing integrated circuit tester
US5883905A (en) * 1997-02-18 1999-03-16 Schlumberger Technologies, Inc. Pattern generator with extended register programming
US6357027B1 (en) * 1999-05-17 2002-03-12 Infineon Technologies Ag On chip data comparator with variable data and compare result compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102308990B1 (ko) 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법
KR102314419B1 (ko) 2021-07-27 2021-10-19 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법

Also Published As

Publication number Publication date
TWI221614B (en) 2004-10-01
US6889348B2 (en) 2005-05-03
JP2002123562A (ja) 2002-04-26
US20020038439A1 (en) 2002-03-28
KR20020011082A (ko) 2002-02-07

Similar Documents

Publication Publication Date Title
KR100858382B1 (ko) 테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로
US7478346B2 (en) Debugging system for gate level IC designs
KR100502128B1 (ko) 시스템 온-칩에서의 내장 코아를 테스트하기 위한 방법 및 구조
US7386775B2 (en) Scan verification for a scan-chain device under test
US5291495A (en) Method for designing a scan path for a logic circuit and testing of the same
US6564347B1 (en) Method and apparatus for testing an integrated circuit using an on-chip logic analyzer unit
KR20010006400A (ko) 반도체 집적 회로 및 메모리의 검사 방법
KR100483876B1 (ko) 반도체 집적 회로 설계 및 검증 시스템
US11156661B2 (en) Reversible multi-bit scan cell-based scan chains for improving chain diagnostic resolution
CN101201389B (zh) 利用模拟信号进行装置中扫描链测试的系统与方法
JP4147005B2 (ja) 半導体集積回路およびそのテスト方法並びに製造方法
US20050015693A1 (en) Semiconductor integrated circuit verification system
US6970815B1 (en) Method of discriminating between different types of scan failures, computer readable code to cause a display to graphically depict one or more simulated scan output data sets versus time and a computer implemented circuit simulation and fault detection system
JP2013253840A (ja) 半導体集積回路及びその設計方法
US6427217B1 (en) System and method for scan assisted self-test of integrated circuits
CN113609804B (zh) 用例生成方法及装置、测试方法、可测试性设计方法
US7581149B2 (en) Scan chain extracting method, test apparatus, circuit device, and scan chain extracting program
JP3003587B2 (ja) 個別テストプログラム作成方式
US7500165B2 (en) Systems and methods for controlling clock signals during scan testing integrated circuits
US7305636B2 (en) Method and system for formal unidirectional bus verification using synthesizing constrained drivers
JP2005190112A (ja) マイクロコンピュータ及びそのデバッグ方法
JP3529401B2 (ja) 集積回路
Rathod FPGA based Testing of Obfuscated and Non-Obfuscated Security and RISCV Chip
JP3453068B2 (ja) 半導体集積回路およびテストパターン作成方法
Harrison et al. Board Level IEEE1149. 1 Boundary Scan Built In Self Test

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
FPAY Annual fee payment

Payment date: 20120821

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130822

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee