How to use phoronix test suite
phoronix test suite 是很全面的测试工具,支持Linux/Windows/Mac等主流OS。 The Phoronix Test Suite ships with access to more than 450 test profiles and over 100 test suites. These tests range from battery power consumption monitoring for mobile devices to multi-threaded ray-tracing benchmarks and span the CPU, graphics, system memory, disk storage, and motherboard components. If there is a test though not currently covered by the Phoronix Test Suite, new tests can be quickly added via its extensible architectur...
怎样简单使用winring0驱动
Winring0 驱动内部集成了读写MSR、读写物理地址、读写PCI配置空间、读写IO地址空间等常见的操作。目前签名版的不具备读写物理地址的能力,想要读写物理地址需要重新编译驱动,并将Windows设置成测试模式。本文介绍,如何使用VS2019编译Winring0驱动及如何使用, 测试代码 github : https://github.com/Tinycl/easy_winring0 (1)下载并安装VS2019 https://visualstudio.microsoft.com/zh-hans/vs/ (2)下载并安装相同版本的SDK和WDK, 比如SDK 10.0.18362 WDK 10.0.18362 https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk (3)编译驱动 (4)编写测试案例 (4.1)加载驱动 (4.2)使用驱动的API Good Luck!
How to use phoronix test suite
phoronix test suite 是很全面的测试工具,支持Linux/Windows/Mac等主流OS。 The Phoronix Test Suite ships with access to more than 450 test profiles and over 100 test suites. These tests range from battery power consumption monitoring for mobile devices to multi-threaded ray-tracing benchmarks and span the CPU, graphics, system memory, disk storage, and motherboard components. If there is a test though not currently covered by the Phoronix Test Suite, new tests can be quickly added via its extensible architectur...
怎样简单使用winring0驱动
Winring0 驱动内部集成了读写MSR、读写物理地址、读写PCI配置空间、读写IO地址空间等常见的操作。目前签名版的不具备读写物理地址的能力,想要读写物理地址需要重新编译驱动,并将Windows设置成测试模式。本文介绍,如何使用VS2019编译Winring0驱动及如何使用, 测试代码 github : https://github.com/Tinycl/easy_winring0 (1)下载并安装VS2019 https://visualstudio.microsoft.com/zh-hans/vs/ (2)下载并安装相同版本的SDK和WDK, 比如SDK 10.0.18362 WDK 10.0.18362 https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk (3)编译驱动 (4)编写测试案例 (4.1)加载驱动 (4.2)使用驱动的API Good Luck!

Subscribe to Tinychenlin

