• 正文
  • 相关推荐
申请入驻 产业图谱

DAP、JTAG和边界扫描

06/11 11:19
1360
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

DAP和JTAG

有多种不同的方式连接到Debug Access Port (DAP)上,它们在成本、侵入性和安全性等方面有所差别。通过DAP可以选择访问芯片中的Core,这个Core通常是第一个启动的或者是用于管理芯片启动、调试、初始化DVFS和DRAM配置的专用微处理器。由于调试通道提供了访问芯片的后门,因此需要做一些安全保护,对逆向工程和恶意程序隐藏起来,防止芯片知识产权和数据被盗窃。常见的做法是:

物理上把芯片上专用管脚直接连到电路板上没有使用的插口;

通过加密和安全启动机制;

DAP中使用最广泛和最古老的是JTAG(Joint Test Action Group)。JTAG是一个串行总线,用于测试芯片中的寄存器,原始目的是用于板级产品测试的边界扫描,有4个管脚:

表1 JTAG管脚

通常一个电路板上会有许多带DAP口的芯片,这些芯片会使用JTAG连接成一个菊花链,如图1所示。在菊花链中,可以有任何数量的芯片以及任何长度的寄存器。这些测试寄存器中会提供一个用于对链中下一个芯片访问的旁路寄存器。

在JTAG测试过程中,通过TMS管脚上的值可以寻址到菊花链中任何芯片中的任何一个测试寄存器的值。类似于移位寄存器的功能,测试寄存器的老值被移出,并移入新值。当然,对于RO寄存器来说,新值会被忽略。某些预定义的寄存器会用于保存生产商和设备编号,这样debugger软件可以动态调整板级上不同芯片的物理顺序和存在。

图1 板级上的JTAG菊花链

JTAG的访问速度通常限制在几Mbps,因此在其它要求更快的DAP口中会使用USB等其它高性能并行接口

DAP口还用于其它芯片级别测试和制造,比如:

将部分有缺陷的产品隐藏(降级)为低规格的产品或比其它冗余组件替代;

校准环形振荡器和DVFS;

安装MAC地址、PKI密钥或其它需要在不同的SoC中生成的数据;

BIOS和文件系统刷新;

访问内建自测试(BIST)机制;

边界扫描

芯片制造后,通常会对芯片进行边界和一般路径扫描,图2为边界扫描路径的一个片段。为了支持边界扫描,在输入和输出焊点(Pad)上新增了一些基本逻辑电路。串行数据在测试时钟(Test clock)的控制下,从一个Pad移位到另一个Pad。随着测试向量的移入,之前测试向量的结果就会被移出。两根Strobe信号用于将测试向量灌入到输入Pad和采样输出Pad上的数据。

图2 边界扫描路径

当扫描模式选择(Scan Mode Select)为低时,扫描逻辑不影响芯片正常工作。反之,也就是启动扫描模式,边界扫描逻辑会把输入Pad接管过来,使用移位和存储方式来进行测试。为了支持扫描,在每个Pad上新增的两个寄存器分别是链寄存器(Chain Register)数据寄存器(Data Register)

链寄存器用于扫描链的数据传输,来自DAP控制器移位所需的测量向量长度等于测试Pad的数目。Strobe信号可以用于捕获输出Pad的数据,并且将新数据灌入到输入Pad上。随着下一个测试向量数据的移入,捕获的数据将会逐位移出。数据寄存器主要是确保在扫描链移位过程中,保持已经使用的测试向量稳定。

边界扫描可以应用于芯片中IP块和硬宏单元,比如定制处理器核。不过随着片上总线的标准化,比如AXI标准总线,IP模块的边界扫描已经比较少使用了。现在用的BIST扫描类似于边界扫描,但它扫描路径是穿过所有IP内部的触发器,这就允许观察组件每个周期的数据,但会导致该组件在被扫描时无法全速运行,并且也会增加很多的连线负担。通常情况下,通用扫描路径逻辑是可以由逻辑综合工具在特殊模式下插入的。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录