ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Boundary Scan Cell 深度拆解

Boundary Scan Cell 深度拆解 BGA 封装把焊点藏在芯片肚子底下针床测不到飞线也够不着。IEEE 1149.1 的解法是在每个 I/O 引脚旁边塞一个微型扫描单元串成链靠 TDI/TDO 就能观测和驱动所有引脚。这个单元就是 Boundary Scan Cell简称 BSC。很多人看 BSC 电路只停留在带 MUX 的扫描寄存器这个印象上其实它的每一个门、每一个时钟沿都经过仔细推敲。今天把它彻底拆开从电路结构到 Tessent 仿真验证一条线讲透。图1Boundary Scan 整体架构一座桥四个端口两个 MUXBSC 本质上是一座可控的桥平时透明测试模式下接管数据通路。它对外暴露四个端口PI 接收来自核心逻辑或 Pad 的数据PO 把数据送向 Pad 或核心逻辑SI 接前一级 BSC 的移位输出SO 接后一级 BSC 的移位输入。这四个端口把 BSC 串成一条边界扫描链环绕在芯片四周。输入端有一个二选一 MUX由 selectJtagInput 控制。为 0 时 PI 直通 PO芯片正常跑功能为 1 时 SI 接入移位链路。输出端也有一个 MUX由 selectJtagOutput 控制决定 PO 走正常功能路径还是改由更新寄存器驱动。图2BSC 详细电路——Capture 与 Update 寄存器级联两个寄存器正沿加负沿的讲究电路中间两级寄存器是 BSC 的灵魂。reg1 是捕获寄存器由 clockBscan 正沿触发reg2 是更新寄存器由 updateBscan 控制通常是负沿触发的锁存器或下降沿 DFF。reg1 的输出既送给 reg2也直接作为 bscanShiftOut 送给下一级 BSC。为什么非要两个寄存器而且用相反的时钟沿第一是 retiming 解决 clock skew。芯片边界上的 I/O Pad 物理位置分散TCK 时钟树到每个 BSC 的延迟差异很大。正沿捕获、负沿更新的组合天然把 setup/hold 窗口错开半个周期时序裕量直接翻倍。第二是效率正沿加负沿让数据在一个 TCK 周期内完成 capture-to-update如果都用正沿就要浪费一个周期。这种结构在 Tessent 的 Cell Library 里通常叫 BC_1 型 BSC是工业界最主流的实现。图3IEEE 1149.1 TAP 控制器状态机三种模式TAP 控制器说了算TAP 控制器通过 selectJtagInput 和 selectJtagOutput 决定 BSC 的工作模式。SAMPLE 模式最温和芯片正常跑功能BSC 只是顺手把 PI 上的数据抓进 reg1不影响任何信号路径相当于在边界上装了一个逻辑分析仪。EXTEST 模式是 BSC 的老本行板级互连测试全靠它。此时 selectJtagOutput 置 1PO 改由 reg2 输出驱动。测试机台通过 TDI 移入测试向量经过 Update-DR 锁存到 reg2然后强制推到 Pad 上驱动 PCB 走线。输入 BSC 的 reg1 在 Capture-DR 采样 Pad 响应再移出到 TDO 比对。虚焊、短路、断路一测便知。图4板级多芯片 JTAG 菊花链连接Tessent 怎么仿真 BSC用 Tessent Shell 做 Boundary Scan 插入和仿真分两个阶段。第一阶段插 BSC 硬件在 Shell 里设置 context 为 dft -rtl读入网表和 Cell Library打开边界扫描set_dft_specification_requirements -boundary_scan on然后 create_dft_specification 生成规格process_dft_specification 插入 BSC。extract_icl 这一步非常关键它检查 BSC 链是否首尾相连、TCK 是否覆盖所有 BSC、控制信号是否正确译码。ICL 违例不解决后面的仿真基本跑不通。set_context dft -rtl -design_id rtl1set_dft_specification_requirements -boundary_scan oncreate_dft_specificationprocess_dft_specificationextract_icl第二阶段 create_pattern_specification 和 process_patterns_specification 自动生成测试向量。Tessent 会在 TSDB 目录下吐出 Verilog testbench、STIL 向量文件和 VCS 编译脚本。这些 testbench 是工具根据 ICL 自动生成的里面包含了 TAP 状态机的完整激励从 Test-Logic-Reset 进入 Shift-IR 加载 EXTEST 指令再进入 Shift-DR 移入向量经过 Update-DR 更新到 reg2Capture-DR 采样响应最后移出比对。图5Tessent EBSCAN 架构仿真通过的判定很直接checker 对比 TDO 移出的数据与 STIL 预期值。最常见的错误是 reg1 和 reg2 的时钟沿搞反了导致 capture 和 update 抢在同一个沿上数据还没稳定就被锁进 reg2TDO 值自然 mismatch。踩坑提醒很多项目做 BSCAN 仿真时 Pad 的 PU/PD 没正确约束导致 EXTEST 模式下 Pad 输出出现不定态。Tessent 的 PostLV-BCAD-Edits 会修改网表把 Pad 控制引脚接到可控节点上避免悬空。BSC 看起来只是一个小小的扫描寄存器但它承载了从芯片到板级的一整套测试哲学。理解两个寄存器为什么用相反时钟沿、两个 MUX 怎么解码模式是做好 DFT 的基础。而在 Tessent 工具链里BSC 仿真不再是手写 testbench 的体力活工具会根据 ICL 自动生成完整的 TAP 激励和 checker但前提是你得明白工具在验证什么以及它可能在哪里埋坑。
返回列表