Subscribe to Tinychenlin
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
JTAG接口的基本工作原理是:在芯片内部定义一个TAP(Test Access Port,测试访问端口),开发人员使用连接到芯片的JTAG外部接口上的JTAG调试器,通过访问芯片内部的TAP端口来扫描芯片内部各个扫描单元以写 入或读取扫描寄存器的状态,从而对芯片进行测试和调试。一个扫描单元对应一个外部管脚,每个外部管脚有一个扫描寄存器BSR单元,所有这些管脚的扫描寄存 器连在一起就形成了扫描链。简单地说,PC通过JTAG调试器对目标板的调试就是通过TAP端口完成对扫描寄存器BSR和指令寄存器IR的读写访问。要了 解关于JTAG 更全面的知识,请参阅 IEEE1149.1标准。
JTAG
是Joint Test Action Group(联合测试行动组)的缩写,是一种国际标准测试协议,它遵守IEEE 1149.1标准。一个含有JTAG接口的处理器,只要时钟正常,就可以通过JTAG接口访问处理器的内部寄存器、挂在处理器总线上的设备以及内置模块的 寄存器。
TAP
是Test Access Port(测试访问端口)的缩写,是芯片内部一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR),对整个TAP的控制是通过TAP控制器(TAP Controller)完成的。
边界扫描
英文叫Boundary Scan,边界扫描的基本思想是在靠近芯片的输入输出管脚(PIN)上设置一个移位寄存器单元,也就是边界扫描寄存器(Boundary-Scan Register)。当芯片处于调试状态时,边界扫描寄存器可以将芯片和外部输入输出管脚隔离开来,通过边界扫描寄存器单元,可以实现对芯片外部输入输出 管脚的观察和控制。对于芯片的输出管脚可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去,对于芯片的输入管脚,也可以通过与之相连的 边界扫描寄存器"捕获"该管脚上的输出信号。在正常的运行状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响,这样,边界扫描寄 存器提供了一种便捷的途径用于观测和控制所需调试的芯片。另外,芯片管脚上的边界扫描(移位)寄存器单元可以相互连接起来,使芯片的周围形成一个边界扫描 链(Boundary-Scan Chain),边界扫描链可以串行地输入和输出,通过相应的时钟信号和控制信号,就可以方便地观察和控制处在调试状态下的芯片。
JTAG接口信号
标准的JTAG接口定义了以下一些信号管脚:
TMS:测试模式选择信号,输入,IEEE 1149.1标准强制要求。
TCK:测试时钟信号,输入,IEEE 1149.1标准强制要求。
TDI:测试数据输入信号,输入,IEEE 1149.1标准强制要求。
TDO:测试数据输出信号,输出,IEEE 1149.1标准强制要求。
TRST:内部TAP控制器复位信号,输入,IEEE 1149.1标准不强制要求,因为通过TMS也可以对TAP Controller进行复位。
STCK:时钟返回信号,IEEE 1149.1标准不强制要求。
DBGRQ:目标板上工作状态的控制信号,IEEE 1149.1标准不强制要求
TAP控制器有16个同步状态,控制器的下一个状态TMS信号决定,TMS信号在TCK的上升沿被采样生效。
列出了TAP控制器的16个同步状态转换机制。

