JTAG 标准IEEE STD 1149.1-2013学习笔记(一·)Test logic architecture、Instruction register以及Test data registers

我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索和SOC设计。

关注公众号【集成电路设计教程】,拉你进“IC设计交流群”。

注:转载请注明出处

一、Test logic architecture

首先此测试逻辑架构必须包含的组件有

  • 一个 TAP 控制器
  • 一个指令寄存器 IR
  • 一组测试数据寄存器 DR

测试逻辑架构示意图如图1所示

在这里插入图片描述

<center>图1 片上测试逻辑概念图</center>

下面简单介绍下此示意图:
(1)TAP 控制器接收TCK,TMS和TRST(可选)信号,产生 IR、DR和其他组件所需的时钟和控制信号,控制所要执行的操作,如复位、移位、捕获和更新等。
(2)IR 指令解码选择所要进行操作的DR
(3)TMP控制器是可选组件,可接收指令解码信号,用于修改TAP控制器产生的一些控制信号。

所以此测试逻辑,就是通过JTAG接口根据指令去对DR进行读操作或者写操作,写数据从TDI输入,读数据从TDO输出。

二、Instruction register

参考JTAG标准第七章指令寄存器(Instruction register)

顾名思义,指令寄存器用来存储指令的,指令通过TDI输入到指令寄存器,再通过指令译码,产生对应控制信号, 用于选择要执行的测试操作或要访问的测试数据寄存器(DR)。

2.1 D型扫描触发器

在正式介绍IR结构之前,先介绍下带多路选择器的D型扫描触发器,此扫描触发器是扫描测试结构的基本单元。

在这里插入图片描述

<center>图1 D型触发器和带多路选择器的D型扫描触发器</center>

扫描触发器有两种工作模式,分别为:

  • 正常工作模式:scan_enable 为 0,此时数据从D端输入,从Q端输出。
  • 扫描移位模式:scan_enable 为 1,此时数据从scan_in 输入,从scan_out输出(Q与scan_out复用)

将这种扫描单元按照扫描移位模式连接起来,就构成了扫描测试中的基本结构,这里仅简单介绍全扫描。全扫描就是多个扫描单元相连接,上一单元的扫描输出,连接到目前单元的扫描输入,目前单元的扫描输出连接到下一单元的扫描输入,以此类推,构成一条移位寄存器链,如图2所示:

在这里插入图片描述

<center>图2 全扫描</center>

这样的扫描结构,可通过一个串行输入端,将期望的数据存入移位寄存器链并观察运行结果。

2.2 IR 电路结构

指令寄存器的电路结构与全扫描类似,同样是采用了移位寄存器链。其扫描单元如图3所示:

在这里插入图片描述

<center>图3 IR扫描单元</center>

<center>表1 IR扫描单元信号概述</center>

信号名 作用
ShiftIR 移位使能
PI Data 并行输入数据
From last cell 扫描输入(数据来自上一扫描单元的扫描输出端口)
ClockIR 扫描单元时钟信号,仅在Capture-IR和Shift-IR状态时有效
Update IR 指令位触发器时钟信号,仅在Update-IR状态时有效
Reset 复位信号,用于强制性指令解码(BYPASS或IDCODE)
To next cell 扫描输出(连接到下一扫描单元的扫描输入端口)
Instruction bit 指令位,指示是否为该指令位对应的指令

构成的移位寄存器链如图4所示:

在这里插入图片描述

<center>图4 带译码器的IR完整电路</center>

扫描路径已经用红色笔标注了,所以IR就是根据TAP输出的控制信号,来进行对应的移位,更新,捕获等操作,译码器对指令进行译码,并将对应的指令位置1并输出来控制测试逻辑架构其他组件。其中在 Test-Logic-Reset 状态时,Instruction1将被复位,表示强制性指令BYPASS或者IDCODE。

2.3 指令寄存器的操作

在不同的 TAP 控制器状态下,IR进行的操作不同,详情见图5:

在这里插入图片描述

<center>图5 每个 TAP 状态下IR的操作</center>

可以看到 IR 扫描单元存储值只在Shift-IR状态和Capture-IR状态发生改变,且指令只在 Test-Logic-Reset 和 Update-IR 状态更新并生效,其中前者是复位到强制性指令BYPASS或者IDCODE,后者则是更新为译码器结果。

