VLSI Wiki
Contents:
  1. Boundary Scan (JTAG)
    1. 1. Definition: What is Boundary Scan (JTAG)?
    2. 2. Components and Operating Principles
      1. 2.1 (Optional) Subsections
    3. 3. Related Technologies and Comparison
    4. 4. References
    5. 5. One-line Summary

Boundary Scan (JTAG)

1. Definition: What is Boundary Scan (JTAG)?

Boundary Scan (JTAG)๋Š” ์ „์ž ํšŒ๋กœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ, IEEE 1149.1 ํ‘œ์ค€์— ์˜ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์ฃผ๋กœ VLSI ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. Boundary Scan์˜ ์ฃผ์š” ๋ชฉ์ ์€ PCB(Printed Circuit Board) ์ƒ์˜ ์ง‘์  ํšŒ๋กœ(IC)์™€ ๊ทธ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฒ€์‚ฌํ•˜๊ณ , ํ…Œ์ŠคํŠธ ํฌ์ธํŠธ๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋„ ์‹ ํ˜ธ๋ฅผ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Boundary Scan์€ ํ†ต์‹  ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ๋ณ„๋„์˜ ํ•€์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ธฐ์กด์˜ ํ•€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํšŒ๋กœ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ , ํ…Œ์ŠคํŠธ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, Boundary Scan์€ ํšŒ๋กœ์˜ ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ , ํšŒ๋กœ์˜ ๋™์ž‘์ด ์˜๋„ํ•œ ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ํŠนํžˆ ๊ณ ์† ๋””์ง€ํ„ธ ํšŒ๋กœ์—์„œ ์œ ์šฉํ•˜๋ฉฐ, ํšŒ๋กœ์˜ ํƒ€์ด๋ฐ ๋ฐ ๋™์ž‘์„ ๋ถ„์„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Boundary Scan์˜ ์ค‘์š”์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ์ƒ์‚ฐ ๊ณผ์ •์—์„œ์˜ ๊ฒฐํ•จ์„ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์–ด, ์ œํ’ˆ์˜ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ์˜ ๋””๋ฒ„๊น…์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜์—ฌ, ์„ค๊ณ„ ์ฃผ๊ธฐ๋ฅผ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์…‹์งธ, ์‹œ์Šคํ…œ ํ†ตํ•ฉ ๊ณผ์ •์—์„œ์˜ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ถ„์„ํ•˜๊ณ  ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Boundary Scan์€ ํ˜„๋Œ€ ์ „์ž ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฐ ํ…Œ์ŠคํŠธ์—์„œ ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2. Components and Operating Principles

Boundary Scan์˜ ๊ตฌ์กฐ๋Š” ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์›ํ™œํ•œ ์ž‘๋™์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. Boundary Scan Register (BSR): BSR์€ ๊ฐ IC์˜ ํ•€์— ์—ฐ๊ฒฐ๋œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๊ฐ ํ•€์˜ ์ƒํƒœ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ, ํšŒ๋กœ์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  2. Instruction Register (IR): IR์€ Boundary Scan์˜ ๋™์ž‘ ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ๋ชจ๋“œ(์˜ˆ: Test-Logic Reset, Run-Test/Idle, Update-DR ๋“ฑ)๋ฅผ ์„ค์ •ํ•˜์—ฌ, ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  3. Tap Controller: Tap Controller๋Š” JTAG ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•ต์‹ฌ ์š”์†Œ๋กœ, BSR๊ณผ IR ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ์ปจํŠธ๋กค๋Ÿฌ๋Š” JTAG ํ•€์„ ํ†ตํ•ด ๋“ค์–ด์˜ค๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ , ์ ์ ˆํ•œ ๋™์ž‘์„ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  4. Test Access Port (TAP): TAP์€ JTAG ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. TAP์€ TCK(Clock), TMS(Test Mode Select), TDI(Test Data In), TDO(Test Data Out)์™€ ๊ฐ™์€ ํ•€์„ ํฌํ•จํ•˜์—ฌ, Boundary Scan์˜ ๋™์ž‘์„ ์œ„ํ•œ ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

Boundary Scan์˜ ์ž‘๋™ ์›๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ์š”์•ฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, TAP Controller๊ฐ€ JTAG ์‹ ํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ, ์ ์ ˆํ•œ ๋ช…๋ น์–ด๋ฅผ IR์— ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ, IR์˜ ๋ช…๋ น์–ด์— ๋”ฐ๋ผ BSR์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์…‹์งธ, ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋Š” TDO ํ•€์„ ํ†ตํ•ด ์™ธ๋ถ€ ์žฅ์น˜๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์—ฌ๋Ÿฌ IC๋ฅผ ๋™์‹œ์— ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2.1 (Optional) Subsections