Test_Logic_Reset测试逻辑复位状态
处于这种状态下,测试逻辑被禁止以允许芯片正常操作,读IDCODE寄存器将禁止测试逻辑。
无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP就将进入Test_Logic_Reset状 态,如果TMS信号一直为高电平,那么TAP将保持在Test_Logic_Reset状态,另外TRST信号也可以强迫TAP进入Test_Logic_Reset状态。
处于Test_Logic_Reset状态的TAP,如果下一个TCK的上升沿时TMS信号处于低电平,那么TAP将被切换到Run_Test_Idle状态。
Run_Test_Idle运行测试空闲状态
Run_Test_Idle是TAP控制器扫描操作空闲状态,如果TMS信号一直处于低电平,那么TAP将保持在TRun_Test_Idle状态。当TMS信号在TCK上升沿处于高电平,TAP控制器将进入Select_DR_Scan状态。
Select_DR_Scan选择数据寄存器扫描状态
Select_DR_Scan是TAP控制器的一个临时状态,边界扫描寄存器BSR保持它们先前的状态。
当TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture_DR状态,一个边界扫描寄存器的扫描操作同时被初始化。
如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Select_IR_Scan状态。
Capture_DR捕获数据寄存器状态
如果TAP控制器处于Capture_DR状态,且当前指令是SAMPLE/PRELOAD指令,那么边界扫描寄存器BSR在TCK信号的上升沿捕 获输入管脚的数据。如果此时不是SAMPLE/PRELOAD指令,那么BSR保持它们先前的值,另外BSR的值被放入连接在TDI和TDO管脚之间的移位寄存器中。
处于Capture_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1_DR状态。如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift_DR状态。
Shift_DR移位数据寄存器状态
在Shift_DR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,TDI的数据移入移位寄存器,移位寄存器最靠近TDO的位移到TDO管脚上。
处于Shift_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1_DR状态。如果TMS信号处于低电平,则TAP一直进行移位操作。
Exit1_DR退出数据寄存器状态1
Exit1_DR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_DR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause_DR状态。
处于Exit1_DR状态时,指令不会被改变。
Pause_DR暂停数据寄存器状态
Pause_DR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。
处于Pause_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2_DR状态;如果TMS信号处于低电平,则TAP一直保持暂停状态。
Exit2_DR退出数据寄存器状态2
Exit2_DR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift_DR状态。
处于Exit2_D状态时,指令不会被改变。
Update_DR更新数据寄存器状态
在正常情况下,边界扫描寄存器BSR的值是被锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变 BSR的值。当处于Update_DR状态时选择的是BSR寄存器,那么移位寄存器中的值将在TCK的下降沿被锁存到BSR寄存器的并行输出管脚中去。
处于Update_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select_DR_Scan状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Run_Test_Idle状态。
Select_IR_Scan选择指令寄存器扫描状态
Select_IR_Scan是TAP控制器的一个临时状态。
如果TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture_IR状态,一个对指令寄存器的扫描操作同时被初始化。
如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Test_Logic_Reset状态。
处于Select_IR_Scan状态时,指令不会被改变。
Capture-IR捕获指令寄存器状态
处于Capture-IR状态时,指令寄存器中的值被固定设置成0b0000001,并将它放入连接在TDI与TDO之间的移位寄存器中。
处于Capture-DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift-IR状态。
Shift_IR移位指令寄存器状态
在Shift_IR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,JTAG指令从TDI管脚上被逐位移入移位寄存器,而移位寄存器中的0b0000001则被逐位从TDO管脚移出。
处于Shift_IR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1_IR状态;如果TMS信号处于低电平,则TAP一直进行移位操作。
Exit1_IR退出指令寄存器状态1
Exit1_IR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause_IR状态。
处于Exit1_IR状态时,指令不会被改变。
Pause_IR暂停指令寄存器状态
Pause_IR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。
处于Pause_IR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2_IR状态;如果TMS信号处于低电平,则TAP一直处于暂停状态。
Exit2_IR退出指令寄存器状态2
Exit2_IR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift-IR状态。
处于Exit2-D状态时,指令不会被改变。
Update_IR更新指令寄存器状态
处于Update_IR状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将成为当前的指令。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select_DR_Scan状态;如果TMS信号在下一个TCK上升沿处于电平,则TAP进入Run_Test_Idle状态。
JTAG接口指令集包含以下常用指令:
EXTEST指令
外部测试指令,必须全为0,TAP强制定义。该指令初始化外部电路测试,主要用于板级互连以及片外电路测试。
EXTEST指令在Shift-DR状态时将扫描寄存器BSR寄存器连接到TDI与TDO之间。在Capture-DR状态时,EXTEST指令将 输入管脚的状态在TCK的上升沿装入BSR中。EXTEST指令从不使用移入BSR中的输入锁存器中的数据,而是直接从管脚上捕获数据。在Update- DR状态时,EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。
SAMPLE/PRELOAD指令
采样/预装载指令,TAP强制定义。在Capture-DR状态下,SAMPLE/PRELOAD指令提供一个从管脚到片上系统逻辑的数据流快照, 快照在TCK的上升沿提取。在Update-DR状态时,SAMPLE/PRELOAD指令将BSR寄存器单元中的数据锁存到并行输出寄存器单元中,然后 由EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。
BYPASS指令
旁路指令,必须全为1,TAP强制定义。BYPASS指令通过在TDI和TDO之间放置一个1位的旁通寄存器,这样移位操作时只经过1位的旁通寄存 器而不是很多位(与管脚数量相当)的边界扫描寄存器BSR,从而使得对连接在同一JTAG链上主CPU之外的其他芯片进行测试时提高效率。
IDCODE指令
读取CPU ID号指令,TAP强制定义。该指令将处理器的ID号寄存器连接到TDI和TDO之间。
JTAG接口的基本工作原理是:在芯片内部定义一个TAP(Test Access Port,测试访问端口),开发人员使用连接到芯片的JTAG外部接口上的JTAG调试器,通过访问芯片内部的TAP端口来扫描芯片内部各个扫描单元以写 入或读取扫描寄存器的状态,从而对芯片进行测试和调试。一个扫描单元对应一个外部管脚,每个外部管脚有一个扫描寄存器BSR单元,所有这些管脚的扫描寄存 器连在一起就形成了扫描链。简单地说,PC通过JTAG调试器对目标板的调试就是通过TAP端口完成对扫描寄存器BSR和指令寄存器IR的读写访问。要了 解关于JTAG 更全面的知识,请参阅 IEEE1149.1标准。
JTAG
是Joint Test Action Group(联合测试行动组)的缩写,是一种国际标准测试协议,它遵守IEEE 1149.1标准。一个含有JTAG接口的处理器,只要时钟正常,就可以通过JTAG接口访问处理器的内部寄存器、挂在处理器总线上的设备以及内置模块的 寄存器。
TAP
是Test Access Port(测试访问端口)的缩写,是芯片内部一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR),对整个TAP的控制是通过TAP控制器(TAP Controller)完成的。
边界扫描
英文叫Boundary Scan,边界扫描的基本思想是在靠近芯片的输入输出管脚(PIN)上设置一个移位寄存器单元,也就是边界扫描寄存器(Boundary-Scan Register)。当芯片处于调试状态时,边界扫描寄存器可以将芯片和外部输入输出管脚隔离开来,通过边界扫描寄存器单元,可以实现对芯片外部输入输出 管脚的观察和控制。对于芯片的输出管脚可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去,对于芯片的输入管脚,也可以通过与之相连的 边界扫描寄存器"捕获"该管脚上的输出信号。在正常的运行状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响,这样,边界扫描寄 存器提供了一种便捷的途径用于观测和控制所需调试的芯片。另外,芯片管脚上的边界扫描(移位)寄存器单元可以相互连接起来,使芯片的周围形成一个边界扫描 链(Boundary-Scan Chain),边界扫描链可以串行地输入和输出,通过相应的时钟信号和控制信号,就可以方便地观察和控制处在调试状态下的芯片。
JTAG接口信号
标准的JTAG接口定义了以下一些信号管脚:
TMS:测试模式选择信号,输入,IEEE 1149.1标准强制要求。
TCK:测试时钟信号,输入,IEEE 1149.1标准强制要求。
TDI:测试数据输入信号,输入,IEEE 1149.1标准强制要求。
TDO:测试数据输出信号,输出,IEEE 1149.1标准强制要求。
TRST:内部TAP控制器复位信号,输入,IEEE 1149.1标准不强制要求,因为通过TMS也可以对TAP Controller进行复位。
STCK:时钟返回信号,IEEE 1149.1标准不强制要求。
DBGRQ:目标板上工作状态的控制信号,IEEE 1149.1标准不强制要求
TAP控制器有16个同步状态,控制器的下一个状态TMS信号决定,TMS信号在TCK的上升沿被采样生效。
列出了TAP控制器的16个同步状态转换机制。

