1.怎么理解jtag/ssn input/output要在一个clk内收时序
先分清两件事:
A. 功能协议 ------JTAG 是个"移位寄存器链",一条 TDI→TDO 的"数据长河"可以串几百上千拍,协议本身不要求"在一clk内"从 TDI 走到 TDO 。
B. 芯片级时序签核 ------ATE 只认识"我在这个 TCK 沿发 TDI,下一个 TCK 沿就要采 TDO",因此 从焊盘 TDI 到焊盘 TDO 的最短路径 (通常是 BYPASS 指令下的 1-bit 链)必须在 一个 TCK 周期 (甚至半个周期)内完成建立-保持,否则机台会采到亚稳态。
把 A 和 B 分开,就能理解"JTAG/ssn input/output 要在一个 clk 内收时序"这句话的真正含义:
1. 1为什么存在"最短路径"
-
为了快速筛选芯片,ATE 先跑 BYPASS 指令 ,此时 TAP 只串 1 个 bypass 寄存器,数据路径最短。
-
测试程序写为:
TCK↑ launch TDI → 芯片内部 → TCK↑ capture TDO于是 组合延迟 必须满足:
Tcycle − Tsetup − Thold − Tskew − Tpad_delay > Tcombo这就是"一个 clk 内收敛"的来源。
1.2. 路径长什么样
TDI_pad → input_buffer → (MUX) → bypass_reg/D
bypass_reg 在 TCK↑ 采样
bypass_reg/Q → (MUX) → output_buffer → TDO_pad
-
第一段组合:TDI_pad → bypass_reg/D
-
第二段组合 :bypass_reg/Q → TDO_pad
两段各自都要在 同一个 TCK 周期 内满足 setup/hold;中间靠 bypass_reg 打一拍,所以不会"断链",也不会把长链累加到 pad-to-pad。
1.3. 如果路径太长怎么办
-
时钟树做平衡,让 TCK 到 bypass_reg 的 skew 最小;
-
输出用负沿更新(TCK↓ 变 Q),ATE 仍在下一个 TCK↑ 采样,白赚 0.5 周期;
-
在 input 端插负沿锁存,把 setup 需求再放松 0.5 周期;
-
最终保证 两段组合 各自收敛即可。
1.4. 对长链(IR/DR)有没有影响?
-
没有 。长链只是多拍移位,每级都是 TCK 打拍,pad-to-pad 的时序窗口仍然是那两段组合,不会累加。
-
所以"一个 clk 内"只约束 最短 bypass 路径,不是让数据一口气跑完 1000 级。
1.5 一句话总结:
"JTAG/ssn input/output 要在一个 clk 内收时序"不是协议要求 ,而是 ATE 测试模式下的 pad-to-pad 时序签核要求 ------最短 bypass 路径 必须在 一个(甚至半个)TCK 周期 内完成建立/保持,保证机台能稳定采样。
2.为什么DFT 不愿意把 JTAG 的 TDI 与 TDO PAD
DFT 不愿意把 JTAG 的 TDI 与 TDO PAD 放得老远,根本原因是:
在 bypass 最短路径 上,ATE 要求 "TDI↔TDO 必须在一个 TCK 周期内完成建立/保持"
距离一旦拉长,组合延迟 + 线延迟 + 封装延迟 就会吃掉整个周期预算,时序收敛不了,ATE 测试直接失败。
下面把"为什么远不得"拆成四条硬指标:
2.1. Pad-to-Pad 时序预算极紧
-
ATE 程序默认 TCK↑ launch TDI → 芯片内部 → TCK↑ capture TDO
周期往往只有 20 ns@50 MHz ,再扣掉
-- Tsetup 2 ns
-- Thold 1 ns
-- TCK skew 2 ns
-- Pad delay 2 ns
留给纯组合逻辑 + 连线的预算只剩 ~13 ns若 TDI 与 TDO 对角分布,裸片内长线 5 mm → 0.5 ns/mm → 2.5 ns ;再加 封装走线 10 mm → 1 ns/mm → 10 ns ,13 ns 瞬间被吃光,还余不下任何设计裕量。
2.2. 长线带来 串扰 & 同时开关噪声
-
TDI/TDO 在 shift 阶段 是 每条 TCK 都翻转 的同步信号;
-
两根长线横跨整个芯片,会与 数据/地址总线 平行几百微米,串扰系数 Kx 上升 → 导致 抖动 + 额外延迟;
-
同时开关时 di/dt 在封装键合线上产生 地弹 ,直接叠加到 TDO 输出,降低 Voh/Vol 裕度,ATE 采样窗口再被压缩。
2.3. 时钟树不得不 跟着拉长,skew 失控
-
TDO 的 输出使能 和 bypass_reg 时钟 都要从 TCK 树 分出来;
-
TDI 远离,TCK 树必须 追过去再折回来 ,时钟路径长度差 > 200 ps 后,common-clock 约束 就修不动;
-
结果 要么加 buffer 级数 → 延迟更大,要么插入延迟线 → 面积功耗上升,左右为难。
2.4. 封装/PCB 成本也跟着涨
-
对角放脚 → 封装基板 走线层数 +1 ,过孔数 ×2 ,BGA 球阵列出现空洞 ,PCB breakout 难度加大;
-
高速量产测试板(load-board)上,TDI 与 TDO 必须等长 ±50 mil ,距离拉长后 绕蛇形线 占用面积,探针卡 也得加大,直接推高考厂报价。
2.5 结论
TDI 与 TDO 必须"面对面"或"相邻边"放 ,让 bypass 路径最短、线延迟最小、时钟树最平衡、封装/PCB 最省钱 ;
DFT 工程师在 floor-plan 阶段 就会 强制画一条硬核红线:
"TDI TDO 相距 ≤ 2 mm,封装球相邻,否则时序别想过!"