31
JTAG基本原理简介

JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

  • Upload
    others

  • View
    38

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG基本原理简介

Page 2: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

目录

JTAG概述

JTAG组成结构

JTAG扫描链工作原理

结语

参考文献

Page 3: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG概述

JTAG是什么?

JTAG是Joint Test Action Group(联合测试行动组)的缩写,联合测试行动组是IEEE的一个下属组织

该组织研究标准测试访问接口和边界扫描结构(Standard Test Access Port and Boundary-Scan Architecture)

Page 4: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG概述

JTAG的前身是JETAG(Joint European Test Action Group欧洲联合测试行动小组) 。

1986年,一些欧洲以外公司加入,JETAG成员已不仅局限在欧洲,故该组织由JETAG更改为JTAG。

1990年,IEEE正式承认JTAG标准,命名为IEEE1149.1-1990。

现在,人们通常用JTAG来表示IEEE1149.1-1990规范,或者满足IEEE1149规范的接口或者测试方法。

Page 5: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

目录

JTAG概述

JTAG组成结构

JTAG扫描链工作原理

结语

参考文献

Page 6: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构

图一 边界扫描示意

Page 7: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构

TAP(Test Access Port)

TAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。

当芯片内部存在多条BSC时,需要有相应的机制来控制访问。

对整个TAP的控制是通过TAP Controller来完成的。

Page 8: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构

JTAG信号TMS:测试模式选择(Test Mode Select)

通过TMS信号控制JTAG状态机的状态。

TCK:JTAG的时钟信号

TDI:数据输入信号

TDO:数据输出信号

nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)。

Page 9: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构

Page 10: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构

TAP状态机

TAP状态机共有16种状态。

图中每个椭圆形代表一种状态。标有状态名称及标识代码。

箭头代表各状态所有可能的转换流程。

状态前的转换是在TCK的驱动下,由TMS控制。

Page 11: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构15= T est L o g ic

R eset

12= R u n -T est o rId le

7= S e lec t-D RS can

6= C ap tu re -D R

2= S h ift-D R

1= E x it1 -D R

3= P au se-D R

0= E x it2 -D R

5= U p da te -D R

4= S e lec t-IRS can

14= C ap tu re-IR

10= S h ift-IR

9= E x it1 -IR

11= P au se-IR

8= E x it2 -IR

13= U p d ate-IR

tms=1 tms=0

tms=0

tms=1

tms=0

tms=1 tms=1

tms=0 tms=0

tms=0

tms=1

tms=1

tms=0

tms=1

tms=1 tms=0

tms=1

tms=0

tms=1

tms=0

tms=0

tms=1

tms=0tms=1

tms=0

tms=1tms=0

tms=1

tms=0

tms=1tms=0

tms=1

Page 12: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

指令寄存器访问流程

系统上电,TAP Controller进入Test-Logic Reset状态。

Run-Test/Idle->Select-DR-Scan->Select-IR-Scan->Capture-IR->Shift-IR->Exit1-IR ->Update-IR,最后回到Run-Test/Idle状态。

在Capture-IR状态,特定的逻辑序列被加载到指令寄存器中;然后进入到Shift-IR状态。

Page 13: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

数据寄存器访问流程

当前可以访问的数据寄存器由指令寄存器中的当前指令决定。

以Run-Test/Idle为起点,依次进入Select-DR-Scan->Capture-DR->Shift-DR->Exit1-DR->Update-DR,最后回到Run-Test/Idle状态。

Page 14: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构

TAP控制器内部有多个寄存器

JTAG控制指令寄存器

测试数据寄存器

旁路寄存器(BYPASS)

器件识别码(IDCODE)寄存器

扫描路径选择寄存器

Page 15: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构扫描链3

JTAG状态机

TDI

TCK

TMS

TDO

指令寄存器 4bit

ID寄存器 32bit

扫描路径选择寄存器 4bit

旁路寄存器 1bit

选择器

扫描链3

选择器

选择器

扫描链控制信号

Page 16: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

目录

JTAG概述

JTAG组成结构

JTAG扫描链工作原理

结语

参考文献

Page 17: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG组成结构 JTAG标准定义了一个串行的移位寄存器

每一个被测试逻辑电路引出信号线同它的引脚之间配置一个扫描单元

