边界扫描

SVF 文件与边界扫描编程基础

了解 SVF 如何记录 JTAG 扫描操作,以及它与边界扫描测试和器件编程的关系。

SVF(Serial Vector Format)是一种文本格式,用来描述 TAP 状态、指令扫描和数据扫描等 JTAG 操作。它让测试工具可以交换一系列扫描向量,但 SVF 文件本身并不是通用的固件镜像,也不自动包含目标板、器件链和所有执行环境信息。

SVF 大致记录什么

SVF 命令可以描述扫描前后的 TAP 状态、要移入的指令或数据、期望读回的值及比较掩码等信息。执行器按照目标接口把这些操作转换成 TCK、TMS、TDI 上的活动,并从 TDO 采集响应。文件能够表达的命令和执行细节受格式版本及工具实现支持范围影响。

因此,使用 SVF 前要确认:链上器件和顺序是否与向量生成时一致;指令长度与寄存器长度是否正确;目标复位和运行状态是否满足前提;执行器是否支持文件使用的命令。链路概念与识别信息见 JTAG 链路与 IDCODE 基础,接口信号可参考 TAP 信号说明。

测试与编程不是一回事

边界扫描测试通常用向量驱动或采样器件引脚附近的测试单元,以检查一部分数字互连。器件编程则可能通过专用指令和访问路径,将配置数据写入可编程器件或存储器。某些工具会把编程流程表示为 SVF 操作,但是否可行取决于器件架构、算法、工具支持和目标条件,不能据此推断任意 SVF 都能烧录任意器件。

执行前应确认向量来源、目标器件、链配置和预期操作,先在受控条件下验证读回或校验结果。不要把文件扩展名当成安全或正确性的保证,也不要未经确认就对未知目标执行会擦除或改写配置的向量。

与其他测试方法的关系

边界扫描常与 ICT、FCT 配合使用,各自解决的问题不同,见 Boundary Scan、ICT 与 FCT 的区别。如果执行过程没有响应,可从物理连接、TAP 状态和链路配置入手,参阅 JTAG 调试与故障定位;若目标是固件写入,另可阅读 JTAG 固件烧录基础。

延伸阅读

Jam STAPL/JAM 与 SVF 的用途比较见 JAM、STAPL 与 SVF 用途概览;若要区分这些操作文件与固件映像,可参阅 BIN、Intel HEX 与 Motorola S-record 入门。