jtag sequence - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

创建 JTAG 序列对象。

语法

jtag sequence 

创建 JTAG 序列对象。描述:jtag sequence 命令会创建一个新的序列对象。创建后,此序列为空。以下序列对象命令可供使用:

sequence state new-state [count]

将 JTAG 状态机移至 <new-state>,然后生成 <count> JTAG 时钟。如果已给定 <clock> 并且 <new-state> 未处于循环状态(RESET、IDLE、IRSHIFT、IRPAUSE、DRSHIFT 或 DRPAUSE),那么状态机将移至 RESET 状态。

sequence irshift [options] [bits [data]]

sequence drshift [options] bits [data]:对处于 IRSHIFT 或 DRSHIFT 状态的数据进行移位。数据将被赋予最后一个实参,或者如果给定 -tdi 选项,那么根据给予 -tdi 的实参,数据将全部为 0 或 1。如果已指定 -register 选项,那么,<bits><data> 实参不用于 irshift。可用选项:

  • -register <name>:按名称选择指令寄存器。仅限 irshift 才支持该选项。-tdi <value>:将用于处于 SHIFT 状态的所有时钟的 TDI 值。
  • -binary:<data> 采用二进制格式,例如,来自文件的数据或者来自二进制格式的数据。
  • -integer:<data> 采用整数格式。数据的最低有效位首先移位。
  • -bits:<data> 采用二进制文本字符串格式。字符串中的第一个位首先移位。
  • -hex:<data> 采用十六进制文本字符串格式。字符串中的第一个字节的最低有效位首先移位。
  • -capture:在移位期间和从序列运行命令返回期间捕获 TDO 数据。
  • -state <new-state> 移位完成后要进入的状态。默认为 RESET。
sequence delay usec

在序列命令之间生成延迟。延迟期间将不生成 JTAG 时钟。延迟保证至少达 <usec> 微秒,但对于不生成 JTAG 时钟的情况下就不支持延迟的电缆,则延迟可能更长。

sequence get_pin pin

获取 <pin> 的值。受支持的管脚因电缆而异。

sequence set_pin pin value

<pin> 的值设置为 <value>。受支持的管脚因电缆而异。

sequence atomic enable

置位或清空原子序列。这可用于创建保证按精确时序运行(否则即告失败)的序列。原子序列应尽可能短,以最大程度降低失败风险。

sequence run [options]

针对当前选定的 jtag 目标按顺序运行 JTAG 操作。此命令将返回使用 -capture 选项的移位命令的结果和 get_pin 命令的结果。

以下列出了可用选项:

  • binary:返回值采用二进制格式。移出的第一个位即返回的首个字节中的最低有效位。
  • -integer:返回值采用整数格式。移出的第一个位即整数的最低有效位。
  • -bits:返回值采用二进制文本字符串格式。移出的第一个位即字符串中的第一个字符。
  • -hex:返回值采用十六进制文本字符串格式。移出的第一个位即字符串的首个字节中的最低有效位。
  • -single:将所有返回值组合为单一数据。如果不使用该选项,那么返回值即为列表,列表中每个条目对应于含 -capture 的每次移位和每个 get_pin。
sequence clear

移除序列中的所有命令。

sequence delete

删除序列。

返回

JTAG 序列对象。

示例

set seqname [jtag sequence]
$seqname state RESET
$seqname drshift -capture -tdi 0 256
set result [$seqname run]
$seqname delete