多链 SVF 操作
以下示例显示了如何在 SVF 链上处理操作。
每个链中连接有 2 个器件:xcku11 和 xcku9。配置存储器连接到链中的第 2 个器件 (xcku9)。为访问此配置存储器,
SVF 会使用 HIR、HDR、TIR 和 TDR 命令来生成命令。为刷写此配置存储器所生成的命令会考量链长度,并将此信息
整合到低级别 JTAG 操作中。

生成的 .svf 文件包含以下操作:
HIR 0 ;
TIR 6 TDI (3f) SMASK (3f) ;
HDR 0 ;
TDR 1 TDI (00) SMASK (01) ;
// config/idcode
SIR 6 TDI (09) ;
SDR 32 TDI (00000000) TDO (0484a093) MASK (0fffffff) ;
// config/jprog
STATE RESET;
STATE IDLE;
SIR 6 TDI (0b) ;
SIR 6 TDI (14) ;
// Modify the below delay for config_init operation (0.100000 sec typical,
0.100000
sec maximum)
RUNTEST 0.100000 SEC;
// config/jprog/poll
RUNTEST 10000 TCK;
SIR 6 TDI (14) TDO (11) MASK (31) ;
// config/slr
SIR 6 TDI (05) ;
配置存储器连接至链中第 1 个器件的多链 SVF 操作
在此示例中,为接入 ku9 器件,对 TIR 和 TDR 指令所用的 SMASK 值为 0000 0011 1111 (0x3f)。为接入链中的第 2
个器件,首先推送掩码值,然后推送 SIR 和 SDR 指令。SIR 和 SDR 指令会将 HIR、HDR、TIR 和 TDR 信息相组合。
如果连接到第 1 个器件 (xcku11) 的配置存储器需编程,那么 SVF 生成的命令会如下发生改变:

HIR 6 TDI (3f) SMASK (3f) ;
TIR 0 ;
HDR 1 TDI (00) SMASK (01) ;
TDR 0 ;
// config/idcode
SIR 6 TDI (09) ;
SDR 32 TDI (00000000) TDO (04a4e093) MASK (0fffffff) ;
// config/jprog
STATE RESET;
STATE IDLE;
SIR 6 TDI (0b) ;
SIR 6 TDI (14) ;
// Modify the below delay for config_init operation (0.100000 sec typical,
0.100000
sec maximum)
RUNTEST 0.100000 SEC;
// config/jprog/poll
RUNTEST 10000 TCK;
SIR 6 TDI (14) TDO (11) MASK (31) ;
// config/slr
SIR 6 TDI (05) ;
配置存储器连接至链中第 2 个器件的多链 SVF 操作
在此示例中,为接入 ku11 器件,对 HIR 和 HDR 指令所用的 SMASK 值为 0011 1111 (0x3f)。为接入链中的首个器
件,首先推送掩码值,然后推送 SIR 和 SDR 指令。SIR 和 SDR 指令会将 HIR、HDR、TIR 和 TDR 信息相组合。
现在,假设链中已连接 4 个器件:xcku11、xcku9、xcku11 和 xcku9。配置存储器连接至此链中的第 2 个器件
(xcku9),并且我们要接入该器件,在此情况下同时使用如下 HIR 和 TIR 指令:

HIR 12 TDI (0fff) SMASK (0fff) ;
TIR 6 TDI (3f) SMASK (3f) ;
HDR 2 TDI (00) SMASK (03) ;
TDR 1 TDI (00) SMASK (01) ;
// config/idcode
SIR 6 TDI (09) ;
SDR 32 TDI (00000000) TDO (0484a093) MASK (0fffffff) ;
// config/jprog
STATE RESET;
STATE IDLE;
SIR 6 TDI (0b) ;
SIR 6 TDI (14) ;
// Modify the below delay for config_init operation (0.100000 sec typical,
0.100000
sec maximum)
RUNTEST 0.100000 SEC;
// config/jprog/poll
RUNTEST 10000 TCK;
SIR 6 TDI (14) TDO (11) MASK (31) ;
// config/slr
SIR 6 TDI (05) ;
配置存储器连接至链中第 3 个器件的多链 SVF 操作
如果配置存储器连接到链中的第 3 个器件 (xcku9),则执行以下操作。

HIR 6 TDI (3f) SMASK (3f) ;
TIR 12 TDI (0fff) SMASK (0fff) ;
HDR 1 TDI (00) SMASK (01) ;
TDR 2 TDI (00) SMASK (03) ;
// config/idcode
SIR 6 TDI (09) ;
SDR 32 TDI (00000000) TDO (04a4e093) MASK (0fffffff) ;
// config/jprog
STATE RESET;
STATE IDLE;
SIR 6 TDI (0b) ;
SIR 6 TDI (14) ;
// Modify the below delay for config_init operation (0.100000 sec typical,
0.100000
sec maximum)
RUNTEST 0.100000 SEC;
// config/jprog/poll
RUNTEST 10000 TCK;
SIR 6 TDI (14) TDO (11) MASK (31) ;
// config/slr
SIR 6 TDI (05) ;