JTAG에 대한 내용을 정리한다.
-- 김도집 (2006.3.2)
ARM은 크게 네 개의 스캔 체인(scan chain)을 갖는다.
- 스캔 체인0 - ?ARM7TDMI 코아
- 스캔 체인1 - 스캔 체인0의 서브 셋 (디버그 모드)
- 스캔 체인2 - ICE
- 스캔 체인15 - 코프로세서
스캔 체인0은 ARM 코아 전체를 커버한다. 데비터 및 어드레스 버스[31:0], 코아 제어 신호, ICE 제어 신호를 모두 커버한다.
스캔 체인1은 스캔 체인 0의 서브 셋으로 데이터 버스[31:0]과 BREAKPT 신호를 커버한다.
스캔 체인2은 ICE 관련 신호들을 커버한다.
스캔 체인15은 코프로세서 관련 신호들을 커버한다.
TAP은 Test Access Port의 약자이다. 시리얼 테스트 및 디버그를 위해서는 JTAG 상태 머신을 통해 제어가 필요하다. 이러한 것을 처리하는 것이 TAP 컨트롤러이다.
<< TAP 컨트롤러 상태 변이>>
- data 레지스터
- instruction 레지스터