本文主要是介绍JTAG 标准IEEE STD 1149.1-2013学习笔记(四)Test logic controllers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、TAP控制器的状态转移图
- 二、各状态介绍
注:转载请注明出处
参考JTAG标准第六章测试逻辑控制器(Test logic controllers)。
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。
Version | Date |
---|---|
1.0 | 2021.12.15 |
这篇笔记用来介绍TAP 控制器,TAP控制器是同步有限状态机,状态根据 TMS 和 TCK 信号的变化而变化,控制测试逻辑的行为,并保持测试扫描链上所有组件的同步,以允许移位、捕获和数据更新。
一、TAP控制器的状态转移图
TAP控制器的状态转移图如图1所示:
TAP控制器根据TMS和TCK信号来控制状态转移,其中TMS在TCK上升沿采样,根据采样的TMS值来进行操作控制。根据图1可知,无论处于哪一状态,TMS只要维持5个周期的高电平就一定会回到Test-Logic-Reset状态。
即动作发生在状态切换后的一个周期中TCK的下降沿处或者上升沿处。
二、各状态介绍
一共16个状态,下面简单介绍一下:
-
Test-Logic-Reset
在上电的时候,TAP控制器将置于此状态,这种状态下,测试逻辑被禁止,片上系统逻辑正常运行,读IDCODE寄存器将禁止测试逻辑。
此外,无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP控制器就将进入Test-Logic-Reset状 态,目的是为了防止TMS信号毛刺导致转移到其他状态影响芯片的正常运行,错误启动测试逻辑。如果TMS信号一直为高电平,那么TAP将保持在Test-Logic-Reset状态,另外TRST信号也可以强迫TAP进入Test- Logic-Reset状态。
处于Test-Logic-Reset状态的TAP,如果下一个TCK的上升沿时TMS信号处于低电平,那么状态将被切换到Run-Test/Idle状态。 -
Run-Test/Idle
只要 TMS 保持低电平,控制器保持在运行测试/空闲状态。 当 TMS 为高电平且在 TCK 的上升沿时,控制器将进入 SelectDR-Scan 状态。 在Run-Test/Idle控制器状态下,仅当存在特定指令时,所选测试逻辑中的活动才会发生。
例如,RUNBIST 指令使片上系统逻辑的自检在此状态下执行。 由 RUNBIST 以外的指令选择的自检也可以设计为在控制器处于此状态时执行。
对于在 Run-Test/Idle 控制器状态下不执行功能的指令,在该状态中花费的时间成为延迟(即空闲)并且当前指令选择的所有测试数据寄存器应保持其先前状态。 -
Select-DR-Scan
一个临时的控制器状态(即控制器在 TCK 的下一个上升沿退出该状态,即无论TMS为什么电平,下一状态都不会是其本身),当前指令选择的所有测试数据寄存器都保留其先前的状态。 如果在控制器处于此状态时 TMS 保持低电平并且处于TCK的上升沿,则控制器将进入 Capture-DR 状态并启动所选测试数据寄存器的扫描序列; 如果 TMS 保持为高电平且处于TCK的上升沿,控制器就会进入 Select-IR-Scan 状态。 -
Select-IR-Scan
一个临时的控制器状态(同3解释)在此状态,DR和IR都不会发生改变,在下一个TCK上升沿处,TMS为高电平则控制器回到 Test-Logic-Reset状态;若TMS为高电平则控制器进入 Capture-IR 状态并启动所选IR的扫描序列。 -
Capture-DR
一个临时控制器状态,在TCK 上升沿处,数据可以并行加载到当前指令选择的测试数据寄存器的移位捕获路径中,加载后TAP 控制器退出该状态。 如果当前指令选择的测试数据寄存器没有并行输入,或者如果所选测试寄存器不需要捕获,则该寄存器保持其先前状态不变。
当 TAP 控制器处于此状态时,指令不会更改。
当 TAP 控制器处于此状态,在下一个 TCK 上升沿处,TMS 为 1 则控制器进入 Exit1-DR 状态;若 TMS 为 0,则控制器进入 Shift-DR 状态。 -
Shift-DR
该状态下,作为当前指令的结果,连接在 TDI 和 TDO 之间的测试数据寄存器将数据从 TDI 向TDO移动一级,并在 下一个TCK 的上升沿移至 TDO。 当前指令选择但未放置在串行路径中的测试数据寄存器保持其先前状态不变。
当 TAP 控制器处于此状态时,指令不会更改。
当 TAP 控制器处于此状态,在下一个 TCK 上升沿处,TMS 为 1 则控制器进入 Exit1-DR 状态;若 TMS 为 0,则控制器保持在 Shift-DR 状态。
当 TAP 控制器处于此状态并且对 TCK 施加上升沿时,如果 TMS 保持为 1,则控制器进入 状态,或者如果 TMS 保持为 0,则控制器保持在 Shift-DR 状态。 -
Exit1-DR
一个临时的控制器状态。 在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-DR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Pause-DR 状态。
当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。 -
Pause-DR
该状态允许临时停止 TDI 和 TDO 之间串行路径中测试数据寄存器的移位。
当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。 -
Exit2-DR
一个临时的控制器状态。 在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-DR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Shift-DR 状态。
当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。 -
Update-DR
一个临时的控制器状态。边界扫描寄存器的值一般是锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变 BSR的值。当处于Update-DR状态时选择的是BSR,那么移位寄存器中的值将在TCK的下降沿处锁存到BSR的并行输出管脚中去。
处于Update-DR状态时,指令不会被改变。
在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Select-DR-Scan 状态,终止扫描过程;若TMS 为低电平则控制器进入 Run-Test-Idle 状态。 -
Capture-IR
一个临时状态。处于Capture-IR状态时,所选中的IR中的值被固定设置成01,
处于Capture-IR状态时,指令不会被改变。
在下一个TCK 的上升沿处,TMS为高电平,则控制器进入EXIT1-IR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Shift-IR 状态。 -
Shift-IR
此状态下,连接在 TDI 和 TDO 之间的指令寄存器中的移位寄存器,在 TCK 的每个上升沿将数据从 TDI移位一级至 TDO。
当前指令选择的测试数据寄存器保持其先前的状态。 当 TAP 控制器处于此状态时,指令不会更改。
在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Exit1-IR 状态,终止扫描过程;若TMS 为低电平则控制器保持 Shift-IR 状态。 -
Exit1-IR
一个临时的控制器状态。 在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-IR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Pause-IR 状态。
当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。 -
Pause-IR
该状态允许临时停止 TDI 和 TDO 之间串行路径中指令寄存器的移位。
当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。
在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Exit2-IR 状态;若TMS 为低电平则控制器保持 Pause-IR 状态。 -
Exit2-IR
当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。
在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-IR 状态;若TMS 为低电平则控制器保持 Shift-IR 状态。 -
Update-IR
处于该状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将生效代替当前指令。
在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Select-DR-Scan 状态;若TMS 为低电平则控制器保持 Run-Test-Idle 状态。
参考文献
【1】IEEE Standard for Test Access Port and Boundary-Scan Architecture IEEE Std 1149.1™-2013
这篇关于JTAG 标准IEEE STD 1149.1-2013学习笔记(四)Test logic controllers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!