news 2026/9/26 19:06:37

Boundary Scan Cell 深度拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Boundary Scan Cell 深度拆解

BGA 封装把焊点藏在芯片肚子底下,针床测不到,飞线也够不着。IEEE 1149.1 的解法是在每个 I/O 引脚旁边塞一个微型扫描单元,串成链,靠 TDI/TDO 就能观测和驱动所有引脚。这个单元就是 Boundary Scan Cell,简称 BSC。

很多人看 BSC 电路只停留在"带 MUX 的扫描寄存器"这个印象上,其实它的每一个门、每一个时钟沿都经过仔细推敲。今天把它彻底拆开,从电路结构到 Tessent 仿真验证,一条线讲透。

图1:Boundary Scan 整体架构

一座桥,四个端口,两个 MUX

BSC 本质上是一座可控的桥,平时透明,测试模式下接管数据通路。它对外暴露四个端口:PI 接收来自核心逻辑或 Pad 的数据;PO 把数据送向 Pad 或核心逻辑;SI 接前一级 BSC 的移位输出;SO 接后一级 BSC 的移位输入。这四个端口把 BSC 串成一条边界扫描链,环绕在芯片四周。

输入端有一个二选一 MUX,由 selectJtagInput 控制。为 0 时 PI 直通 PO,芯片正常跑功能;为 1 时 SI 接入移位链路。输出端也有一个 MUX,由 selectJtagOutput 控制,决定 PO 走正常功能路径还是改由更新寄存器驱动。

图2:BSC 详细电路——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,是工业界最主流的实现。

图3:IEEE 1149.1 TAP 控制器状态机

三种模式,TAP 控制器说了算

TAP 控制器通过 selectJtagInput 和 selectJtagOutput 决定 BSC 的工作模式。SAMPLE 模式最温和,芯片正常跑功能,BSC 只是顺手把 PI 上的数据抓进 reg1,不影响任何信号路径,相当于在边界上装了一个逻辑分析仪。

EXTEST 模式是 BSC 的老本行,板级互连测试全靠它。此时 selectJtagOutput 置 1,PO 改由 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 rtl1
set_dft_specification_requirements -boundary_scan on
create_dft_specification
process_dft_specification
extract_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 更新到 reg2,Capture-DR 采样响应,最后移出比对。

图5:Tessent EBSCAN 架构

仿真通过的判定很直接:checker 对比 TDO 移出的数据与 STIL 预期值。最常见的错误是 reg1 和 reg2 的时钟沿搞反了,导致 capture 和 update 抢在同一个沿上,数据还没稳定就被锁进 reg2,TDO 值自然 mismatch。

踩坑提醒:很多项目做 BSCAN 仿真时 Pad 的 PU/PD 没正确约束,导致 EXTEST 模式下 Pad 输出出现不定态。Tessent 的 PostLV-BCAD-Edits 会修改网表,把 Pad 控制引脚接到可控节点上,避免悬空。

BSC 看起来只是一个小小的扫描寄存器,但它承载了从芯片到板级的一整套测试哲学。理解两个寄存器为什么用相反时钟沿、两个 MUX 怎么解码模式,是做好 DFT 的基础。而在 Tessent 工具链里,BSC 仿真不再是手写 testbench 的体力活,工具会根据 ICL 自动生成完整的 TAP 激励和 checker,但前提是你得明白工具在验证什么,以及它可能在哪里埋坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 19:04:55

GGUF模型调优核心:平滑因子与二次采样的协同机制

1. 这不是“越狱指南”,而是一份面向模型调优工程师的实操手册你搜到这个标题时,大概率正卡在某个关键节点上:手头刚下载完Qwen3.5-9B-The-Defiant-Fable-Uncensored-Heretic-NEO-IMATRIX-MAX-MTP-GGUF这个超长命名的GGUF模型文件&#xff0c…

作者头像 李华
网站建设 2026/9/26 19:04:25

Pandas数据分析入门:Series与DataFrame核心操作详解

1. 为什么数据分析绕不开Pandas刚接触Python数据分析那会儿,我最先装的是NumPy。数组运算确实快,但一到处理带标签的表格数据就浑身难受——想按列名取数得自己记索引,想按条件筛选得写一堆布尔运算,缺失值处理更是要手动循环。直…

作者头像 李华
网站建设 2026/9/26 19:03:24

MarkText中文工作流重建手册:从安装到专业技术写作

1. MarkText不是Typora的平替,而是另一条技术路径的实践者MarkText中文版——这个在2024年GitHub趋势榜上反复出现的名字,常被新手误读为“Typora汉化版”或“免费替代品”。但实际接触过它的人都清楚:它根本不是Typora的影子,而是…

作者头像 李华
网站建设 2026/9/26 19:01:02

富士通U9310X Win10驱动安装全解析:硬件ID匹配与INF改造

1. 项目概述:为什么一台停产十年的老商务本,现在装驱动还值得专门写一篇长文?富士通LifeBook U9310X——这台2012年发布的超轻薄商务本,当年以798克机身、全金属C面和可选的1080p触控屏惊艳市场。它不是游戏本,也不是网…

作者头像 李华
网站建设 2026/9/26 19:00:02

学生智能选课系统课设通关指南:MySQL数据库与JavaWeb事务实战

简介:mysql学生智能选课系统毕业设计资源包,面向高校计算机相关专业学生、课程设计参与者及需要快速搭建选课平台的开发人员。系统采用SSM框架与MySQL数据库,围绕校园选课场景完成学生在线选课、教师课程管理、课程信息发布等功能&#xff0c…

作者头像 李华