参考:
https://www.youtube.com/watch?v=UuDf3q5aBjM
https://zh.m.wikipedia.org/zh-cn/JTAG
浅谈dft之boundary scan
JTAG: Joint Test Action Group是开发IEEE 1149.1的工作组,1149.1定义了一个测试开发版上芯片的标准。现在变成了芯片的一个最常见的接口,用途很多比如FPGA/CPLD image下载,芯片测试和访问。
板子上一般是菊花链的形式连接
- TDI(测试数据输入)
- TDO(测试数据输出)
- TCK(测试时钟)
- TMS(测试模式选择)
- TRST(测试复位)可选。
基本的想法是给每个chip加一个测试wrapper,这个wrapper遵守JTAG协议。这个Wrapper由以下三部分组成:
- 每个输入输出引脚都加一个边界扫描cell
- 有些额外的pin脚来连接这个wrapper
- wrapper里面有一些额外的寄存器
然后定义一些可以写到设备的指令。
这个TAP是指Test access port,TAP控制器是一个有16个状态的有限状态机。
SVF
为了更方便的利用JTAG1149.1去做测试,业界开发了SVF协议,serial vector format。它其实是一种描述jtag总线操作的一种语言。利用这种语言我们可以定义一种测试的流程,然后在整个芯片设计和量产的整个生命周期中去使用这个流程。从而方便验证芯片的功能,比如MBIST测试之类的。