关于区块链:JTAG-标准IEEE-STD-11491学习笔记一Test-logic-architectureIR以及DR

3次阅读

共计 3408 个字符,预计需要花费 9 分钟才能阅读完成。

我是 雪天鱼 ,一名 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 设计办法与实现 第三版 郭炜

  • 更多技术文章和学习材料,请关注我的公众号:【集成电路设计教程】
  • 全平台对立:【雪天鱼】
正文完
 0