2.1.1 Boundary Scan Register (BSR)

BSR์€ ๊ฐ IC์˜ ํ•€์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ†ตํ•ด ์‹ ํ˜ธ์˜ ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. BSR์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œํ”„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œํ”„ํŠธ ์ธ๊ณผ ์•„์›ƒ์„ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฐ ํ•€์˜ ์ƒํƒœ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์–ด, ํšŒ๋กœ์˜ ๋™์ž‘์„ ์ƒ์„ธํžˆ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.1.2 Instruction Register (IR)

IR์€ Boundary Scan์˜ ๋‹ค์–‘ํ•œ ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ํšŒ๋กœ์˜ ํŠน์ • ๋™์ž‘์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IR์€ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•ด์„ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Boundary Scan (JTAG)์€ ์—ฌ๋Ÿฌ ๊ด€๋ จ ๊ธฐ์ˆ ๊ณผ ๋น„๊ต๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ธฐ์ˆ ์˜ ์žฅ๋‹จ์ ์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋น„๊ต ๋Œ€์ƒ ๊ธฐ์ˆ ๋กœ๋Š” In-Circuit Testing (ICT), Functional Testing, ๊ทธ๋ฆฌ๊ณ  Scan Chain Testing์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. In-Circuit Testing (ICT): ICT๋Š” PCB ์ƒ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•€์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ ๋ถ€ํ’ˆ์˜ ์ „๊ธฐ์  ํŠน์„ฑ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์€ ์ถ”๊ฐ€์ ์ธ ํ•˜๋“œ์›จ์–ด๋ฅผ ์š”๊ตฌํ•˜๋ฉฐ, ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, Boundary Scan์€ ์ถ”๊ฐ€ ํ•€ ์—†์ด ๊ธฐ์กด์˜ ํ•€์„ ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, ๋น„์šฉ๊ณผ ์‹œ๊ฐ„์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. Functional Testing: Functional Testing์€ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์‹œ์Šคํ…œ์ด ์„ค๊ณ„๋œ ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํŠน์ • ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Boundary Scan์€ ํŠน์ • ํ•€์˜ ์ƒํƒœ๋ฅผ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด, ์„ธ๋ฐ€ํ•œ ๊ฒฐํ•จ ๊ฒ€์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  3. Scan Chain Testing: Scan Chain Testing์€ ์—ฌ๋Ÿฌ ํ”Œ๋ฆฝํ”Œ๋กญ์„ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ์‹œํ”„ํŠธ๋ฅผ ํ†ตํ•ด ํšŒ๋กœ์˜ ๋™์ž‘์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์‹œ๊ฐ„ ์†Œ๋ชจ๊ฐ€ ํฌ๊ณ , ๋ณต์žกํ•œ ํšŒ๋กœ์—์„œ๋Š” ๊ตฌํ˜„์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Boundary Scan์€ ์ค‘์•™ ์ง‘์ค‘์‹์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, ๋ณต์žกํ•œ ํšŒ๋กœ์—์„œ๋„ ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋น„๊ต๋ฅผ ํ†ตํ•ด Boundary Scan (JTAG)์˜ ์žฅ์ ์€ ๋ช…ํ™•ํ•ด์ง€๋ฉฐ, ํŠนํžˆ ๊ณ ์† ๋””์ง€ํ„ธ ํšŒ๋กœ ๋ฐ VLSI ์‹œ์Šคํ…œ์—์„œ์˜ ํšจ์œจ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๊ฐ•์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋งŽ์€ ์‚ฐ์—…์—์„œ Boundary Scan ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

4. References

  • IEEE 1149.1 ํ‘œ์ค€ ๊ด€๋ จ ๋ฌธ์„œ
  • JTAG Technologies
  • Boundary Scan ๊ด€๋ จ ํ•™์ˆ ์ง€ ๋ฐ ์ปจํผ๋Ÿฐ์Šค ์ž๋ฃŒ
  • ์ „์ž ํšŒ๋กœ ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น… ๊ด€๋ จ ํ•™ํšŒ

5. One-line Summary

Boundary Scan (JTAG)์€ ์ „์ž ํšŒ๋กœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ํšจ์œจ์ ์ด๊ณ  ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ, VLSI ์‹œ์Šคํ…œ ์„ค๊ณ„์—์„œ ํ•„์ˆ˜์ ์ธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.