目录
BSCAN学习
参考IEEE.Std.1149.6-2003.pdf
1. JTAG TAP FSM
2. tessent bscan interface
左侧是开了ac_control选项,右侧没有开,生成出来bscan interface模块的区别:
3. AC test signal
ACMODE = EXTEST_TRAIN | EXTEST_PULSE; ac_signal = RTI & ACMODE; bscan_select = EXTEST_decoded | INTEST_decoded | EXTEST_PULSE_decoded | EXTEST_TRAIN_decoded | EXTEST_PRELOAD_decoded; ac_init_clk0 = ac_init_clk_EXTEST | ac_init_clk_EXTEST_TRAIN_OR_PULSE; ac_init_clk1 = ~ ac_init_clk0; ac_init_clk_EXTEST = SDR & bscan_select; ac_init_clk_EXTEST_TRAIN_OR_PULSE = (E1DR | E2DR) & ACMODE;
4. Input test receivers
接收器在接收的时候分为DC Coupled和AC Coupled。
所述接收器,应该在capture-DR状态时能采样到一个有效的值,如果不能采到有效值,应该会有一个initial value被采到。
就如下图一样,capture-DR状态采到有效值或者initial value
所以接收器在Exti1-DR或者Exit2-DR (其实就是在Update状态之前先给个initial值)的时候可以把sample register给个initial state(比如说固定为0),接收器示范电路如下:
5. Output drivers
output driver不会太特殊
6. instruction
6.1 EXTEST_PULSE
6.2 EXTEST_TRAIN
7. clockdr & updatedr
clockir = ((pstate == capture_IR) || (pstate == shift_IR)) ? tck : 1'b1; clockdr = ((pstate == capture_DR) || (pstate == shift_DR)) ? tck : 1'b1;
在capture状态capture数据,在shift状态,shift数据。
8. tessent BC cell
ref: bsda_ref.pdf
8.1 BC_1
8.2 BC_2
8.3 BC_2_A
8.4 BC_2_A_EXT
8.5 BC_2_B
8.6 BC_3
8.7 BC_4
8.8 BC_5
8.9 BC_7
8.10 BC_7_LOW
8.11 BC_8
8.12 BC_9
8.13 BC_10
9. tessent AC cell
ref: bsda_ref.pdf
9.1 AC_1
9.2 AC_2
9.3 AC_7
9.4 AC_7_LOW
9.5 AC_8
9.6 AC_9
9.7 AC_10
10. IEEE 1149.1 BSCAN BC cell
- BC_1, input cell, control cell, capture misson input
- BC_2, input cell, control cell, capture misson output
- BC_4, Observe-only input cell without control
- BC_7, BIDI双向 data cell; capture UPD/PAD input/misson output
- BC_8, BIDI双向 data cell; capture PAD output
- BC_9, self-monitor output cell; mode 4 capture PAD output, else capture mission input
- BC_10, self-monitor output cell; capture PAD output only
10.1 BC_1
mode
10.2 BC_2
10.3 BC_3
个人觉得BC_3不会使用
10.4 BC_4
10.5 BC_5
10.6 BC_7
10.7 BC_8
mode
bc_2 control + bc_8
10.8 BC_9
10.9 BC_10
11. BSCAN AC cell
- AC_SelX, 控制选择AC/DC测试模式, capture的值永远是X,即不关注capture到的值
- AC_SelU, 控制选择AC/DC测试模式, capture的值是UPD,即capture到的值是上一次配置的AC/DC的选择值。
- AC_1, input cell, control cell, capture misson input
- AC_2, input cell, control cell, capture misson output
- AC_7, BIDI双向 data cell; capture UPD/PAD input/misson output
- AC_8, BIDI双向 data cell; capture PAD output
- AC_9, self-monitor output cell; mode 4 capture PAD output, else capture mission input
- AC_10, self-monitor output cell; capture PAD output only
mode 1 | mode 2 | mode 3 | mode 4 | mode 5 | |
---|---|---|---|---|---|
EXTEST | 1 | 0 | 1 | 1 | 1 |
PRELOAD | 0 | 0 | 1 | X | 0 |
SAMPLE | 0 | 0 | 1 | 0 | 0 |
INTEST | 0 | 1 | 0 | 0 | 1 |
RUNBIST | X | X | 0 | X | 1 |
CLAMP | 1 | X | 1 | X | 1 |
HIGHZ | X | X | 0 | X | X |
NOTES: 1. EXTEST inluce EXTEST, EXTEST_PLUSE, EXTEST_TRAIN |
11.1 AC_SelX
11.2 AC_SelU
11.3 AC_1
11.4 AC_2
11.5 AC_7
11.6 AC_8
11.7 AC_9
11.8 AC_10
12. BSCAN指令
12.1 SAMPLE
只sample采样 capture pin input & output值,而不能影响其input pin到内部逻辑值和output pin到PAD的状态。
12.2 PRELOAD
主要用来更新update DR的值,这个值在后面的测试指令作用下,将会直接被驱动到output PAD脚;如果值没有初始化,将不确定输出的是什么值。
一般后面会再跟一个EXTEST指令,将PRELOAD初始化的值驱动到output PAD上。