三、Test data registers

参考JTAG标准第九章测试数据寄存器(Test data registers)、第10章旁路寄存器(Bypass register)、第11章边界扫描寄存器(boundary-scan register)。
此标准所定义的测试逻辑架构中,测试数据寄存器至少要包括两种寄存器,分别为旁路寄存器(Bypass Register)和边界扫描寄存器(boundary-scan register),当然也有其他可选寄存器,如设备ID寄存器、芯片ID寄存器、初始化数据寄存器等。

3.1 TDR的实现

TDR是由多个测试数据寄存器组成,每个数据寄存器又基于移位寄存器实现,从而可以通过串行输入将数据写入选中的数据寄存器中,一种实现方案如图1所示:

在这里插入图片描述

<center>图1 一组测试数据寄存器的实现</center>

实线绘制的寄存器为必须实现的数据寄存器,虚线绘制的寄存器为可选实现的。可以看到数据通过TDI端口串行输入到DR中,再通过MUX选择要输出的数据,经TDO端口输出。
下面简单介绍下所实现的一些DR。

3.2 Bypass Register

该寄存器只有一个移位寄存器,即只能存储1bit数据,存在的意义是当进行某项测试操作时,不需要访问其他的DR,那么TDI就选择从旁路寄存器通过,从而减少对感兴趣段的测试访问时间,也就是让数据能尽快从TDI达到感兴趣段。
实现的电路结构图如图2所示:

在这里插入图片描述

<center>图2 旁路寄存器</center>
<center>表1 DR输如输出信号概述</center>

信号名 作用
ShiftDR 移位使能
From TDI 串行扫描输入
ClockDR 移位时钟信号,仅在Capture-DR和Shift-DR状态时有效

标准中提供了一个例子:
现有一个包含 100 个芯片的电路板,每个芯片的边界扫描寄存器中有 100 位。 如果所有芯片同时串联连接,则电路板上的边界扫描路径将包括 10000 个移位寄存器。 现在需要仅访问测试路径上的一个芯片,这会导致测试时间过长。但若存在旁路寄存器的话,便可大大减少路径上经过的移位寄存器级数,具体方法是将 99 个芯片设置为仅通过其旁路寄存器进行移位,而被测芯片在路径中仍是通过边界扫描寄存器去测试。 这将使总串行路径级数减少为 199 级,与 10000 级相比大幅减少。

3.3 Boundary-scan register

在DR中,边界扫描寄存器(BSR)是最复杂了,标准中用来解释该寄存器的篇幅也比较长,这里简单介绍一下,后续等自己理解加深后再更新。

在这里插入图片描述

<center>图3 无BSR的组件</center>

该组件有输入输出管脚,输入输出缓冲器,输入信号分为时钟信号和非时钟信号,输出信号部分可通过一些控制信号控制其输出。
BSR的作用就是用来观察这样一个片上系统逻辑的输入输出引脚传输的数据,接下来介绍一下BSR单元

  • “observe-only”单元
在这里插入图片描述

<center>图4 “observe-only”单元</center>

为三端单元,两个输入端,一个输出端,其中一个输入端接Pin,用于将输入或者输出管脚的信号加载到移位寄存器中,另外两个端口用于与其他单元相连接,组成完整的扫描链。

  • “control-and-observe” 单元
在这里插入图片描述

<center>图5 “control-and-observe”单元</center>

为四端单元,两个输入端口,两个输出端口,其中一个输入端接Pin,用于将输入或者输出管脚的信号加载到移位寄存器中,一个输出端口用于将存储的数据加载到Pin上,另外两个端口用于与其他单元相连接,组成完整的扫描链。此单元构成的BSR就可以将期望的测试输入向量加载到芯片中。
其内部结构如图6所示:

在这里插入图片描述

<center>图6 “control-and-observe”单元内部结构</center>

这里多了一些输入端口,传输时钟信号和控制信号,方便通过指令对BSR进行一些操作。

参考文献
【1】IEEE Standard for Test Access Port and Boundary-Scan Architecture IEEE Std 1149.1™-2013
【2】SoC设计方法与实现 第三版 郭炜

  • 更多技术文章和学习资料,请关注我的公众号:【集成电路设计教程】
  • 全平台统一:【雪天鱼】
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容