KR20030027989A - 칩 테스트 장치 - Google Patents

칩 테스트 장치 Download PDF

Info

Publication number
KR20030027989A
KR20030027989A KR1020010059851A KR20010059851A KR20030027989A KR 20030027989 A KR20030027989 A KR 20030027989A KR 1020010059851 A KR1020010059851 A KR 1020010059851A KR 20010059851 A KR20010059851 A KR 20010059851A KR 20030027989 A KR20030027989 A KR 20030027989A
Authority
KR
South Korea
Prior art keywords
scan
test
unit
register
chip
Prior art date
Application number
KR1020010059851A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020010059851A priority Critical patent/KR20030027989A/ko
Publication of KR20030027989A publication Critical patent/KR20030027989A/ko

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31926Routing signals to or from the device under test [DUT], e.g. switch matrix, pin multiplexing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318597JTAG or boundary scan test of memory devices

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 발명에 따른 칩 테스트 장치가, 복수의 유니트(혹은 모듈)들을 포함하는 시스템 로직과, 상기 복수의 유니트들의 각각은 직렬로 연결되는 복수의 바운더리 스캔 셀들을 구비하며, 상기 시스템 로직으로 테스트 벡터를 제공하고, 상기 시스템 로직으로부터의 테스트 결과값을 프로세서로 제공하기 위한 복수의 멀티플렉서들과, 상기 복수의 멀티플렉서들중 일부를 인에이블시켜 상기 시스템 로직의 전체 혹은 부분을 검사하기 위한 테스트 경로를 설정하고, 상기 테스트 벡터를 상기 복수의 멀티플렉서들중 소정 하나로 출력하고, 상기 복수의 멀티플렉서들중 소정 하나로부터 상기 테스트 결과 값을 수신하는 프로세서를 포함한다.

Description