Test_Logic_Reset测试逻辑复位状态
处于这种状态下,测试逻辑被禁止以允许芯片正常操作,读IDCODE寄存器将禁止测试逻辑。
无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP就将进入Test_Logic_Reset状 态,如果TMS信号一直为高电平,那么TAP将保持在Test_Logic_Reset状态,另外TRST信号也可以强迫TAP进入Test_Logic_Reset状态。
处于Test_Logic_Reset状态的TAP,如果下一个TCK的上升沿时TMS信号处于低电平,那么TAP将被切换到Run_Test_Idle状态。
Run_Test_Idle运行测试空闲状态
Run_Test_Idle是TAP控制器扫描操作空闲状态,如果TMS信号一直处于低电平,那么TAP将保持在TRun_Test_Idle状态。当TMS信号在TCK上升沿处于高电平,TAP控制器将进入Select_DR_Scan状态。
Select_DR_Scan选择数据寄存器扫描状态
Select_DR_Scan是TAP控制器的一个临时状态,边界扫描寄存器BSR保持它们先前的状态。
当TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture_DR状态,一个边界扫描寄存器的扫描操作同时被初始化。
如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Select_IR_Scan状态。
Capture_DR捕获数据寄存器状态
如果TAP控制器处于Capture_DR状态,且当前指令是SAMPLE/PRELOAD指令,那么边界扫描寄存器BSR在TCK信号的上升沿捕 获输入管脚的数据。如果此时不是SAMPLE/PRELOAD指令,那么BSR保持它们先前的值,另外BSR的值被放入连接在TDI和TDO管脚之间的移位寄存器中。
处于Capture_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1_DR状态。如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift_DR状态。
Shift_DR移位数据寄存器状态
在Shift_DR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,TDI的数据移入移位寄存器,移位寄存器最靠近TDO的位移到TDO管脚上。
处于Shift_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1_DR状态。如果TMS信号处于低电平,则TAP一直进行移位操作。
Exit1_DR退出数据寄存器状态1
Exit1_DR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_DR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause_DR状态。
处于Exit1_DR状态时,指令不会被改变。
Pause_DR暂停数据寄存器状态
Pause_DR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。
处于Pause_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2_DR状态;如果TMS信号处于低电平,则TAP一直保持暂停状态。
Exit2_DR退出数据寄存器状态2
Exit2_DR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift_DR状态。
处于Exit2_D状态时,指令不会被改变。
Update_DR更新数据寄存器状态
在正常情况下,边界扫描寄存器BSR的值是被锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变 BSR的值。当处于Update_DR状态时选择的是BSR寄存器,那么移位寄存器中的值将在TCK的下降沿被锁存到BSR寄存器的并行输出管脚中去。
处于Update_DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select_DR_Scan状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Run_Test_Idle状态。
Select_IR_Scan选择指令寄存器扫描状态
Select_IR_Scan是TAP控制器的一个临时状态。
如果TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture_IR状态,一个对指令寄存器的扫描操作同时被初始化。
如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Test_Logic_Reset状态。
处于Select_IR_Scan状态时,指令不会被改变。
Capture-IR捕获指令寄存器状态
处于Capture-IR状态时,指令寄存器中的值被固定设置成0b0000001,并将它放入连接在TDI与TDO之间的移位寄存器中。
处于Capture-DR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift-IR状态。
Shift_IR移位指令寄存器状态
在Shift_IR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,JTAG指令从TDI管脚上被逐位移入移位寄存器,而移位寄存器中的0b0000001则被逐位从TDO管脚移出。
处于Shift_IR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1_IR状态;如果TMS信号处于低电平,则TAP一直进行移位操作。
Exit1_IR退出指令寄存器状态1
Exit1_IR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause_IR状态。
处于Exit1_IR状态时,指令不会被改变。
Pause_IR暂停指令寄存器状态
Pause_IR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。
处于Pause_IR状态时,指令不会被改变。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2_IR状态;如果TMS信号处于低电平,则TAP一直处于暂停状态。
Exit2_IR退出指令寄存器状态2
Exit2_IR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update_IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift-IR状态。
处于Exit2-D状态时,指令不会被改变。
Update_IR更新指令寄存器状态
处于Update_IR状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将成为当前的指令。
如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select_DR_Scan状态;如果TMS信号在下一个TCK上升沿处于电平,则TAP进入Run_Test_Idle状态。
JTAG接口指令集包含以下常用指令:
EXTEST指令
外部测试指令,必须全为0,TAP强制定义。该指令初始化外部电路测试,主要用于板级互连以及片外电路测试。
EXTEST指令在Shift-DR状态时将扫描寄存器BSR寄存器连接到TDI与TDO之间。在Capture-DR状态时,EXTEST指令将 输入管脚的状态在TCK的上升沿装入BSR中。EXTEST指令从不使用移入BSR中的输入锁存器中的数据,而是直接从管脚上捕获数据。在Update- DR状态时,EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。
SAMPLE/PRELOAD指令
采样/预装载指令,TAP强制定义。在Capture-DR状态下,SAMPLE/PRELOAD指令提供一个从管脚到片上系统逻辑的数据流快照, 快照在TCK的上升沿提取。在Update-DR状态时,SAMPLE/PRELOAD指令将BSR寄存器单元中的数据锁存到并行输出寄存器单元中,然后 由EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。
BYPASS指令
旁路指令,必须全为1,TAP强制定义。BYPASS指令通过在TDI和TDO之间放置一个1位的旁通寄存器,这样移位操作时只经过1位的旁通寄存 器而不是很多位(与管脚数量相当)的边界扫描寄存器BSR,从而使得对连接在同一JTAG链上主CPU之外的其他芯片进行测试时提高效率。
IDCODE指令
读取CPU ID号指令,TAP强制定义。该指令将处理器的ID号寄存器连接到TDI和TDO之间。
No activity yet