본문 바로가기

Job Notes/Embedded System & RTOS

JTAG의 소개 및 원리 3편

JTAG 소개 원리 3

등록: 2001-07-25 15:01:37

4탄에서 여러분은 Boundary-Scan Cell 벌거 벗은 흉직한 모습을 보셨을 겁니다. 로직을 이용하여 JTAG 디버그 방법론이 나옵니다. 우선 이전 내용을 말로 정리해 봅시다.

  • JTAG 핵심은 Boundary-Scan Cell이며 Boundary-Scan Cell 쉬프트 레지스터 형식을 가진다.
  • 셀의 상태를 읽어 오거나 넣는 것은 시리얼 입출력 방식을 이용한다.
  • Boundary-Scan Cell 디바이스의 입출력단에만 있다.

이정도의 정리면 되겠지요... 여러분은 사실 이용만 할것이기 때문에 내부의 동작원리는 몰라도 됩니다.

이젠 접근을 외부에서 해봅시다. 내부에서의 구조와 외부에서의 접근을 통하여 중간 계층에 무엇이 있는지를 알수 있겠죠? 여러분이 스토롱암의 매뉴얼을 보면 JTAG 대한 내용이 나옵니다. 내용을 보면 JTAG CPU 코어가 들어있는 CPLD 외부 단자중 5개의 단자만을 사용합니다. 단자에는 어떤 것이 있을까요?

  • TDI
  • TDO
  • TMS
  • TCK
  • TRST

단자들을 묶어서 TAP라고 합니다. TAP 풀어쓰면 Test Access Port라고 합니다. JTAG TAP단자명들은 이전 강좌에서 소개한 Boundary-Scan Cell에서 사용되는 핀의 이름과는사뭇 다른 이름을 사용하고 있읍니다. 이것은 JTAG에는 Boundary-Scan Cell이외에 무언가가 있다는 것이지요. 우리는 정체를 밝혀 내야 합니다. 물론 제가 밝혀 드리겠지요 ^^;

우선 위에 놓은 단자명을 영문으로 풀어내어 봅시다.

  • TDI : Test Data In
  • TDO : Test Data Out
  • TMS : Test Mode Select
  • TCK : Test Clock
  • TRST : Test Reset

이런 이름들의 약자들입니다.

그럼 이제 JTAG 진짜 내부 모습을 보여드리지요.. 그런데 그림을 제가 어떻게 그릴수 있을까요... 흑흑 (텍스트가 미워) 이그림은 약간 약화 시킨 그림입니다. 스트롱 암에서 작동되는 자세한 동작 방식에 대한 설명을 위한 그림은 나중에 다시 그리지요...

 
        ┌────────────────────┐
              ■→■→■→■→■→■            
                                            
              ■ ┏━━━━━━┓ ■            
              ↑ ┃ 로직 코어  ┃ ↓            
              ■ ┃   +----+   ┃ ■            
              ↑ ┃   |    |   ┃ ↓            
              ■ ┃ ■→■→■ ┃ ■            
              ↑ ┃ | +----+ | ┃ ↓            
              ■ ┃ |특정로직| ┃ ■            
              ↑ ┗━━━━━━┛ ↓     |\    
              |     |        |    *----→| |    
              |     |        +---------→| |    
   TDI  □---*-**-----*---□-------------→| |----□ TDO
             | |        ByPass       +-→| |    
             | |       Register      |+→| |    
             | |                     ||  |/     
             | |  +----------------+ ||         
             | +->| Identification |-+|         
             |    |    Register    |  |         
             |    +----------------+  |         
             |                        |         
             |    +-----------------+ |         
             +--->|   Instruction   |-+         
                  |     Register    |           
                  +-----------------+           
                                              
                                              
                  +--------------+              
    TMS □--------> |      TAP     |              
    TCK □--------> |  Controller  |              
                  +--------------+              
                                              
        └─────────□──────────┘
                           TRST

무슨 그림인지 알아 보시겠어요?. 이것이 JTAG 완성된 블록도 입니다. 여기서처럼 표현한 것은 Boundary-Scan Cell 의미합니다. 아직까지는 Boundary-Scan Cell TAP 관계가 불분명해 보이죠. 비밀은 Boundary-Scan Cell이외에 각종 Register 해답이 있습니다.

하나씩 하나씩 비밀을 벗겨 볼까요?

이궁 벌써 저녁 10 이군요... 오늘은 이만 퇴근해야 할것 같네요... 조만간 바로 다음 편을 올리겠읍니다. 사실 JTAG 면목은 여기서 부터 입니다.

항상 이야기하는 데요. 글의 지적 소유권 관계는 GPL 따릅니다. 물론 상업적인 용도로는 사용할수 없죠.... 그럼..