칩 테스트 장치{CHIP TESTING APPARATUS}
본 발명은 칩 테스트 장치에 관한 것으로, 특히 바운더리 스캔 체인(boundary scan chain)을 이용해 칩을 테스트하기 위한 장치에 관한 것이다.
일반적으로, 칩 테스트 방법에는, 풀스캔 디자인(full-scan design) 방식과 부분스캔 디자인(partial-scan design) 방식이 있다. 시스템 로직(system logic)은조합 로직(combinational logic)과 다수의 레지스터(register) 및 래치(latch)와 같은 저장로직(storage logic)으로 구성되어 있다. 따라서, 풀스캔 디자인 방식은 각 유니트의 테스트(testability)를 위해 레지스터나 래치 등의 저장 로직을 체인으로 구성하여 쉽게 제어하거나 관찰할 수 있도록 한다. 도 1은 풀스캔 디자인 방식을 적용하지 않은 순차적 회로(sequential logic)를 보여주고, 도 2는 풀스캔 디자인 방식을 적용한 순차적 회로를 보여준다. 이때 스캔 테스트가 아닌 시스템 모드(또는 정상 동작 상태)에서는 도 1 및 도 2가 의미적으로 동등한 회로이다. 그러나, 도시된 바와 같이, 풀스캔 디자인 방식을 적용하게 되면 멀티플렉서(multiplexer) 등의 추가회로가 모든 저장로직에 적용되므로 칩의 전체 면적이 약 30%가 증가한다. 즉, 상기 풀스캔 디자인 방식은 각 유니트 별로 풀스캔 체인을 연결하여 이들의 검사능력(testability)을 높일수 있으나, 이는 칩 디자인에 추가 셀(cell)이 필요함에 따라 테스트를 위한 불필요한 공간(area)이 발생하는 문제점이 있다.
한편, 상기 부분스캔 디자인(partial-scan design)은 칩(chip) 내 일부 서브 모듈(sub-module)중에서 특정한 저장로직(storage logic)에 대해서만 레지스터(register(flip-flop))를 체인(chain)으로 연결하는 것이다. 상기 부분스캔 디자인 방식은 상기 풀스캔 방식에 비해 부피는 작으나 유니트(unit)들 간의 인터페이스(interface)의 검사능력(testability)을 고려할 수 없는 문제점이 있다.
따라서 본 발명의 목적은 칩을 유니트별로 나누어 설계할 때, 각 유니트 간의 인터페이스의 검사능력을 향상시키기 위한 칩 테스트 장치를 제공함에 있다.
본 발명의 다른 목적은 칩을 유니트별로 나누어 설계할 때, 각 유니트의 바운더리 스캔 체인을 연결하여 하나의 유니트를 선택하거나 또는 전체 유니트를 모두 스캔 체인으로 연결하여 칩을 테스트하기 위한 장치를 제공함에 있다.
상기 목적들을 달성하기 위한 본 발명의 실시 예에 따른 칩 테스트 장치가, 복수의 유니트들을 포함하는 시스템 로직과, 상기 복수의 유니트들의 각각은 직렬로 연결되는 복수의 바운더리 스캔 셀들을 구비하며, 상기 시스템 로직으로 테스트 벡터를 제공하고, 상기 시스템 로직으로부터의 테스트 결과값을 프로세서로 제공하기 위한 복수의 멀티플렉서들과, 상기 복수의 멀티플렉서들중 일부를 인에이블시켜 상기 시스템 로직의 전체 혹은 부분을 검사하기 위한 테스트 경로를 설정하고, 상기 테스트 벡터를 상기 복수의 멀티플렉서들중 소정 하나로 출력하고, 상기 복수의 멀티플렉서들중 소정 하나로부터 상기 테스트 결과값을 수신하는 프로세서를 포함하는 것을 특징으로 한다.
도 1은 풀스캔(full-scan)을 적용하지 않은 순차(sequential) 회로도.
도 2는 풀스캔을 적용한 순차 회로도.
도 3은 본 발명의 적용에 따른 32-bit 프로세서의 구성을 보여주는 도면.
도 4는 본 발명의 실시 예에 따른 바운더리 스캔체인 구성을 보여주는 도면.
도 5는 본 발명의 실시 예에 따른 스캔 셀의 구성을 보여주는 도면.
도 6은 본 발명의 실시 예에 따른 JTAG의 상태 다이어그램을 도시하는 도면.
도 7은 본 발명의 실시 예에 따른 스캔 체인의 연결 흐름도.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
이하 사용되는 용어들중 유니트(Unit), 서브유니트(sub-unit), 모듈(module)은 모두 동일한 의미이다.
일반적으로, 회로 기능이 점점 복잡해짐에 따라서 칩(chip) 크기가 대형화 및 집적화 되고 있다. 이에 따라 칩 테스트(chip test)의 중요성이 부각되어 칩을 디자인(chip design)할 때 미리 테스트(test)를 고려한 회로설계 방법이 사용되고 있다. 이러한 회로 설계 방법중의 하나가 바운더리 스캔(boundary-scan)개념을 이용한 테스트 방법이다. 상기 바운더리 스캔 방법은 종래의 칩(chip) 내부 테스트(test) 방법과 달리 각 유니트(unit)의 입력 및 출력, 그리고 양방향 신호에 스캔(scan) 회로를 추가하여 각 유니트(unit)에 스캔 체인을 형성하는 방식이다.
이미, 32-bit ARM7TDMI 프로세서(processor)에 IEEE Std1149.1 - 1990, "Standard Test Access Port and Boundary-Scan Architecture"에 기초를 둔 JTAG(Joint Test Action Group) 인터페이스를 적용하고 있다. 또한 상기 프로세서는 4개의 JTAG형태의 스캔체인(scan chain)을 제공하고 이들은 각각의 테스트(testing), 디버그(debugging), 아이스브레이커 프로그래밍(IceBreaker programming) 그리고 외부 바운더리 스캔(external boundary-scan)을 위해 사용된다. 그리고 상기 JTAG 형태의 탭(TAP : Test Access Port) 제어기(controller)는 이들 체인을 제어한다.
도 3은 상기 JTAG 인터페이스를 가진 32-bit 프로세서의 블록 구성을 도시하고 있다.
도시된 바와 같이, 상기 프로세서는, 코어(core) 100 및 탭 제어기(TAPcontroller) 110, 아이스브레이커(ICEBreaker) 120 및 버스 분리기(Bus Splitter) 130으로 구성된다. 상기 탭 제어기(TAP controller) 110에서는 스캔체인선택레지스터(scan chain select register(SCREG[3:0]))에 의해 총 16개의 스캔 체인 모드(scan chain mode)를 지원한다. 그러나 이중 테스트(test) 및 디버깅(debugging)의 목적으로 모두 4개의 체인을 가지고 있고, 나머지는 보류(reserved)되어 있다. 스캔체인0(scan chain0)은 상기 코어 100의 바운더리 스캔이고, 스캔체인1은 상기 스캔체인0의 브레이크피티(BREAKPT)와 데이터(data)쪽을 스캔(scan)하여 명령 및 데이터를 바꿀 수 있도록 구성된다. 스캔체인2는 상기 아이스브레이커(ICEBreaker) 120 측에 연결되며, 상기 아이스브레이커(ICEBreaker) 120의 내부 레지스터(register)의 값을 바꿀 수 있다. 스캔체인3은 외부 바운더리 스캔 체인(external boundary-scan chain)을 지원하기 위해 칩 외부로 체인을 형성하도록 구성된다. 나머지 보류(reserved)되어 있는 스캔체인들은 다른 목적으로 스캔체인을 형성하여 사용할 수 있다.
본 발명은 상기 보류된 스캔체인들을 사용하여 전체 유니트(unit)의 바운더리 스캔(boundary-scan) 및 몇 개의 유니트(unit)를 포함한 바운더리 스캔(boundary-scan)을 구현한다. 즉, 전체 유니트(unit)는 물론 일부 유니트(unit)간 인터페이스의 검사능력을 향상시킬 수 있다.
현재 동작시킬 스캔 체인을 변경하기 위해서는 상기 스캔체인 선택 레지스터(scan chain select register (SCREG[3:0]))를 이용하고, TDI(Test Data Input) 및 TDO(Test Data Output) 사이를 직렬(serial)로 연결하면 된다.스캔체인3은 조건부로 외부 바운더리 스캔 체인(external boundary scan chain)을 제어할 수 있도록 제공되는 것이고, 보통 이것은 패키지(package)된 제품의 패드 링(pad ring)을 따라서 스캔체인(scan chain)을 형성된다. 따라서 보류(reserved)된 스캔 체인(scan chain)중에서 스캔체인3(scan chain)과 같이 외부 바운더리 스캔 체인(external boundary-scan chain)을 구성하여 칩 내의 유니트(unit)까지 바운더리 스캔 체인(boundary-scan chain)을 연결하여 사용할 수 있다. 이에 따라 탭제어기(TAP controller)110은 바운더리 스캔(boundary scan)용 핀(pin)을 통하여 새로운 스캔체인을 설정할 수 있다. 이때 필요한 제어신호들은 SCREG[3:0], IR[3:0](Instruction Register), TAPSM[3:0](TAP Controller State Machine), TCK1(Test Clock 1), TCK2(Test Clock 2)를 통해 만들 수 있다.
도 4는 유니트의 스캔 체인 링(scan chain ring)에 대한 구조를 도시하고 있다. 도시된 바와 같이, 칩이 두 개의 유니트(유니트 A, 유니트 B)로 구성되어 있다고 보면, 프로세서의 스캔 체인 선택 레지스터(SCREG)의 디코딩(decoding) 값을 인에이블 신호로 하는 멀티플렉서를 통해 스캔 패스를 구성한다. 즉, 상기 멀티플렉서를 통해 각각의 유니트 뿐만 아니라 전체 유니트 A 와 B를 모두 스캔 체인으로 연결할수 있다. 다시말해, 각 유니트 별로 선별적으로 스캔 패스를 연결할 수 있고, 전체 유니트를 하나의 스캔 패스로 연결할 수 있다.
상기 도 4는 유니트 A만을 스캔 패스로 연결하여 테스트하는 경우를 나타낸다. 상기 스캔 패스는 굵은 실선으로 표시하고 있다. 먼저, SCREG 값을 이진수 0100(십진수 4: 사용자 정의)으로 설정하고, 이의 디코딩 값을 각 멀티플렉서(410및 460)의 인에이블 신호로 인가하면, 바운더리 스캔 체인은 SCREG=4에 의해 인에이블되는 멀티플렉스서(410 및 460)에 의해서만 연결이 된다. 따라서, 유니트를 테스트하기 위한 테스트 벡터(test vector) 값은 패드(PAD)의 TDI입력단을 통해 상기 프로세서300의 입력단 TDI로 입력되고, 이는 출력단 SDINBUS(Boundary Scan Serial Input Data)을 통해 상기 멀티플렉서(410 및 460)를 거쳐 유니트 A(480)의 첫 바운더리 스캔 레지스터의 TDI에 연결된다. 그리고, 상기 첫 번째 레지스터의 TDO는 두 번째 레지스터의 TDI로 마찬가지로 연결되어 유니트 A의 최종 결과값은 상기 프로세서(300)의 입력단 SDOUTBS(Boundary Scan Serial Output Data)를 거쳐 출력핀 TDO를 통해 칩 패드의 출력 TDO로 전송된다. 즉, 사용자가 선택하는 스캔 패스에 따라 바운더리 스캔 체인을 연결하여 칩 및 내부 유니트의 테스트를 수행할 수 있다.
한편, 유니트 B만을 연결하여 테스트를 한다면, 상기 SCREG값이 예를들어, 이진수 0101(십진수 5 : 사용자 정의)로 설정되고, 상기 SCREG의 디코딩값 SCREG=5에 의해 인에이블되는 멀티플렉서(420 및 440)를 통해 바운더리 스캔 체인이 연결되어 결국 유니트 B만 테스트를 할수 있다. 마찬가지로, 칩 내의 모든 유니트를 테스트한다면, 도시된 바와 같이, 스캔 패스를 연결하고, 상기 SCREG 값을 이진수 0110(십진수 6: 사용자 정의)으로 설정하고, SCREG 의 디코딩값 SCREG=6에 의해 인에이블되는 멀티플렉서(460, 430 및 450)에 의해서만 스캔 패스가 연결되어 전체 유니트를 바운더리 스캔 체인으로 연결할 수 있다.
본 발명에서와 같이, 멀티플렉서를 통해 스캔 체인을 연결하면, 각 유니트의스캔 패스 연결을 프로그램할수 있어 각 유니트를 선별적으로 선택하여 테스트하거나 특정한 유니트 간의 인터페이스를 테스트하기 위해 이들 유니트만을 선택하여 스캔 체인으로 묶을 수 있다.
상기 스캔체인을 연결하기 위해서는 각 유니트(unit)의 입력, 출력 그리고 양방향 신호에 스캔 셀(scan cell)을 끼워 넣어야 하는데 예를들어, 다음과 같은 셀들이 있다.
스캔셀1(JTBI1) : Bi-directional I/O Scan Cell with Capture, Shift and Update(캡쳐, 쉬프트 및 업데이트를 위한 양방향 입출력 스캔 셀)
스캔셀2(JTIN1) : Input Scan Cell with Capture, Shift, Update and Set(캡쳐, 쉬프트 및 설정을 위한 입력 스캔 셀)
스캔셀3(JTOUT1) : Output Scan Cell with Capture, Shift, Update and Set(캡쳐, 쉬프트 및 설정을 위한 출력 스캔 셀)
도 5는 이들 셀들 중에서 일 예로, 상기 JTIN1 심볼에 앞서 설명한 제어신호들을 연결한 것을 보여준다. 도시된 바와 같이, 입력되는 신호들은 상기 프로세서(300)에서 출력되는 출력신호이고, 출력되는 신호들중 DOUT은 시스템 모드(system mode)에서 시스템으로 가는 출력값이며, 이때 입력값 TDI와 동일한 값이 된다. TDO값은 DRIVES값에 의하여 시스템모드(system mode)에서 테스트 모드(test mode)로 동작할 때 다음 스캔 셀(scan cell)의 TDI와 연결되어 스캔 체인 링(scan chain ring)을 구성한다. 스캔 셀(scan cell) 내의 바운더리 스캔 레지스터(Boundary scan register)는 집적회로의 외부 테스트를 가능하게 하고 온-칩시스템 로직(on-chip system logic) 동작에 영향없이 시스템 핀(system pin)들을 통해 신호의 흐름을 확인할 수 있다. 여기서, 바운더리 스캔 레지스터(Boundary scan register)의 특성은 다음과 같다.
캡쳐(Capture): TCK의 상승엣지(rising edge)에서 바운더리 스캔 레지스터(boundary scan register)에 데이터를 병렬로 로딩.
쉬프트(Shift): TCK의 상승엣지(rising edge)에서 한 개의 바운더리 스캔 레지스터(boundary scan register)에서 다른 바운더리 스캔 레지스터(boundary scan register)로 직렬 데이터가 출력 핀(output pin)을 통해 쉬프트.
업데이트(Update): EXTEST나 혹은 INTEST가 선택되었을 때, TCK의 하강엣지(falling edge)에서 병렬 데이터(parallel data)가 출력 핀(output pin)을 통해 바운더리 스캔 레지스터로 로딩.
설정(Set): 병렬 출력 핀(Parallel output pin)을 설정(set).
JTCK: 캡쳐 및 쉬프트를 가진 특별한 입력 스캔 셀
(Special Input Scan Cell with Capture and Shift)
이하 본 발명에 따른 동작을 첨부된 도면의 참조와 함께 상세히 설명한다.
스캔 테스트를 할때 초기 시퀀스는 다음 3가지의 스캔 동작으로 구분할수 있다. 즉, 명령 스캔 동작, 데이터 스캔 동작, 그리고 데이터 스캔 동작중 유니트 시스템 로직을 검증할수 있는 유니트 기능(function) 동작으로 구분된다. 도 6은 JTAG 바운더리 스캔 테스트 회로를 제어하기 위해 사용되는 JTAG 탭 제어기의 동작을 보여주는 상태 천이도이다. 특히, 입력되는 TMS 및 TCK 제어신호들에 응답하여이루어지는 TAP 제어기(110)의 동작을 보여준다.
상기 탭 제어기(110)의 상태는 TCK의 상승엣지에서 TMS의 값에 의해 결정된다. 상기 테스트 로직 리셋 상태(201)(Test Reset Status, 이하 TRST라고 함)는 리셋 상태를 나타내는데 TRST가 존재하는 경우, 즉 칩패드에서 직접 인가하는 리셋신호가 있는 경우, TRST의 '0'에 의해 비동기적으로 테스트 로직 리셋 상태가 된다. 또한 어느 상태에 있든지 TMS를 '1'로 유지하면서 TCK 펄스(pulse)를5번 생성하면 상기 테스트 로직 리셋 상태(201)가 된다. 상기 도 6은 크게 데이터 컬럼(data column)과 명령 컬럼(instruction column)으로 구분할 수 있는데 서로 유시한 구조를 갖는다.
상기 데이터 컬럼은 바운더리 스캔 셀의 동작에 영향을 미친다. 그리고, 상기 명령 컬럼은 명령 레지스터의 동작을 제어하게 된다. 즉, 각 레지스터의 직렬 동작은 데이터 레지스터 쉬프트 상태(205)와 명령 레지스터 쉬프트 상태(212)에서 이루어진다. 상기 두 상태에서 TDI를 통해 직렬로 새로운 데이터를 입력하면서 동시에 TDO로 레지스터에 존재하는 값을 직렬로 출력하는 동작이 일어난다.
바운더리 스캔을 이용한 일반적인 테스트 동작에서 일어나는 상태 경로는 다음과 같다.
초기 시퀀스 : 테스트 로직 리셋 상태(201) -> 아이들 상태(202)
명령 스캔 : 데이터 레지스터 선택 스캔 상태(203) -> 명령 레지스터 선택 스캔 상태(210) -> 명령 레지스터 캡쳐 상태(211) -> 명령 레지스터 쉬프트 상태(212) + -> 제1 명령 레지스터 출구 상태(213) -> 명령 레지스터 갱신상태(216) -> 아이들 상태(202)
데이터 스캔 : 데이터 레지스터 선택 스캔 상태(203) -> 데이터 레지스터 캡쳐 상태(204) -> 데이터 레지스터 쉬프트 상태(205) + -> 제1 데이터 레지스터 출구 상태(206) -> 데이터 레지스터 갱신 상태(209) -> 아이들 상태(202)
여기서, 상기 데이터 레지스터 선택 스캔 상태(203)와 명령 레지스터 선택 스캔 상태(210)는 바운더리 스캔 레지스터와 연결된 시스템 로직에서 출력되는 값을 저장하는 데이터 스캔 동작인지 사용자가 수행하고자 하는 명령들(표 1 참조)을 스캔하는 명령 스캔인지를 선택하는 상태이다. 상기 데이터 레지스터 캡쳐 상태(204)는 바운더리 스캔 레지스터에 병렬적으로 값을 저장하는 상태이고, 명령 레지스터 캡쳐 상태(211)는 명령 레지스터에 저장된 사용자에 의한 명령을 저장하는 상태이다. 상기 명령 레지스터 갱신 상태(216), 데이터 레지스터 갱신 상태(209)는 버퍼 역할을 하는 상태이고, 명령 레지스터 출력 상태(213) 및 데이터 레지스터 출구 상태(206)는 각 스캔 동작이 종료됨을 알리는 상태이다. 따라서, 먼저 사용자에 의한 명령을 수행하고자 명령 스캔 동작을 하고, 그에 대한 명령을 수행하고자 데이터 스캔 동작으로 들어간다. 명령 레지스터 쉬프트 상태(212) + 및 데이터 레지스터 쉬프트 상태(205) +는 그 동작이 반복적일 수 있다는 의미이다. 즉, 마지막 테스트 벡터를 모두 쉬프트 할때까지 반복적인 수행을 한다.
이렇게, 사용자가 TMS 신호를 이용하여 명령 스캔 동작을 한후, 테스트 데이터를 받아들이는 데이터 스캔 동작을 수행한다. 여기서, 데이터 스캔 동작중 유니트 기능 테스트를 할수 있는 유니트 기능 동작을 살펴보면, 상기 데이터 스캔(datascan) 동작동안 테스트 벡터(test vector) 값이 TDI를 통하여 직렬 유니트(serially unit)의 스캔 체인 링(scan chain ring)으로 전송된다. 이 동작이 끝난 후 유니트 기능(unit function) 동작이 일어나면서 유니트 내의 회로가 한 클럭(clock)동안 회로 동작이 일어난다. 이 결과 값이 다음의 데이터 스캔(data scan) 동작 구간동안에 TDO를 통하여 칩(chip)외부로 전송된다. 스캔 체인 동작에는 3가지 모드(mode), 즉 내부테스트모드(INTEST), 외부테스트모드(EXTEST) 그리고 시스템모드(SYSTEM)로 구성되어 있다. 그리고 이들은 탭제어기(TAP controller)의 명령 레지스터(instruction register(IR[3:0]))에 있는 값에 따라 결정된다 즉, 현재의 명령이 어떤 것인지를 알 수 있다. 칩 테스트의 명령 예를 살펴보면 하기 표 1과 같다.
Instruction Binary code Instruction Binary code
EXTEST 0000 CLAMP 0101
SACN_N 0010 HIGHZ 0111
INTEST 1100 CLAMPZ 1001
IDCODE 1110 SAMPLE/PRELOAD 0011
BYPASS 1111 RESET 0100
시스템모드(SYSTEM mode)에서 스캔셀은 아이들(idle) 상태이고 정상(normal)동작을 수행한다. 내부 테스트모드(INTEST mode)에서 각각의 유니트(unit)의 내부를 테스트하고 직렬 데이터(serial data)가 서브 유니트의 내부로 인가되고, 출력된 결과는 스캔 출력 셀(scan output cell)에 캡쳐(capture)되고 쉬프트-출력(shift-out)되어진다. 이 테스트는 유니트 테스트(testing unit)로 스캔체인 N(SCAN chain N(SCAN_N))을 선택한 후 탭 제어기(TAP controller)는 내부테스트 모드(INTEST mode)하에 있어야 한다. 선택된 스캔 체인이 내부테스트 명령(INTEST instruction)에 의해 테스트 모드에 놓인다. 상기 INTEST 명령은 선택된 스캔 체인을 TDI와 TDO사이로 연결시킨다. 명령 레지스터(instruction register)에 INTEST가 로드(load)되었을 때, 모든 스캔 셀은 INTEST 테스트 모드로 동작하게 된다.
그리고 데이터 레지스터 캡쳐 상태(204)동안에 현 서브 유니트로부터 온 출력이 스캔 출력 셀(scan output cell)에 캡쳐된다. 이후, 데이터 레지스터 쉬프트 상태(205)동안에 상기 캡쳐된 데이터는 새로운 직렬 테스트 패턴(serial test pattern)이 스캔-입력(scan-in)되는 동안에 동시에 쉬프트-출력(shift-out)되어진다. 그리고 데이터 레지스터 선택 스캔 상태(203)동안에 내부 기능 클럭(function clock)을 동작시켜서 내부 기능 동작을 수행한다. 그리고 상기한 동작들이 반복적으로 일어나게 된다.
한편, 외부테트스 모드(EXTEST mode)에서 데이터는 각각의 유니트(unit)로 스캐닝되고 외부 서브유니트로 인가되어진다. 각각의 입력 데이터는 스캔 입력 셀(scan input cell)에 캡쳐되고 쉬프트-출력(shift-out)된다. 이 테스트는 유니트간 테스트(inter-unit testing)로 유니트간의 인터페이스를 확인하는데 유효하다. 스캔체인 N(SCAN chain N(SCAN_N))을 선택한 후 탭 제어기(TAP controller)는 외부테스트 모드(EXTEST mode)에 있어야 하며 선택된 스캔체인(scan chain)이 외부테스트 명령(EXTEST instruction)에 의해 테스트 모드(test mode)에 놓인다. 외부테스트 명령(EXTEST instruction)은 선택된 스캔체인(scan chain)을 TDI와 TDO사이로연결시킨 후 명령 레지스터(instruction register)에 외부테스트(EXTEST) 명령이 로드(load)되었을 때, 모든 스캔 셀은 외부테스트 모드(EXTEST test mode)로 동작하게 된다. 이후, 데이터 레지스터 캡쳐 상태(204)동안에 다른 유니트(unit)에서 현재 서브유니트로 온 입력이 스캔 입력 셀에 캡쳐된다. 그리고, 상기 데이터 레지스터 쉬프트 상태(205)동안에 상기 캡쳐된 데이터는 새로운 직렬 테스트 패턴이 스캔 입력되는 동안에 동시에 쉬프트 출력(shift-out)되어진다. 이때 내부 클럭 동작은 없다. 그리고 상기한 동작들이 반복적으로 일어난다.
앞서 설명한 바와 같이, 스캔체인3은 조건부로 외부 바운더리 스캔 체인(external boundary scan chain)을 제어할 수 있도록 제공되고 있다. 보통 이것은 패키지(package)된 제품의 패드 링(pad ring)을 따라서 스캔체인을 만들 수 있도록 한다. 그러나 본 발명에서는 패드 링을 따라서 스캔 체인 연결하지 않고 각 유니트에 바운더리 스캔 체인을 연결한다. 본 발명의 외부 스캔 체인의 제어 신호들은 스캔체인3(scan chain 3)과 동일하며 이들은 SCREG[3:0], IR[3:0], TAPSM[3:0], TCK1, TCK2를 통해 탭제어기(TAP Controller)에서 만들 수 있다. 다음의 x 값은 기본으로 정의된 4개의 스캔체인 이외의 보류된 값(4 ~ 15)중 하나의 값으로써 새롭게 정의된 스캔체인번호를 나타낸다. 다음은 제어신호들을 생성하는 방법을 보여준다.
- DRIVEBSx : 스캔 셀이 시스템 모드에서 테스트 모드로 전환할 때 사용
SCREG == x && IR == (INTEST || EXTEST)
- PCLKBSx : update-DR 상태일 때 만들어지는 업데이트 클럭으로 사용
SCREG == x && TAPSM == Update-DR && TCK1
- ICAPCLKBSx, ECAPCLKBSx : capture-DR 상태일 때 만들어지는 캡쳐 클럭으로 사용
ICAPCLKBSx
SCREG == x && TAPSM == Capture-DR && IR == INTEST && TCK1
ECAPCLKBSx
SCREG == x && TAPSM == Capture-DR && IR == EXTEST && TCK1
- SHCLKBSx, SHCLK2BSx : shift-DR 상태일 때 만들어지는 비 오버래핑 클럭(non-overlapping clock)
SHCLKBSx
SCREG == x && TAPSM == Shift-DR && TCK1
SHCLK2BSx
SCREG == x && TAPSM == Shift-DR && TCK
따라서, 스캔 체인의 모든 제어신호들은 TAP 제어기에 의해 만들어진다. 그리고, 상기 탭제어기(TAP controller)의 동작은 현재 명령과 도 6의 JTAG 상태 머신(state machine 또는 상태 다이어그램)의 상태천이에 의해 결정된다.
한편, 상기 도 4에 도시된 바와 같이, 프로세서(300)에 SDINBS라는 출력과 SDOUTBS라는 입력신호가 제공된다. 외부 체인을 사용할 때, 상기 SDOUTBS는 직렬 데이터 출력(serial data output)과 SDINBS는 직렬 데이터 입력(serial data input)과 연결되어야만 한다. 본 발명에서 SDINBS의 출력은 멀티플렉서를 거쳐 선택된 유니트의 스캔 패스의 첫 바운더리 스캔 레지스터의 TDI으로 입력되고, 스캔 패스의 마지막 스캔 셀의 TDO의 출력 값은 멀티플렉서를 거쳐 상기 SDOUTBS 핀을 통해 상기 프로세서(300)로 들어가서 최종으로 TDO를 통해 패드(pad)로 출력한다.
본 발명에 따른 전반적인 동작을 도 4 및 도 7을 참조하여 설명하면 다음과 같다.
먼저, 701단계에서 SCREG의 값을 디코딩하고, 703단계에서 상기 디코딩 결과값이 4 혹은 5 혹은 6인지를 검사한다. 만일, 상기 세 개의 값중 어느 하나이면 705단계로 진행하고, 그렇지 않으면 다른 스캔 체인을 검사하기 위한 과정(도시하지 않음)으로 진행한다. 그리고, 상기 705단계에서 상기 SCREG 값이 '4'인지를 검사한다. 만일, 상기 SCREG 값이 '4'라고 판단되면 711단계로 진행하고, 그렇지 않으면 707단계로 진행한다.
상기 711단계에서, 멀티플렉서(460)는 인에이블되어 상기 멀티플렉서(460)의 입력단자 SDINBS가 출력단자로 연결된다. 그리고, 713단계에서 상기 멀티플렉서(460)의 출력단자가 유니트 A의 첫 번째 바운더리 스캔 레지스터의 TDI에 연결되고, 715단계에서 상기 유니트 A의 마지막 바운더리 스캔 레지스터의 TDO가 SCREG=4에 의해 인에이블되는 멀티플렉서(410)의 출력단자로 연결된다. 이후, 717단계에서 상기 멀티플렉서(410)의 출력단자는 프로세서(300)의 입력단자 SDOUTBS로 연결되고, 719단계에서 상기 프로세서는 상기 SDOUTBS를 출력단자 TDO로 연결한다. 그리고, 721단계에서 상기 TDO 핀으로 테스트 결과 값을 출력한다. 이상은 유니트 A에 대한 테스트 패스를 설명하고 있다. 즉, 패드의 TDI로 인가된 테스트 벡터가 상기 연결된 테스트 패스를 통해 이동하고, 최종 프로세서(300)로 입력된 테스트 벡터 값을 패드의 TDO로 내보내어져 그 값을 설계자가 보고 칩의 상태를 확인한다.
한편, 상기 707단계에서 상기 SCREG 값이 '5'인지를 검사한다. 만일, 상기 SCREG 값이 '5'라고 판단되면 723단계로 진행하고 그렇지 않으면 709단계로 진행한다. 상기 707단계에서, 멀티플렉서(440)는 인에블되어 상기 멀티플렉서(440)의 입력단자 SDINBS가 출력단자로 연결된다. 그리고, 725단계에서 상기 멀티플렉서(440)의 출력단자와 멀티플렉서(450)의 입력단자가 연결되고, 727단계에서 상기 멀티플렉서(450)의 출력단자가 유니트 B의 첫 번째 바운더리 스캔 레지스터의 TDI에 연결된다. 그리고, 729단계에서 상기 유니트 B의 마지막 바운더리 스캔 레지스터의 TDO가 SCREG=5에 의해 인에이블되는 멀티플렉서(420)의 출력단자로 연결된다. 이후, 731단계에서 상기 멀티플렉서(420)의 출력단자와 상기 멀티플렉서(410)의 입력단자가 연결되고, 733단계에서 상기 멀티플렉서(410)의 출력단자가 프로세서(300)의 입력단자 SDOUTBS로 연결된다. 그리고, 735단계에서 상기 프로세서는 상기 SDOUTBS를 출력단자 TDO로 연결하고, 737단계에서 TDO 핀으로 테스트 결과 값을 출력한다. 이상은 유니트 B에 대한 테스트 패스를 설명하고 있다. 즉, 패드의 TDI로 인가된 테스트 벡터가 상기 연결된 테스트 패스를 통해 이동하고, 최종 프로세서(300)로 입력된 테스트 벡터 값을 패드의 TDO로 내보내어져 그 값을 설계자가 보고 칩의 상태를 확인한다.
한편, 상기 709단계에서 상기 SCREG 값이 '6'인지를 검사한다. 만일, 상기SCREG 값이 '6'이라고 판단되면 739단계로 진행하고, 그렇지 않으면 다른 스캔 체인을 테스트하기 위한 과정(도시하지 않음)으로 진행한다. 상기 739단계에서, 멀티플렉서(460)는 인에이블되어 상기 멀티플렉서(460)의 입력단자 SDINBS가 출력단자로 연결된다. 그리고, 741단계에서 상기 멀티플렉서(460)의 출력단자가 유니트 A의 첫 번째 바운더리 스캔 레지스터의 TDI에 연결된다. 그리고, 743단계에서 상기 유니트 A의 마지막 바운더리 스캔 레지스터의 TDO가 SCREG=6에 의해 인에이블되는 멀티플렉서(450)의 출력단자로 연결된다. 이후, 745단계에서 상기 멀티플렉서(450)의 출력단자가 유니트 B의 첫 번째 바운더리 스캔 레지스터의 TDI로 연결되고, 747단계에서 상기 유니트 B의 마지막 바운더리 스캔 레지스터의 TDO가 멀티플렉서(430)의 출력단자로 연결된다. 그리고, 749단계에서 상기 멀티플렉서(430)의 출력단자가 멀티플렉서(420)의 입력단자로 연결되고, 751단계에서 상기 멀티플렉서(420)의 출력단자가 멀티플렉서(410)의 입력단자로 연결된다. 이후, 753단계에서 상기 멀티플렉서(410)의 입력단자가 프로세서(300)의 입력단자인 SDOUTBS로 연결되고, 755단계에서 상기 프로세서는 상기 SDOUTBS를 출력단자 TDO로 연결하고, 757단계에서 TDO 핀으로 테스트 결과 값을 출력한다. 이상은 유니트 A 및 B를 포함한 전체 유니트에 대한 테스트 패스를 설명하고 있다. 즉, 패드의 TDI로 인가된 테스트 벡터가 상기 연결된 테스트 패스를 통해 이동하고, 최종 프로세서(300)로 입력된 테스트 벡터 값을 패드의 TDO로 내보내어져 그 값을 설계자가 보고 칩의 상태를 확인한다. 상기한 과정에서, 테스트 백터의 이동에 따른 데이터 캡쳐 및 데이터 쉬프트 등은 앞서 상술한 JTAG의 상태머신에 근거하여 이루어진다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정 해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 본 발명에서 제안한 상기 서브 모듈(sub-module 또는 sub-unit)의 바운더리 스캔 테스트 방법은 여러 유니트들로 구성된 대규모 집적회로 칩에서 유용하며. 각 유니트에 대하여 내부 시스템 로직(internal system logic)검증을 지원할 뿐만 아니라, 각 유니트(unit)의 입력, 출력 그리고 양방향 신호단에만 스캔 회로를 추가함으로써 각 유니트의 면적크기를 최소화할 수 있고 각 유니트간의 인터페이스 검증도 가능하다. 그러므로 칩 테스트를 고려한 칩 설계 시 매우 유용하게 사용될 수 있다.

