先学标准
理解 TAP、状态机、指令、寄存器、cell 与 BSDL,建立不会随工具变化的底层模型。
从标准原理到芯片、Tile 与板级签核
理解 TAP、状态机、指令、寄存器、cell 与 BSDL,建立不会随工具变化的底层模型。
从 pad/端口规划、DRC、DftSpecification 到 Pattern、BSDL 和仿真。
Embedded BScan、Tile 穿越、SDC、1149.6 与既有 TAP/BIST 集成。
用失败分层、波形证据、Reference 指令和交付清单闭环。
PURPOSE · BOARD ACCESS · TEST ECONOMICS
各器件 TDO 串到下一个 TDI;TCK/TMS 通常全局并联;TRST 若存在也按架构分发。整板链长等于当前指令选中的各器件 DR 长度之和。
TAP · IR · SELECTED DR · BOUNDARY CELLS
TCK / TMS / TDI / TDO / TRST
16-state synchronous FSM
选择当前 Data Register 和测试行为
由 I/O 周边 cell 串接的主测试 DR
未测试器件贡献 1 bit
身份读取或访问内部测试资源
把当前 selected DR 或 IR 送出
16-STATE FSM · TMS SAMPLED ON TCK RISING EDGE
逐拍观察 TMS 如何改变状态:先选 TMS,再点击一次 TCK。左侧显示当前节点、选中分支与已走轨迹;右侧同步执行 Capture、Shift、Update 或 Hold。
复位 TAP 测试逻辑;活动指令进入标准规定的复位选择。
BSR 不移位、不捕获;芯片通常保持功能引脚行为,不能假设 BSR 数据被清零。
0 → Run-Test/Idle1 → Test-Logic-Reset
复位测试逻辑并选择标准定义的复位指令。没有 TRST 时,TMS=1 连续至少五个 TCK 可从任何状态回到这里。
Capture-IR 装入规定捕获码,Shift-IR 串入 opcode,Update-IR 才真正切换活动指令。
Capture-DR 并行采样,Shift-DR 串行交换,Update-DR 把新值送入 update latch。
允许暂停长移位而不丢失寄存器内容;恢复时经 Exit2 回到 Shift 或去 Update。
| 当前状态 | TMS=0 | TMS=1 | 本拍工作状态 | Boundary Scan Cell 状况 |
|---|---|---|---|---|
Test-Logic-Reset | Run-Test/Idle | Test-Logic-Reset | 复位 TAP 测试逻辑;活动指令进入标准规定的复位选择。 | BSR 不移位、不捕获;芯片通常保持功能引脚行为,不能假设 BSR 数据被清零。 |
Run-Test/Idle | Run-Test/Idle | Select-DR-Scan | 空闲,或让需要运行时间的当前测试指令继续执行。 | BSR 保持;无 Capture/Shift/Update。RUNBIST 类指令可能在此运行。 |
Select-DR-Scan | Capture-DR | Select-IR-Scan | 选择走 Data Register 分支还是继续前往 IR 分支。 | 只是路径选择;所有 DR 和 update latch 保持。 |
Capture-DR | Shift-DR | Exit1-DR | 当前指令选中的 DR 执行并行捕获。 | 若选中 BSR:输入观察值、core 输出值、OE 状态进入 capture/shift stage;update latch 不变。 |
Shift-DR | Shift-DR | Exit1-DR | 选中 DR 每个 TCK 移一位,TDI 注入、TDO 输出。 | BSR shift stage 串行移动;旧值从 TDO 读出,新值装入。update latch 仍稳定,所以引脚不会随每一位移位乱跳。 |
Exit1-DR | Pause-DR | Update-DR | 离开 Shift-DR,决定暂停还是更新。 | 没有数据传送;shift stage 与 update latch 均保持。 |
Pause-DR | Pause-DR | Exit2-DR | 暂停长 DR 移位,保持已移入的数据。 | scan chain 冻结;TDI 不再进入,update latch 和引脚保持。 |
Exit2-DR | Shift-DR | Update-DR | 从暂停恢复移位,或结束并更新。 | 没有 capture/update;只是选择返回 Shift 或进入 Update。 |
Update-DR | Run-Test/Idle | Select-DR-Scan | 把选中 DR 的 shift stage 并行提交到 update latch。 | 若 EXTEST/INTEST/CLAMP 使用 BSR 驱动,引脚或 core 测试输入在此状态后原子切换。输入型 cell 通常无驱动 update。 |
Select-IR-Scan | Capture-IR | Test-Logic-Reset | 进入 Instruction Register 分支,或回到全局复位。 | BSR 和活动指令保持,不发生寄存器操作。 |
Capture-IR | Shift-IR | Exit1-IR | IR shift stage 捕获规定测试码;最低两位应体现标准的 01 特征。 | 活动 instruction latch 仍保持旧指令,因此 BSR 当前功能不变。 |
Shift-IR | Shift-IR | Exit1-IR | 串行读出 IR capture pattern,同时从 TDI 移入新 opcode。 | 仅 IR shift stage 改变;BSR 与引脚行为保持旧活动指令。 |
Exit1-IR | Pause-IR | Update-IR | 离开 Shift-IR,决定暂停还是提交新指令。 | 活动指令仍未改变,BSR 行为保持。 |
Pause-IR | Pause-IR | Exit2-IR | 暂停 opcode 移位。 | IR shift stage 保持;活动 instruction latch、BSR 和引脚保持。 |
Exit2-IR | Shift-IR | Update-IR | 从暂停恢复 Shift-IR,或提交 opcode。 | 无寄存器传送;旧活动指令仍生效。 |
Update-IR | Run-Test/Idle | Select-DR-Scan | 把 IR shift stage 并行写入 instruction latch,切换活动指令。 | 切到 EXTEST 时,BSR update latch 中预装载的 data/OE 立即接管 pad;这就是必须先 PRELOAD 安全值的原因。 |
# 从 Run-Test/Idle 进入 Shift-IR
TMS: 1 1 0 0
Select-DR -> Select-IR -> Capture-IR -> Shift-IR
# 最后一位 IR 在 Shift-IR 时把 TMS 拉高,然后更新指令
TMS: ... 1 1 0
Exit1-IR -> Update-IR -> Run-Test/Idle
# 从 Run-Test/Idle 进入 Shift-DR
TMS: 1 0 0
Select-DR -> Capture-DR -> Shift-DR
# 无 TRST 时的同步复位
TMS = 1,连续至少 5 个 TCK 上升沿 -> Test-Logic-ResetTMS=1 至少 5 拍测试逻辑回到已知入口;引脚仍按复位后的活动指令工作。
Capture-IR → Shift-IR → Update-IR只是让 PRELOAD 成为活动指令,尚未接管引脚。
Capture-DR → Shift-DR → Update-DR把 DATA=0、OE=0 等安全值写入 update latch;功能路径仍控制引脚。
Capture-IR → Shift-IR → Update-IR在 Update-IR 后,BSR 用已经预装载的安全值接管 Pad。
Shift-DR → Update-DR移位期间 Pad 保持旧测试值;Update-DR 后所有输出并行切换。
Capture-DR → Shift-DRCapture 同拍采样板端,随后串行读出;update latch 保持驱动不变。
状态和 TMS 在 TCK 上升沿判定;最后一位数据与退出 Shift 的 TMS 必须同拍规划;TDO 的 launch/strobe 必须遵守器件 BSDL、Tessent timeplate 和 ATE 约束,不要凭经验硬编码边沿。
INSTRUCTION REGISTER · REGISTER ACCESS
| 指令 | 选择的 DR | 主要用途 | 工程注意 |
|---|---|---|---|
EXTEST | BSR | 由边界单元驱动输出并捕获输入,用于 PCB/MCM 外部互连测试。 | 核心外部测试指令;切换前先 PRELOAD 安全向量。 |
SAMPLE | BSR | 功能模式继续运行时,对引脚状态取样。 | 只观察,不应改变系统行为。 |
PRELOAD | BSR | 预先装载边界寄存器 update latch,准备后续 EXTEST/CLAMP。 | 避免进入测试指令瞬间输出未知值。 |
SAMPLE/PRELOAD | BSR | 早期标准中的组合指令;既可取样也可预装载。 | 若独立 PRELOAD 存在,工具优先使用 PRELOAD。 |
BYPASS | 1-bit BYPASS | 把当前器件在串行链中的长度缩短为一位。 | 未实现 opcode 通常也必须安全落到 BYPASS。 |
IDCODE | 32-bit IDCODE | 读取器件身份、版本和厂商信息。 | 先做 board chain discovery 的常用入口。 |
INTEST | BSR | 从边界单元向 core 施加数据并捕获 core 响应。 | 会影响芯片内部逻辑,需独立模式和初始化策略。 |
CLAMP | BYPASS + BSR update | 保持预装载的静态引脚值,同时串行路径走 BYPASS。 | 兼顾静态隔离与短链。 |
HIGHZ | BYPASS | 把输出和双向引脚强制为高阻。 | 用于避免板级驱动冲突;必须核对 control cell 极性。 |
EXTEST_PULSE | AC BSR | 为 AC/差分/电容耦合链路产生规定脉冲。 | 使用 IEEE 1149.6 AC cell 时为必需能力。 |
EXTEST_TRAIN | AC BSR | 产生多周期脉冲序列以测试 AC 链路。 | 可选;时序由 1149.6 配置和 Pattern 共同决定。 |
先确认链路和 IDCODE,推导器件数、IR 长度和方向。
把安全数据与 OE 值装入 BSR update latch。
切换到外部互连模式,驱动一端、捕获另一端。
HIGHZ/BYPASS/复位,按板级电源与总线规则退出。
CAPTURE FLOP · SHIFT STAGE · UPDATE LATCH
覆盖 1149.1 必选、常用可选与 1149.6 AC 指令。自定义 opcode 无法穷举,应以项目 BSDL 的 INSTRUCTION_OPCODE / REGISTER_ACCESS 为准。
DATA=1
OE=1
FUNCTION
BSR驱动=1
无侵入观察功能引脚状态。选择一个模式,再执行 Capture / Shift / Update,观察所选 DR 和 Pad 所有权。
| 活动指令 | Pad 驱动来源 | Capture-DR 捕获 | Shift-DR | Update-DR | 关键用途 |
|---|---|---|---|---|---|
BYPASS | 功能逻辑 | 1-bit BYPASS 捕获规定值 | 仅一位 BYPASS 移动 | 不影响 BSR | 缩短未测器件链长 |
SAMPLE | 功能逻辑 | BSR 观察 Pad/Core/OE | 可读出采样并装入新值 | 通常不改变引脚 | 无侵入观察功能状态 |
PRELOAD | 功能逻辑 | 可捕获当前观察值 | 装入下一组安全 data/OE | 写 BSR update latch,但暂不接管 Pad | 为 EXTEST/CLAMP 准备安全初值 |
EXTEST | BSR output/control update latch | 输入 cell 捕获外部互连响应 | 读旧响应、装新向量;Pad 保持旧 update 值 | 所有测试输出/OE 并行切换 | 板级开路、短路、桥接测试 |
INTEST | 外部 Pad 通常按实现隔离;BSR 向 Core 施加 | 捕获 Core 响应 | 交换内部测试向量 | 把新值施加到 Core 测试侧 | 测试芯片内部逻辑路径 |
HIGHZ | 强制高阻 | 取决于实现与所选 DR | 通常走 BYPASS | BSR 值不应重新使能输出 | 隔离器件,避免板级驱动冲突 |
CLAMP | 保持预装载 BSR 静态值 | 通常选择 BYPASS DR | 一位 BYPASS | 引脚继续保持预装载值 | 静态钳位同时缩短扫描链 |
外部按键把 Pad 拉为1。SAMPLE + Capture-DR 时,input shift FF 捕获1;Shift-DR 把它沿链送到 TDO。Update-DR 对纯输入 cell 通常没有驱动作用。
PRELOAD 时移入 DATA=1 并 Update-DR,Pad 仍由 core 控制。Update-IR 切到 EXTEST 后,update latch 的1接管输出;下一次 Update-DR 才切换新测试值。
先预装 OE=0,进入 EXTEST 后保持高阻;需要驱动时再移入 DATA 和 OE=1,并在同一个 Update-DR 原子提交,避免 data/OE 不同步产生冲突。
| TCD function | BSDL function | 作用 |
|---|---|---|
input | INPUT | 观察外部输入;部分实现也能向 core 注入。 |
output | OUTPUT2 / OUTPUT3 | 驱动外部输出,并可观察 core 输出。 |
bidir | BIDIR | 双向数据单元,通常与独立 control cell 配合。 |
control | CONTROL | 控制一组 output/inout pad 的 output enable。 |
control_reset | CONTROLR | 与 control 相同,但 Test-Logic-Reset 时强制关闭输出。 |
observe_only | OBSERVE_ONLY | 只捕获端口值,不改变驱动路径。 |
clock | CLOCK | 观察外部时钟端口状态。 |
internal | INTERNAL | 不对应外部端口,用于内部控制、pipeline 或架构辅助。 |
ac_select | INTERNAL | 使能一组 1149.6 AC 数据单元。 |
至少需要观察能力;对 reset/clock/analog special pad 常用 sample/clock/observe_only,避免错误接管。
数据 cell 决定 0/1,control cell 决定是否驱动。safe value 与 control_enable_value 必须成对审核。
数据与 OE 通常是两个逻辑维度。测试向量必须确保同一网络不会被两个器件同时强驱。
BSDL · PACKAGE MAP · OPCODE · BOUNDARY_REGISTER
Entity / Port逻辑端口与方向
PIN_MAP_STRING封装 pin/ball 到端口映射
TAP_SCAN_*TCK/TMS/TDI/TDO/TRST 定义
INSTRUCTION_*IR 长度、捕获码与 opcode
REGISTER_ACCESS指令到 BSR/BYPASS/IDCODE 的映射
BOUNDARY_LENGTH边界寄存器总长度
BOUNDARY_REGISTERcell number、类型、端口、功能、安全值、控制关系
IDCODE_REGISTER器件身份位域与固定/掩码位
entity CHIP_TOP is
generic (PHYSICAL_PIN_MAP : string := "BGA_PACKAGE");
port (TCK, TMS, TDI : in bit; TDO : out bit; GPIO : inout bit_vector(...));
attribute TAP_SCAN_IN of TDI : signal is true;
attribute TAP_SCAN_OUT of TDO : signal is true;
attribute TAP_SCAN_MODE of TMS : signal is true;
attribute TAP_SCAN_CLOCK of TCK : signal is (10.0e6, BOTH);
attribute INSTRUCTION_LENGTH of CHIP_TOP : entity is "4";
attribute INSTRUCTION_OPCODE of CHIP_TOP : entity is
"EXTEST (...), SAMPLE (...), PRELOAD (...), IDCODE (...), BYPASS (1111)";
attribute REGISTER_ACCESS of CHIP_TOP : entity is
"BOUNDARY (EXTEST, SAMPLE, PRELOAD), BYPASS (BYPASS), DEVICE_ID (IDCODE)";
attribute BOUNDARY_LENGTH of CHIP_TOP : entity is "...";
attribute BOUNDARY_REGISTER of CHIP_TOP : entity is
"0 (BC_1, GPIO(0), bidir, X, 1, 0, Z), ...";
end CHIP_TOP;IEEE 1149.1/1149.6 定义标准 package;Tessent 还可生成 bonding configuration、internal cell labels、multi-die logical connections 等扩展。最终交付必须固定 die、package、bond option、netlist、TCD/ICL 和工具版本。
BSDL 应从签核网表/模型提取并回归 Pattern。人工改 opcode、cell number 或 pin map 会破坏设计—模型—测试的一致性。
ARCHITECTURE FREEZE · PAD LIBRARY · PIN ORDER
每种 input/output/inout/tri-state/differential pad 的数据、OE、pull、test mux 和仿真模型完整。
TDI/TDO/TMS/TCK 和可选 TRST 可达 package;方向、pad 类型和复位策略明确。
所有 test-mode、isolation、power-good、mux select 在 BoundaryScan 模式有确定值。
基于真实 floorplan/package 周向顺序,降低绕线并固定 BSDL cell 编号。
列出每个外部网络谁可驱动、safe data、OE disable value、上拉/下拉与禁止组合。
选择 chip-level BScan、EBScan 或 HostBScan Tile 穿越,明确每层交付 TCD/ICL/SDC。
每一行先把设计端口映射到封装 pin,再用行号确定该端口对应的一个或多个边扫 cell 在链中的相对位置。双向端口可能展开为 data、observe、control 等多个 cell,所以最终 bit 编号仍以生成的 BSDL 为准。
//-----------------------------------------------------
// PortName PinName OptionList LogicalGroups
// -------------- ---------- ------------- -------------
tck_p K03 - -
tdi_p K05 - -
tms_p K04 - -
trst_p J06 - -
tdo_p J05 - -
gpio_a[0] A12 - -
gpio_a[1] A13 - -
data_out0 C03 - -
data_io0 D07 - -
reset_n E02 - -
vddio A01 - -
vssio B01 - -
// 在 SETUP、check_design_rules 之前回读定版文件
set_boundary_scan_port_options -pin_order_file ./chip_top.pinorder
// 特殊 cell 行为用命令/Specification 声明,不要塞进第 3 列
set_boundary_scan_port_options [get_ports ramclk_p] -cell_options clock
set_boundary_scan_port_options [get_ports reset_n] -cell_options dont_touch
check_design_rules必须与当前 RTL/门级设计完全一致;总线位使用 data[7] 形式。行的先后决定边扫链的端口先后。
写入 BSDL 的 package pin mapping,例如 A12、K03。它不是 pad instance 名,也不是自动生成的 BSR cell number。
现代 Tessent 流程建议保留为“-”,用 set_boundary_scan_port_options 的 -cell_options 或 Specification 配置。
现代流程建议保留为“-”,在 BoundaryScan / EmbeddedBoundaryScan 的 LogicalGroups 中统一定义。
加载 pad library、RTL/gate netlist;若希望初始顺序贴近物理位置,先 read_def。
不指定 -pin_order_file,运行 check_design_rules;DRC 无错误后工具生成 <design_name>.pinorder。
按封装周向/floorplan 调整整行顺序,核对 PortName 与 PinName,保留四列和“-”占位。
在 SETUP、check_design_rules 之前用 -pin_order_file 回读;此时工具验证文件,不再另生成默认文件。
process_dft_specification 后在最终 BSDL 中核对 PIN_MAP_STRING、BOUNDARY_REGISTER 和 cell number。
-。PortName 全部能在 current design 找到,向量下标无遗漏或重复。PinName 与封装 revision、BSDL PIN_MAP_STRING 一致。BOUNDARY_REGISTER 的 cell number 连续,inout 的 data/control 关系正确。旧资料允许在第 3、4 列直接写 OptionList 和 LogicalGroups;当前 Tessent 文档建议把两列保留为兼容占位,并分别通过端口选项和 DftSpecification 配置,避免 pin list 同时承担行为与分组策略。
带 pad 的 RTL/gate netlist、完整 Tessent cell library、TAP pin 标注、design level、BoundaryScan requirement、特殊端口 cell options,以及使 pad/mux 可测试的输入约束。
LOAD → REQUIREMENTS → DRC → SPEC → INSERT
set_context dft -rtl -design_id rtl1
read_cell_library ../library/adk_complete.tcelllib
read_verilog ../rtl/chip_top.v
set_current_design chip_top
set_design_level chip
set_dft_specification_requirements -boundary_scan on
set_attribute_value [get_ports tck_p] -name function -value tck
set_attribute_value [get_ports tdi_p] -name function -value tdi
set_attribute_value [get_ports tms_p] -name function -value tms
set_attribute_value [get_ports trst_p] -name function -value trst
set_attribute_value [get_ports tdo_p] -name function -value tdo
set_boundary_scan_port_options [get_ports ramclk_p] -cell_options clock
set_boundary_scan_port_options [get_ports reset_p] -cell_options sample
check_design_rules
set spec [create_dft_specification]
report_config_data $spec
process_dft_specification -validate_only
process_dft_specification
extract_icl -create_ijtag_graybox on
create_patterns_specification
process_patterns_specification
set_simulation_library_sources -Y ../library/verilog -extensions {v} \
-V ../library/pad_cells.v
run_testbench_simulations
check_testbench_simulations -report_statusPATTERNS SPECIFICATION · BOARD TEST INTENT
Reset、IR capture、BYPASS、IDCODE、链路方向和长度。
功能模式采样引脚,验证观测路径与初始状态。
预载安全值后测试外部互连开短路。
隔离非目标驱动器或保持静态条件。
逐类验证 input/output/bidir/control cell 的 capture/update。
在进入 BScan 前设置 power、isolation、clock/reset 与自定义模式。
电源、复位、boot strap、开漏/线与总线、高速收发器和外部电源器件不能套用普通 push-pull EXTEST。先建立板级 drive permission matrix,再生成向量。
BSDL EXTRACTION · TCD_BSCAN · TRACEABILITY
set_context dft -rtl -design_id gate
read_design chip_top -design_identifier gate -view full
# 按层次加载 ICL 与 child .tcd_bscan 后 elaborate
set_current_design chip_top
set_dft_specification_requirements -bsdl_extraction on
check_design_rules
# 结果通常写到:
# tsdb_outdir/dft_inserted_designs/
# chip_top_gate.dft_inserted_design/chip_top.bsdl
create_patterns_specification
process_patterns_specification
run_testbench_simulations
check_testbench_simulations -report_status日志明确报告 TCK/TDI/TDO/TMS/TRST 对应端口。
报告实例与 HostBscan scan interface。
按最终链序列出每个 embedded BScan block。
确认每个可选 segment 的 enable 条件。
文件进入对应 design_id 的 dft_inserted_design 目录。
由提取 BSDL 创建 Pattern 并通过最终网表仿真。
至少要做语法/语义检查、与封装 pin list 比对、opcode/IR/BSR 长度审计、BSDL-derived Pattern 仿真,以及板级 chain discovery 实测。
PHYSICAL BLOCK · PAD-LOCAL CELLS · TCD HANDOFF
-pad_io_ports 明确哪些端口对应 pad I/O。只把 block 的 scan_in/scan_out 当普通线连接,而没有 TCD/HostBScan 语义;这样局部仿真可能通过,但上层无法可靠提取 cell、segment 与最终 BSDL。
HOSTBSCANINTERFACE · SECONDARY EBSCAN · TILE
功能 I/O Boundary Scan cells
但必须做主 HostBScan interface、相邻 Tile secondary interface、完整控制束、scan return、必要 pipeline、TCD/SDC 与局部验证。
set_context dft -rtl -design_id rtl1
read_cell_library ../library/cells.tcelllib
read_verilog ../rtl/middle_tile_with_dft_ports.v
set_current_design middle_tile
set_design_level physical_block
set_dft_specification_requirements -design_type tile
read_config_data -from_string {
DftSpecification(middle_tile,rtl1) {
allow_port_creation_on_current_design : off;
EmbeddedBoundaryScan {
HostBScanInterface(client) {
EBScanPipeline(client_out) { so_retiming : off; }
EBScanPipeline(from_neighbor) {}
SecondaryEBScanInterface(neighbor) {}
EBScanPipeline(to_neighbor) {}
}
}
}
}
process_dft_specification
extract_icl -create_ijtag_graybox on
set_dft_specification_requirements -tcd_bscan_extraction on用 TopModuleConnections 或受控 RTL 生成器预建端口。select/reset/clock/capture/shift/update/scan_in 成束前送,scan_out 返回。
独立 Tile 缺少 neighbor 时才用 loadboard loopback 闭链;含 extracted_with_loopbacks:on 的 TCD 仅用于本地验证。
跨 Tile timing 紧张时插入;每一级成为 internal BScan cell,增加链长并必须进入 TCD/BSDL/Pattern。
GENERATED SDC · NON-MODAL CONSTRAINTS · LOOP TIMING
# 使用当前 insertion pass 生成的 SDC;不要直接手改生成文件
source ./tsdb_outdir/dft_inserted_designs/chip_top_rtl1.dft_inserted_design/chip_top.sdc
# 1. 初始化 Tessent 变量模板
tessent_set_default_variables
# 2. 如果项目功能时钟名与 Tessent 名不同,覆盖映射
set tessent_clock_mapping(CK_SYS) FUNC_CLK
# 3. 功能时钟通常由项目 SDC 创建;必要时才调用生成 proc
# tessent_create_functional_clocks
# 4. 应用 BoundaryScan non-modal 约束
tessent_set_non_modalTAP pin、内部 divider 或共享 test clock;定义周期、波形和不确定度。
确认 launch edge、pad delay、板级采样点和 ATE strobe。
TMS/TRST/mode/select 对 TCK 的 setup/hold 与异步处理。
最长 shift path、pipeline 数量、占空比和 crossing。
Tile 返回 TAP 的 scan_out 路径需要完整周期预算或显式 retiming 策略。
BoundaryScan non-modal constraints 与功能 SDC 时钟组、case analysis 不冲突。
source 生成 SDC → tessent_set_default_variables → 覆盖时钟映射/项目变量 → 创建或读取功能时钟 → tessent_set_non_modal → 报告未约束端点、例外覆盖和跨层接口 slack。
IEEE 1149.6 · AC-COUPLED · DIFFERENTIAL
装入输出极性、enable 与 AC select。
在规定更新/捕获窗口产生单次转换。
把短暂转换保存在可捕获状态。
捕获并串行读回接收结果。
PREEXISTING TAP · MULTIPLE TAP · BIST · BONDING
识别其 IR/DR/host interface;决定 Tessent BScan 是接入现有 HostBscan,还是与新 TAP 共享/串接端口。
明确 daisy 顺序、TMS/TCK/TRST 分发、TDO mux 与 reset 后默认路径;分别验证 IR/DR 长度。
用 TDR/ICL/PDL 连接控制和状态;多 pass 时保持 host interface、design_id 与 opcode 不冲突。
没有可编辑 RTL 时,可从可信第三方 BSDL 生成/验证 Pattern;无法替代对真实网表的结构证明。
把 BSR 分段用于内部 logic test,控制 max segment length,并在 BSDL/ATPG 中保持映射。
同一 die 不同 package 会改变 external port、pin map、bypass/enable;每个 bonding configuration 独立提取和签核。
DRC → STRUCTURE → PATTERN → TIMING → BOARD
pad/TAP/clock/reset/constraint 无 error,配置报告无意外默认值。
验证 TAP 状态、IR 长度、capture pattern 和 TDI/TDO 方向。
确认器件数、daisy 顺序、复位默认指令。
逐个验证 input/output/control/bidir capture/update。
运行完整生成 Pattern,按 unexpected/missing miscompare 分类。
加入真实延迟、pad 模型和 SDC 后回归。
chain discovery → interconnect → cluster,逐步接入外部器件。
run_testbench_simulations -report_list
run_testbench_simulations -select JtagBscanPatterns \
-store_simulation_waveforms on -wait
check_testbench_simulations -report_status
# 重点对齐:TAP state、active instruction、capture/shift/update、
# BSR cell number、TDI/TDO bit order、OE/control polarity 与 expected strobeIR/DR 长度、器件数、BYPASS bit、链序或 pipeline 漏算。
局部 scan stitch、TCD segment 顺序、cell number 或断链。
PRELOAD、update latch、OE control、safe value、pad test mux。
pad observation path、Capture-DR、clock/sample option 或 strobe。
name mapping、综合优化、库模型、SDC/时序或 test logic preserve。
BSDL pin map、package revision、板级链顺序、电源/总线冲突或 PCB 缺陷。
TESSENT SHELL REFERENCE 2026.1
set_context加载进入 DFT RTL/gate 工作上下文。
set_context dft -rtl [-design_id id]read_cell_library加载加载 pad、TAP、边扫与综合模型。
read_cell_library library.tcelllibread_verilog加载读取 RTL/gate 设计或接口模型。
read_verilog design.v [-interface_only]set_current_design加载确定当前顶层和相对层次。
set_current_design design_nameset_design_level规划声明当前设计边界。
set_design_level chip|physical_block|sub_blockset_dft_specification_requirements规划启用 BoundaryScan 插入或 BSDL/TCD 提取需求。
set_dft_specification_requirements -boundary_scan on [-design_type tile]set_attribute_value规划把实际端口标注成 TAP 功能。
set_attribute_value port -name function -value tck|tdi|tdo|tms|trstset_boundary_scan_port_options规划配置 sample/clock/observe 等端口单元策略。
set_boundary_scan_port_options ports -cell_options optionsread_def规划读取布局坐标,辅助自动生成贴合物理顺序的 pin order。
read_def design.defadd_input_constraints规划约束模式/隔离/宏控制输入,使 pad 宏在测试模式可用。
add_input_constraints value portscheck_design_rulesDRC执行当前 BoundaryScan DRC 并进入 analysis。
check_design_rulescreate_dft_specification插入基于需求创建 DftSpecification 配置树。
set spec [create_dft_specification]report_config_data插入报告 DFT/Pattern 配置内容。
report_config_data $specset_config_value插入在内存中修改 DftSpecification 属性。
set_config_value path -in $spec valueprocess_dft_specification插入验证并插入 TAP、BSR、接口与辅助逻辑。
process_dft_specification [-validate_only]extract_icl提取提取 ICL,并生成 BoundaryScan 相关 SDC。
extract_icl [-create_ijtag_graybox on]extract_sdc提取在 ICL 已就绪后单独生成 SDC。
extract_sdc [-output_file file]create_patterns_specificationPattern从设计/BSDL 创建 JtagBscan PatternsSpecification。
create_patterns_specification [-bsdl_files files]process_patterns_specificationPattern生成 BoundaryScan patterns 和 testbench。
process_patterns_specificationset_simulation_library_sources仿真声明 pad/macro/standard-cell 仿真模型。
set_simulation_library_sources -Y dirs -extensions {v} -V filesrun_testbench_simulations仿真运行 JtagBscan/ICL 等测试台。
run_testbench_simulations [-select name] [-store_simulation_waveforms on]check_testbench_simulations仿真汇总 pass/fail、unexpected/missing miscompare。
check_testbench_simulations [-report_status]write_design_import_script交付生成 DFT RTL 的综合导入脚本。
write_design_import_script file -format dc_shell|genus|fc_shellset_tsdb_output_directory交付设置当前 DFT/Pattern 数据仓库。
set_tsdb_output_directory pathprocess_top_module_connectionsTile预建 Tile DFT 端口并连接 Chip Top。
process_top_module_connections [-validate_only]add_loadboard_loopback_pairsTile独立 EBScan Tile 验证时闭合外部链。
add_loadboard_loopback_pairs -outputs {...} -inputs {...}set_flat_model_optionsTile让 flat model 模拟已声明 loopback。
set_flat_model_options -emulate_loadboard_loopback_pairs onrun_synthesis综合运行配置好的 BoundaryScan test logic synthesis。
run_synthesisSIGNOFF MATRIX · DELIVERABLES · OWNERSHIP
TAP ownership、instruction/opcode、BSR/segment chain order、层次接口与 reset strategy 已冻结。
pad/TAP/BScan cell 库、Verilog model、RTL/gate 和 package port list 版本一致。
每个输出网络有 safe data、OE disable、允许驱动器和退出模式定义。
DRC clean;DftSpecification 已审阅;inserted RTL、ICL/TCD、SDC、TSDB 可复现。
pin map、IR/opcode、REGISTER_ACCESS、BOUNDARY_LENGTH、cell/control/safe value 完成独立审计。
TCK/TDO/control、跨 Tile loop、pipeline、test mode SDC 与 post-layout STA 通过。
IR/BYPASS/IDCODE、cell operation、JtagBscanPatterns、gate/post-layout 仿真通过。
实板 chain discovery、IDCODE、BYPASS、SAMPLE、互连和安全退出 smoke test 通过。
design_id/pattern_id、工具版本、命令日志、报告、波形和已知限制归档。
QUICK GLOSSARY
本手册依据本地 Tessent BoundaryScan User’s Manual、Tessent Shell User’s Manual 与 Reference Manual 2026.1 整理。IEEE 标准原文和项目批准的库/封装文档仍是最终规范依据。