每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器

所有的BSR通过JTAG测试激活

Page 18: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

From logic or pin

From last cell

Shift/load

To next cell

To logic or pin

11

G1

Clock Update Mode

1D

C1

1D

C1

11

G1

纵向

横向横向

横向

纵向

每一个扫描单元的内部由两个D触发器和两个多路选择器组成

Page 19: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

I1

I2

I3

O1

O2

O3

1 1

1 X 1

1 X 1

0 X 0

0 X 0

0 X 0

DUT(测试器件)

X

TDI

1 0 1 0 1 0

TDO

X X X X X X

横向直行 横向直行

如同扫描链不存在

在正常状态下即挂起,BSR对芯片是透明的,不影响芯片的正常运行。

Page 20: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

当芯片处于调试状态时,BSR将芯片与外围隔离。通过BSR可实现对芯片管脚的观察与控制。

对于输入管脚,可通过对BSR的操作,将信号(数据)加载至管脚。

对于输出管脚,可通过BSR将管脚上的输出信号“捕获”(Capture)。

Page 21: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

I1

I2

I3

TCK

O1

O2

O3

TDI

0 X 0

0 X 0

0 X 0

0 X 0

0 X 0

0 X 0

待测装置

I

I

I

O

O

O

移位寄存器

输出数据输入数据

扫描前的输入数据 扫描后的输出数据1 0 1 0 1 0

TDO

X X X X X X

Pin

Pin

Pin

Pin

Pin

Pin

横向

纵向

Page 22: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

BSR可以相互连接起来,在芯片周围形成一个边界扫描链。(Boundary-Scan Chain)

一般芯片会提供多条独立的BSC,用于实现完整的测试功能。

BSC可以串行的输入输出,再配合时钟及控制信号,可观察与控制调试状态下的芯片。

JTAG扫描链一共有四种操作:挂起、捕获、移位和更新。

Page 23: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

JTAG扫描链工作原理

TAP访问DR例解

假设TAP Controller处在Run-Test/Idle状态,IR中写入了一条新指令,该指令选定了长度为6的边界扫描链。

当前选择的边界扫描链由6个边界扫描移位寄存器单元组成,并且被连接在TDI和TDO之间。

Page 24: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

捕获JTAG状态

当前引脚信号存入扫描链

Page 25: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

移位数据

I1

I2

I3

O1

O2

O3

1 1

1 1 1

1 1 1

0 1 0

0 0 0

0 0 0

DUT1

TDI

0 1 0 1 0 X

TDO

X X X X X 0

Page 26: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

移位结束

I1

I2

I3

O1

O2

O3

1 1

1 1 1

1 0 1

0 1 0

0 0 0

0 1 0

DUT0

TDI

X

TDO

0 0 0 1 1 1XXXXX

Page 27: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

数据更新

JTAG扫描链取代系

统向处理器输入信号,并且替代处理器向系

统输出信号。

Page 28: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

目录

JTAG概述

JTAG组成结构

JTAG扫描链工作原理

结语

参考文献

Page 29: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

结语

JTAG技术在SOC中的重要应用包括嵌入式仿真器和调试模块的设计。这种设计可以提高内部信号的可控性和可观性,缩短产品开发周期,提高查错效率。

当然, JTAG也有其局限性,其串行传输固然减少了资源,但同时也导致了速度的降低。所以, JTAG加速结构和新的硬件实现方式也不断涌现。

Page 30: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

参考文献

[1] 周立功. ARM 嵌入式系统实验教程(2)[M] . 北京:北京航空航天大学出版社,2005.

[2] JTAG调试原理[ EB/ OL ] . http://www.embedworld. com/project/ openjtag.

[3] 胡学良, 张春, 王志华. JTAG技术的发展和应用综述. 北京:清华大学电子工程系线路与系统教研室.

[4] 刘文超,潘永才.基于JTAG的ARM7TDMI处理器调试原理及实现. 湖北 武汉: 湖北大学.

Page 31: JTAG基本原理简介 - Elecfansfile.elecfans.com/web1/M00/55/FF/pIYBAFs2KiqAJBckAAP1...每一个独立的单元称为BSR(Boundary-Scan Register)边界扫描寄存器 所有的BSR通过JTAG测试激活

谢谢