Claims (3)

  1. 칩 테스트 장치에 있어서,
    복수의 유니트들을 포함하는 시스템 로직과,
    상기 복수의 유니트들의 각각은 직렬로 연결되는 복수의 바운더리 스캔 셀들을 구비하며,
    상기 시스템 로직으로 테스트 벡터를 제공하고, 상기 시스템 로직으로부터의 테스트 결과값을 프로세서로 제공하기 위한 복수의 멀티플렉서들과,
    상기 복수의 멀티플렉서들 중 일부를 인에이블시켜 상기 시스템 로직의 전체 혹은 부분을 검사하기 위한 테스트 경로를 설정하고, 상기 테스트 벡터를 상기 복수의 멀티플렉서들중 하나로 출력하고, 상기 복수의 멀티플렉서들 중 하나로부터 상기 테스트 결과값을 수신하는 프로세서를 포함하는 것을 특징으로 하는 장치.
  2. 제1항에 있어서,
    상기 바운더리 스캔 셀들은, 캡쳐(capture), 쉬프트(shift), 갱신(update) 및 설정(set)을 위한 입력 스캔 셀인 것을 특징으로 하는 장치.
  3. 제1항에 있어서,
    상기 프로세서는 제이태그(JTAG)에 근거한 바운더리 스캔을 수행하는 것을 특징으로 하는 장치.
