KR19980032196A - 디버그 및 제조 테스트 목적을 위한 적응적 스캔 체인 - Google Patents

디버그 및 제조 테스트 목적을 위한 적응적 스캔 체인 Download PDF

Info

Publication number
KR19980032196A
KR19980032196A KR1019970029436A KR19970029436A KR19980032196A KR 19980032196 A KR19980032196 A KR 19980032196A KR 1019970029436 A KR1019970029436 A KR 1019970029436A KR 19970029436 A KR19970029436 A KR 19970029436A KR 19980032196 A KR19980032196 A KR 19980032196A
Authority
KR
South Korea
Prior art keywords
scan
clock
jtag
msp
test
Prior art date
Application number
KR1019970029436A
Other languages
English (en)
Other versions
KR100267096B1 (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 KR19980032196A publication Critical patent/KR19980032196A/ko
Application granted granted Critical
Publication of KR100267096B1 publication Critical patent/KR100267096B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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/318558Addressing or selecting of subparts of the device under test
    • G01R31/318563Multiple simultaneous testing of subparts
    • 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/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • 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/318536Scan chain arrangements, e.g. connections, test bus, analog signals

Landscapes

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

Abstract

집적회로를 위한 테스트 모드를 디버그하고 제조하는 것을 지원하는 스캔 체인은 적응적이다. 스캔 체인은 다중 스캔 체인 JTAG 모드 또는 다중의 독립적이고 병렬인 스캔 체인 모드 중 어느 하나로 구성될 수 있다. IEEE 1149. 1 표준을 지원하는 JTAG 제어기에 구현된 전용 명령에 의해 스캔 체인 모드 간의 구성 전이가 이루어진다.

Description

디버그 및 제조 테스트 목적을 위한 적응적 스캔 체인
집적회로 테스팅에서의 최근 개발 추이는 회로 기판 상에 장착된 집적회로 칩을 시튜 테스팅(situ testing)하기 위해 JTAG(Joint Test Action Group) 테스트 포트를 사용하는 것이다. JTAG 표준은 전기 및 전자 엔지니어 협회에 의해 채택되었고, 이제 본 발명의 참조로 일체화되어 있는 IEEE 표준 1149.1, IEEE 표준 테스트 액세스 포트 및 경계-스캔 아키택춰로서 정의되어 있다. IEEE 표준 1149. 1은 역시 본 발명의 참조로 일체화되어 있는 C. M Maunder 및 R. E. Tulloss에 의한 Test Access Port and Boundary-Scan Architecture (IEEE Comp[uter Society Press, 1990)에 설명되어 있다.
JTAG 스킴에서, 네 개(또는 선택적으로 다섯 개)의 신호 테스트 액세트 포트(TAP)가 보드 위의 각 칩 또는 칩의 그룹에 부가된다. 상기 TAP은 네 개의 입력 : 테스트 클럭(TCK), 테스트 모드 선택(TMS), 테스트 데이터 인(TDL), 및 선택적 테스트 리셋(TRSTN)을 포함한다. 또한, 하나의 출력인 테스트 데이터 출력(TDO)가 존재한다. TDI와 TDO는 칩에서 칩으로 데이지-체인되어 있는 반면에 TCK와 TMS는 브로드케스트(broadcast)되어 있다.
TCK 입력은, 테스트 동작이 서로 다른 칩 간에 동기화될 수 있도록 칩을 위한 시스템 클럭에 무관하다. JTAG 테스팅은 동작 가능성을 검증하기 위해 적절히 구성된 집적회로를 테스트하는데 사용될 수 있다. 테스트 논리회로의 동작은 TMS 입력에서 인가된 신호의 시퀸스에 의해 제어된다. TDI와 TDO는 각각 직력 데이터 입력과 출력인 반면에 TRSTN 입력은 칩 또는 회로를 공지된 상태로 초기화시키는데 사용된다. JTAG 표준의 특징은 다섯 개의 JTAG 핀, TCK, TMS, TDI, 및 TRSTN 보다 많은 핀을 필요로 하지 않고 임의 종류의 스캔 소자를 직렬로 액세스하는 것을 제공한다.
따라서, 프로토타입 개발 동안 칩 디버그 목적으로, 칩을 위한 하나의 단일 길이의 체인 대신에 다중의 스캔 체인을 갖는 것이 바람직하다. 선택되지 않은 스캔 체인은 다중 스캔 체인으로 그 상태를 바꾸지 않는다. 하나 이상의 기능 블럭에 대해 선택 가능한 스캔 체인을 가짐으로써 여러 가지 장점을 제공한다. 그 장점은 다음과 같다 : 디버깅이 기능 블럭에 집중될 수 있게 하고; 스캔 체인 구성에서의 디버그 에러가 다른 기능 블럭에서의 스캔 체인에 영향을 미치는 것을 방지하고; 기능 블럭에 집중함으로써 스캔 시간 동작을 감소시키며; 그리고 스캔될 기능블럭에서의 변화를 허용하는 한편 스캔되고 있지 않은 기능 블럭의 구성에서의 변화를 피할 수 있다는 것이다.
그러나, JTAG 환경에서의 다중 스캔 체인은 제조 테스트 시간이 중요할 때에는 큰 이점을 제공하지 못한다. 그 이유는 JTAG 환경에서는 테스트 목적으로 오로지 하나의 스캔 체인만이 임의의 시간에 선택될 수 있기 때문이다. 즉, TDI와 TDO간에 연결된 다중 스캔 체인은 스캔 쉬프트 시간이 관련되어 있는 한 하나의 체인에 상당하기 때문에, 칩의 모든 스캔 소자에 스캔 값이 쉬프트되어야 한다.
본 발명에 따르면, 집적회로 칩 디버깅 목적을 위한 JTAG 환경에 사용하기 위한 선택된 단일 스캔 체인 또는 동시에 병렬인 모든 스캔 체인중 어느 하나를 스캔할 수 있도록 제공하는 것이다.
제조 테스트 모드에서, 몇몇의 스캔 체인을 단일 스켄 체인에 결합하여 병렬인 모든 스캔 체인에 데이터를 제공하는 다수의 입력을 감소시킬 수 있다. 본 발명에 따르면, 몇몇 집적회로 칩 핀은 제조 테스트 모드에서 스캔 체인을 위한 입력 포트로서 작용하도록 재구성되고, 일부 칩 핀은 스캔 체인을 위한 출력 포트로서 작용하도록 재구성된다.
제조 테스트 모드 동안, 본 발명의 한 실시예에서, 병렬인 스캔 체인의 데이터를 스캔 인하고 아웃하기 위해 중복하지 않는 클럭 신호가 한쌍의 전용 칩 입력 포트에 의해 제공된다. JTAG 환경에서 다중 스캔 체인의 경우, JTAG TCK 클럭으로 부터 중복하지 않는 클럭이 파생된다.
본 발명에 따르면, 집적회로 칩은 JTAG 환경에서 다중 스캔 체인을 이용하여 디버그될 수 있으며, 다중 병렬 스캔 체인 동작을 위해 재구성된 후 제조 테스트를 거친다. 다중 병렬 스캔 체인 동작은 제조 테스트 시간을 줄일 수 있다.
적응적 방법으로 스캔 체인을 구현함으로써, JTAG 환경과 제조 테스트 환경 모두에서 칩 디버그를 위한 장점은 낮은 설계 비용으로 달성될 수 있다.
도 1은 본 발명에 따른 테스트 회로를 갖는 집적회로의 블럭도.
도 2는 테스트 회로 단일 내부 스캔 모드와 다중 내부 스캔 모드를 위한 데이터 경로도.
도 2b는 도 1의 회로의 클럭/데이터 멀티플렉서를 도시하는 회로도.
도 3은 도 1의 회로에서 JTAG 명령을 거쳐 입력될 수 있는 모드를 도시하는 도면.
도 5는 도 1의 회로를 위한 하드웨어 테스트 환경의 블럭도.
도 6 및 도 7은 본 발명에 따른 테스트 스킴을 도시하는 도면.
*도면의 주요부분에 대한 부호의 설명*
101 : JTAG 제어기110 : 집적회로
117, 160 : 클럭 발생기120 : 테스트 제어 회로
126 : JTAG 블럭151-167 : 내부 스캔 체인
241-257, 210, 314, 318, 322, 326 : 멀티플렉서
도 1은 집적회로(IC)(110)의 블럭도이다. IC(110)는 집적회로 테스팅을 제조하는 테스팅 회로를 구비한다. 일부 실시예에서, 집적회로는 캘리포니아주 산호세에 위치한 삼성 반도체(주)에서 개발한 멀티미디어 신호 처리기(MSPTM)이다. 상기 처리기는 C. Reader 등의 미국특허출원 번호 제 08/699,303호(1996년 8월 19일 출원), 발명의 명칭 비디오 데이터를 처리하기 위한 방법 및 장치에 기술되어 있다. 상기 특허출원은 본 발명의 참조로 일체화되어 있다. 상기 MSP 테스팅 회로는 본 발명에 첨부하는 부록 A-B에 보다 상세히 기술되어 있다. 부록 B는 테스팅 회로를 위한 Verilog 코드를 포함한다.
테스팅 회로는 테스트 제어 회로(120)(도 1)를 구비한다. 회로(120)는 JTAG 표준에 따라 경계 스캔 테스팅을 위한 제어 회로로서 기능할 수 있다.
경계 스캔 테스팅 이외에, 테스트 제어회로(120)는 이하에 정의된 바와 같이 내부 테스팅에 적합하다.
IC(110)은 회로(120)에 연결된 JTAG 표준에 의해 정의된 5핀을 구비한다. 이들 핀은 TCK(테스트 클럭 입력), TMS(테스트 모드 선택), TDI(테스트 데이터 입력), 및 TRST-N(테스트 리셋 입력, 액티브 로우)을 포함한다. 핀 TCK상의 클럭 입력은 JTAG 경계 스캔 테스팅 뿐 아니라 내부 테스팅을 위해 사용된다. 특히, 핀 TCK는 내부 스캔 체인(151-167)의 데이터를 스캔 인하고 스캔 아웃하기 위한 스캔 클럭 신호를 제공한다. 각각의 체인은 LSSD(레벨 감지 스캔 설계) 래치로 내장된 쉬프트 레지스터를 구비한다. LSSD 래치는 예를 들어 본 발명의 참조로 일체화되어 있는 M. Abramobici 등에 의한 디지털 시스템 테스팅 및 테스트 가능한 설계(1990)에 기술되어 있다. IC(110)일부 실시예는 17 이상의 스캔 체인 또는 17 미만의 스캔 체인을 구비한다. 하나의 MSP 실시예에서, 17 스캔 체인, 및 이들 체인을 일체로 하고 있는 각각의 MSP 기능 블럭은 체인 1-17로서 부록 A, 표 2에 도시되어 있다. (체인 18은 MSP경계 스캔 체인이고, 체인 19는 MSP에 내장된 ARM7 처리기의 경계 체인이다.) 표 2에서 각각의 내부 체인(151-167)은 부록 7의 표 5에 열거된 각각의 JTAG 전용 명령에 의해 선택될 수 있는 JTAG 테스트 데이터 레지스터이다.
도 2는 집적회로 테스팅을 위한 단일 내부 스캔 모드와 다중 내부 스탠 모드인 데이터 경로의 본 발명에 따른 실시예를 도시한다. 도 2는 내부 스캔 레지스터의 테이터 스캔 입력 및 출력에 필요한 클럭 신호를 위한 경로를 도시하지 않는다. 클럭 신호가 도 1에 도시되어 있고, 하나의 스캔 체인을 위한 클럭킹의 세부사항은 도 2b에 도시되어 있다. 단일 내부 스캔 모드에서, 17 내부 스캔 레지스터(151-167)중 하나가 JTAG 제어기(101) 상의 TDI 포트로 부터 스캔 입력 취하도록 선택된다. 단일 내부 스캔 모드가 선택되면, 멀티플렉서(241-257)는 JTAG 제어기(101)로 부터 나오는 리드(202-218)을 선택하도록 각각 설정된다. 멀티플렉서(241-257)의 출력은 각각 스캔 레지스터(151-167)에 결합된다. 단일 내부 스캔 모드 동안, 스캔 레지스터(151-167)중의 선택된 것이 JTAG TDO 포트에 결합된다. 즉, 선택된 스캔 레지스터는 단일 내부 스캔 모드 동안 JTAG TDI와 TDO 사이에 놓이고, JTAG 제어기(101)에 의해 스캔이 수행된다.
본 발명에 따른 한 실시예에서, 부록 A의 표 6에 기술된 JTAG 커스텀 명령 코드 110100(34)에 의해 다중 스캔 모드가 선택된다. 다중 내부 스캔 모드 명령이 디코드될 때, JTAG 제어기(101)는 리드(240) 상의 신호 mult_n를 멀티플렉서(241-257)에 어써트하여 멀리플렉서의 입력(221-237)을 선택한다. 다중 내부 스캔 모드가 선택된 후, JTAG 제어기(101)는 사용되지 않고, RunTest/Idle 상태에 남게 된다. 나중 내부 스캔 모드에서, 스캔 모드 신호 mult_scan_mode는 양방향 핀 ADO4_MT3에 접속되어 스캔 모드를 인하고 아웃하도록 토글한다. 이 신호는 스캔될 기능 블럭에 의해 사용되지만 스캔 체인에 의해서는 사용되지 않는다. 본 발명에 따르면, 칩 위의 핀은 멀티플렉서(241-257)의 입력(221-237)에의 액세스를 제공하도록 스위치되어, 내부 스캔 레지스터에의 병렬 액세스를 가능하게 한다.
다중 내부 스캔 동작에서, 입력(221-237)은 MSP 핀(130)으로 부터 데이터를 수신한다. 정상(비-테스팅) 동작에서, MSP 핀(130)은 양방향 핀이다. 부록 A, 1.6.5절을 참조한다. 예를 들어, 한 실시예에서 칩위의 10개의 양방향 핀(130)이 입력 포트로서 구성되어 있는 한편, 10개의 다른 양방향 핀(132)은 입력 및 출력포트로 구성되어 있다. 다중 내부 스캔 모드 동안 입력과 출력을 위해 선택된 핀은, 선택된 양방향 핀의 각각에서 정상 또는 테스트 모드를 선택하기 위해 멀티플렉서의 도입에 의해 유발된 부가된 지연이 정상 모드 동안 타이밍 문제를 초래하지 않도록 정상(테스트에 반대되는 것으로) 모드에서 저속 논리회로에 접속된 핀이다. 다중 내부 스캔 모드에 이용할 수 있는 칩 위의 핀의 수가 한 실시예에서는 10개의 핀에 한정되어 있는 반면에 스캔 레지스터의 수는 단일 스캔 모드에서 17이기 때문에, 스캔 레지스터(151-167)는 도 2에 도시된 바와 같이 다중 내부 스캔 모드로 재구성되어 있고, 표 1에 기술되어 있다. 표 1에서의 수는 표 2에서의 도면 번호를 가리킨다는 것에 유의한다.
[표 1]
재구성은 다중 내부 스캔 모드 동안에 입력에 이용할 수 있는 10개의 양방향 핀(130)을 이용하여 모든 17 스캔 레지스터에서의 액세스를 허용한다. 다중 내부 스캔 모드 동안 재구성된 레지스터로 부터 병렬 출력은 IC(110) 상의 10 양방향 출력 핀(132)에 이용가능하다.
각각의 내부 스캔 체인(151-167)은 테스트 데이터를 스캔하기 위해 중복하지 않는 스캔 클럭 sca_xM scb_x를 수신한다. '단일 내부 스캔 동작에서는 체인(151-167)중 단지 하나의 체인만이 스캔된다. 각각의 클럭, sca, scb은 이하 서술되는 바와 같이 TCK 클럭으로 부터 유도된다. 일부 테스팅 환경은 TCK에 대해 우수한 제어를 제공하여, 클럭 sca, scb에 대해 우수한 제어가 제공된다. 특히, TCK 주파수가 잘 제어되고, TCK는 임의의 시간에 시작 또는 정지될 수 있다. 예를 들어, 부록 A의 1.11절에 기술된 테스팅 환경을 참조한다. 따라서, 클럭 sca, scb는 역시 단일 스캔 동작에서 양호하게 제어된다.
IC(110)는 또한 모든 체인(151-167)이 동시에 스캔되는 다중 내부 스캔 모드를 갖는다. 이 모드는 다수의 표준 테스트가 신속히 실행될 필요가 있을 때 제조하는데 적합한다. 이 모드에서, 클럭 sca, scb는 테스트 클럭 입력 핀 TCA, TCB상에 전용 테스트 클럭 입력 핀이다. 개별적인 테스트 클럭 핀 TCA, TCB를 사용함으로써, 클럭 sca, scb를 양호하게 제어할 수 있으며, 또한 Schlumberger ITS 9000과 같은 기존의 제조 테스트 장비와 IC(110)간의 인터페이스를 간단하게 한다. 개별적인 클럭 핀 TCA, TCB는 또한 캘리포니아주, 산호세에 위치한 VierLogic로 부터 입수할 수 있는 ATPG 소프트웨어인 SunmriseTM와 같은 ATPG(자동 테스트 패턴 발생기)소프트웨어의 사용을 용이하게 한다.
테스트하는 동안, 체인(151-167)를 구비한 기능 블럭은 정상 동작을 시뮬레이트하도록 클럭될 수 있다. 기능 블럭은 정상 동작이 테스팅 동안 시뮬레이트되고 정상 동작이 실제로 발생할 때 클럭 CLKOUT에 의해 클럭된다. 테스팅 동안, 클럭 CLKOUT은 TCK 클럭으로 부터 유도될 수 있다. 선택적으로, 이들 클럭은 입력(140)상에 제공된 정상 시스템 클럭 CLKIN으로 부터 유도될 수 있고 정상 동작을 위해 사용될 수 있다. TCK로 부터 CLKOUT을 유도함으로써 CLKOUT을 양호하게 제어할 수 있다. 일부 실시예에서, 클럭 CLKIN은 자유로 실행하고 있다.( 즉 제어가 잘 되지 않는다.)
일부 테스트에서, 클럭 CLKOUT은 각 핀 AD05_MT5, ADO4_MT4 상의 테스트 클럭 mult_clk1, mult_clk2로 부터 취해진다. 정상 모드에서 이들 핀은 다른 목적을 위해 사용되는 양방향 핀이다.
기술분야에 공지된 바와 같이 JTAG 회로의 동작을 제어하기 위해 JTAG 블럭(126)에 TCK 클럭이 제공된다. TCK는 또한 클럭 발생기(117)에 접속된다. 클럭 발생기(117)는 TCK 클럭으로 부터 TCK와 동일한 주파수를 갖는 중복하지 않는 두 개의 클럭 jsca, jscb를 발생한다. 클럭/데이터 멀티플렉서(141)는 클럭 jsca, jscb를 수신하고, 또한 각각의 테스트 클럭 핀 TCA, TCB로 부터 클럭 신호 psca, pscb를 수신한다. 일부 제조 테스트에서, 클럭 psca, pscb는 동등한 주파수를 갖는 중복하지 않는 클럭이다.
단일 내부 스캔 동작에서, 멀티플렉서(141)는 JTAG 블럭(126)에 의해 선택된 내부 스캔 체인(151-167)중 하나의 각 출력 sca_x, scb_x 상의 클럭 jsca, jscb를 제공한다. 너머지 클럭 sca_i, scb_i는 로우(VSS에서)로 유지된다. 다중 스캔 동작에서, 멀티플렉서(141)는 모든 내부 스캔 체인(151-167)에 대해 각각의 출력 sca_x, scb_x 상의 클럭 psca, pscb를 제공한다.
멀티플렉서(141)는 JTAG 블럭(126)으로 부터의 신호 INSS에 의해 제어된다.
클럭 jsca, jscb는 또한 클럭 발생기(117)에 공급된다. 클럭 발생기(117)는 또한 1) 입력(140)으로 부터 정상 모드 클럭; 2) 핀 AD05_MT5로 부터 클럭 mult_clk1; 및 3) 핀 AD04_MT4로부터 클럭 mult_clk2을 수신한다. 정상 동작에서, 클럭 발생기(174)는 정상 클럭(140)으로부터 CLKOUT를 수신한다. 비-스캔 테스트 동작(예를 들어, BIST에서)에서, 클럭 발생기(117)는 정상 클럭(140)으로 부터 출력클럭 CLKOUT, 스캔 클럭 jsca, jscb, 및/또는 클럭 mult_clk1, mult_clk2를 발생한다. 클럭 발생기(117)는 JTAG 블럭(126)으로 부터의 신호에 의해 제어된다.
클럭/데이타 멀티플렉서(141)는 각각 내부 스캔 체인(151-167)에 대한 도 2의 멀티플렉서(241-257) 각각에 대응하는 개별적인 멀티플렉서(241)(도 2b 참조)를 구비한다. 멀티플렉서(241)에서, 데이터 출력 si_x는 멀티플렉서(310)의 출력이다. 멀티플렉서(310)의 데이터 입력 D0, D1은 각각의 신호 psi_x, jsi로 부터 수신된다. 신호 jsi는 단일 내부 스캔 모드에서 라인(106)(도 1 참조)를 거쳐 핀 TD1로 부터 수신된 데이터 신호이다. 입력 psi_x는 핀(130) 중 어느 한 핀으로 부터 또는 체인(151-167)중 다른 핀의 스캔 출력으로 부터 다중 내부 스캔 동작으로 데이터를 수신한다. (상술한 바와 같이, 다중 내부 스캔 모드에서, 일부 체인은 하나의 체인으로 결합될 수 있다.) 멀티플렉서(310)의 선택 압력 S는 멀티플렉서(241)의 입력 mult_n에 접속된다. 신호 명칭에서, 첨자 _n는 신호가 활성 로우라는 것을 가리킨다. 신호 mult_n는 블럭(126)에 의해 어써트(로우로 구동)되어 다중 내부 스캔 모드를 가리킨다.
다중 내부 스캔 모드에서의 스캔 동작은 정상 동작에서 양방향 핀인 MSP 핀 AD03_MT3(도시되지 않음) 상의 신호 mult_scan_mode에 의해 가리켜진다. 부록 A, 표 14를 참조한다. mult_n이 어써트되면(로우), mult_scam_mode가 어써트되어 스캔 동작을 위해 기능 블럭을 컨피그한다.
멀티플렉서(310)의 입력 S가 로우일 때, 멀티플렉서(310)는 그 입력 D0, 즉 psi_x를 선택한다. 선택 입력 S가 하이일 때, 멀티플렉서(310)는 D1(jsi)를 선택한다.
신호 mult_n은 멀티플렉서(314, 318)의 입력 S를 선택하도록 접속된다. mult_n이 로우일 때, 멀티플렉서(314)는 핀 TCA(도 1 참조)에 접속된 입력 psca를 선택하고, MUX(318)는 TCB에 접속된 pscb를 선택한다. mult_n 이 하이일 때, MUX(314)는 클럭 발생기(160)로 부터 입력 jsca를 선택하고, 멀티플렉서(318)는 클럭 발생기(117)로 부터 입력 jscb를 선택한다.
멀티플렉서(314)의 출력은 멀티플렉서(322)의 입력 D1에 접속된다. 멀티플렉서(318)의 출력은 멀티플렉서(326)의 입력 D1에 접속된다. 멀티플렉서(314, 318, 322, 326)는 멀티플렉서(310)와 동일하다. 멀티플렉서(322)의 출력은 신호 sca_x를 공급한다. 멀티플렉서(326)의 출력은 신호 scb_x를 공급한다.
멀티플렉서(322, 326)의 입력 D0은 VSS에 접속된다.
멀티플렉서(322)의 선택 입력 S는 OR 게이트(330)의 출력에 접속된다. 게이트(330)는 OR 게이트(334)와 NOR 게이트(338)의 출력을 OR한다. 게이트(334)의 두 개 입력중 한 입력은, 그 입력이 입력 mult_n에 접속되어 있는 인버터(348)의 출력에 접속된다. 게이트(334)의 다른 한 입력은, 그 입력이 시스템 리셋 신호 mrst_n에 접속된 인버터(352)의 출력에 접속된다.
NOR 게이트(338)의 두 개 입력중 하나는 멀티플렉서(241)의 입력 bist_cnt에 접속된다. NOR 게이트(338)의 다른 한 입력은 NAND 게이트(356)의 출력에 접속된다. 게이트(356)의 두개 입력중 하나는 JTAG 블럭(126)으로 부터 신호 shiftdr를 수신한다. 신호 shiftdr는, JTAG 제어기가 상태 Shift_DR에 있다는 것을 가리키는 표준 JTAG 신호이다. 상기 언급한 서적 테스트 액세스 포트 및 경계-스캔 아키텍춰의 페이지 41(도 4 내지 8 참조)를 참조한다. 게이트(356)의 다른 입력은 입력 dr_x에 접속된다.
멀티플렉서(326)의 선택 입력 S는 OR 게이트(360)의 출력에 접속된다. 게이트(360)의 두 개 입력중 하나는 OR 게이트(334)의 출력에 접속된다. 게이트(360)의 다른 입력은 NOR 게이트(364)의 출력에 접속된다. 게이트(364) 두 개 입력중 하나는 입력 bist_cnt에 접속된다. 게이트(364)의 다른 입력은 NOR 게이트(368)의 출력에 접속된다. 게이트(368)의 두 개 입력은 각각 입력 dr_x, corsdr에 접속된다.
입력 mrst_n, mult_n, shiftdr, dr_x, corsdr, bist_cnt는 JTAG 블럭(126)의 출력이다. 입력 most_n는 시스템 리셋 신호를 수신한다. 정상 테스팅 동작 동안,이 신호는 하이이다.
신호 mult_n는 JTAG 명령어 디코더(142)에 의해 발생된다. 이 신호는 JTAG 제어기(101)가 다중 스캔 체인 명령(부록 A, 표 6에 기술된 전용 명령)을 수신하고 제어기가 RunTest/Idle 상태에 있을 때 어써트 된다. mult_n이 로우일 때, 밀티플렉서(326)는 그 입력 D1을 선택하고, TCA, TCB 상의 클럭은 출력 sca_x, scb_x에 공급된다.
mult_n이 하이일 때, 멀티플렉서(322, 326)의 입력 D1은 각각의 신호 jsca, jscb를 수신한다. 멀티플렉서(322, 326)의 선택 입력 S는 신호 shiftde, dr_x, corsdr, 및 bist_cnt에 따라 신호를 수신한다. JTAG 명령어 디코더(142)에 의해 발생된 신호 bist_cnt는, JTAG 제어기(101)가 부록 A, 표 9에 도시된 명령 BIST 또는 GBIST, 또는 표 7에 도시된 임의의 다른 명령, 또는 표 4에 도시된 마지막 명령 ARM7 intest/BIST를 수신한다. 이들은 BIST를 위한 전용 명령이다. 하이 bist_cnt는 멀티플렉서(322, 326)로 하여금 각각의 출력 sca_x, scb_x에 클럭 신호 jsca, jscb를 공급하게 한다.
신호 corsdr는 JTAG 제어기 상태 Shift_DR 및 capture-DR 에서 JTAG 블럭(126)에 의해 하이로 구동된다. 신호 dr_x는, 체인(151-167)의 대응하는 하나의 체인이 JTAG 제어기(101)에 의해 테스트 데이터 레지스터롤 선택될 때 JTAG 블럭(126)에 의해 하이로 구동된다. dr_x가 하이일 때, 이는 멀티플렉서(322, 326)을 인에이블시켜 각각의 신호 shiftdr, corsdr가 하이일 때 각각 jsca, jscb를 선택하게 한다. 이와 같이 dr_x가 하이일 때, 체인(151-167)의 각 체인은 단일 스캔 모드로 스캔되거나 또는 데이터를 포획할 수 있다.
상기 및 이하의 부록에 있는 실시예는 본 발명을 한정하지 않는다. 일부 실시예에서, 본 발명은 CMOS 기술을 이용하여 구현되지만, 다른 실시예에서는 다른 기술이 이용된다. 본 발명은 이하의 청구범위에 의해 한정된다.
내용 없음

Claims (1)

  1. 회로에 있어서,
    테스트 논리회로(test logic); 및
    상기 테스트 논리회로에 결합된 다수의 스캔 체인(scan chains);을 구비하되,
    상기 테스트 논리회로는 상기 다수의 스캔 체인을 단일 내부 스캔 모드에서 다중 내부 스캔 모드로 재구성하는데 사용되는 것을 특징으로 하는 회로.
    부록 A
    MSP에서 테스트 및 정상 모드가 본 장에서 기술된다. 그와 같은 모든 모드들은 5개의 JATG 핀만을 사용하는 JTAG 제어기에 의해 제어된다.
    1.2 어플리케이션 및 가정
    다음 절에서 기술되는 모든 테스트 모드는 프로토타입 디버깅 및 제조 테스트 모두의 공정 동안 MSP 하드웨어 테스팅을 보조하도록 구현되어 있다.
    본 장은 사용자가 IEEE 1149. 1 JTAG 프로토콜과 LSSD형 스캔 특성을 알고 있다고 가정한다. , LSSD, JTAG, 및 MSP 명세에 대한 자세한 정보를 위해서는 다음장을 참조한다.
    ·테스트 컴파일 참조 매뉴얼 버젼 3.2a
    (Synopsys, Inc. 1994)
    ·IEEE 표준 1149.1-1990: IEEE 표준 테스트 액세스 포트 및 경계 스캔 아키텍쳐, 1990
    ·예비 MSP-1EX 시스템 명세, 삼성 반도체(주) 1996.
    1. 3 특징
    ·LSSD형 스캔 설계
    ·각각의 기능 블럭에 대한 독립적인 스캔 동작
    ·제조 테스트를 위한 병렬 스캔 동작
    ·MSP와 ARM7를 위한 두 개의 경계 스캔 체인
    ·모든 JTAG 기본 명령, 인테스트(intest), 엑스테스트(extest), 및 샘플/프리로드(preload)
    ·메모리 액세스 동작
    ·BIST 클럭 생성
    1. 4 테스트 방법 요약
    MSP 테스팅에는 LSSD(레벨 센스티브 스캔 디자인(Level Sensitive Scan Design)형 스캔 디자인, JATG 제어기, 및 메모리 테스트를 위한 DFT(Design For Testability) 및 BIST(Built In Self Test)의 합성 기술을 일체로 하는 다양한 테스트 스킴이 지원된다.
    MSP에 있는 제어 블럭은 완전히 스캔 가능하게 되어 있다. 데이터 경로 블럭은 부분적으로 하드웨어 로드를 경감시키도록 스캔된다. 스캔 체인은 디버깅을 보조하기 위해 기능 블럭에 의해 파티션된다.
    하나의 JATG 제어기를 이용하여 제어되는 MSP 및 ARM7을 위한 두 개의 경계 스캔 체인이 존재한다. JTAG 제어 논리회로는 내부 스캔 체인은 물론 경계 스캔 체인을 스캔할 수 있다.
    실리콘에서 디버그하고 테스트하기 위해, 하이브리드 DFT 방법이 캐쉬 메모리에 사용된다. 이는 DFT, JATG, 및 BIST 방법을 결합한 것이다. MARCH C 알고리즘이 실행되는 동안 테스트 시간을 줄이기 위해 자동 비교 스킴이 캐쉬에 내장되어 있다. 메모리는 JATG 제어기 내부에 위치된 메모리 제어 레지스터를 이용하여 제어된다.
    1.5 개념적 JTAG 구비조건
    JATG 제어기가 제공하여야 할 일반적인 구비조건이 논의된다. 이들은 보드 레벨 테스팅 보다는 기능 디버깅의 점으로 명시되어 있다.
    ·MSP 및 ARM7 코어를 위한 경계 스캔 : 임의의 기능 벡터가 스캔 체인에 제공되어야 하는데, 이는 스캔 체인을 통해 클럭 패드에 있는 클럭 펄스가 에뮬레이트될 수 있다는 것을 암시한다. 데이터 버스와 같은 관련된 신호 그룹에서 3-상태 및 양방향 제어가 가능하여야 한다. 오프-칩 및 내부 논리회로로 부터의 임의의 패턴이 포획되어 TD0 핀으로 쉬프트된다. 이는 상호접속 테스트 및 내부 논리회로 테스팅을 위한 경계 스캔 셀을 거쳐 외부 칩 및 내부 논리회로를 각각 구동시킬 수 있어야 한다. 경계 스캔 셀이 JTAG 제어기에 의해 갱신될 때까지 적어도 하나의 경계 스캔 동작은 모든 내부 상태 머신이 동결되는 것을 보장한다.
    ·기능 블럭을 위한 스캔 인/아웃 테스트 : 스캔 체인은 기능 블럭 단위로 파티션된다. 만일 블럭이 다른 블럭과 비교하여 휠씬 적은 스캔 셀을 갖는 경우에는 예외일 수 있다. 모든 스캔 셀에 대해 임의의 값을 스캔 인 및 스캔 아웃하는 것이 가능하여야 한다. 기능 블럭을 위한 스캔 동작 동안, 선택된 체인을 제외한 모든 내부 ff/래치, 경계 스캔 셀, 캐쉬, 및 레지스터는 이전의 값을 보유하여야 한다. 이는 효율적인 실리콘 디버깅 공정을 위해 중요하다. 다른 말로 표현하면, 모든 데이터 레지스터, 경계 스캔, ARM7 경계 스캔은 독립적으로 제어가능하여야 한다.
    ·테스트 모드에서 시스템 클럭의 생성 : MSP 칩은 사용자가 원하는 만큼의 시스템 클럭 사이클로 실행된다. 이는 클럭 펄스 생성에 있어서 두 가지 방법으로 수행된다. 먼저, 클럭 포트에 할당된 경계 스캔 셀을 이용하여 클럭 펄스가 발생된다. 이는 하나의 펄스(0-1-0)를 생성하기 위해 모든 경계 스캔 셀을 세 번 스캔할 것을 필요로 하기 때문에 극히 저속일 것이다. 시스템 클럭의 경우, 이와 같은 특징은 지원되지 않는다. 캡쳐 전용 경계 스캔 셀이 사용된다. 만일 TCK가 20MHz이면, 약 24KHz 클럭이 MSP에 있는 경계 스캔 길이는 270 비트 길이라는 것에 유의한다. 둘째, 클럭 펄스는 또한 JATG 클럭을 이용하여 생성될 수 있다. JTAG 클럭의 한 펄스인 TCK는 하나의 시스템 클럭 펄스와 동일하다. 이는 이전의 펄스와 비교하여 극히 고속이다. 두 번째 클럭 생성 방법은 주 시스템 클럭만을 위해 구현된다. 다른 클럭은 경계 스캔 체인을 이용하여 에뮬레이트된다.
    ·JTAG를 거쳐 내장된 메모리 액세스 : MSP내의 메모리, IDC 및 레지스터 화일은 테스트 모드에서 JTAG 인터페이스를 통해 제어된다. 임의의 장소에 대한 판독 및 기록 동작이 제공된다. 하나의 RAM에 대한 임의의 판독/기록 동작은 다른 RAM에 있는 내용에 영향을 미쳐서는 안된다.
    ·다중의 독립적인 스캔 : 다중 스캔 체인은 기능 블럭 보다는 스캔 셀의 수에 근거하여 구성된다. 이들은 동시에 스캔된다. JATG 제어기는 스캔 체인 재구성의 회로를 제공할 책임이 있다.
    ·JTAG 명령 : 모든 기본적인 JATG 명령은 본 절의 상기 항에 명시된 기능을 제공하는 명령에 부가하여 구현되어야 한다. JATG 명령 변경 동안, 모든 경계 스캔 셀은 변경되지 않으며, 모든 ff/래치는 그 상태를 동결하고, 메모리를 그들의 현재 내용을 보유한다. 이는 프로토타입 디버깅 공정 동안 현재의 상태를 예측하는데 도움이 될 것이다.
    1.6 분류된 JTAG 동작
    본 절은 이전의 절에서 논의된 JTAG 구비조건의 구현 문제를 논의한다. MSP 설계에서 JTAG 동작은 6개의 다른 카테고리로 분류될 수 있다. 각각의 카테고리는 그 어플리케이션에 따라 작은 변형을 가질 수 있다. 사용자는 JTAG 디자인 세부사항의 절에서 카테고리에 대해 일치하는 명령을 알 수 있을 것이다. 6개의 다른 카테고리는 정상 동작, 경계 스캔 동작, 단일 내부 스캔 동작, 메모리 액세스 동작, 다중 내부 스캔 동작, 및 의사 시스템 클럭 동작 모드이다. 이들은 다음 부절에서 논의된다.
    1.6.1 정상 동작
    모든 기능 및 메모리 블럭은 지원되는 것에 따라 동작한다. 모든 공유 입력 및 출력 핀 및 테스트 논리회로는 이 모드에서 적법한 신호를 제공하도록 적절히 리다이렉트(redirected)되어 있다. 이 모드는 JATG 표준 신호, TRST_N (=0)을 인에이블시킴으로써 입력된다.
    1.6.2 경계 스캔 동작
    두 개의 경계 스캔 체인이 구현된다. 이들은 MSP와 ARM7 코어이다. MSP와 ARM7에 있는 모든 I/O 포트는 5개의 JTAG 관련된 핀을 제외하고 그 적당한 경계 스캔 체인 셀을 갖는다. 스캔 체인을 위한 특수한 경계 스캔 셀을 MSP 경계 스캔 및 ARM7 경계 스캔의 절에서 알 수 있다. 두 개의 경계 스캔 체인은 하나의 JTAG 제어기를 공유할 것이며 독립적으로 스캔 가능하여야 한다. 스캔 체인 모두를 위한 인테스트(intest), 엑스테스트(extest), 및 샘플/로드 명령이 구현된다.
    1.6.3 단일의 내부 스캔 동작
    이 모드에서, JATG는 MSP 내부의 데이터 전송에 의해 하드웨어 제어를 인계한다. 이들 내에 스캔 체인을 갖는 모든 기능 블럭은 독립적으로 스캔 인 및 아웃될 수 있다. 독립적으로(independently)라는 의미는 선택되지 않은 스캔 체인은 그 상태를 바꾸지 않는다는 것을 뜻한다. 단지 선택된 블럭만이 TDI 포트로 부터 스캔 입력을 취하고 스캔 체인을 갱신한다.
    이 스캔 모드는 주로 칩 디버깅에 사용된다. 사용자는 원한다면 스캔 체인의 값을 설정하고 관찰할 수 있다. 하나의 스캔 체인만이 한 번에 액세스될 수 있기 때문에, 이는 테스팅 시간으로 보아 하나의 체인만이 존재하였던 것처럼 보인다. 이는 이 목적을 위해 사용될지라도 제조 테스트를 위한 바람직한 것은 아니다.
    1.6.4 메모리 액세스 동작
    IDC(Instruction Data Cache)에 있는 vd_ram 및 tag_ram이 동시에 선택되고 액세스된다. data_ram은 독립적으로 액세스될 수 있다. RAM의 임의의 어드레스는 이 모드에서 독립적으로 판독 및 기록될 수 있다. 스캔 체인과 JTAG 제어기에 의해 메모리 동작이 직렬로 실행된다.
    하나의 메모리가 판독 및 기록 동작을 위해 액세스되면, 다른 메모리는 그 내용을 바꾸지 않는다. 이하에는 사용자가 메모리를 어떻게 액세스하여야 하는 지를 보여준다.
    1. 단일 스캔 모드로 변경하고 RAM 블럭을 선택한다. 필요한 데이터를 스캔인한다. 이때, 사용자는 어드레스 카운터, 및 기록될 데이터를 설정할 수 있다. 이것이 스캔 모드이기 때문에, 어떠한 메모리 기록 동작도 수행되지 않는다.
    2. 단일 스캔 모드를 빠져나가 메모리 액세스 동작을 진행한다. 이 모드에서, 테스트될 메모리가 선택될 수 있다. JATG 제어기는 각각의 메모리에 선택신호를 공급한다. 이들은 data_ram, test_en, vt_ram_test_en, 및 register_file_en이다. 이들 중 한번에 하나만이 활성일 수 있다.
    3. 일단 한 개의 메모리가 선택되면, 메모리 및 어드레스 카운터 제어 신호가 JTAG를 사용하여 제어될 수 있다. 제어명은 mem_we, mem_hwd, mem_compare, mem_add_u/d, mem_add_cnt, mem_add_rest, 및 mem_add_set이다. 그 사용는 JTAG 인터페이스 신호의 절에서 알 수 있을 것이다.
    1.6.5 다중 내부 스캔 동작
    단일 스캔 모드 이외에, 10개의 다른 스캔 체인이 MSP에서 I/O 포트로 동시에 액세스되는 다중 스캔 모드가 존재한다. 이들은 기본적으로 스캔 ff/래치 카운트에 근거하여 기존의 스캔 체인으로 부터 재구성 된다.
    다중 스캔 체인 동작은 제조 테스트를 염두에 두고 구현되어 있다. 10 스캔 플립플롭이 모든 클럭 사이클 마다 액세스될 수 있다. 더우기, 단일 스캔 모드에서 스캔된 특수한 기능 블럭을 가지기 위해 어떠한 JTAG 명령 스위칭도 필요하지 않다.
    10 스캔 입력은 정상적인 기능 양방향 핀과 공유된다. 이들의 명칭은 ac06_si0, ad07_si1, ad08_si2, ad09_si3, ad10_si4, ad11_si5, ad12_si6, ad13_si7, ad14_si8, ad15_si0 이다. 10 테스트 핀, ad16_so0, ad17_so1, ad18_so2, ad19_so3, ad20_so4, ad21_so5, ad22_so6, ad23_so7, ad24_so8, ad25_so9은 정상적인 양방향 핀과 멀티플렉스된다.
    두 개의 입력 포트 tca 및 tcb는 스캔 클럭 자극에 사용된다. 두 개의 포트가 전용으로 테스팅에 사용되기 때문에, 테스트 발생에 어떠한 제한도 부과하지 못한다. 이들은 JTAG가 아니라 테스터로 부터 나온다는 것에 유의한다.
    제조 동안 다른 테스터시, MSP는 경계 스캔 셀이 트랜스페어런드 모드에 있는 다중 스캔 모드로 설정된다. 따라서 정상적인 포트에 있는 모든 테스트 벡터는 경계 스캔 셀을 통해 인가될 수 있다.
    JTAG가 다중 상태에 있다는 것을 알리는 신호가 양방향 I/O 셀을 지시하는데 사용될 수 있다. 이는 양방향 핀을 지시하기 위해 전처리 단계를 피한다.
    1.6.6 의사 시스템 클럭 동작
    스캔 체인이 로드된 후, MSP의 일부는 프로토타입 디버깅 동안 단일 또는 복수 클럭으로 실행될 필요가 있다. JTAG 제어기는 두 개의 중첩하지 않는 클럭인 두 개의 시스템 클럭인 clk1, clk2와 내부적으로 멀티플렉스될 jsca, jscb를 발생한다. 정상 모드와의 주된 차이점은 클럭 소스이다. 이 모드에서, 클럭은 시스템 클럭보다는 JATG 제어기로 부터 나온다. 이는 의사 시스템 클럭이라고 불리운다. 멀티플렉스의 출력으로 부터의 클럭은 시스템 동작에 영향을 미친다. 현재, 의사 시스템 클럭은 IDC 블럭만까지 후크 업(hooked up) 된다. 클럭이 인가되는 동안, 다른 시스템 클럭은 동결된다.
    이 모드에서, 사용자는 사용자가 지정한 횟수의 클럭 사이클 기간 동안 JTAG가 발생한 클럭을 인가할 수 있다. 그러나, 클럭 카운팅은 JATG 제어기 내부에 구현되지 않는다. 이는 proTEST-PC 및 AVL(하드웨어 테스트 환경 절을 참조한다.)를 통해 제공된다.
    1.7 테스트 모드에서 신호 개요
    개요 다이어그램이 도 5에 도시되어 있다. 6개의 모든 다른 모드는 JTAG 명령을 통해 입력될 수 있다. 이는 모드 전후 사이를 스위치하기 위해 어떠한 전용 I/O 핀도 존재하지 않는다는 것을 의미한다. JTAG 명령은 먼저 사용자가 소정의 모드로 진행하기전에 로드되어야 한다.
    표 1은 6개의 다른 모드에서 중요한 신호의 개요적인 그림을 제시한다. 세가지 종류의 클럭, 시스템 클럭, 스캔 클럭, 및 의사 시스템 클럭이 다른 테스트 모드를 지원하는데 사용된다. MSP에 있는 클럭의 도면은 도 6에 도시되어 있다. 시스템 클럭은 중첩하지 않는 두 개의 클럭인 clk1 및 clk2를 가리키는데, 이는 시스템 클럭으로 부터 유도된다. 이들 중 하나는 어플리케이션에 따라 스캔 플립플롭 및 스캔 래치의 정상적인 클럭 포트에 접속될 것이다.
    스캔 클럭은 모든 스캔 플립플롭과 스캔 래치에 대해 스캔 클럭 포트에 접속될 스캔 동작 동안의 두 개의 중첩하지 않는 클럭이다. 스캔 클럭은 JATG 제어기 또는 MSP 입력 패드인 tca 및 tcb 중 어느 하나에 의해 발생된다. 이들은 테스트 모드에 따라 적절히 선택될 것이다. 단일 스캔 모드에서, 두 개의 스캔 클럭 jsca, jscb는 선택된 기능 블럭에 펄스되며, 두 개의 클럭 포트 tca, tcb는 논리 0에서 유지된다. 다중 스캔 모드에서, jsca 및 jscb는 논리 0에서 유지되며 tca와 tcb는 인에이블된다.
    의사 시스템 클럭은 또한 JATG 제어기에 의해 발생되는 중첩하지 않는 두 개의 클럭이다. 이들은 스캔 클럭, jsca 및 jscb와 동일한 신호이다. 그러나, 이들은 스캔 클럭 포트 대신에 정상적인 클럭 포트인 이때 서로 다른 위치로 진행한다.
    단일 스캔 및 의사 시스템 클럭 모드는 동시에 발생하는 것으로 가정하지 않는다는 것에 유의한다. 이 클럭은 스캔 동작보다는 시스템 클럭에 사용되기 때문에 의사시스템 클럭으로 명명된다. 이 클럭은 psca, pscb로 지칭될 것이다.
    표 1에 있는 기능 블럭은 MSP 디자인에 있는 임의의 하드웨어 모듈을 가리킨다. 이는 곱셈기, FALU 등 일 수 있다. 메모리 블럭은 IDC 또는 레지스터 화일중 어느 하나이다. 입력 핀은 JATG 입력 핀을 제외하고 MSP 핀 도는 인아웃(inout) 패드를 가리킨다. 출력 핀은 TD0 핀을 제외하고 MSP 핀 또는 인아웃 패드를 가리킨다.
    [표 1]
    테스트 모드에서 MSP의 일반적인 픽쳐
    정상 모드에서, 시스템 클럭 clk1, clk2가 펄스되는데 이는 기본적으로 MSP를 MSP 명세에 명시된 바와 같이 실행한다. 스캔 클럭 sca 및 scb는 활성(sca=0 scb=0)이어서는 안된다. 만일 이들이 활성이면, MSP에 있는 스캔 플립플롭과 래치가 미지의 상태로 진입한다. 의사 시스템 클럭은 비활성이다. 따라서 모든 순차적인 엘리먼트로 운반되는 클럭은 JTAG 제어기 대신에 시스템 클럭 핀 mclk로 부터 나온다. 모든 테스트 논리는 정상 기능에 영향을 주어서는 안된다.
    경계 스캔 모드에서, 어떠한 클럭도 활성이지 않다. 경계 스캔 체인은 JTAG가 발생한 클럭을 거쳐 값을 쉬프트한다. 모든 기능 블럭은 스캔 동작 동안 그 상태를 동결한다.
    단일 스캔 모드에서, 단지 하나의 블럭만이 선택되어 스캔 클럭을 사용하여 스캔 인 또는 아웃될 수 있다. 이 주기 동안, 5개의 JTAG 핀이 액세스된다. 다른 I/O 핀은 중요하지 않다. 정상 모드에서 동일한 이유로, 시스템 클럭은 활성이어서는 안된다. 모든 메모리 기록은 이 주기 동안 디스에이블되어야 한다.
    메모리 테스트에서, 의사 시스템 클럭은 메모리 판독 및 기록 동작에 사용된다. 처리될 모든 데이터가 메모리 블럭의 스캔 체인에 있기 때문에, 입력 및 출력은 이 모드에서 중요하지 않다. 모든 메모리 제어는 JTAG 제어 논리회로의 JTAG에 상주하는 메모리 제어 레지스터에 의해 조종된다.
    다중 스캔 모드는 입력 패드, tca 및 tcb에서 나오는 스캔 클럭을 이용하다. 10개의 스캔 입력 포트와 10개의 스캔 출력 포트가 JTAG 포트, TDI 대신에 스캔 데이터를 공급하는데 사용된다.
    의사 정상 모드는 JTAG로 부터의 클럭을 사용하여 MSP를 실행한다. 이 모드에서 MSP I/O에 있는 경계 스캔 셀은 트랜스패어런트(transparent)가 아닌 인테스트(intest) 모드에 있다. 따라서 입력은 이 모드에서 일정하다.
    1.8 JTAG 제어기를 통한 클럭 제어 스킴
    클럭 제어 스킴(scheme)은 프로토타입 디버깅을 돕는데 일체화되어 있다. 이 스킴은 클럭 정지, 요구시 클럭 발생, 및 클럭 재시작을 실행한다. 제어 신호에 대해서는, 1.10.4에 있는 특수한 제어 레지스터를 참조한다. MSP 클럭에 대해서는 클럭 명세를 참조한다.
    클럭 정치 : 클럭 정지 요구가 JTAG에서 클럭 발생기로 주어질 때, MSP에 대한 클럭, 시스템 클럭, pci 클럭, 및 코덱 클럭은 클럭 정지 요구가 이루어진 후 각 클럭의 제 1 상승 에지에서 정지한다.
    클럭 정지 요구는 두 가지 다른 방법으로 이루어진다. 첫번째 간단한 방법은 시스템 상태에 무관하게 요구를 발생하는 것이다. 두 번째 방법은 MSP가 클럭을 정지할 준비가 된 후에 요구하는 것이다. JTAG 제어기는 클럭 페쇄 통지를 MSP에 방송하고 MSP로 부터 아이들 상태를 인식한 후에 클럭 발생기에 정지 요구를 한다. 현재, 벡터 코어만이 JTAG 제어기에 그 아이들 상태를 발행하도록 구현되어 있다.
    요구시(on demand) 클럭 발생 : 1024까지의 임의 횟수의 클럭 사이클이 JTAG 제어기의 제어 레지스터를 통해 클럭 발생기에 요구될 수 있다. 클럭의 수는 시스템 클럭에 대한 것이다. 다른 클럭은 시스템 클럭에 비례하여 발생된다. 요구시 발생되는 클럭은 초기의 클럭과 동일하다. 클럭이 정지된 후에 요구가 이루어진다.
    클럭 재시작 : 클럭 재시작이 요구되면, 모든 클럭은 클럭의 제 1 상승 에지후에 시작한다.
    1.9 전역 리셋 동작
    시스템 리셋은 MSP 칩에 내장된 스캔 체인을 이용하여 수행될 수 있다. 이 동작에서, 마스터 리셋 신호는 로우(활성 로우)로 되고, 리셋 동작 동안 유지된다.
    JTAG 클럭 TCK가 정상 동작으로 실행하지 않기 때문에, 시스템 클럭은 데이터를 스캔 체인으로 쉬트프하는데 사용되어야 한다. TCK는 이때 동작하지 않기 때문에, 이는 JTAG 명령의 하나로써 간주될 수 없다.
    이 스킴의 기능은 마스터 리셋이 로우일 때 논리 0값이 모든 스캔 ff/래치로 쉬프트된다는 것이다. 리셋 동작에서 충족되어야 할 조건은 다음과 같다.
    ·시스템 클럭 clk1 및 clk2과 스캔 ff/래치에 영향을 미치는 모든 다른 클럭은 디스에이블(clk1=0 clk2=0)되어야 한다. 이는 스캔 클럭인 한 가지 종류의 클럭만이 스캔 ff/래치에 인가되게 한다. 이는 제어 논리를 포트에 더할 것을 필요로 한다.
    ·시스템 클럭은 스캔 클럭 sca, scb를 발생하는데 사용된다. 스캔 동작이 극히 저속을 필요로 하기 때문에, 정상적인 자유 클럭(normal free clock)이 사용되어서는 안된다. 시스템 클럭은 2로 나누어질 것이다.
    ·마스터 리셋은 스캔 ff/래치로 리셋 값을 쉬트프하기에 충분히 낮아야 한다. 이것을 만족하지 못하면 부적절한 동작을 초래할 것이다.
    이 동작은 JTAG 제어기 부분의 내부에서 구현되었다. 그러나, 이는 MSP가 이 동작을 구현할 것인가에 대해서는 아직 결정되지 않았다.
    1.10 JTAG 디자인 세부사항
    본 절은 MPS JTAG 디자인 문제, 명령, 및 이용가능한 그 코드를 기술한다. 이전의 절에서 논의된 모든 기능을 본 절에 기술되는 명령을 사용하여 달성될 수 있다.
    JTAG 제어기에 있는 명령어 디코더는 가능한 38 커스텀 명령에 맞도록 설계되었다. 현재 1 명령이 차후의 어플리케이션을 위해 할당된다. 36개의 명령중 17개의 명령은 연관된 내부 데이터 레지스터를 갖는다.
    각 데이터 레지스터와 명령어 레지스터의 직렬 출력은 멀리플렉스되어 TDO 핀에 접속된다. 선택되면, 명명에 의해 TD1핀으로 부터의 데이터가 선택된 데이터 레지스터 또는 명령어 레지스터를 통해 직렬로 쉬프트 되고 TD0 핀에서 관측된다.
    모든 JTAG 회로에서, MSB는 최좌측 비트이고 전형적인 신호명은 이와 같은 'DATA[N:0]와 흡사하다. 다른 회로와 통합할 때에는 정확한 신호 상호접속을 위해 이와 같은 표준을 준수하여야 한다.
    1.10.1 구비조건
    JTAG 제어기가 적절히 동작하기 위해서는 다음 항목이 충족되어야 한다.
    ·입력 핀 : TDI와 TMS 입력 핀은 온칩 풀-업(onchip pull-up) 레지스터를 구비하여야 한다. 만일 이와 같은 핀이 사용자에 의해 접속되지 않은 채로 남게 되면, JTAG 제어기 입력은 여전히 논리 하이이다. 모든 JTAG 입력 핀은 JTAG 제어기의 적절한 동작을 위해 동작하는 모든 조건하에 논리 하이 또는 논리 로우 레벨에 접속되어야 한다.
    ·클럭 스큐(clock skew) : 270 비트 길이 클럭 드라이버인 경계 스캔 레지스터는 비트 0 클럭 입력과 비트 270 클럭 입력 간에 최소의 스큐가 존재하도록 설계되고 배치되어야 한다. JTAG 제어기는 최대 40MHz의 클럭 주파수까지 작동하도록 설계한다.
    ·클럭상태 : 내부 스캔 동작 동안 준수되어야 할 클럭 상태는 다음과 같다.
    1. 스캔 래치의 정상적인 클럭 포트로 향하는 클럭은 디스에이블되어야 한다.
    2. 스캔 플립플롭의 정상적인 클럭 포트로 향하는 클럭은 디스에이블되어야 한다.
    1.10.2 MSP에서 내부 스캔 체인
    JTAG 제어기를 위한 내부 스캔 체인은 효율적인 칩 디버깅 목적을 위해 기능 블럭 단위를 구성된다. 모든 내부 스캔 체인은 표 2에 열거되어 있다. 현재의 스캔 체인 파티션은, 체인의 스캔 셀의 수에 근거하여 제조 테스트 목적을 위해 스캔 체인이 재구성될 것이기 때문에 생산 동안 최종 테스팅 시간에 영향을 미치지는 않는다. 그러나, 이는 MSP 칩이 디버그되는 방법에 영향을 미친다.
    [표 2]
    MSP를 위한 스캔 체인
    1.10.3 JTAG 명령
    JTAG 명령은 표 1 내지 10에 기술되어 있다. 이들은 분류된 JTAG 동작 절에서 논의된 JTAG 동작 등급에 따라 분류되어 있다. 테스트 명은 각 명령의 명칭이고 그 어플리케이션을 암시한다. 명령 코드는 특수한 데이터 레지스터를 액세스하기 전에 JTAG 제어기에 있는 명령어 레지스터로 쉬프트되어야 한다. 선택된 레지스터는 각 명령에 액세스될 수 있는 데이터 레지스터를 도시한다.
    표 4는 MSP의 경계 스캔을 위한 명령을 도시한다. 이들중 8개는 MSP 경계 스캔 체인을 위한 것이다. 이들은 그 어플리케이션에 따라 MSP 경계 스캔 체인 또는 바이패스 레지스터중 어느 하나를 선택한다. 경계 스캔 체인이 선택되면, 벡터가 스캔 체인으로 로드될 수 있다. 그렇지 않으면, MSP 경계 스캔은 액세스할 수 없다.
    표 4에서 3개의 명령은 ARM7 경계 스캔 체인을 위한 것이다. 이들은 AMR7 경계 스캔 체인을 선택한다.
    [표 3]
    경계 스캔 셀 및 클럭 제어
    표 3은 경계 스캔 셀을 위한 제어 신호와 시스템 클럭 바이패스 신호를 도시한다. 이하에 항목별로 분류되어 있는 MSP와 ARM7에 대한 2개의 경계 스캔 체인을 제어하는 4개의 모드 신호가 존재한다. 다른 제어 신호, MSP_bs_disable, ARM7_bs_disable, 및 sys_clk_bypass의 설명을 위해서는 다음 절에 있는 JTAG I/O 신호의 표를 참조한다.
    ·MSP Mode_I : MSP 경계 스캔 입력 셀 모드 신호
    ·MSP Mode_O : MSP 경계 스캔 입력 셀 모드 신호
    ·MSP Mode_C : MSP 경계 스캔 입력 셀 모드 신호
    ·ARM7 Mode_I : ARM7 경계 스캔 입력 셀 모드 신호
    ·ARM7 Mode_O : ARM7 경계 스캔 입력 셀 모드 신호
    모드 신호가 로우일 때, 경계 스캔 셀은 정상 입력 포트로 부터 입력을 취하도록 트랜스패어런드(transparent)하게 된다. 이것이 하이일 때, 경계 스캔 셀의 출력은 경계 스캔 셀에 있는 갱신(update) 래치에 따른다. (경계 스캔 셀에 대한 세부사항에 대해서는 KGL75 데이터 북을 참조한다.)
    표 5는 JTAG 제어기를 거쳐 액세스될 수 있는 모든 기능 블럭에 대한 내부 스캔 체인을 도시한다. 표 6에는 다중 스캔 모드에 대해 하나의 명령만이 존재한다.
    표 7은 메모리 액세스 명령을 도시한다. IDC 블럭에 있는 세 개의 메모리 JTAG 제어기에 의해 제어될 수 있다. 데이터 RAM과 레지스터 화일은 그 자신의 명령을 갖는다. Vd RAM과 태그 RAM이 동시에 액세스된다. 차후 이용가능한 하나 이상의 명령이 존재한다. 이는 ROM 또는 다른 내장된 RAM을 위한 것일 수 있다. MCR은 JTAG 제이기에 위치된 메모리 제어 레지스터이다.
    표 8은 시스템이 파우어 업(powered up)될 때의 디폴트 명령을 도시한다. 표 9은 시스템 클럭 보다는 JTAG 핀 TCK로 부터 실제로 나오는 의사 시스템 클럭을 발생하기 위한 명령을 도시한다. 이와 같이 JTAG 인터페이스를 거쳐 클럭 사이클의 수를 제어할 수 있다. 표 10은 차후의 어플리케이션을 위해 이용가능한 명령을 도시한다.
    [표 4]
    경계 스캔 명령
    [표 5]
    단일 내부 스캔 명령
    [표 6]
    다중 스캔 명령
    [표 7]
    메모리 액세스 명령
    [표 8]
    파우어업 명령
    [표 9]
    의사 시스템 클럭 발생 명령
    [표 10]
    시스템 행위를 모니터하기 위한 JTAG 명령 클래스
    [표 11]
    장래 어플리케이션을 위한 JTAG 명령 클래스
    1.10.4 특수한 제어 레지스터
    JTAG 제어기에 의해 제어되는 두 개의 특수한 레지스터가 존재한다. 이들은 내부 논리회로를 제어하거나 또는 MSP 시스템의 상태를 관측하는데 사용된다. 그 명칭은 MCR(모드 제어 레지스터)와 OCR(관측 제어 레지스터)이다. 각 제어 레지스터에 대한 제어 신호는 이하와 같다.
    [표 12]
    MCR의 내용
    [표 13]
    OCR의 내용
    1.10.5 JTAG 명령을 이용한 테스트 시나리오
    1.10.5.1 디버깅 단계
    MSP의 디버깅 프로세스는 선정된 두 가지 단계를 포함하고 이는 반복될 것이다. 준수하여야 할 간단한 단계는 이하와 같다. 이는 프로시져 동안 JTAG 명령을 사용하는 방법이다.
    ·단계 0 : 클럭 정지 요구 발행 : 사용자가 MSP가 그 동작을 실행하는 동안 어떤 이유로 클럭을 정지하기를 원할 때, 먼저 클럭 정지 플래그가 발행될 필요가 있다. 이는 JTAG 제어 논리 회로를 통해 발행된다. 다음에 플래그는 필요한 모든 기능 블럭으로 방송된다. JTAG 명령 MCR/BIST1 또는 MCR/BIST2는 신호를 발행하는데 사용될 수 있다.
    ·단계 1 : 내부 상태의 관측 : 다음 단계는 정상 모드로 부터 JTAG 제어 모드로 언제 진행할 지를 아는 것이다. 이 모드에서, OCR(관측 제어 레지스터)를 통해 내부 상태가 관측될 수 있다. 클럭 정지는 JTAG가 모든 기능 블럭으로 부터의 모든 신호를 관측할 때까지 활성화되지 않을 것이다. MSP가 그 동작을 실행하고 있는 동안, TD0핀을 통해 상태가 관측될 수 있다. 사용될 명령은 모니터이다.
    ·단계 2 : 클럭의 정지 : 필요한 상태가 관측되었기 때문에, 사용자는 시스템이 아이들 상태일 때 모든 유형의 클럭을 정지할 수 있다. 클럭 정지는 적당한 스캔 레지스터를 스캔할 수 있을 필요가 있다. 사용자는 MCR의 값을 어떻게 셋업하는 가에 따라 클럭을 선택적으로 정지할 수 있다. 사용자는 정상 클럭이 실행하고 있는 블럭에 대한 셀을 스캔하여서는 안된다. 클럭 정지 신호는 MSP가 시스템 클럭에 따라 실행하는 동안 발행되고 있다. 네 개의 명령, MCR/BIST1, MCR/BIST2, MCR/BIST3, 및 MCR/BIST4 중에서 임의의 것이 클럭 정지 신호를 발행하는데 사용될 수 있다. MCR/BIST1과 MCR/BIST2는 경계 스캔 셀이 트랜스패어런트 모드에 있는 동안 신호를 발행하는데 사용될 수 있다. 다른 것들은 모든 입력 신호가 차단되어 있는 동안 클럭 정지 신호를 발행할 수 있다.
    ·단계 3 : 내부 상태의 스캐닝 : 이제부터, 모든 클럭이 바이패스되어 자유로이 실행하는 클럭은 존재하지 않는다. 사용자는 적당한 블럭을 스캔할 수 있다. 사용자는 ARM7 블럭의 경계를 스캔하기 위해 명령 9-10을 사용할 수 있다. 명령 12 내지 28은 기능 블럭을 스캔하는데 사용될 수 있다. 명령 35와 36은 TCK에서 나오는 고속 클럭을 발행하는데 사용될 수 있다. 클럭이 재시작되기 전에, 사용자는 MSP에 필요한 셋업을 취하기를 원한다. 예를 들어 사용자는 ARM 클럭과 같은 절반의 클럭을 발생하는 상태 머신을 처리할 필요가 있다.
    ·단계 4 : 클럭의 재시작 : 이제부터 MCR에 값을 설정함으로써 시스템 클럭이 재시작될 수 있다. 단계 2에서와 같은 명령이 이 단계에서 사용될 수 있다. 클럭을 다시 시작하기 전에, 클럭 정지 플래그가 논리 0으로 리셋될 것이다.
    1.10.5.2 제조 테스트 동작
    제조 테스트 모드는 다중 스캔 명령을 이용하여 입력될 수 있다. 일단 이 모드를 위해 디코드되면, MSP는 다음과 같이 구성된다 :
    ·10개의 양방향 핀들이 입력 포트로서 구성된다.
    ·10개의 양방향 핀들이 출력 포트로서 구성된다.
    ·1개의 양방향 핀이 clk1의 입력 포트로서 구성된다.
    ·1개의 양방향 핀이 clk2의 입력 포트로서 구성된다.
    ·1개의 양방향 핀이 sca_mode의 입력 포트로서 구성된다.
    ·다른 양방향 핀이 정상 모드에서와 같이 구성된다.
    ·I/O 클럭과 동일한 ARM7 클럭이 clk2로서 인가된다.
    ·PCI 클럭은 clk1, clk2를 사용한다.
    ·스캔 클럭이 두 개의 입력 핀 tca, tcb에 의해 발생된다.
    ·모든 코덱 클럭이 코덱 클럭 포트로 부터 공급된다.
    1.10.5.3 ARM7
    ARM7은 ARM7 인테스트 명령을 사용하여 실행한다. ARM7 경계 스캔 셀은 트랜스페어런트하지 않다. ARM7의 입력 및 출력은 경계 스캔 체인을 통해 인가되고 관측된다.
    클럭 어플리케이션의 속도를 증가시키기 위해 TCK로 부터 클럭이 발생된다. mclk가 하이일 때 그 신호를 바꾸기 위해서는 3개의 입력 prog32, data32, 및 bigend가 요구된다. 이것을 달성하기 위해서는, 갱신 신호가 다른 경계 스캔 셀 갱신 신호로 부터 분리된다.
    mclk는 I/O 클럭과 공유된다는 것에 유의하여야 한다. 일단 ARM7이 클럭이 트리거되면, 다른 블럭의 상태가 바뀔 수 있다.
    1.10.5.4 캐쉬 및 레지스터 화일 액세스
    MCR을 데이터 레지스터로서 선택하고 입력 및 출력 신호를 차단하는 MCR/BIST4 명령을 로드한다. bist 클럭이 이 모드에서 발생되어 동작을 속도를 가속시킨다. MCR을 제어함으로써, 판독 및 기록이 수행될 수 있다.
    캐쉬 및 레지스터 화일로 향하는 클럭은 테스트 클럭과 함께 멀티플렉스된다. 메모리 동작은 다른 논리 블럭의 상태를 방해해서는 안된다.
    1.10.5.5 벡터 전용 실행
    벡터 전용 실행은 AMR7의 출력을 VP 블럭의 입력으로서 간주할 것을 필요로 한다. ARM7 경계 스캔 액세스 명령을 이용하여 그것을 수행한다.
    1.10.5.6 인테스트 및 엑스테스트
    인테스트 및 엑스테스트 명령을 이용한다.
    1.10.6 JTAG 인터페이스 신호
    [표 14]
    JTAG 제어기 I/O 신호
    모든 JTAG 인터페이스 신호는 표 11에 열거되어 있다.
    1.11 하드웨어 테스트 환경
    하드웨어 테스트 환경이 도 5에 도시되어 있다. AVL(ASCII 벡터 언어)는 경계 스캔 테스팅을 위해 특별히 설계된 테스트 벡터 언어와, 경계 스캔 테스트 툴 모두이다. 이는 종래의 병렬 벡터 지향 자동화 테스트 장비(ATE) 언어를 IEEE 표준 1149.1로 정의된 직렬 경계 스캔 테스팅과 결합한다.
    proTest-PC는 테스팅 구성요소, 기판 및 시스템을 위해 IEEE 표준 1149.1 신호를 수신하고 발생할 수 있는 PC에 근거한 테스트 제어기 기판이다. AVL과 proTest-PC는 AIS(Alpine Image System(주))의 제품이다.
    테스트 공정 동안, MSP를 위한 모든 테스트 벡터는 AVL 언어를 통해 직렬로 포맷되어 proTest_PC 보드를 통해 MSP에 인가된다. 테스트 벡터는 MSP I/O 또는 스캔 체인에 인가되는 벡터들이다. 직렬로 수행되는, 모든 기능 블럭에 대한 테스트 벡터 어플리케이션을 용이하게 하기 위해, 스캔 체인의 특정 위치를 액세스하도록 AVL 매크로가 개발될 필요가 있다. JTAG 5핀만을 통해 통신이 이루어질 것이다. 보다 상세한 정보를 위해서는 다음 문서를 참조한다.
    ·AVL 사용자 지침, V1.80, Alpine Image System(주), 1995
    ·proTest_PC 사용자 지침, V3.01, Alpine Image System(주), 1995
    1.12 내장 RAM 테스트 스킴
    1.12.1 IDC
    도 6은 IDC 블럭을 위한 테스트 스킴을 도시한다. 테스트 논리 회로는 블럭, CCU 및 IDC에 삽입된다. 모든 점선은 정상 모드에서의 신호를 가리킨다. CCU 블럭은 테스트 및 정상 모드에서 어드레스를 위한 멀티플렉스 논리회로를 제공한다. 세트, 리세트, 업/다운, 및 카운트 인에이블 기능을 갖는 9비트 카운터를 갖는 어드레스가 발생된다. 모든 카운터 동작은 시스템 클럭, clk1과 동기되어야 한다. 4개의 카운터 제어 신호, mem_add_ud, mem_add_cnt, mem_add_reste, 및 mem_add_set가 JTAG 제어기에 의해 제공된다. MSB쪽의 첫번째 2개 비트는 뱅크 선택을 위해 접속될 필요가 있다.
    32 비트 ben_idc 신호는 메모리를 테스트하는 동안 논리 1로 세트된다. 테스트와 정상 신호 사이를 선택하는 2개의 신호가 존재한다. Vt_ram_test_en은 vd_ram 및 tag_ram을 테스트하기 위한 것이다. Data_ram_test_en은 data_ram 테스팅을 위한 것이다. 만일 신호들이 논리 하이이면, 테스트 데이터가 선택된다.
    MARCH C 알고리즘이 인가되는 동안 IDC 블럭은 자동 비교를 위해 내장된 비교기를 갖는다. 또한 JTAG 제어기에 의해 제공된 6개의 메모리 제어 신호가 존재한다. Mem_compare는 입력 및 출력 레지스터 간의 비교를 인에이블시킨다. 만일 어떤 에러가 발생하면, 파라메타의 출력은 논리 0을 발생한다. 그렇지 않으면, 이는 논리 1이다. 모든 I/O 레지스터는 스캔 체인에 있고, 이것을 통해 입력 및 출력 액세스가 이루어질 수 있다.
    Mem_hwd 신호는 논리 1일 때 기록 레지스터에 데이터를 유지한다. 다른 메모리 제어 신호, mem_we, mem_data_cs, mem_vt_cs, 및 mem_vclear에 대해서는 MSP 명세를 참조한다. 이들 명치은 mem으로 시작한다는 점을 제외하고 정상 모드 신호에서와 동일하다.
    1.12.2 레지스터 화일
    레지스터 화일에 명시된 테스트 스킴은 테스트 모드에서 레지스터 화일을 용이하게 액세스하도록 되어 있다. IDC에서와 같이 내장된 비교기 논리회로가 존재하지 않기 때문에, 이 메모리에 MARCH형 알고리즘을 적용하는 것은 실용적이지 않다.
    도 7(레지스터 화일 테스트 스킴)는 테스트 환경을 위한 전체 스킴을 도시한다. 점선은 정상 신호를 도시한다. 3개의 영역, 데이터 경로, reg_file, 및 EXE 블럭이 존재한다. 굵은 선의 좌측에 있는 모든 논리는 reg_file 블럭을 제외하고 EXE 블럭에 속한다. EXE 블럭은 테스트와 정상 모드 간에 어드레스와 제어 신호를 선택하는 멀티플렉스 논리회로를 공급한다. 테스트 모드 선택 신호 reg_file_en, 및 3개의 메모리 제어 신호 mem_we1, mem_we2, 및 mem_cex는 JTAG 제어 논리회로에 의해 공급된다. 만일 reg_file_test_en이 하이이면, 테스트 데이터가 선택된다.
    어드레스는 세트, 리셋, 업 및 다운, 및 카운트 인에이브를 갖는 6 비트 카운터에 의해 발생된다. 모든 카운트 동작은 시스템 클럭 clk1과 동기된다. 입력 및 출력 레지스터는 도 7에 명시된 바와 같이 데이터 경로 블럭에 위치된다. 모든 I/O 레지스터는 스캔될 필요가 있다. 32비트 ben 신호는 테스트 모드에서 논리1에 결합된다.
    1.13 MSP 경계 스캔
    MSP의 모든 I/O 패드는 적당한 경계 스캔 셀을 가질 필요가 있다. 하나의 스캔 체인에는 270 경계 스캔 셀이 접속된다. 시퀀스와 셀은 표 13에 열거되어 있다.
    1.13.1 경계 스캔 셀 선택
    KGL75에서 현재 이용가능한 JTAG 셀이 이하에 열거된다. 일치하는 그 JTAG 표준 셀이 표 15에 열거된다. MSP를 위한 경계 스캔 체인은 LSSD형 스캔 셀을 이용한다. KGL75와의 차이점은 중첩하지 않은 2개의 클럭을 이용하여 경계 스캔 체인을 통해 쉬프트하는 것이다. KGL75 경계 스캔 체인은 ARM7의 경계 스캔에 사용된다.
    ·JTBI1 : 양방향 I/O 경계 스캔 셀.
    ·JTCK : 클럭 입력과 같은 특수한 입력, 경계 스캔 셀.
    ·JTIN1 : 입력 경계 스캔 셀
    ·JTINT1 : 3-상태 제어 내부 경계-스캔 셀
    ·JTOUT1 : 출력 경계 스캔 셀
    적당한 경계 스캔 셀을 선택하는 규정은 이하와 같다.
    [표 15]
    KGL75 대 JTAG 표준 간의 경계 스캔 셀의 일치 표
    ·GND, VDD 및 VCC 핀을 제외한 클럭 입력을 포함하는 모든 입력 셀의 경우, JTIN1을 이용한다.
    ·모든 양방향 셀의 경우, JTBI1를 이용한다.
    ·모든 출력 셀의 경우, JTOUT1을 이용한다.
    ·t/s(3-상태) 핀의 경우, JTINT1 셀을 더한다. AD[31:0]과 같은 일단의 신호에 대해서는 하나의 3-상태 제어 셀을 이용한다.
    ·o/d(오픈 드레인(open drain)을 갖는 핀의 경우, JTINT1셀을 이용한다.
    ·s/t/s(ststained 3-상태)를 갖는 핀의 경우, 경계 스캔 셀 선택에서 t/s와 동일하다.
    1.13.2 경계 스캔 셀 시퀸스
    ·TDI 입력으로 부터 카운터-클럭 방향으로 경계 스캔이 체인된다. 보다 상세한 정보를 위해서는 MSP 핀 배치를 참조한다.
    ·양방향 핀의 경우 입력 셀이 먼저 온다.
    ·만일 3-상태 핀이 존재하면, 3-상태 제어 경계 스캔 셀 JTINT1이 셀 이전에 온다.
    ·만일 많은 3-상태 핀이 시퀀스로 존재하면, 단지 하나의 3-상태 제어 셀이 시퀀스의 첫번째 3-상태 핀 이전에 삽입된다.
    1.13.3 디자인 세부사항
    모든 ADxx 신호는 동일한 3-상태 인에이블 신호를 갖는다. 따라서 32 비트 AD 신호를 적절히 제어하는데는 단지 하나의 제어 경계 스캔 셀은 충분하다. 그러나, 다중 스캔 모드에서 신호를 적절히 제어하기 위해서는, 4개 이상의 제어 경계 스캔 셀이 삽입된다. 결국, 총 5개의 제어 경계 스캔 셀이 AD 버스에 사용된다. 5개의 제어 경계 스캔 셀은 MSP 코어로 부터 하나의 정상 제어 신호를 취하고 5개의 제어 신호를 만든다.
    [표 16]
    MSP에 대한 경계 스캔 순서
    1.14 ARM7 경계 스캔
    경계 스캔 셀 선택은 MSP 경계 스캔 셀 선택에서의 방법으로서 취급된다. 보다 자세한 정보를 위해서는 이전의 절을 참조한다. 그 명칭과 순서는 표 14에 기술되어 있다.
    [표 17]
    ARM7에 대한 경계 스캔 셀 순서
KR1019970029436A 1996-10-18 1997-06-30 디버그 및 제조 테스트 목적을 위한 적응적 스캔 체인 KR100267096B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/733,132 US6018815A (en) 1996-10-18 1996-10-18 Adaptable scan chains for debugging and manufacturing test purposes
US08/733,132 1996-10-18
US8/733,132 1996-10-18

Publications (2)

Publication Number Publication Date
KR19980032196A true KR19980032196A (ko) 1998-07-25
KR100267096B1 KR100267096B1 (ko) 2000-11-01

Family

ID=24946365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970029436A KR100267096B1 (ko) 1996-10-18 1997-06-30 디버그 및 제조 테스트 목적을 위한 적응적 스캔 체인

Country Status (4)

Country Link
US (1) US6018815A (ko)
JP (1) JPH10123222A (ko)
KR (1) KR100267096B1 (ko)
TW (1) TW394846B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100697264B1 (ko) * 1999-12-02 2007-03-21 삼성전자주식회사 딜레이 체인 회로를 이용한 반도체 장치의 테스트 회로 및그의 테스트 방법
KR101421909B1 (ko) * 2010-08-12 2014-07-22 어드밴테스트 (싱가포르) 피티이. 엘티디. 기준 스캔 체인 테스트 데이터를 생성하는 테스트 장치 및 테스트 시스템
KR20150026202A (ko) * 2013-09-02 2015-03-11 삼성전자주식회사 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6362015B1 (en) * 1998-10-30 2002-03-26 Texas Instruments Incorporated Process of making an integrated circuit using parallel scan paths
US6405335B1 (en) * 1998-02-25 2002-06-11 Texas Instruments Incorporated Position independent testing of circuits
US6418545B1 (en) * 1999-06-04 2002-07-09 Koninklijke Philips Electronics N.V. System and method to reduce scan test pins on an integrated circuit
US6654917B1 (en) * 2000-09-07 2003-11-25 International Business Machines Corporation Method and apparatus for scanning free-running logic
US6665828B1 (en) * 2000-09-19 2003-12-16 International Business Machines Corporation Globally distributed scan blocks
US6988232B2 (en) * 2001-07-05 2006-01-17 Intellitech Corporation Method and apparatus for optimized parallel testing and access of electronic circuits
US6934898B1 (en) 2001-11-30 2005-08-23 Koninklijke Philips Electronics N.V. Test circuit topology reconfiguration and utilization techniques
EP1351066A1 (en) * 2002-04-04 2003-10-08 Texas Instruments Incorporated Configurable scan path structure
EP1439398A1 (en) * 2003-01-16 2004-07-21 STMicroelectronics Limited Scan chain arrangement
JP4274806B2 (ja) * 2003-01-28 2009-06-10 株式会社リコー 半導体集積回路およびスキャンテスト法
US7509533B1 (en) * 2003-06-30 2009-03-24 Sun Microsystems, Inc. Methods and apparatus for testing functionality of processing devices by isolation and testing
US7418640B2 (en) 2004-05-28 2008-08-26 Synopsys, Inc. Dynamically reconfigurable shared scan-in test architecture
US7254656B2 (en) * 2004-11-13 2007-08-07 International Business Machines Corporation Method and service and computer program code for broadcast of interface group bring-up in a multiprocessor computer system having multiple nodes
US20060161818A1 (en) * 2005-01-14 2006-07-20 Ivo Tousek On-chip hardware debug support units utilizing multiple asynchronous clocks
KR100697832B1 (ko) 2006-03-06 2007-03-20 엠텍비젼 주식회사 복수개의 포트를 가진 메모리 장치와 그 테스트 방법
US20080235545A1 (en) * 2007-03-06 2008-09-25 Vinay Burjinroppa Jayaram Re-using production test scan paths for system test of an integrated circuit
US7870448B2 (en) * 2007-12-18 2011-01-11 International Business Machines Corporation In system diagnostics through scan matrix
KR101093968B1 (ko) 2008-03-28 2011-12-15 후지쯔 가부시끼가이샤 스캔 제어 방법 및 장치
JP4992791B2 (ja) * 2008-03-28 2012-08-08 富士通株式会社 スキャン制御方法及び装置
NL1037457C2 (en) * 2009-11-10 2011-05-12 Jtag Technologies Bv A method of and an arrangement for testing connections on a printed circuit board.
US8327199B1 (en) * 2010-03-05 2012-12-04 Altera Corporation Integrated circuit with configurable test pins
US8495443B1 (en) 2011-05-31 2013-07-23 Apple Inc. Secure register scan bypass
US8589749B1 (en) 2011-05-31 2013-11-19 Apple Inc. Memory content protection during scan dumps and memory dumps
US8639981B2 (en) 2011-08-29 2014-01-28 Apple Inc. Flexible SoC design verification environment
US8788886B2 (en) 2011-08-31 2014-07-22 Apple Inc. Verification of SoC scan dump and memory dump operations
US8533546B1 (en) * 2011-12-01 2013-09-10 Pmc-Sierra Us, Inc. Reconfigurable scan chain connectivity to enable flexible device I/O utilization
US8904256B1 (en) 2012-11-09 2014-12-02 Cadence Design Systems, Inc. Method and apparatus for low-pin count testing of integrated circuits
US8650524B1 (en) * 2012-11-09 2014-02-11 Cadence Design Systems, Inc. Method and apparatus for low-pin count testing of integrated circuits
KR101619741B1 (ko) 2014-09-22 2016-05-13 주식회사 아이에이 자체 진단 기능이 내장된 반도체 소자를 시험하는 장치
US20160187424A1 (en) 2014-12-30 2016-06-30 Ia, Inc. Apparatus for fault injection to semiconductor chip having diagnostic function
US10247776B2 (en) 2017-02-22 2019-04-02 International Business Machines Corporation Structurally assisted functional test and diagnostics for integrated circuits
US10613142B2 (en) 2017-02-22 2020-04-07 International Business Machines Corporation Non-destructive recirculation test support for integrated circuits
US10585142B2 (en) 2017-09-28 2020-03-10 International Business Machines Corporation Functional diagnostics based on dynamic selection of alternate clocking
CN112000996B (zh) * 2020-10-28 2021-06-18 南京邮电大学 一种阻止差分密码分析攻击的方法
US11984178B2 (en) * 2022-01-20 2024-05-14 Stmicroelectronics S.R.L. Methods and devices for flexible RAM loading

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329471A (en) * 1987-06-02 1994-07-12 Texas Instruments Incorporated Emulation devices, systems and methods utilizing state machines
US4860290A (en) * 1987-06-02 1989-08-22 Texas Instruments Incorporated Logic circuit having individually testable logic modules
US5535331A (en) * 1987-09-04 1996-07-09 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
US5280616A (en) * 1989-02-27 1994-01-18 International Business Machines Corporation Logic circuit for task processing
JPH0770573B2 (ja) * 1989-07-11 1995-07-31 富士通株式会社 半導体集積回路装置
JP3372052B2 (ja) * 1991-06-06 2003-01-27 テキサス インスツルメンツ インコーポレイテツド 境界走査集積回路
US5313470A (en) * 1991-09-17 1994-05-17 Ncr Corporation Boundary-scan input cell for a clock pin
US5448166A (en) * 1992-01-03 1995-09-05 Hewlett-Packard Company Powered testing of mixed conventional/boundary-scan logic
US5349587A (en) * 1992-03-26 1994-09-20 Northern Telecom Limited Multiple clock rate test apparatus for testing digital systems
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
FR2693574B1 (fr) * 1992-07-08 1994-09-09 Sgs Thomson Microelectronics Procédé pour tester le fonctionnement d'un circuit intégré spécialisé, et circuit intégré spécialisé s'y rapportant.
US5448576A (en) * 1992-10-29 1995-09-05 Bull Hn Information Systems Inc. Boundary scan architecture extension
US5504756A (en) * 1993-09-30 1996-04-02 Intel Corporation Method and apparatus for multi-frequency, multi-phase scan chain
US5524114A (en) * 1993-10-22 1996-06-04 Lsi Logic Corporation Method and apparatus for testing semiconductor devices at speed
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
TW253031B (ko) * 1993-12-27 1995-08-01 At & T Corp
US5434804A (en) * 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
US5546568A (en) * 1993-12-29 1996-08-13 Intel Corporation CPU clock control unit
TW253942B (ko) * 1994-01-31 1995-08-11 At & T Corp
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
US5550843A (en) * 1994-04-01 1996-08-27 Xilinx, Inc. Programmable scan chain testing structure and method
US5636227A (en) * 1994-07-08 1997-06-03 Advanced Risc Machines Limited Integrated circuit test mechansim and method
US5592493A (en) * 1994-09-13 1997-01-07 Motorola Inc. Serial scan chain architecture for a data processing system and method of operation
US5519715A (en) * 1995-01-27 1996-05-21 Sun Microsystems, Inc. Full-speed microprocessor testing employing boundary scan
US5668481A (en) * 1995-02-23 1997-09-16 National Science Council Multiple pattern sequence generation based on inverting non-linear autonomous machine
US5680543A (en) * 1995-10-20 1997-10-21 Lucent Technologies Inc. Method and apparatus for built-in self-test with multiple clock circuits
US5614838A (en) * 1995-11-03 1997-03-25 International Business Machines Corporation Reduced power apparatus and method for testing high speed components
US5651013A (en) * 1995-11-14 1997-07-22 International Business Machines Corporation Programmable circuits for test and operation of programmable gate arrays

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100697264B1 (ko) * 1999-12-02 2007-03-21 삼성전자주식회사 딜레이 체인 회로를 이용한 반도체 장치의 테스트 회로 및그의 테스트 방법
KR101421909B1 (ko) * 2010-08-12 2014-07-22 어드밴테스트 (싱가포르) 피티이. 엘티디. 기준 스캔 체인 테스트 데이터를 생성하는 테스트 장치 및 테스트 시스템
KR20150026202A (ko) * 2013-09-02 2015-03-11 삼성전자주식회사 스캔-체인으로 연결된 플립-플롭들의 값들을 jtag 인터페이스를 이용하여 재구성할 수 있는 집적 회로, 이의 동작 방법, 및 상기 집적 회로를 포함하는 장치들

Also Published As

Publication number Publication date
US6018815A (en) 2000-01-25
KR100267096B1 (ko) 2000-11-01
TW394846B (en) 2000-06-21
JPH10123222A (ja) 1998-05-15

Similar Documents

Publication Publication Date Title
KR100267096B1 (ko) 디버그 및 제조 테스트 목적을 위한 적응적 스캔 체인
KR100227274B1 (ko) 스캔 환경에서 jtag 제어기를 이용하여 클럭 제어를 거쳐 구현된 저비용의 에뮬레이션 스킴
JP3890126B2 (ja) 集積回路のテスト用クロック発生方法および回路
KR100241058B1 (ko) Jtag를 사용한 sdram 다이나믹 셀프 리프레쉬 입구 및 출구용 구조 및 방법
Bleeker et al. Boundary-scan test: a practical approach
US6000051A (en) Method and apparatus for high-speed interconnect testing
US7747920B2 (en) Method and apparatus for unifying self-test with scan-test during prototype debug and production test
US7134061B2 (en) At-speed ATPG testing and apparatus for SoC designs having multiple clock domain using a VLCT test platform
US7870448B2 (en) In system diagnostics through scan matrix
US20040006729A1 (en) Hierarchical test methodology for multi-core chips
CN103698689B (zh) 集成电路的老炼方法及老炼装置
EP1275183A1 (en) Method and apparatus for providing optimized access to circuits for debug, programming, and test
WO2007140366A2 (en) Testing components of i/o paths of an integrated circuit
US9086451B2 (en) Semiconductor integrated circuit and method for designing the same
Parulkar et al. A scalable, low cost design-for-test architecture for UltraSPARC/spl trade/chip multi-processors
US20050166109A1 (en) Enhanced JTAG interface
Park et al. A new IEEE 1149.1 boundary scan design for the detection of delay defects
US6779142B1 (en) Apparatus and method for interfacing a high speed scan-path with slow-speed test equipment
Alves et al. From design-for-test to design-for-debug-and-test: analysis of requirements and limitations for 1149.1
Song et al. A simple wrapped core linking module for SoC test access
KR100694315B1 (ko) 다중 시스템 클럭 및 이종 코어를 포함하는 시스템 온 칩용연결선 지연 고장 테스트 제어기
van de Logt et al. An extension to JTAG for at-speed debug on a system
Yi et al. Interconnect delay fault test on boards and SoCs with multiple clock domains
CN115828841A (zh) 一种基于边界扫描链的系统级内建自测试的集成设计方法
Ricchetti et al. A Fast Access Controller for In-System Programming of FLASH Memory Devices

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: 20130701

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 17