JTAG 테스트 개요
원래 PCB (Printed Circuit Board Assembly) Interconnect (상호 연결) 테스트 요구를 해결하기 위해 개발되었지만 JTAG 테스트 방법을 사용하여 간단한 구조 테스트 이상으로 많은 요구 사항을 해결할 수 있다. 일반적인 JTAG 테스트 및 애플리케이션 유형을 간략하게 살펴 본다.
JTAG 테스트 기초
대부분의 JTAG / 바운더리 스캔 시스템은 테스트 개발 및 생성을 위한 테스트 프로그램 생성기와 테스트 실행 및 결과 보고를 위한 테스트 프로그램 실행부 두 가지 주요 구성 요소로 구성된다.
JTAG의 작동 원리
JTAG / 바운더리 스캔 테스트 아키텍처는 원래 물리적 테스트 프로브를 사용하지 않고 PCB에 탑재 된 IC 간의 상호 연결을 테스트하는 방법으로 개발되었다. 멀티플렉서 및 래치 회로를 사용하여 생성 된 경계 스캔 셀은 디바이스의 각 핀에 연결됩니다. 디바이스에 내장 된 이들 셀은 핀 또는 코어 로직 신호에서 데이터를 캡처 할 뿐만 아니라 데이터를 핀에 강제로 유지 할 수 있다. 캡처 된 데이터는 JTAG 테스트 액세스 포트 (TAP)를 통해 순차적으로 이동 되고 예상 값과 비교되어 통과 또는 실패 결과를 결정할 수 있습니다. 강제 테스트 데이터는 연속적으로 바운더리 스캔 셀로 이동됩니다. 이 모든 것은 스캔 경로 또는 스캔 체인이라는 직렬 데이터 경로에서 제어됩니다.
각 핀을 개별적으로 제어 할 수 있기 때문에 바운더리 스캔은 일반적으로 순차 논리를 올바르게 초기화하는 데 필요한 많은 수의 테스트 벡터를 제거합니다.
JTAG을 사용하면 수천 또는 수백 개의 테스트 벡터가 이전에 수천 개가 필요했던 작업을 수행 할 수 있습니다. Boundary-scan은 테스트 시간 단축, 테스트 커버리지 향상, 진단 기능 향상 및 투자 장비 비용 절감을 가능하게 합니다.
바운더리 스캔 구성 요소를 사용하는 상호 연결 테스트의 원리는 좌측 그림 설명되어 있습니다. 두 개의 바운더리 스캔 호환 장치는 네 개의 넷과 연결됩니다. 첫 번째 장치는 사전 정의 된 값으로 다른 4 개의 입력을 구동하는 4 개의 출력을 포함합니다. 이 경우 회로에 두 가지 오류가 있다고 가정합니다. Net2와 Net3 간의 단락, Net4에서의 단선. 우리는 또한 2 개의 그물 사이의 단락이 유선 AND로 동작하고 열린 단선이 1 일 때 멈춤으로 작용한다고 가정합니다.
결함을 검출하고 분리하기 위해 테스터는 그림에 표시된 패턴을 첫 번째 바운더리 스캔 레지스터로 이동하고 이러한 패턴을 두 번째 장치의 입력에 적용합니다.
두 번째 장치의 바운더리 스캔 레지스터에 캡처 된 입력 값이 이동되어 예상 값과 비교됩니다. 이 경우 Net2, Net3 및 Net4에서 밑줄이 그어지고 빨간색으로 표시되는 결과는 예상 값과 테스터 태그와 일치하지 않습니다. 정교한 알고리즘은 특정 넷, 장치 및 핀에 대한 결함을 탐지, 격리 및 진단하기 위해 최소한의 테스트 벡터 세트를 자동으로 생성하는 데 사용됩니다.
물론 상호 연결 테스트는 JTAG의 많은 용도 중 하나 일뿐 입니다. 위에서 언급 한 JTAG TAP은 ISP (in-system-programming), ICE (In-Circuit-Emulation), 내장 기능 테스트 및 기타 기능을 포함한 추가 기능을 지원하도록 확장되었습니다. 더. 이 표준은 추가 IC 기능과 상호 작용하는 데 사용할 수있는 장치 별 명령어 및 레지스터를 추가로 설명합니다. 예를 들어, 마이크로 프로세서 디바이스는 JTAG TAP을 사용하여 액세스 할 수있는 데이터 다운로드, 프로그램 실행 또는 등록 peek-and-poke 활동을 위한 임베디드 기능을 가질 수 있습니다.
IEEE-1532 표준을 통해 JTAG 명령어를 사용하여 동일한 툴을 사용하여 FPGA 및 CPLD 디바이스를 지우고, 구성하고, 읽고 백킹하고 제어 할 수 있습니다.
최근에는 칩에 대한 고속 테스트를 수행 할 수있는 디바이스에 이르기까지 전압 및 전류를 측정하는 계측기에서 비롯된 임베디드 IC 계측이 액세스 메커니즘으로 JTAG TAP을 사용하여 IC에 대한 새로운 가시성을 제공하고 JTAG의 범위를 더욱 확대했습니다 테스트. 마이크로 프로세서 디바이스는 데이터 다운로드, 프로그램 실행, 또는 JTAG TAP을 사용하여 접근 가능한 peek-and-poke 활동 등록 기능을 내장 할 수 있다.
JTAG Test Program Generator (TPG)
테스트 프로그램 생성기는 CAD (computer aided design) 데이터의 넷리스트, BOM (bill of materials), 회로도 및 레이아웃 정보의 형태의 입력으로 받아들입니다.
테스트 프로그램 생성기 (TPG)는 테스트 개발자의 지침과 함께 이 파일에 제공된 정보를 사용하여 PCB에서 JTAG 테스트 가능한 네트워크를 사용하여 오류를 탐지하고 격리하는 테스트 패턴을 자동으로 작성합니다.
모든 기능을 갖춘 테스트 프로그램 생성 소프트웨어에는 일반적으로 바운더리 스캔 장치에 연결된 로직 클러스터 및 메모리를 포함하여 스캔 할 수 없는 디바이스 까지 테스트를 자동으로 생성하는 기능이 포함된다 .
그림 1 JTAG 테스트를 통해 감지된 오류 샘플
JTAG Test Program Executive
테스트 프로그램 실행 자는 테스트 프로그램 생성 소프트웨어로 작성된 테스트를 실행하는 데 사용됩니다. 테스트 실행 자는 JTAG 하드웨어와 I/F 하여 테스트 중인 유닛 (UUT)에서 테스트 패턴을 실행 한 다음 결과를 예상 값과 비교하고 오류를 진단합니다.
최신 테스트 실행들 에는 흐름 제어, 타 사 테스트 유형 지원과 같은 고급 기능이 포함되어 있으며 종종 추가 테스트 시스템과의 통합 또는 단순 사용자 인터페이스의 개발을 위한 API (Application Programming Interface)가 포함됩니다.
JTAG의 이점
고밀도로 연결 된 미세한 피치 BGA (ball-grid-array) 의 지속적인 패키지 발전으로 인해서 필요한 테스트 포인트 수를 최소화하는 테스트 전략이 요구 되고있다.
JTAG / boundary-scan 은 IC 자체에 테스트 로직을 내장하고 물리적 인터페이스를 단 몇 개의 신호로 제한함으로써 최신 전자 시스템을 테스트, 디버깅 및 진단하는 훌륭한 솔루션을 제시합니다. .
제품 수명주기를 통한 재사용 (Reuse through the product life cycle)
테스트 포인트 감소 . JTAG는 단 4 개의 핀 (IEEE-1149.7 호환 장치의 경우 2 개 핀)을 통해 테스트 액세스를 제공하므로 필요한 테스트 포인트 수를 줄여 PCB 제조 비용을 줄이고 테스트 JIG Tool 의 복잡성을 줄입니다.
독립적 인 관찰 및 제어 확장 성 (Independent observation and control)
boundary-scan 테스트는 시스템 로직과 독립적으로 작동합니다. 즉, 기능적으로 작동하지 않을 수 있는 시스템을 진단하는 데 사용할 수 있습니다. . JTAG은 지속적으로 개발되어 왔으며 새로운 애플리케이션이 자주 발견되고 있습니다. AC 커플 링 테스트를 처리 하기위한 추가 표준이 개발되었으며, 오늘날 JTAG은 다양한 시스템 운영을 위한 액세스 메커니즘을 제공합니다. JTAG이 제공하는 몇 가지 이점은 다음과 같습니다.
JTAG 스캔 체인 인프라 테스트 (JTAG Scan Chain Infrastructure Test)
JTAG 테스트 는 일반적으로 기본 하부 구조(인프라)를 검사하여 모든 장치가 연결되고 테스트 기능이 작동하는지 확인하는 것으로 시작합니다. 테스트 패턴은 예상 길이 및 값과의 비교를 위해 명령 레지스터 및 boundary-scan 레지스터를 실행 하는 데 사용 됩니다. 장치 ID 코드가 있는 경우 올바른 구성 요소가 배치되었는지 확인하기 위해 장치 ID 코드를 읽고 예상 값과 비교할 수도 있습니다.
JTAG 인터커넥트, 버스 와이어 및 레지스터 테스트 (JTAG Interconnect, Bus Wire, and Resistor Tests)
스캔 체인이 제대로 작동하는지 확인한 후 테스트 패턴을 사용하여 시스템 구성 요소 간의 상호 연결을 검증 할 수 있습니다. 3 개 이상의 boundary-scan 핀이 포함 된 넷은 버스 와이어라고 하는 특수한 경우를 나타내며 그림 2와 같이 추가 패턴을 사용하여 특정 핀에 결함을 격리 할 수 있다. 버스 와이어 테스트 중에 boundary-scan 드라이버 핀 모든 가능한 Open이 테스트 되는지 확인하기 위해 한 번에 하나씩 테스트합니다.
그림 2 버스 와이어 테스트는 핀 레벨에서 오픈 오류를 진단하는데 사용할 수 있다.
DC 신호를 전달하는 장치는 "짧은"신호 경로로 모델링 되어 테스트에 포함될 수 있습니다. 예를 들어, 직렬 저항은 구성 요소 존재 및 오픈 오류에 대해 테스트 할 수 있지만 방향 버퍼는 버퍼 출력 핀에서 샘플링 된 신호가 버퍼 입력 핀에 적용되는 신호와 일치하도록 제한 및 테스트 할 수 있습니다.
또한 AC 결합 신호에 대한 테스트는 IEEE-1149.6 표준 구성 요소가 있는 시스템에서 인터커넥트 및 버스 와이어 테스트와 통합 될 수 있으므로 AC 신호 투명성을 위해 커패시터를 테스트 할 수 있습니다.
또한 특수 테스트를 사용하여 풀업 및 풀다운 저항을 점검 할 수 있다.
논리, 메모리 및 복합 디바이스에서의 JTAG 테스트
뿐만 아니라 boundary-scan 부품들 과 단순 전달 부품의 인터콘넥션 테스트를 할 수 있지만, boundary-scan 셀이 없는 부품들은 추가적으로 연결된 boundary-scan 구성 요소를 사용하여 기능 및 연속성에 대해 제어 및 테스트 할 수 있습니다.
간단한 테스트 패턴은 디코더 또는 멀티플렉서와 같은 로직 디바이스를 테스트하는 데 사용될 수 있으며 정교한 스크립트는 아날로그 - 디지털 컨버터, UART 및 이더넷 PHY를 포함한 기본 또는 고급 기능을 위한 복잡한 디바이스를 제어 및 테스트하는 데 사용할 수 있습니다.
클러스터 테스트의 일반적인 응용 프로그램은 RAM 장치의 저장 기능을 사용하여 boundary-scan 장치와 연결된 메모리 간의 상호 연결을 확인 합니다. 메모리 구성 요소 모델을 사용하면 메모리 주소에 특정 데이터 패턴을 쓰고 예상 값과 비교하여 다시 읽는 테스트를 자동으로 만들 수 있습니다. 이 패턴은 모든 메모리 데이터 및 어드레스 신호가 하이 및 로우 로직 상태로 구동 되도록 설계되었습니다. RAM 테스트와 동일한 개념을 플래시, EEPROM 및 NVRAM 구성 요소와 같은 비 휘발성 메모리에도 적용 할 수 있습니다.
제품 수명주기 전반에 걸친 JTAG 테스트
JTAG / boundary-scan 은 원래 생산 단계에서 전자 제품을 테스트하는 방법으로 간주 되었지만 IEEE-1149.1 표준 의 새로운 개발 및 적용으로 인해 다른 많은 제품 수명주기 단계에서 JTAG를 사용할 수 있게 되었습니다. boundary-scan 기술은 일반적으로 제품 디자인, 프로토 타입 디버깅 및 현장 서비스에 적용됩니다.
설계 테스트 가능성을 검증하는 데 사용 된 것과 동일한 테스트 슈트를 보드 Bring-up, 대량 제조 테스트, 트러블 슈팅 및 수리, 심지어 현장 서비스 및 재 프로그래밍에 적용하여 활용할 수 있습니다. JTAG / boundary-scan 툴의 다양성은 생산 단계를 넘어서는 조직에 막대한 가치를 제공합니다.
* JTAG 도구는 제품 수명주기의 모든 단계에서 사용 된다.
JTAG 임베디드 테스트
대부분의 최신 프로세서 는 임베디드 시스템 내에서 JTAG 포트를 통해 프로세서를 제어 할 수 있도록 OTD (on-chip debugging)의 주 인터페이스로 JTAG를 사용 합니다. JTAG 포트 는 동일한 인터페이스를 사용하여 프로세서를 초기화하고, 테스트 프로그램을 다운로드 및 실행 한 다음 결과를 얻는 데 사용할 수 있습니다. 이 테스트 기술은 임베디드 시스템 에서 주변 테스트 및 시스템 내 프로그래밍 작업을 개발하고 실행 하기위한 빠르고 편리한 방법입니다.
이러한 테스트는 시스템 프로세서 속도에서 실행되기 때문에 저속 실행 중에 식별 되지 않을 수 있는 결함을 감지 할 수 있습니다.
그림 3 메모리 상호연결(Interconnects)은 Boundary-scan 디바이스와 연결하여 테스트 된다.
JTAG을 사용한 인 시스템 프로그래밍
JTAG은 테스트 애플리케이션 외에도 플래시 메모리 및 CPLD와 같은 장치를 프로그래밍 하는 주요 방법으로 자주 사용됩니다. 플래시 장치를 프로그래밍하기 위해 연결된 바운더리 스캔 호환 구성 요소의 핀을 사용하여 메모리를 제어하고 바운더리 스캔 체인을 사용하여 구성 요소를 지우고, 프로그램하고 확인합니다. IEEE-1532 표준 명령어를 지원하는 FPGA 및 CPLD 디바이스는 JTAG 포트를 사용하여 직접 액세스하고 프로그래밍 할 수 있습니다.
CPU 또는 FPGA를 사용하여 플래시를 프로그래밍 할 때보다 빠른 성능을 얻을 수 있습니다. 이러한 경우 작은 플래시 프로그래밍 어플리케이션이 JTAG 포트를 통해 제어 장치에 다운로드되며,이 포트는 테스트 시스템과 임베디드 시스템에서 실행되는 플래시 프로그래밍 어플리케이션 간의 인터페이스에 사용됩니다. 이 프로그램은 바운더리 스캔보다 훨씬 빠른 속도로 작동 할 수있어 임베디드 시스템에 운영 체제 나 고급 소프트웨어가 필요없이 생산 처리량이 증가하고 USB 및 이더넷 기반 프로그래밍 솔루션의 속도를 능가합니다.
그림 4 JTAG 제어하 에있는 CPU 또는 FPGA는 플래시 메모리를 프로그래밍 하는데 사용될 수 있다.
(메이커 홍보 문구)
IEEE-1149.1 JTAG 팀은 확장 가능한 표준을 설계 하기 위한 선견지명이있었습니다. 여러 가지 응용 프로그램에 대해 추가 데이터 레지스터를 사용할 수 있는 표준입니다.
결과적으로, JTAG은 보드 테스트를 위한 원래의 뿌리 에서부터 인 시스템 프로그래밍, 온칩 디버깅, 더 최근에 IC에 내장 된 계측기의 제어와 같은 다양한 애플리케이션에 사용할 수 있는 유비쿼터스 포트로 성장했습니다. 임베디드 시스템에 운영 체제 또는 고급 소프트웨어가 필요 없이 생산 처리량이 증가하고 USB 및 이더넷 기반 프로그래밍 솔루션의 속도를 능가하거나 능가합니다. IEEE-1149.1 JTAG 팀은 확장 가능한 표준을 설계 하기위한 선견지명이있었습니다. 여러 가지 응용 프로그램에 대해 추가 데이터 레지스터를 사용할 수 있는 표준입니다.