KR1020010059851A 2001-09-27 2001-09-27 칩 테스트 장치 KR20030027989A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010059851A KR20030027989A (ko) 2001-09-27 2001-09-27 칩 테스트 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010059851A KR20030027989A (ko) 2001-09-27 2001-09-27 칩 테스트 장치

Publications (1)

Publication Number Publication Date
KR20030027989A true KR20030027989A (ko) 2003-04-08

Family

ID=29562451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010059851A KR20030027989A (ko) 2001-09-27 2001-09-27 칩 테스트 장치

Country Status (1)

Country Link
KR (1) KR20030027989A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100735585B1 (ko) * 2004-03-10 2007-07-04 엔이씨 일렉트로닉스 가부시키가이샤 반도체 회로 장치 및 반도체 회로에 관한 스캔 테스트 방법
KR100989084B1 (ko) * 2007-06-22 2010-10-25 가부시끼가이샤 도시바 제어 장치
KR101286017B1 (ko) * 2011-10-28 2013-07-18 주식회사 이노와이어리스 스위칭 바운더리 스캔 테스트 장치
WO2020065407A1 (en) * 2018-09-28 2020-04-02 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for testing a multi-die integrated circuit device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100735585B1 (ko) * 2004-03-10 2007-07-04 엔이씨 일렉트로닉스 가부시키가이샤 반도체 회로 장치 및 반도체 회로에 관한 스캔 테스트 방법
US7380183B2 (en) 2004-03-10 2008-05-27 Nec Electronics Corporation Semiconductor circuit apparatus and scan test method for semiconductor circuit
KR100989084B1 (ko) * 2007-06-22 2010-10-25 가부시끼가이샤 도시바 제어 장치
KR101286017B1 (ko) * 2011-10-28 2013-07-18 주식회사 이노와이어리스 스위칭 바운더리 스캔 테스트 장치
WO2020065407A1 (en) * 2018-09-28 2020-04-02 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for testing a multi-die integrated circuit device
US11143703B2 (en) 2018-09-28 2021-10-12 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for testing a multi-die integrated circuit device

Similar Documents

Publication Publication Date Title
US10605865B2 (en) IC taps with control register and scan router coupling taps
US5570375A (en) IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing
US5701308A (en) Fast bist architecture with flexible standard interface
US6560739B1 (en) Mechanism for enabling compliance with the IEEE standard 1149.1 for boundary-scan designs and tests
US7877658B2 (en) IEEE 1149.1 and P1500 test interfaces combined circuits and processes
US7770083B2 (en) DDR register circuitry input to IC test controller circuitry
US5781560A (en) System testing device and method using JTAG circuit for testing high-package density printed circuit boards
US20080263420A1 (en) Test standard interfaces and architectures
WO2001071876A1 (en) Method and apparatus for providing optimized access to circuits for debug, programming, and test
EP0849678B1 (en) A system and method for testing electronic devices
US7404129B2 (en) TAP IR control with TAP/WSP or WSP DR control
KR20030027989A (ko) 칩 테스트 장치
JPH0763821A (ja) テスト回路
KR100697264B1 (ko) 딜레이 체인 회로를 이용한 반도체 장치의 테스트 회로 및그의 테스트 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid