LEARNING SYSTEM / 2026从原理到签核

看懂一条扫描路径,
掌握一整套 IJTAG

这不是命令摘抄,而是一条从 IEEE 1687 心智模型出发,穿过 ICL、PDL、重定向、 网络插入/提取、验证与性能优化的完整学习路线,并补充 Tessent Shell 的通用数据模型、 DFT/TSDB/SDC 与 Tcl 工作方法。所有技术图均取自 D 盘 2026.1 原始资料。

ACCESSTAPTDI · TDO · TCK · TMS
01ICL结构
02PDL意图
03RTG求解
04PAT交付

“描述什么”与“如何访问”分离,是 IJTAG 可复用性的核心。

本地文档
797
完整章节
20
核心指令
54
原始技术图
12
如果你是 IJTAG 初学者01 → 02 → 03 → 04 → 05

先理解网络选通,再写 ICL/PDL 和重定向。

如果你做 Tessent DFT11 → 12 → 13 → 14 → 15

掌握数据模型、插入、TSDB、综合与签核。

如果你做 Pattern / Debug07 → 09 → 16 → 18

聚焦结构验证、带宽、Visualizer 与命令边界。

01

FOUNDATION · WHY IJTAG

先建立心智模型

IJTAG 的价值不只是“多一条扫描链”,而是把片上仪器的结构描述、操作过程和芯片级物理访问解耦。

一句话定义

IJTAG 是面向嵌入式仪器的标准化访问网络:用 ICL 描述“有哪些对象、怎样连接”, 用 PDL 描述“想对仪器做什么”,再由重定向器把仪器级意图转换为芯片级扫描序列。

核心抽象

IP 交付者不需要知道 IP 最终被放在芯片的第几层、前面有几个 SIB; SoC 集成人也不必重写每个仪器的测试过程。层次变化由 ICL 与重定向器吸收。

IJTAG 高层架构:顶层入口、层次网络与可复用仪器模型原图:Tessent IJTAG User’s Manual 2026.1 · Figure 1
维度IEEE 1149.1 / JTAG 侧重点IEEE 1687 / IJTAG 增强点
目标对象板级边界扫描、TAP 指令与数据寄存器芯片内部数量众多、层次化的嵌入式仪器
网络形态以 TAP 状态机和 DR/IR 扫描为核心可重构的分段网络,按需插入目标段
描述方式连接常依赖实现与工具约定ICL 给对象与端口明确语义,支持 DRC 和追踪
过程复用测试序列通常绑定具体层级/访问路径PDL 在仪器边界描述,由工具向更高层自动重定向
1描述

ICL 定义端口、寄存器、选择逻辑与层次连接。

2表达意图

PDL 只说读什么、写什么、调用哪个过程。

3求解路径

工具决定打开哪些 SIB、选哪条 ScanMux 路径。

4生成交付物

输出 PDL、仿真 testbench、STIL 或 ATE Pattern。

02

NETWORK ANATOMY

网络与访问机制

先会沿着 TDI 到 TDO 追踪一条路径,再去读 ICL。任何复杂网络都能还原成入口、选择、数据寄存器和仪器四类对象。

典型 IJTAG 网络:TAP、SIB、TDR 与返回扫描路径原图:Tessent IJTAG User’s Manual 2026.1 · Figure 3
01

芯片级入口

TAP

提供 TDI/TDO/TCK/TMS(可带 TRST),驱动 Capture/Shift/Update/Select 语义控制。
02

动态裁剪路径

SIB

关闭时旁路其子网;打开时把 hosted segment 插入活动扫描链。路径更短,但需维护正确选择状态。
03

控制与观测

TDR

串行移入配置值、并行驱动仪器;也可并行捕获仪器状态,再从扫描链移出。
04

多路径选择

ScanMux

根据 ScanRegister、SelectPort 或其他逻辑选择扫描源;重定向器会求一条合法且通常较短的路径。
05

最终目标

Instrument

可以是 MBIST、OCC、EDT、传感器、监控器,或任何有 ICL/PDL 模型的功能块。

一次典型扫描装载

Capture → Shift → Update

IEEE 1687 给端口赋予了操作语义和事件时序。以 ICL 中的 ceseue 为例,它们不是普通布尔线,而分别对应捕获、移位和更新阶段。

  1. 01Capture把仪器/寄存器状态捕获到扫描存储单元
  2. 02Shift沿当前活动路径移出旧值,同时移入新值
  3. 03Update将移入值提交到并行输出或选择控制
  4. 04ApplyPDL 侧由 iApply 触发整条序列的求解
03

STRUCTURE · ICL

ICL:把硬件说清楚

ICL 不是 Verilog 的替代品。它用受约束的语义模型描述“测试访问所需要知道的结构”,使工具能够做连接追踪、路径求解和严格 DRC。

一个完整的 8-bit 仪器模型

示例来自知识库中的 tdr1。扫描方向由范围声明决定:R[7:0] 从 R[7] 向 R[0] 移位,因此 si 隐式连接 R[7],so 的 Source 是 R[0]。

ICL · IEEE 1687
Module tdr1 {
  ScanInPort       si;
  ScanOutPort      so { Source R[0]; }
  SelectPort       en;
  ShiftEnPort      se;
  CaptureEnPort    ce;
  UpdateEnPort     ue;
  TCKPort          tck;

  ScanRegister R[7:0] {
    ScanInSource si;
  }
}

逐行读法

ScanInPort / ScanOutPort

定义串行数据边界;输出端必须声明 Source。

SelectPort

表示当前仪器或段是否被选入访问路径。

ShiftEn / CaptureEn / UpdateEn

把 TAP/上层控制映射为明确的协议阶段。

TCKPort

定义测试时钟语义;周期不在 ICL/PDL 中定义,而由应用与 Pattern 时序配置决定。

ScanRegister

定义可移位寄存器及其串行源、捕获源、复位值、别名等属性。

RULE 01

端口语义必须正确

ScanInPort 不能被普通 DataOutPort 随意驱动;语义错误会被 ICL DRC 捕获,而不只是“网表能连上”。

RULE 02

顶层名必须匹配

顶层 ICL Module 名应与对应 Verilog/VHDL 设计 Module 匹配;ICL 顶层端口也必须存在于设计中。

RULE 03

实例只声明输入连接

ICL Instance 的连接表列出“输入端口由谁驱动”;输出端在被下游输入或顶层 ScanOutPort 引用时建立关系。

RULE 04

模型要表达可求解意图

Alias、Enum、DataMux、DataRegister 等不是装饰,它们让重定向器知道地址、读写使能和返回路径。

进阶:ICL 中还要重点掌握什么?展开
  • ScanInterface:把一组端口明确关联为一个主机或客户端扫描接口,避免多接口 Module 出现歧义。
  • ResetPort / LocalResetPort:区分全局网络复位与局部、自清除、边沿触发复位;复位关系必须与寄存器 ResetValue 一致。
  • Alias + Enum:给位域增加业务语义,例如 mode、address、read/write 命令,让 PDL 不再依赖裸 bit 编号。
  • iApplyEndState:为一次 iApply 结束时指定自动返回值,常用于避免 ReadEnable 在最终捕获后再次触发读事务。
  • write_latency:写 ScanRegister 后自动插入指定数量的 RTI 空闲 TCK 周期,满足仪器内部动作等待。
04

INTENT · PDL

PDL:描述意图,让工具找路

PDL 在仪器 IO 边界定义操作过程。iProc 与 Module 绑定,iCall 与实例路径绑定,iApply 则把抽象读写变成当前层级的真实扫描活动。

PDL · instrument procedure
iProcsForModule tdr1

iProc write_data { value } {
  iNote "Writing '$value' to register R"
  iWrite R $value
  iApply
}

iProc read_data { value } {
  iNote "Expecting '$value' from register R"
  iRead R $value
  iApply
}

# 对层次实例调用
iCall Core3.Block1.MyTdr.write_data 0xff

重定向器队列模型

01
iWrite将“把目标寄存器写成某值”放入队列
02
iRead将“读取并期望某值/掩码”放入队列
03
iApply合并需求,设置选择位,求活动扫描路径并生成序列
04
Pattern把内部表示翻译为目标 testbench / STIL / ATE 格式
INSTRUMENT LEVELiWrite R 0xA5与物理位置无关的意图
RETARGET
CORE LEVEL打开 Core SIB + 选择实例层次 ICL 提供路径
RETARGET
CHIP LEVELTAP 状态 + TDI/TDO vectors可仿真、可上 ATE
最常见的误解

iApply 不是“简单执行前一条命令”。它会对当前排队的多次 iRead/iWrite 共同求解,可能需要先修改 SIB/ScanMux 控制位, 再进行一到多次扫描装载。因此把相互独立的 iCall 合并或并行时,要关注资源/路径冲突。

05

END-TO-END · RETARGETING

完整的 PDL 重定向流程

真正可执行的顺序是:建立上下文 → 读模型 → 选层级与时序 → 通过 DRC → 生成 Pattern 集 → 写出交付物。

基础 PDL Retargeting Flow原图:Tessent IJTAG User’s Manual 2026.1 · Figure 8
  1. 01
    上下文

    启动 Tessent Shell,进入 patterns -ijtag;setup 模式用于装载与配置。

  2. 02
    输入

    read_icl 建 ICL 层次;PDL 并非语法上强制,但实际流程通常通过 iProc 复用。

  3. 03
    层级

    set_current_design 决定 PDL 要重定向到哪一级。没有匹配顶层 ICL 时可触发 Extraction。

  4. 04
    时序

    定义 TCK、同步/异步 system clock、timeplate 与输入约束。ICL/PDL 本身不定义时钟周期。

  5. 05
    DRC

    切换 analysis 时执行最终检查。所有错误必须修复,不能 waiver。

  6. 06
    Pattern

    用 open/close_pattern_set 封装操作;write_patterns 翻译内部序列并输出目标格式。

MINIMUM VIABLE FLOW

把流程串起来

以下是学习用骨架,不是可直接套用的生产脚本。真实项目需补充库、网表、时钟、test_setup、输入约束与实际层次路径。

Tcl · Tessent Shell
tessent -shell
set_context patterns -ijtag

read_icl ./icl/tap.icl ./icl/sib.icl ./icl/tdr1.icl
dofile  ./pdl/tdr1.pdl

set_current_design chip
# 根据目标环境定义 TCK / system clocks / timeplate
set_system_mode analysis

open_pattern_set smoke_test
iCall Core3.Block1.MyTdr.write_data 0xff
iCall Core3.Block1.MyTdr.read_data  0xff
close_pattern_set

report_pattern_sets smoke_test
write_patterns ./patterns/smoke_test.v -verilog -replace
Retargeted PDL

便于检查高层操作语义和注释;HB-IJTAG payload 不能准确保存为 PDL。

Verilog testbench

用于对 HDL/门级设计做仿真,是网络结构与访问行为验证的常用交付物。

STIL / ATE

面向测试机或后续 Pattern 处理;具体格式与 timeplate/ATE 能力相关。

Reports

包含 Pattern set、扫描事件、对象层次、注释和失败定位所需的上下文。

06

IMPLEMENTATION · NETWORK

ICL 提取与 IJTAG 网络插入

Extraction 是“从已有设计找出网络并生成 ICL”;Insertion 是“按 DFT 规格把 SIB/TDR/ScanMux 等硬件加进设计”。方向相反,但常在同一交付流程中前后衔接。

A

EXISTING DESIGN → ICL

ICL Extraction

当只有仪器/SIB/TDR 等建筑块的 ICL,而没有描述它们互连的顶层 ICL 时,工具从扁平化网表追踪真实网络并生成缺失互连信息。

  • 匹配 ICL Module 与 Verilog Module 名称(支持匹配规则)。
  • 应用 test_setup、时钟与输入/内部约束后进行连接追踪。
  • 输出顶层/层次 ICL、可供 STA 的 SDC 与 graybox 等信息。
  • 生成结果立即可用于后续 PDL 重定向,无需重新读回再切 analysis。
Top-down跨层次生成一个扁平的互连 ICL Module
Bottom-up从叶子到顶层,每个层次生成对应 ICL Module
B

DFT SPEC → MODIFIED DESIGN

Network Insertion

在 dft 上下文读入 cell library、设计与仪器 ICL,通过 DftSpecification 连接现有仪器并插入 SIB、TDR、ScanMux,验证后修改 RTL/门级设计。

  • create_dft_specification 生成默认网络规格。
  • 可通过配置命令或 GUI 编辑规格、层次、主机接口与连接。
  • process_dft_specification 先验证,再生成和修改设计文件。
  • 处理后可直接 extract_icl 得到最终网络 ICL。
RTL上下文使用 dft -rtl,便于前期结构规划
Gate-level可用 -no_rtl,在综合后网表上完成插入
ICL Extraction:从设计与建筑块模型生成互连 ICL原图:Tessent IJTAG User’s Manual 2026.1 · Figure 23
IJTAG Network Insertion:从 DftSpecification 生成网络硬件原图:Tessent IJTAG User’s Manual 2026.1 · Figure 28
物理实现提示

载入 DEF 后,placement-aware stitching 会按节点坐标自动优化扫描链顺序,避免默认的字母顺序造成跨区域长连线。优先使用 scan-out pin 坐标;缺失时回退到 instance 坐标。

Placement-aware Stitching:减少不必要的跨区域扫描连线原图:Tessent IJTAG User’s Manual 2026.1 · Figure 29
07

SIGN-OFF · DEBUG

验证与调试:把网络问题和仪器问题分开

语法合法不等于网络正确。结构验证 Pattern 用 ICL 模型自动产生激励,并在 HDL 或硅上检查实际访问基础设施是否与模型一致。

01

静态语义

读入 ICL/PDL,先解决解析、宽度、端口语义、复位和 ScanInterface DRC。

02

连接抽取

用网表追踪或已知顶层 ICL确认路径、层次和实例匹配。

03

结构 Pattern

create_icl_verification_patterns 生成网络与仪器访问验证序列。

04

动态仿真

写出 Verilog testbench,与 RTL/门级 HDL 对照;观察 compare failure 与波形。

05

功能隔离

若结构 Pattern 通过而功能测试失败,把调试范围收敛到目标仪器本身。

推荐命令骨架

Tcl · structural verification
extract_icl
set_system_mode analysis
open_pattern_set pset
create_icl_verification_patterns
close_pattern_set
report_pattern_set
write_patterns patterns/check_network.v \
  -verilog -replace
DRC 原则

切换到 analysis 时执行最终检查。资料明确指出:IJTAG DRC 错误不能 waiver,必须全部修复。

结构验证示例设计:目标是证明每条选择与扫描路径都符合 ICL原图:Tessent IJTAG User’s Manual 2026.1 · Figure 37

失败定位决策树

仿真 / ATE 出现 mismatch
结构验证也失败

先查访问网络

  • ICL 与 HDL 的寄存器长度/位序是否一致
  • SIB、ScanMux 选择源与复位值是否一致
  • TAP/WTAP 指令、扫描接口和返回路径是否正确
  • TCK、控制信号、test_setup 和输入约束是否成立
结构验证通过

聚焦目标仪器

  • iProc 参数、预期值和 mask 是否正确
  • 仪器动作延迟、状态机和功能时钟是否满足
  • 是否需要 write_latency / RTI 等等待周期
  • 仪器模型与真实功能行为是否一致
08

PHYSICAL · PERFORMANCE

时序与性能:大网络为什么会慢

TCK、控制信号与扫描数据都可能跨越多级层次和长距离。IJTAG 的高频瓶颈通常不是逻辑功能,而是源同步路径上的时钟—数据/控制偏差与半周期 timing loop。

多层次长数据路径:扇出、缓冲与层次累计带来 skew原图:Tessent IJTAG User’s Manual 2026.1 · Figure 39

三个必须记住的约束

DATA|ΣDTCK − ΣDdata| < 0.5TTCK
CTRL|ΣDTCK − ΣDctrl| < 0.5TTCK
LOOPDTCK < 0.5TTCK

目标是让 TCK、数据和控制路径的传播差异在目标频率下保持小于半个周期。深层物理块应以高于芯片最终目标的 TCK 频率进行 block-level signoff,为顶层保留预算。

01

Clock-tree balancing

让 TAP 接到较早版本的 TCK,控制 TCK 与网络控制/数据路径的相对延迟。

02

Scan-input pipelining

在重载 SIB 内串入 1-bit TDR,按层次重同步数据并切断累计长路径;不改变原有网络拓扑。

03

SIB output retiming

对 timing-loop 中最后一级 SIB 谨慎关闭 so_retiming,可多获得约 0.5 TCK 的 setup 窗口。

04

Selective TCK stretching

主要拉伸 TAP 非 Shift 状态,为 TMS、reset、Capture/Update/Select 等重载控制信号增加多周期裕量。

Scan Input Pipelining:按层次重同步长数据路径原图:Tessent IJTAG User’s Manual 2026.1 · Figure 40
Selective TCK Stretching:只在需要的状态增加时序裕量原图:Tessent IJTAG User’s Manual 2026.1 · Figure 46
实现判断

先判断是 数据长路径扫描输出 timing loop 还是 控制/TMS 重载,再分别考虑 pipeline、so_retiming 或 TCK stretching。不要把所有问题都用“降频”掩盖。

09

SCALE · SIH · SSN · PROJECT ADOPTION

High-Bandwidth IJTAG:从普通 IJTAG/SSN 走向并行仪器访问

HB-IJTAG 不是另一套取代 IEEE 1687 的协议,而是 Tessent 利用现有 Streaming Scan Network(SSN)承载 IJTAG payload,并由 SSN IJTAG Host(SIH)在各物理分区生成本地 TCK 与控制信号。它保留普通 IJTAG 的全局配置入口,同时绕过冗长的上层串行路径,把大量访问并行送入多个 local IJTAG network。

FROM WHAT YOU ALREADY KNOW

把它理解成“SSN 高速公路上的 IJTAG 分发站”

你已经用过普通 IJTAG 与 SSN,可以用下面的映射快速建立直觉:普通 IJTAG 负责寻址、配置和兼容入口;SSN 提供宽总线、高频、流水化传输;SIH 则把 SSN payload 还原成某个物理区域里的 Capture、Shift、Update、Select、Reset 和本地 TCK。

GLOBAL IJTAG控制面

配置 SSN datapath 与 SIH;处理不支持 HB 的操作。

SSN BUS传输面

N−1 个数据 bit × 多个 phase,承载并行 payload。

SIH边缘主机

截获完整 host interface,产生本地 IJTAG 时序。

LOCAL IJTAG执行面

访问本地 SIB、TDR、MBIST/LBIST 与其他仪器。

HB-IJTAG over SSN:从单一串行入口扩展到多本地网络并行交付原图:Tessent IJTAG User’s Manual 2026.1 · Figure 56

三个访问模式

  1. 01
    Global IJTAG

    从顶层 IEEE 1687 接口访问完整网络;常用于配置 SIH。

  2. 02
    HB-IJTAG

    网络被拆成多个 local IJTAG network,经 SSN + 各自 SIH 并行承载大部分数据。

  3. 03
    Global operation in HB mode

    SIH 保持工作时访问未被 SIH 托管的 global 部分,常用于恢复 TAP/BYPASS 状态。

数据并行N − 1

SSN 总线 N 位中,N−1 位用于 IJTAG 数据,1 位用于控制信息。

Slotbit × phase

一个 slot 是总线 bit 与时分 phase 的组合;工具会为 SIH 自动分配或共享 slot。

模式选择automatic

重定向引擎根据 iApply 的访问需求自动判断使用 global、HB 或 HB 内 global 操作。

正式交付Verilog / STIL

HB payload 无法被普通 PDL 准确表达;PDL 仅用于人工调试,正式 Pattern 使用 Verilog testbench 或 STIL。

THREE METHODS · ONE DESIGN

普通 IJTAG、传统 SSN 与 HB-IJTAG 到底差在哪里

它们不是简单的“旧/新替代关系”。实际芯片通常三者共存,由访问对象、Pattern 类型和当前网络状态决定使用哪一条路径。

比较项普通 Global IJTAGSSN + SSHHB-IJTAG + SIH
主要任务访问 ICL/PDL 仪器与控制寄存器传递 scan/ATPG load-unload payload通过 SSN 高速访问多个 local IJTAG network
数据路径TAP/SIB/TDR 串行穿过完整全局网络宽 SSN bus 流向 ScanHost 与 scan chainSSN slot 流向 SIH,再转为本地 Capture/Shift/Update
吞吐特征路径越深、打开 segment 越多,scan load 越长高带宽、流水化,面向逻辑测试N−1 数据位并行多个 SIH;受 slot、最长 local chain 与 padding 限制
时序收敛全局 TCK 与控制树跨层传播,长路径明显SSN bus/SSH 有自己的 shift 与 capture 时序SIH 从 SSN bus clock 生成本地 TCK,控制树被局部化
Pattern 交付PDL 可读、可继续重定向,也可输出 tester 格式按 SSN/ATPG 流程交付最终使用 Verilog testbench 或 STIL;PDL 仅供阅读/调试
额外代价结构简单、兼容面广,但大规模数据慢需要 SSN/SSH 基础设施增加 SIH、完整 host interface、SDC/CDC、规划和 IJTAG Pro 许可要求
最适合低频配置、少量寄存器、fallback 与不支持 HB 的操作scan ATPG 大批量装载/卸载多 block MBIST/LBIST setup、状态采集、并行仪器控制与制造测试准备

FIRST-ORDER CAPACITY MODEL

可并行 slot 数 ≈(N − 1)× fSSN / fSIH_TCK

若 SSN 为 32-bit、400 MHz,本地 IJTAG TCK 为 200 MHz,则数据位为 31、每个 TCK 含 2 个 SSN phase,理论最多得到 62 个 slot。SIH 多于 slot 时,工具会让多个 SIH 共享 slot;少于 slot 时,总线没有被充分利用。

提高本地 TCK单网更快

但 fSSN/fSIH_TCK 变小,可用 phase/slot 减少,可能降低并行度。

增加 SIH并行更高

只有 local chain 规模接近、能同时工作时才会转化为有效吞吐。

扩大 SSN busslot 更多

同时增加布线、端口、pipeline、物理实现与 tester 资源成本。

层次化 HB-IJTAG:蓝色 SSN/SIH 与绿色 IJTAG 网络协同原图:Tessent IJTAG User’s Manual 2026.1 · Figure 57

REAL PROJECT · SEVEN GATES

在实际工程中怎样落地

最稳妥的做法不是直接把全芯片 IJTAG 都切到 HB,而是选择 2–4 个访问量大、边界清楚、规模接近的 physical block 做 pilot,用同一组 iProc 对普通 IJTAG 与 HB-IJTAG 做 A/B Pattern 对比。

  1. 01
    确认值得做:先量化普通 IJTAG 的瓶颈

    统计目标 Pattern 的 scan load、TCK/tester cycles、最长打开路径、重复执行次数与生产测试占比。若只是偶尔写几十位控制寄存器,SIH 配置和模式切换成本可能大于收益;若多个 block 反复装载 MBIST/LBIST setup 或采集大量状态,HB 才更有价值。

    输出:baseline Pattern 与测试时间构成。
  2. 02
    划分 local network:优先按 physical block

    通常从“每个 physical-block level 一个 SIH”起步。每个 local network 应自包含,不能依赖另一个 local network 的可变寄存器、side input 或 side output;否则工具可能频繁退回 global IJTAG,甚至出现顺序相关仿真问题。

    输出:SIH ↔ local ICL register ownership 表。
  3. 03
    做容量与平衡:同时考虑 slot 和 chain length

    用 SSN bus width、bus period 与目标 local TCK 估算 slot;再统计各 SIH 下典型 scan load 长度。多个 SIH 共用 TMS,packet 内 scan load 长度需要协调,极大的 local network 会迫使其他 SIH overshift padding。

    输出:slot budget、每 SIH p50/p95 scan length 与 padding 风险。
  4. 04
    准备完整 host interface,再插入 SIH

    SIH 必须截获包含 ScanIn、ScanOut、CaptureEn、ShiftEn、UpdateEn、Select、Reset、TCK 的完整 host scan interface。分两轮插入时,第一轮 SIB/TAP 需要 provide_full_host_scan_interface : on,第二轮再把 SIH 放到 SSN datapath;若同一轮插入,工具可自动启用。

    输出:DFT specification、插入后 ICL/RTL、HB-IJTAG DRC。
  5. 05
    统一 Pattern 与 SDC 的时序来源

    全局 TCK 与 SIH 本地 TCK 是两套预算。把 set_ijtag_retargeting_optionsset_load_unload_timing_options 放在 side file 中,在 Tessent setup/DRC 前和综合/STA 的默认变量之后 source 同一版本。

    输出:timing side files、Tessent SDC、CDC/STA 报告。
  6. 06
    确保 SSN datapath 先配置,再执行 HB iCall

    有分支或 mux 的 SSN 必须先选择覆盖所有目标 SIH 的 active datapath。配置 iProc 应放在 test_setup 最前;core-level TCD 中标记 -front -non_retargetable,到 top-level 重新加入完整 datapath 配置。

    输出:test_setup 顺序、active SIH 清单、smoke Pattern。
  7. 07
    用统计而不是直觉签核

    在 SIH 初始化后检查 active hosts、HB packet、utilization、global fallback 次数、padding、slot mapping 与 event 顺序;再做 RTL/gate/post-layout 仿真。只有功能等价、时序闭合且总 tester cycles 明显下降,才扩大部署。

    输出:Global vs HB A/B 报告及量产交付包。

A · INSERTION

在已有 SSN 上增加 SIH

IjtagHost 是 SIH 的 DftSpecification wrapper。示例截获当前设计边界的完整 IJTAG host interface;已有 SSH 可以共存,但 HB-IJTAG 本身不要求必须有 SSH。

Tessent DftSpecification
# DftSpecification 摘要:在现有 SSN datapath 上插入 SIH
# 前一 insertion pass 必须已经提供完整 IJTAG host scan interface
SSN {
  ijtag_host_interface : Sib(ssn);
  DataPath(1) {
    output_bus_width : 8;
    Pipeline(1) {}

    IjtagHost(1) {
      Connections {
        intercepted_scan_interface : CurrentDesign/my_ijtag_int;
      }
    }

    # 已有 SSN scan 架构时可继续保留 SSH;HB-IJTAG 本身不强制要求 SSH
    ScanHost(1) {}
    Receiver1xPipeline(in) {}
  }
}

B · TIMING SIDE FILE

一份设置同时服务 Pattern 与 STA

本地 TCK 周期和额外控制裕量受所有 active SIH 中能力最弱的节点限制。示例参数不能直接照搬,应从 SSN clock、SIH 属性、物理实现与 tester timeplate 共同推导。

Tessent Shell / SDC shared settings
# Tessent_SSN_and_HB-IJTAG_setup.tcl
# 数值仅为示例:必须由项目 STA/ATE 预算确定
set_ijtag_retargeting_options \
  -hb_ijtag_initial_ssn_bus_flush on \
  -hb_ijtag_extra_control_setup_hold_cycles 2 \
  -hb_ijtag_tck_period 5ns

set_tester_options -timeplate_constraints none

set_load_unload_timing_options -usage ssn \
  -shift_clock_period 10ns \
  -ssn_bus_clock_period 2.5ns \
  -scan_en_setup_extra_cycles 1 \
  -scan_en_hold_extra_cycles 1 \
  -edt_update_setup_extra_cycles 1 \
  -edt_update_hold_extra_cycles 1

C · PATTERN & EVIDENCE

让 HB 自动启用,并留下可审阅证据

满足“SIH 已插入、位于 active SSN datapath、HB 可用”后,重定向器会自动选择 HB。查询必须放在 SIH 初始化之后,否则看到的 active 状态和参数可能过期。

Tessent Shell / HB-IJTAG pilot
set_context patterns -ijtag
# read design / ICL / PDL, then set_current_design

# SETUP:在 DRC 和 test_setup retargeting 之前加载同版 timing side files
source ../data/Tessent_IJTAG_setup.tcl
source ../data/Tessent_SSN_and_HB-IJTAG_setup.tcl
check_design_rules

# SSN 有分支或 mux 时:datapath 配置必须是 test_setup 的第一个 iCall
set_test_setup_icall -front configure_required_ssn_datapath

open_pattern_set hb_smoke
iCall blockA.mbist.run
iCall blockB.mbist.run
close_pattern_set -network_end_state keep

# SIH 初始化完成后再看实际活动节点、切换次数、padding 与利用率
report_hb_ijtag_data -active_ssn_ijtag_hosts -pattern_set hb_smoke
report_hb_ijtag_data -statistics -pattern_set hb_smoke
set events [get_pattern_set_data hb_smoke -event_list]
puts $events

# 交付使用 Verilog testbench 或 STIL;PDL 仅用于阅读/调试,不可再重定向

WHY IT WINS

相对传统方法的优势

  • 跳过全局串行开销

    payload 直接送达 local network,不必让每次 scan load 都穿过上层 TAP/SIB 长路径。

  • 多 local network 并行

    SSN 的宽度和 phase 被转换成多个 slot,可同时服务多个 SIH。

  • 更容易关闭本地时序

    SIH 在物理区域内产生 TCK 与控制信号,减少全芯片 IJTAG 控制树的长度与扇出。

  • 保留 global fallback

    不支持 HB 的操作仍可由工具在 HB 内 global operation 或完整 global IJTAG 中执行。

  • 复用现有 SSN

    已有 SSN 总线、pipeline 和端口规划时,可以增加 SIH 承载 IJTAG,不必另建一条同等宽度的数据网络。

WHAT YOU PAY

复杂度与代价

  • 额外硬件与接口

    SIH、完整 host interface、局部 clock/control mux 与必要 pipeline 都增加面积和物理约束。

  • 两套时钟与 CDC

    global TCK 用于 SIH 配置,本地 TCK 来自 SSN bus clock;切换、互斥与 MCP/false path 必须由生成 SDC 正确表达。

  • 架构规划更敏感

    local network 依赖、SIH 数量、chain 不平衡或 SSN mux 都会直接影响效率。

  • Pattern 可移植性下降

    最终 HB payload 不能用可再次重定向的普通 PDL 表达,也不支持 SVF 交付。

  • 工具与许可门槛

    生成 HB-IJTAG Pattern 需要有效的 IJTAG Pro 许可,并应锁定 Tessent 版本、Reference 选项和 tester 支持范围。

FAILURE PREVENTION

最容易踩坑的地方

以下问题不一定让命令直接失败,但会使 Pattern 静默退回 global、利用率骤降,或在门级/ATE 阶段才暴露。

01LOCAL NETWORK CROSSING

一个 SIH 下的寄存器影响另一个 local network,或受 primary/global 可变信号驱动。优先重新分区;不要把 HB_IJTAG3/7 降级后就当问题消失。

02FULL INTERFACE MISSING

只有 ScanIn/Select 的默认 host interface 不够。SIH 需要八类 IJTAG 信号都有干净的截获点,分轮插入时尤其容易遗漏。

03UNBALANCED CHAINS

少量超大 core 与大量小 network 混在同一批次会产生长时间 overshift。按 scan load 统计重新拆分或改变并行批次。

04TOO MANY MODE SWITCHES

iReset、iScan、iApply -end_in_pause、manual broadcast、boundary scan、SVF 导入等会退出 HB。检查 statistics 中 global operation 与切换次数。

05RESET ASSUMPTION

SIH/local network 不能被 local network 外部的局部 reset 直接复位;局部网络内部必须生成其 local reset。SSN 元件无可靠 reset 时要先 flush。

06CLOCK SETTINGS DRIFT

Pattern、综合、STA、layout 使用不同 hb_ijtag_tck_period 或 SSN bus period,会造成仿真通过但时序不成立。side file 必须版本化并同源。

07STRICT ORDER OVERUSE

跨 local network 的隐式依赖可用 hb_ijtag_iapply_execution_order strict 加 padding 保序,但会损害性能;根治方案是去掉跨网依赖并正确建模。

08WRONG OUTPUT FORMAT

HB PDL 只用于人工阅读和调试,不能重新读入重定向;正式交付用 Verilog testbench 或 STIL,且 HB Pattern 不写 SVF。

ADVANCED · PERSISTENT MODE

什么时候考虑让 SIH 跨 Pattern 保持激活

Persistent HB-IJTAG 可减少 test_setup、ssn_setup、ssn_end、test_end 之间反复关闭和重新初始化 SIH 的成本。SSN ATPG payload 运行时,SIH 进入 sleep;之后可恢复 HB,而不用重新走完整配置。

  • 前提

    所有 active SIH/SSH 都支持 persistent mode,并使用相同 bus width。

  • 拓扑限制

    active host 之间不能存在 bus permutation;只允许在第一个 active host 之前或最后一个之后。

  • 配置入口

    -test_setup_network_end_state reset_with_hb_ijtag_active,test_end 使用 reset_all;默认 auto 让工具判断。

  • 不要启用的场景

    SSN retention、burn-in、LVX loop/verification,以及不满足 DRC 的拓扑应关闭 persistent mode。

DEBUG & OPTIMIZATION LOOP

一个可重复的调优闭环

  1. 01确认覆盖

    get_hb_ijtag_data -ssn_ijtag_hosts:哪些 SIH 存在、哪些寄存器应由它们驱动。

  2. 02确认激活

    report_hb_ijtag_data -active_ssn_ijtag_hosts:目标 SIH 是否在当前 Pattern 中真正活动。

  3. 03量化收益

    -statistics:HB/global cycles、packet、利用率、切换次数和 strict-order padding。

  4. 04下钻 packet

    get_pattern_set_data:查看 event、SIH scan、slot、chain length 与 padding。

  5. 05对应结构

    把低利用率映射到 local chain 不平衡、slot 共享、SSN datapath 或 unsupported operation。

  6. 06A/B 回归

    同一 iProc 集合分别关闭/启用 HB,比较功能、cycles、仿真、STA、面积和 tester 交付。

适合优先导入

满足这些条件,收益通常更确定

  • 已经有稳定的 SSN bus 与时钟/物理实现方法
  • 多个 physical block 都有大量、重复的 IJTAG 访问
  • local network 可以独立、自包含并做到规模近似
  • global IJTAG 的 cycles 或 TCK closure 已成为量产瓶颈
  • 交付链支持 Verilog/STIL,且可使用 IJTAG Pro
先保留传统方法

这些情况不应为了“新”而上 HB

  • IJTAG 主要用于少量一次性配置,payload 很小
  • local network 之间存在大量动态依赖或共享控制
  • SSN datapath 经常重配置,目标 SIH 无法同时保持 active
  • 流程必须以可重定向 PDL 或 SVF 作为正式交付
  • 项目尚未稳定普通 IJTAG/SSN 的 DRC、SDC 与仿真闭环

本专题依据本地知识库中的 Tessent IJTAG User’s Manual 2026.1:High-Bandwidth IJTAG、SIH、DFT Insertion、Pattern Generation、Planning、Timing/SDC 与 Limitations 章节,以及 Tessent Shell Reference 的 HB introspection 指令整理。

规划重点

HB-IJTAG 最高效率来自多个 SIH 同时接收数据。所有 SIH 共享 TMS,且扫描装载长度需要协调;若少数本地网络远大于其他网络,会出现 padding 与利用率下降。还要避免频繁切回 Global IJTAG,因为重新配置 SIH 的开销很大。

10

PRACTICE · DELIVERY

从零到可交付:一套可执行的学习与项目检查表

先用最小网络证明模型、访问和验证闭环,再扩展到层次化插入与性能优化。每一步都应该产生可检查的中间结果。

WEEK 01模型与最小闭环
  • 画出 TAP → SIB → TDR → Instrument → TDO 的路径。
  • 手写一个 8-bit TDR ICL,确认端口语义与位移方向。
  • 编写 write_data / read_data iProc,并在单实例上 iCall。
  • 生成第一个 Verilog testbench,在波形中识别 Capture/Shift/Update。

验收:能解释为什么一次 iApply 可能包含多次 scan load。

WEEK 02层次与实现流程
  • 把同一仪器实例化到两级层次,比较 instrument/core/chip 重定向结果。
  • 分别做 top-down 与 bottom-up extraction,理解 Module matching。
  • 用 DftSpecification 插入 SIB/TDR,并检查生成的 ICL/Verilog。
  • 运行 ICL verification patterns,故意制造宽度或连线错误并定位。

验收:能区分“ICL 描述错”和“真实网表连错”。

WEEK 03签核与规模化
  • 为 TCK、控制和数据路径建立半周期时序预算。
  • 识别长数据路径、SIB timing loop 与重载控制信号。
  • 比较 pipeline、so_retiming、TCK stretching 的适用场景。
  • 评估 HB-IJTAG 的 SIH 分区、slot 平衡和 Global/HB 切换开销。

验收:能把吞吐问题归因到网络架构或物理时序,而不是只会降频。

PROJECT GATE

项目交付前逐项确认

  • 每个 instrument Module 的 ICL/PDL 都有版本与接口契约
  • 顶层 ICL Module 名与 current design 匹配
  • ScanInterface、复位、位宽、位序和默认值无歧义
  • setup → analysis 过程中所有 IJTAG DRC 清零
  • Pattern set 中包含明确的 iReset / 初始化策略
  • 结构验证 testbench 在 RTL/门级视图通过
  • ICL extraction 约束与重定向/ATPG setup 兼容
  • block/chip TCK 频率与半周期预算完成签核
  • placement-aware 连接与物理坐标已检查
  • 最终 PDL、testbench、STIL/ATE 与 reports 可追溯

高频错误与纠正

01把 ICL 当网表抄

ICL 需要表达端口语义与可求解结构;只复制连线而忽略 Select/Reset/ScanInterface 会导致歧义或 DRC。

02只验证功能 iProc

功能用例覆盖通常不足,先生成结构验证 Pattern,证明每段网络和寄存器都可从外部访问。

03忽略 current_design

它决定重定向目标层级,也参与是否自动触发 ICL Extraction 的判断。

04把所有 iCall 随意并行

多个调用可能争用选择位、路径或共享寄存器;应检查 iMerge 冲突与生成序列。

05ICL/PDL 里找频率

标准模型给语义和事件关系,时钟周期来自 Tessent/Pattern/ATE 的时序与 timeplate 配置。

06性能问题只降 TCK

先用路径与 timing loop 分类,再选 pipeline、retiming、stretching、placement 或 HB-IJTAG。

11

TESSENT SHELL USER’S MANUAL · SYSTEM VIEW

Tessent Shell:先理解工具的整体工作模型

本章依据 Tessent Shell User’s Manual 2026.1,而不是 IJTAG 专册。它把工具调用、context/mode/design level、三种数据模型、Tcl 自省、RTL DFT 插入、层次化流程、TSDB 与 SDC 串成一张完整地图,再把 IJTAG 放回这套大系统中理解。

SCOPE 01

Shell 是统一 DFT 环境,不是单一 IJTAG 工具

Tessent Shell 同一环境承载 DFT 硬件插入、制造测试 Pattern 生成,以及诊断、良率分析等 post-silicon 任务。不同产品能力通过 context 暴露,但脚本、数据对象、属性和 Tcl 交互方式保持一致。

  • 把“产品功能”与“共同 Shell 机制”分开学习。
  • 先确认许可证/context,再判断命令是否应该可用。
  • 用 dofile 与 Tcl proc 固化项目流程,而不是依赖手工会话。
STATE 02

任何命令都落在三轴坐标中

Context 决定当前要做哪类工作,system mode 表示设计处于 setup、insertion 或 analysis 哪个状态,design level 则说明当前处理的是 chip、physical block 等交付层级。

  • setup:加载库、RTL/网表、ICL、约束与配置。
  • analysis:完成相应 DRC 后进行分析、建规范或生成 Pattern。
  • insertion:执行会改变设计结构的插入工作;并非每个 context 都使用全部 mode。
DATA 03

三种数据模型回答不同问题

Hierarchical design model 保留模块与实例边界;flat design model 服务需要扁平连通性的 DRC/分析;ICL model 描述 IEEE 1687 仪器网络的逻辑端口、寄存器、复用和访问关系。

  • “设计里有什么”由 module/instance/port/pin/net 回答。
  • “IJTAG 如何访问”由 ICL Module/instance/port/pin 回答。
  • 同名或相关对象并不天然等价,需要显式映射和 name mapping。
TCL 04

Collection 与属性是自动化的核心

get_* 命令返回 collection,让大规模对象筛选和关系计算留在工具后端;Tcl 负责组合条件、循环、命名空间与流程控制。get/set_attribute_value 则把对象状态变成可查询、可编辑的工程接口。

  • 优先传 collection,不要解析 report 文本。
  • 复杂查询使用 -filter、-of_* 与层次边界缩小范围。
  • catch_output 只用于已设计好失败分支的局部命令。
FLOW 05

Flat 与 hierarchical 是两种组织方法

Flat flow 通常沿“DFT 插入 → 综合 → 可选 scan insertion → gate-level ATPG”推进。Hierarchical flow 以 physical block 分治,通常先 top-down 规划接口与架构,再从最低层 block bottom-up 实现、验证和向上集成。

  • 层次化可并行开发、局部 ECO,并缩小 ATPG/诊断问题规模。
  • 上层不能只拿 child RTL;还要拿接口视图、ICL/PDL、graybox 与版本标识。
  • tiled、post-layout、automotive 与 SSN 工作流都建立在同一数据/交付思想上。
TSDB 06

TSDB 是跨步骤的数据契约

TSDB 以 design_name、design_id、pattern_id 和 view 组织修改后的 RTL/网表、ICL/PDL/TCD、接口或 graybox、Pattern 数据库与脚本。它让后续 pass、团队和上层设计重新打开正确版本,而不是猜测一组散落文件。

  • rtl1、rtl2、gate 等 design_id 表示不同处理阶段或视图。
  • open_tsdb 暴露仓库;read_design 选择 full/interface/scan_graybox/ijtag_graybox。
  • 上层集成多个 child TSDB 时,必须处理重复视图与优先级告警。

TESSENT SHELL OPERATING MODEL

从启动到可复用交付的八个证据点

User Guide 的主线不是背命令,而是在每个状态转换前后确认:当前环境、数据模型、设计视图与输出版本是否一致。

  1. 01
    启动与脚本入口tessent -shell · dofile · .tool_startup

    证据:版本、参数、许可证与启动初始化可追溯。

  2. 02
    定义工作坐标set_context · set_design_level · set_tsdb_output_directory

    证据:context、RTL/gate 层级、设计层级与输出仓库明确。

  3. 03
    加载源数据read_cell_library · read_verilog/read_vhdl · read_icl

    证据:库、HDL、ICL 版本和读取顺序被记录。

  4. 04
    建立当前设计set_current_design · set_design_sources

    证据:top、Module matching 与 child 定义来源一致。

  5. 05
    对象自省与 DRCget_* · get_attribute_value_list · check_design_rules

    证据:关键对象/属性存在,DRC 无 error 并进入 analysis。

  6. 06
    声明并处理 DFTcreate_dft_specification · process_dft_specification

    证据:wrapper 配置、validate_only 结果、插入 transcript 与修改设计可评审。

  7. 07
    提取下游契约extract_icl · extract_sdc · write_design_import_script

    证据:ICL、IJTAG graybox、SDC 与综合导入脚本成套且同版。

  8. 08
    跨层次复用open_tsdb · read_design · write_tsdb_data

    证据:design_id/view/pattern_id 唯一,child 与 top 使用同一版本矩阵。

ICL 对象与设计对象如何双向定位?

ICL → design:get_module -of_icl_moduleget_instance -of_icl_instanceget_pins -of_icl_pinsget_ports -of_icl_ports。这些映射用于从抽象访问网络回到真实设计结构。

design → ICL:get_icl_module -of_moduleget_icl_instance -of_instanceget_icl_pins -of_pinsget_icl_ports -of_ports。遇到复杂端口、转义名称或综合改名时,要同时核查 name mapping,不能只比较字符串。

USER GUIDE · RTL DFT SKELETON

把状态、数据与交付放进同一条流程

示例用于理解命令顺序和证据边界,不代表所有产品配置;DftSpecification 的具体内容仍应按目标 DFT IP 与项目架构定制。

Tessent Shell / Tcl
# Tessent Shell:一个可审查的 RTL DFT 骨架
set_context dft -rtl
set_tsdb_output_directory ./tsdb_outdir

# 1) 建立库与设计数据模型
read_cell_library ./lib/technology.tcelllib
read_verilog ./rtl/chip_top.sv -format sv2012
set_current_design chip_top

# 2) DRC 通过后进入 analysis
check_design_rules

# 3) 创建、验证并处理 DFT 规范
set spec [create_dft_specification]
process_dft_specification $spec -validate_only
process_dft_specification $spec

# 4) 生成下游交付并保存在 TSDB 语境中
extract_icl
extract_sdc
write_design_import_script ./out/chip_top.dc.tcl   -format dc_shell -replace
12

DESIGN INTROSPECTION · EDITING · MAPPING

设计自省与编辑:让脚本操作对象,而不是文本

Tessent Shell 的通用能力建立在 object、collection、attribute 与对象关系之上。本章对应 User’s Manual 的 Design Introspection and Editing、Simulation Contexts、Automatic Design Mapping,以及 ICL/Design 对象互查。

12.1

Object specification

命令接收的 object specification 可以是名称模式、已有 collection 或其他对象关系查询的结果。名称只负责找到候选对象;对象类型、current design、层次范围和过滤条件共同决定最终集合。

  • 先缩小对象类型,再用 -of_* 表达结构关系。
  • 大设计使用 -filter 与明确层次边界,避免无目的全局遍历。
  • 转义层次名、复杂 SystemVerilog port 和综合改名必须按 Tcl list 与 name mapping 规则处理。
12.2

Collection 与属性

collection 是工具后端中的对象容器,不是普通的打印字符串。把 collection 继续传给 get_*、trace、编辑和属性命令,能够保留对象身份并减少 Tcl 与内核之间的数据搬运。

  • get_attribute_value_list 按对象顺序返回 Tcl list。
  • set_attribute_value 返回修改成功的对象 collection。
  • 使用 -is_specified 区分显式值与默认/推导值;不要把“当前显示值”误当成用户约束。
12.3

Design editing

设计编辑命令可创建、删除或移动连接,替换实例并处理复杂 signal/bundle。编辑前必须确认当前对象可编辑、数据模型正确,并理解该修改会在 DftSpecification 处理、写出设计和 TSDB 中怎样落盘。

  • 连接编辑:create_connections、delete_connections、move_connections。
  • 结构编辑:create_instance、replace_instances 与属性控制。
  • 复杂 pad、interface、struct/array 端口应优先使用 wrapper/specification 所提供的结构化入口。
12.4

Mapping 与 simulation context

Automatic Design Mapping 用于在综合前后更新 ICL/TCD 对象并控制名称匹配;simulation context 则让同一设计在不同模式、约束或模拟状态下进行自省与分析。两者都要求把“逻辑对象身份”与“某个视图中的名字”分开。

  • post-synthesis update 前保存 RTL→gate 的映射依据。
  • 复杂 port 和 escaped name 不能只靠字符串相等。
  • ICL 与 design 对象用 -of_icl_* / -of_* 双向查询验证。
Tessent Shell / Tcl
# collection 留在工具数据模型中,不解析 report 文本
set cores [get_instances -hierarchical -filter {is_physical_block == true}]
set core_ports [get_ports -of_instances $cores]

# 批量读取属性;返回顺序与输入对象一致
set names  [get_name_list $cores]
set levels [get_attribute_value_list $cores -name design_level]

# ICL 与真实设计对象双向映射
set ijtag_inst [get_icl_instance -of_instance [get_instances u_mbist]]
set rtl_inst   [get_instance -of_icl_instance $ijtag_inst]

# 只有可编辑对象和合法属性才应被修改
set_attribute_value $rtl_inst -name preserve -value true
13

DFT ARCHITECTURE · RTL INSERTION · WORKFLOWS

DFT 架构与工作流:从 flat 到 hierarchy、tile 与 post-layout

User’s Manual 将工作流按设计组织方式和生命周期展开。完整版不把它们混成一条固定脚本,而是先确定架构边界,再选择适合 flat、hierarchical、tiled、automotive 或 SSN 的实现路径。

FLAT

单一顶层推进

第一轮 MemoryBIST/Boundary Scan → 第二轮 EDT/OCC/LBIST → synthesis → scan insertion → gate ATPG

规模可控、边界少;但大设计运行时间和 ECO 影响范围更大。
HIER

physical block 分治

先 top-down 规划 clock/resource/schedule,再 bottom-up 完成 block 插入、graybox、ATPG 与 top retarget

并行开发和局部 ECO 友好;接口、wrapper、design_id 与交付矩阵必须严格。
TILED

重复 tile 复用

统一 tile 端口与 clocking,生成 IJTAG graybox,完成 tile pattern 后在 chip/package 层 retarget

复用效率高;有/无 TAP、BISR、primary SSN port 的 tile 流程不同。
POST

布局后签核

soft-link TSDB + post-layout netlist,重验 MemoryBIST、Boundary Scan、IJTAG 与 scan-inserted ATPG

验证布局/优化没有破坏 DFT 连通、时序和 Pattern 行为。
AUTO

汽车级扩展

core/top 两轮插入、scan/ATPG/retarget、LogicBIST、UDFM、pattern sorting 与 functional-mode tolerance

面向更强的安全、在系统测试和故障模型要求。
SSN

流式扫描网络

block/top SSN 插入、综合、post-synth TSDB、scan、ICL pattern 验证、ATPG 与 retarget

高带宽与并行调度;还要签核 throttling、clock、SDC、ATE debug 与 failure mapping。
13.1

先规划,再 bottom-up

层次 DFT 的 top-down 规划要提前定义 physical region、wrapped core 边界、internal/external mode、OCC/clock 架构、可用资源和并行测试调度。否则 block 完成后,上层可能发现端口、时钟或带宽无法拼合。

13.2

RTL DFT 分析与插入

RTL 阶段除常规 DRC 外,还可评估代码复杂度、test-point suitability、可编辑区域与 gate-node location;随后执行 test point、X-bounding、wrapper、smart uniquification 或 incremental insertion。评分是定位风险的线索,不替代对具体 RTL 与约束的审阅。

13.3

多轮插入的边界

典型流程把 MemoryBIST/Boundary Scan/IJTAG 与 EDT/OCC/LogicBIST 分在不同 pass,并可能再增加 RTL test point/wrapper pass。每轮都应从明确的输入 design_id 开始,产生新的设计视图、ICL/SDC 和可回归验证的交付。

TILED EBSCAN · PASS-THROUGH TILE · TCD_BSCAN

Tile 边扫穿越非边扫模块:你的模块到底要做什么

适用场景:当前 Tile 不做普通边界扫描、没有 IP 级 BScan cell,但相邻 Tile 的 Embedded Boundary Scan 必须穿过当前 Tile,到达 Chip Top 的 TAP。依据 Tessent BoundaryScan 与 Tessent Shell User’s Manual 2026.1 的中间 Tile 流程。

13.4 · 工程专题
结论先行

不要在你的功能输入/输出上插边界扫描单元;要把本模块实现为一个可提取、可验证、可签核的 EBScan 传输/拼接节点。TAP 侧使用一个主 HostBScanInterface(client),每个相邻 EBScan Tile 使用一个 SecondaryEBScanInterface(id),长距离往返路径按时序需要插入 EBScanPipeline。真实端口与连接必须在 Chip Top 规划阶段预建。

上游Chip Top / TAP Tile产生 BScan 控制与串行输入
接收最终 scan_out
你的模块中间 TileHostBScanInterface
SecondaryEBScanInterface
可选 Pipeline
下游相邻 EBScan Tile真正包含 pad / wrapper
与 Boundary Scan cell
串行数据返回TAP scan_out ← 当前 Tile 主 scan_out ← 相邻 Tile scan_out
前向不是只有 TDI:select、reset、BScan clock、capture_en、shift_en、update_en 与 scan_in 必须成套到达下游;force_disable、JTAG 选择和 AC test 信号按项目启用。
不需要做

普通边扫 cell

不扫描当前模块功能端口,不为这些端口建立 input/output/control cell,也不声称本 Tile 能执行 EXTEST/SAMPLE。

必须做

结构化穿越接口

保留主接口、下游次接口、串行返回与控制传播语义,让 Tessent 能追踪完整链,而不是只看到一束普通 wire。

按时序决定

EBScanPipeline

跨 Tile 线长或 loop timing 紧张时插入。每一级会进入 tcd_bscan,被视为 internal BScan cell,并增加寄存器长度。

最终权威

Chip-level BSDL

Tile 本地 loopback 只证明当前交付;真正链顺序、指令行为与板级访问以最终 Chip Top 提取和仿真为准。

INTERFACE CONTRACT

必须冻结的信号契约

下表使用 neighbor 作为一个相邻 Tile 的接口 ID。若有两个方向,就分别建立 r1r2,并冻结串行链顺序。

方向主接口 / 你的 Tile次接口默认命名职责
上游 → 当前bscan_select/reset/clockneighbor_bscan_to_select/reset/clock选择、复位并驱动下游边扫时钟
上游 → 当前bscan_capture_enneighbor_bscan_to_capture_en控制 Capture-DR 行为
上游 → 当前bscan_shift_enneighbor_bscan_to_shift_en控制串行移位
上游 → 当前bscan_update_enneighbor_bscan_to_update_en控制 Update-DR 行为
上游 → 下游bscan_scan_inneighbor_bscan_to_scan_in把当前串行链送入相邻 Tile
下游 → 上游bscan_scan_outneighbor_bscan_from_scan_out把相邻 Tile 的串行输出送回 TAP
按需force_disable、JTAG select、AC signalsneighbor_bscan_to_*隔离、JTAG 路由或 1149.6/AC 测试;是否存在必须两端一致

IMPLEMENTATION FLOW

从架构冻结到 Chip Top 签核

下面以“一个 TAP 侧主接口 + 一个相邻 EBScan Tile”为最小工程模板。端口名和实例名需要替换成项目实际命名。

01

先做 Top-down 连接规划

冻结 TAP 所在 Tile、相邻 Tile 数量、完整控制束、串行顺序、每条边的驱动方向、physical pin location 与 TCK/loop timing 预算。Tiled design 的 Chip Top 通常只有 wire、没有可补救的逻辑,因此端口缺失要在 bottom-up 插入前解决。

  • 只有一个相邻 Tile:一个 SecondaryEBScanInterface(neighbor)
  • 多个相邻 Tile:每个分支一个 secondary interface;DftSpecification 中的排列就是需要评审的链路顺序。
  • 当前 Tile 的主接口接顶层端口时,不设置 ijtag_host_interface;只有 TAP 同一 pass 插入时才指向 Tap(id)/HostBscan
02

用 TopModuleConnections 预建真实端口

如果现有 Chip 集成自动化没有生成 DFT 端口,使用 ChildBlock 声明模块接口、用 Instance 声明每个实例的输入来源,再运行 process_top_module_connections。先验证,后处理。

Tessent Shell / Chip Top 连接模板
# 在 chip_top 层预建端口并完成真实 Tile 互连
set_context dft -rtl -design_id rtl0
read_verilog ../rtl/chip_top.v
set_current_design chip_top

# 端口名是项目示例;input_port_sources 顺序必须严格对应 input_ports
read_config_data -from_string {
  TopModuleConnections(chip_top) {
    ChildBlock(my_tile) {
      file_name : ../rtl/my_tile.v;
      input_ports : bscan_select,
                    bscan_reset,
                    bscan_clock,
                    bscan_capture_en,
                    bscan_shift_en,
                    bscan_update_en,
                    bscan_scan_in,
                    neighbor_bscan_from_scan_out;
      output_ports : bscan_scan_out,
                     neighbor_bscan_to_select,
                     neighbor_bscan_to_reset,
                     neighbor_bscan_to_clock,
                     neighbor_bscan_to_capture_en,
                     neighbor_bscan_to_shift_en,
                     neighbor_bscan_to_update_en,
                     neighbor_bscan_to_scan_in;
      Instance(u_my_tile) {
        input_port_sources : u_tap_tile/mid_bscan_select,
                             u_tap_tile/mid_bscan_reset,
                             u_tap_tile/mid_bscan_clock,
                             u_tap_tile/mid_bscan_capture_en,
                             u_tap_tile/mid_bscan_shift_en,
                             u_tap_tile/mid_bscan_update_en,
                             u_tap_tile/mid_bscan_scan_in,
                             u_neighbor_tile/bscan_scan_out;
      }
    }
  }
}

process_top_module_connections -validate_only
process_top_module_connections
关键检查

input_port_sourcesinput_ports 必须按位置一一对应。这里是真实 Chip 互连,不是验证用 loopback;项目若已有可靠 RTL 生成器,也可由生成器完成,但端口契约必须相同。

03

在中间 Tile 插入 HostBScanInterface

当前 Tile 没有 TAP、没有 pad BScan cell,仍可由 HostBScanInterface 定义链起点/终点并建立 secondary EBScan 端口。下面是官方中间 Tile 示例简化成一个 neighbor 后的结构。

Tessent Shell / Middle Tile DFT insertion
# 中间 Tile:没有功能 I/O BScan cell,只插入 EBScan 穿越/汇聚结构
set_context dft -rtl -design_id rtl1
read_cell_library ../lib/cells.tcelllib
read_verilog ../rtl/my_tile_with_dft_ports.v
set_current_design my_tile
set_design_level physical_block

# Tile 规则禁止底层任意改动模块边界
set_dft_specification_requirements -design_type tile

read_config_data -from_string {
  DftSpecification(my_tile,rtl1) {
    allow_port_creation_on_current_design : off;
    EmbeddedBoundaryScan {
      HostBScanInterface(client) {
        # 最后一级返回 TAP 侧;关闭额外 SO retiming,保留完整 TCK 周期
        EBScanPipeline(client_out) {
          so_retiming : off;
        }
        EBScanPipeline(from_neighbor) {}
        SecondaryEBScanInterface(neighbor) {}
        EBScanPipeline(to_neighbor) {}
      }
    }
  }
}

process_dft_specification
extract_icl -create_ijtag_graybox on

# 新阶段:为无 TAP 的当前 Tile 提取独立签核用 tcd_bscan
set_dft_specification_requirements -tcd_bscan_extraction on
两个容易忽略的状态

allow_port_creation_on_current_design : off 用来证明 Top 层已把端口建齐;set_dft_specification_requirements 的多次调用不累加,进入新阶段时应重新声明当前阶段所需选项。

04

独立 Tile 用 loopback 做签核

当前 Tile 独立运行时,相邻 Tile 不在模型中,串行链无法自然闭合。此时才把 secondary 的 to_scan_infrom_scan_out 成对回环,提取 tcd_bscan 并运行 Boundary Scan signoff patterns。

Tessent Shell / Local signoff only
# 只在 my_tile 独立验证时,把外接 neighbor 分支临时闭合
# 列表按位置配对:output[0] -> input[0]
add_loadboard_loopback_pairs \
  -outputs {neighbor_bscan_to_scan_in} \
  -inputs  {neighbor_bscan_from_scan_out}

# 必须在 extract_icl 完成后才开启 emulation
set_flat_model_options -emulate_loadboard_loopback_pairs on
check_design_rules
set_system_mode setup

set_context patterns -ijtag
check_design_rules
create_patterns_specification
process_patterns_specification
set_simulation_library_sources -Y ../lib -extensions {v}
run_testbench_simulations
不要带到 Chip 集成

含回环的 TCD 会标记 extracted_with_loopbacks : on,只可用于该独立 Tile 的 signoff verification pattern。真实 Chip Top 必须移除 emulation,连接实际 neighbor,并重新追踪完整链。

05

在 Chip Top 完成端到端集成

加载各 Tile 同一基线的 interface/graybox、ICL 与 tcd_bscan,读入最终 Chip Top netlist,确认 TAP 控制束经过当前 Tile 到达 neighbor,neighbor 的 scan_out 再经当前 Tile返回 TAP。随后在 Chip 层提取最终 BSDL,并用最终网表运行 Boundary Scan pattern 仿真。

  • Tile 本地 TCD 证明“当前模块内部结构正确”;Chip BSDL 证明“整条链次序和指令行为正确”。
  • 每次综合/ECO/布局后都要复查端口方向、链长、pipeline 数量和 instance mapping。
  • 跨 Tile 链只有在 Chip 层才完全可追踪,不应从某个 Tile 的本地 loopback 结果推断最终链序。
06

SDC 与物理签核

extract_icl/extract_sdc 会生成 Boundary Scan 相关约束。综合/STA 中 source 当前 insertion pass 的 SDC,先执行 tessent_set_default_variables,再执行项目时钟映射与 tessent_set_non_modal。重点检查 TAP→当前 Tile、当前→neighbor、neighbor→当前→TAP 三段接口时序。

  • client_out 是返回 TAP 侧的最后 pipeline 时,so_retiming : off 可给 tiled loop interface 一个完整 TCK 周期;仍需以本项目 STA 结果为准。
  • 每个 EBScanPipeline 都增加一个 internal BScan cell:时序更容易,面积、链长与 Pattern 期望值也随之变化。
  • 详细的 SDC 加载顺序、TCK 异步组和 non-modal 约束见第 15 章 IJTAG SDC 专题

TRADE-OFFS

与“普通直连”和“本模块也做边扫”的比较

方案优点代价 / 风险建议
普通 RTL wire 直通逻辑最少、开发快缺少 EBScan/TCD 语义,工具难以自动提取、拼链与签核;控制束或链序错误常到 Top 才暴露不作为 Tessent 层次交付方案
HostBScanInterface 穿越不扫描功能端口,同时具备自动建端口、提取、DRC、TCD/BSDL 与 Pattern 验证能力需要严格的 Top-down 端口契约,并管理 pipeline 对链长的影响当前场景推荐
当前模块也插普通 BScan可测试本模块 I/O 边界增加 cell、控制、时序与模式复杂度;若没有测试需求就是无效成本只有测试架构明确要求时采用
01

只传 SI/SO

Capture/Shift/Update、select、reset、clock 缺任意一项,链可能“能移位但不能正确执行指令”。

02

底层偷偷建端口

会让 Tile RTL、Chip 实例和物理 pin plan 失配。用 TopModuleConnections 预建,再把 allow_port_creation 关掉。

03

Loopback 当真连线

本地闭环只是替身。Chip 集成必须连接真实邻居,并以最终 BSDL/仿真重新签核。

04

Pipeline 未计入链长

每一级都是 internal BScan cell;插入、删除或 ECO 后,TCD、BSDL 与 Pattern 必须同步更新。

05

多个 neighbor 顺序漂移

接口 ID、DftSpecification 排列、物理连线和预期 scan path 必须来自同一份冻结表。

06

混用不同 TSDB 版本

RTL、graybox、ICL、TCD、SDC 与 Pattern 必须记录同一 design_id 和工具版本。

HANDOFF CHECKLIST

你的 Tile 至少应交付

  • 含完整 EBScan 主/次接口的 RTL 或 gate netlist
  • 接口方向、来源、目的地和 scan chain order 表
  • 本次 DftSpecification 与可复现 dofile
  • ijtag_graybox、提取 ICL 与 tcd_bscan
  • 生成的 SDC、时钟假设和 pipeline STA 报告
  • 本地 loopback signoff Pattern/仿真日志及其“仅本地验证”标识
  • TSDB 路径、design_id、工具版本和已知限制
14

TSDB DATA FLOW · VERSIONED HANDOFF

TSDB 数据流:把设计视图、Pattern 与层次交付对齐

TSDB 不是普通输出目录,而是 Tessent Shell flow 的版本化数据契约。本章对应 core/flat TSDB data flow 与 top-level TSDB data flow,并解释 read_design、view、design_id 和 pattern_id 如何协同。

RTL GOLDENsource首次用 read_verilog / read_vhdl
PASS 01rtl1MBIST · BScan · IJTAG
PASS 02rtl2EDT · OCC · LBIST
SYNTHESISgatepost-synth mapping
PATTERNpattern_idATPG · retarget · signoff
14.1

Core / flat 仓库

每轮 DFT 处理把修改后的设计、source dictionary、ICL/PDL/TCD、接口或 graybox、SDC 和相关脚本写入同一 TSDB 语境。重跑某一步时应干净重建对应视图,避免旧文件混入活动数据。

14.2

Top-level 集成

上层先 open_tsdb 暴露 child 仓库,再按任务选择 interface、ijtag_graybox、scan_graybox 或 full view。当前设计 elaboration 后,工具可从 TSDB 自动发现 child interface 与 ICL,但存在外部 package/interface 依赖时必须显式 read_design。

14.3

四类 view

full完整 RTL 或 gate netlist,用于需要真实实现的分析/处理。

interface端口与参数定义,上层快速 elaboration 和 PatternsSpecification 推荐视图。

ijtag_grayboxextract_icl 生成,保留 IJTAG 相关逻辑和连通。

scan_grayboxscan/ATPG 所需的精简结构,由相应 graybox 流程产生。

Tessent Shell / hierarchical TSDB
# 上层集成:先暴露每个 child 的仓库,再选择明确视图
set_context dft -rtl
open_tsdb ../core_a/tsdb_outdir
open_tsdb ../core_b/tsdb_outdir

# 接口/graybox 降低上层加载量;full 用于需要完整实现的步骤
read_design core_a -design_identifier rtl2 -view ijtag_graybox
read_design core_b -design_identifier gate -view interface
read_verilog ./rtl/chip_top.sv -format sv2012
set_current_design chip_top

# 新一轮处理写入独立输出仓库
set_tsdb_output_directory ./chip_top_rtl1.tsdb
check_design_rules
15

SDC · SYNTHESIS · CLOCKING · FORMAL

SDC 与签核:确保插入后的 DFT 结构可综合、可布局、可证明

完整流程不能停在“插入成功”。Tessent 生成的 SDC、综合导入脚本、clock architecture、post-layout 验证与 formal equivalence 共同保证 DFT 逻辑穿过实现流程后仍可用。

01

生成 SDC

extract_icl 默认触发 extract_sdc;也可独立生成。确认设计、ICL、DFT signal 和 clock 已加载。

02

准备综合

source Tessent SDC,设置/重定义 Tcl 变量,核对 functional clocks,再应用 DFT constraints。

03

执行综合

按生成的 import script 读取 DFT-inserted RTL,保护 test logic 边界与关键对象,处理参数化 wrapper 和名称映射。

04

写出交付

输出最终 netlist 与最终 SDC;保留 mapping、报告、工具版本和使用的 TSDB/design_id。

05

布局后验证

在 post-layout netlist 上重放 IJTAG、MemoryBIST、Boundary Scan 与 ATPG signoff Pattern。

06

Formal

按 golden RTL↔DFT-inserted RTL、pre-layout↔post-layout 两类边界定义比较目标和允许差异。

IJTAG SDC · IMPLEMENTATION PLAYBOOK

IJTAG SDC 约束专题

把 Tessent 生成的 SDC 当作可配置的 Tcl 约束包:项目脚本负责选择最新版本、覆盖参数并一次性应用;不要直接修改生成文件。

  1. 01插入后生成

    extract_icl 默认调用 extract_sdc;临时使用 -skip_sdc_extraction 后,可重新加载 full view 再单独执行 extract_sdc

  2. 02只取最新一版

    文件位于 TSDB/dft_inserted_designs/design_designId.dft_inserted_design/design.sdc。后续 insertion pass 的 SDC 是前一版的超集,两版不要叠加。

  3. 03先初始化变量

    综合或 STA 脚本 source SDC 后,必须先调用 tessent_set_default_variables,再覆盖 IJTAG timing 与 clock mapping。

  4. 04统一应用约束

    最后调用一次 tessent_set_non_modal,由它对当前设计和所有子块分派各 instrument 的 non-modal 过程。

  5. 05报告与重放

    检查 TCK、异步组、I/O delay、false/multicycle endpoint,再以同版设置生成并仿真 signoff Pattern。

CLOCK 01

TCK 与异步时钟组

tessent_set_ijtag_non_modal 会为 TCK 输入创建时钟;默认 tessent_tck_period 为 100 ns,项目应按真实目标覆盖。TCK 与功能时钟被放入异步组。

  • 项目自建的 TCK generated clock 要追加到 tessent_tck_clocks_list
  • 不要绕过总入口直接调用 IJTAG 子过程,除非正在隔离调试。
PROTOCOL 02

Reset、Select 与 SIB

IJTAG reset port 被设为 false path;Select 的 hold path 被切断,setup 以 2-cycle multicycle 表达。SRI 网络中 non-scan SIB 的 Select 来源也会被放宽。

  • STI 内可被 scan-test 的 SIB 默认不套用该放宽。
  • 擅自扩大例外范围可能损害 scan Pattern 的有效性。
I/O 03

输入输出延迟与 strobe

生成过程会对 sub-block/physical-block IJTAG 端口设置可配置 I/O delay。若输出采样点为 before_falling_edge_of_tck,输出延迟会带 -clock_fall

  • 控制、reset、TMS 可分别增加 setup/hold cycle。
  • Pattern strobe 与 STA strobe 必须使用同一设定。
MAPPING 04

功能时钟与层次边界

tessent_clock_mapping 把 Tessent ClockLabel 映射到功能 SDC 的 clock name。tessent_create_functional_clocks 还会沿 ICL ClockPort/ToClockPort 建立 primary 或 generated clock。

  • 映射差异在项目脚本中覆盖,不编辑生成 SDC。
  • 不应生成新时钟的 ToClockPort 可标记 exclude_from_sdc

SAFE OVERRIDE ORDER

综合 / STA 脚本骨架

这段顺序同时适用于 RTL insertion 后综合、post-synthesis STA 与布局阶段。功能 SDC 仍需一同加载;示例中的路径、周期和 clock name 必须替换为项目实际值。

Tcl / generated Tessent SDC
# 综合/STA 脚本:source 最新 insertion pass 生成的 SDC
set design_name myChip
set design_id   rtl2
set tsdb        ../../../golden_repo/myChip_tsdb
set sdc_file    [file join $tsdb dft_inserted_designs \
  myChip_rtl2.dft_inserted_design myChip.sdc]
source $sdc_file

# 必须最先初始化 Tessent SDC 变量;不要直接编辑生成的 SDC
tessent_set_default_variables

# 通过生成 SDC 中的 replica proc 覆盖 IJTAG 时序参数
set_ijtag_retargeting_options \
  -tck_period 80.0 \
  -default_scan_out_strobe_point before_falling_edge_of_tck \
  -extra_control_setup_hold_cycles 1 \
  -extra_reset_setup_hold_cycles 1 \
  -extra_tms_setup_hold_cycles 1

# 当功能 SDC 使用不同 clock name 时,显式修正映射
set tessent_clock_mapping(CK25) PIN_CK25

# 把项目自建、但与 IJTAG 相关的 TCK generated clock 加入异步组
lappend tessent_tck_clocks_list my_tck_generated_clock

# 一次应用当前设计及所有子块的 non-modal instrument 约束
tessent_set_non_modal
HB-IJTAG 的额外 SDC 规则
SIH CLOCKS

全局 TCK 仍来自输入 TCK;每个 SIH 会从 SSN bus clock 派生 input、divided 与 gated clocks。divided/gated clocks 参与时序分析,并按互斥关系建模。

PERIOD RATIO

ssn_bus_clock_period 默认 2.5 ns,本地 HB-IJTAG TCK 默认 20 ns。HB TCK / SSN bus period 必须不小于 1;奇数比值会向上取整到下一个偶数。

ONE SOURCE

set_load_unload_timing_optionsset_ijtag_retargeting_options 保存在共享 timing settings 文件中;Pattern 生成、综合与 STA source 同一份。

WHEN TO SOURCE

在 Pattern 流程中,于 create_patterns_specification 之前 source;或在 process_patterns_specification -merge_command_options 之前加载并合并。

15.1

SDC 不是黑盒

生成文件包含默认变量、functional clock 创建、DFT signal 设置、不同 instrument 的 disable/false-path/multicycle 等辅助过程。项目必须审阅变量入口、模式假设和工具调用顺序,而不是直接 source 后忽略。

15.2

Clock 架构分类

分别处理 primary input clock、core 外 clock generator、core 内 generator、embedded PLL 来源和 clock mesh。关键问题是 functional/test mode 下的时钟源、OCC 所有权、旁路路径、generated clock 与 capture 关系能否在 block/top 两级一致表达。

15.3

Modal STA 与层次 STA

功能逻辑与 embedded test logic 可按不同 mode 检查;hierarchical STA 还需要 child 约束、接口时序和 top-level clock 定义协同。SSN 另有 bus clock、datapath、FIFO 与 ScanHost 的专用约束过程。

16

TCL · PROCEDURE FILE · VISUALIZER · HELP

Tcl 与 Visualizer:把知识变成可复现、可调试的工程流程

本章覆盖 Tessent Tcl Interface、Test Procedure File、Tessent Visualizer、Examples and Solutions 与 Getting Help。目标不是堆积工具技巧,而是建立脚本、时序过程、可视化定位和资料检索的统一方法。

TCL

脚本工程化

用 namespace 隔离变量/proc,以脚本目录而非启动目录解析相对路径;理解特殊字符、Tcl list 与转义层次名;把环境初始化放入受版本控制的入口。

  • # 注释会进入 transcript;// 的转录行为不同。
  • catch_output 只包裹有明确失败分支的命令。
  • 自定义 Tcl package 用稳定 API 隐藏项目细节。
PROC

Test Procedure File

procedure file 定义 tester/ATPG 侧的时序与操作过程:include、set、alias、timing variable、timeplate、always 与 procedure。Shift 和 Load_Unload 是基本必需过程,其余按模式选择。

  • capture、test_setup、test_end 与 clock control 要和 Pattern/context 协调。
  • multiple-pulse clock 与 inferred timing 必须明确签核。
  • STIL 转换时检查 strobe 与 ClockStructures 信息。
GUI

Tessent Visualizer

Visualizer 提供 hierarchical/flat/ICL schematic、instance/ICL browser、DRC、RTL metrics、wave、HDL、IJTAG network 与 iProc 视图。适合沿对象关系定位,不替代脚本证据。

  • 从 DRC/object 表跳转到 schematic 与 HDL。
  • 使用 tracing、marker、context table 和属性面板缩小故障锥。
  • 保存 session state 便于跨团队复现观察环境。
HELP

示例与帮助体系

Examples and Solutions 覆盖参数化 block、第三方综合/OCC、PLL 时钟、wrapped core、post-synthesis mapping 与 TAP 配置。遇到问题先定位到对应 manual 主题,再反查 Reference 命令。

  • 问题归类:state、model、flow、timing、view 或版本。
  • 保存最小 testcase、transcript、报告与工具版本。
  • 区分产品限制、流程前提和项目配置错误。

ROBUST TCL PATTERN

让失败可见、路径稳定、对象可验证

这段骨架展示 namespace、脚本相对路径、collection 前置条件和显式错误处理。项目中应进一步加入版本、输入摘要、输出目录与运行清单。

Tessent Shell / robust Tcl
namespace eval ::dftflow {
  variable root [file normalize [file dirname [info script]]]

  proc require_objects {collection label} {
    if {[sizeof_collection $collection] == 0} {
      error "Missing required objects: $label"
    }
    return $collection
  }
}

set blocks [::dftflow::require_objects   [get_instances -hierarchical -filter {is_physical_block == true}]   "physical blocks"]

if {[catch_output {report_current_design} -output report_text -tee]} {
  error "Current design report failed"
}
01查 User Guide

理解概念、流程前提、完整示例和限制。

02查 Reference

核对 context、mode、usage、返回值和选项。

03做最小复现

固定输入、current design、TSDB view 与 command transcript。

04Visualizer 定位

把 DRC、对象、连通、波形和 HDL 证据对齐。

17

IJTAG USER GUIDE · DEEP DIVE

把 IJTAG User Guide 中容易遗漏的规则补齐

真正影响项目结果的往往不是命令名字,而是模型边界、隐式推断、求解器约束、网络状态和跨流程集成。以下内容来自 IJTAG User’s Manual 2026.1 的建模、重定向、提取、插入、ATPG 与验证章节。

MODEL 01

ScanInterface 是访问契约

ScanInterface 可以显式定义,也可以由工具推断;端口与 ScanInterface 的关联也可能被推断。但与 current design 关联的 ICL Module 检查更严格,因为工具必须知道 TCK、ShiftEn、CaptureEn、UpdateEn、Select 等控制端口分别服务于哪组 ScanIn/ScanOut。

  • 交换给上层集成的 handoff Module 建议显式定义。
  • 推断只改变内部数据模型,不会自动改写原始 ICL 文件。
  • 用 get_icl_scan_interface_list / get_icl_ports 验证实际关联。
MODEL 02

复位不是一个简单的全局脉冲

ResetPort、TRST 与 TMS 可能通过规则隐式连接。Global Reset、Local Reset、被隔离的 embedded TAP,以及 TAP 停在 reset 或 idle,会产生不同的网络状态。

  • 只有一个父级 ResetPort 时,未显式连接的子端口可能被自动关联。
  • 局部复位、复位门控、embedded TAP 隔离通常需要显式连接。
  • open/close_pattern_set 与 iReset 的策略要与 ICL ResetValue 建模一致。
SOLVER 03

每个 iApply 都是独立求解问题

求解器先寻找满足全部队列目标的初始解,再减少 scan load、PIO 操作和 scan cycle。默认初始解受每个 iApply 最多 64 个 scan load/PIO 操作限制,可通过 -max_operations_per_iapply 调整。

  • 所有 iWrite 值必须在 iApply 结束时同时成立。
  • iRead 只需在时间窗内第一次可观察时被采样。
  • 无解时目标队列被移除,当前电路状态保留并报告错误。
PARALLEL 04

iMerge 表达“希望并行”,不是强制并行

merge block 中只允许 iCall。工具可根据共享选择位、寄存器、端口、时钟或路径冲突决定串行化。IEEE 1687 不规定最终并行顺序,具体顺序由应用工具决定。

  • iMerge -begin -error_on_conflict 可让冲突更早暴露。
  • iTake/iRelease 为端口、寄存器或实例声明资源所有权。
  • 嵌套 iProc 会继承调用者的资源预留。
FLOW 05

Extraction 与 Insertion 的方向相反

Insertion 从 DftSpecification 出发生成并接入 SIB、TDR、ScanMux 等硬件,同时输出修改后的设计与局部 ICL;Extraction 从实际网表追踪已有 IJTAG 互连,生成顶层/层次 ICL、可选 SDC 与 graybox。

  • Insertion 后仍建议对真实结果执行 Extraction。
  • Module matching、设计源搜索路径和参数化 Module 会影响提取。
  • top-down 适合扁平顶层视图,bottom-up 适合层次交付与复用。
INTEGRATION 06

IJTAG 也服务于 ATPG setup/end

EDT、OCC 与其他嵌入式仪器可通过 PDL iProc 配置,再由 set_test_setup_icall / set_test_end_icall 接入 scan ATPG。完整流程可以包含网络插入、EDT 插入、顶层 ICL 提取与 ATPG 四个入口。

  • 已有完整 ICL 网络时可跳过网络插入与顶层提取。
  • 已有 EDT 或无压缩设计时对应步骤可裁剪。
  • setup/end 的顺序、merge、时钟和网络 end state 必须一起签核。

USER GUIDE FLOW MAP

从模型到交付的七个证据点

每个阶段都要产生可以审阅的对象、报告或 Pattern;不要只以“命令执行成功”作为通过标准。

  1. 01
    读入与匹配read_icl · set_design_sources · set_current_design

    证据:Module/实例层次、参数与 current design 对齐。

  2. 02
    模型自省get_icl_* · report_icl_modules

    证据:端口语义、ScanInterface、reset 与路径可查询。

  3. 03
    进入分析set_system_mode analysis

    证据:所有 IJTAG DRC 清零。

  4. 04
    意图重定向iCall · iRead/iWrite · iApply

    证据:Pattern set 中的操作与预期状态变化一致。

  5. 05
    结构验证create_icl_verification_patterns

    证据:scan network 与 data pin testbench/ATE 测试通过。

  6. 06
    真实互连提取extract_icl · report_module_matching

    证据:提取 ICL 与网表连接、层次交付边界一致。

  7. 07
    格式化交付report_pattern_sets · write_patterns

    证据:PDL、Verilog、STIL/ATE、报告和版本可追溯。

结构验证通过后,功能 Pattern 仍失败,应该查哪里?

先缩小问题边界:create_icl_verification_patterns 验证的是当前 ICL 所描述的网络与仪器连通性。如果其 RTL/门级仿真或 ATE 结果通过,说明从外部到目标 instrument 的访问基础设施基本可信;后续功能失败应优先检查 instrument 自身协议、iProc 参数、功能时钟、capture 时刻、期望值与 test setup。

如果结构验证也失败:先查 ICL 与 HDL 不一致、位宽/位序、ScanMux 选择、ResetValue、ScanInterface 控制关联、TCK/strobe,再用 comparison failure counter 和波形定位首次偏离点。

18

SHELL REFERENCE · COMMAND MANUAL

Tessent Shell 与 IJTAG 核心指令:上下文、语法与边界

以下 54 条核心指令同时覆盖 Tessent Shell User Guide 与 IJTAG User Guide,并逐项反查 Tessent Shell Reference Manual 2026.1。每条保留 context、mode、关键语法、用途与最容易踩坑的行为;顶部搜索可按命令名、阶段、语法或说明过滤。

54核心指令

覆盖 Shell、DFT/TSDB、PDL、提取、验证、自省和 ATPG 集成。

07命令分组

按“何时使用”组织,而不是只按字母排序。

54当前匹配

可搜索 TSDB、design、iApply、extract、report 或 ATPG。

先看 Context同一命令可能只在 patterns -ijtag 或 dft 中可用。

再看 Modesetup 负责加载与配置,analysis 负责 DRC、求解与 Pattern。

最后看状态current design、open pattern set 与 network end state 会改变后续结果。

Tessent 基础

12 commands
dofileall modes

按顺序执行文件中的 Tessent Shell/Tcl 命令,是工程自动化与可复现运行的基本入口。

CONTEXT
unspecified / all contexts
USAGE
dofile filename [-History]
read_cell_librarysetup

加载一个或多个 Tessent cell library,供设计解析、快速综合和 DFT 分析使用。

CONTEXT
unspecified / all contexts
USAGE
read_cell_library lib_path ... [-quick_synthesis_library] [-force]
read_verilogsetup

把 Verilog/SystemVerilog 设计文件读入指定或默认逻辑库。

CONTEXT
dft / patterns(除 scan_diagnosis)
USAGE
read_verilog design_path ... [-format sv2012] [-interface_only] […]
set_design_sourcessetup

指定 Module matching 时搜索 Verilog、ICL 或 TCD 模块定义的位置。

CONTEXT
unspecified / all contexts
USAGE
set_design_sources -format {verilog|icl|tcd_*} [-V files] [-Y dirs -extensions ext] [-append|-clear]
check_design_rulessetup

执行当前 context 所要求的 DRC;无 error 级违规时从 setup 转入 analysis。

CONTEXT
dft / patterns
USAGE
check_design_rules
get_instancesall modes

返回相对 current design 的设计实例 collection,并支持按层次、模块、对象关系与属性过滤。

CONTEXT
all contexts
USAGE
get_instances [patterns] [-of_modules objects] [-below_instances objects] [-hierarchical] [-filter expr] […]
get_portsall modes

查询 current design 或指定 Module 的层次端口 collection。

CONTEXT
all contexts
USAGE
get_ports [patterns] [-of_modules objects] [-of_icl_ports objects] [-direction input|output|inout] […]
get_pinsall modes

查询相对 current design 的层次 pin collection。

CONTEXT
all contexts
USAGE
get_pins [patterns] [-of_instances objects] [-of_icl_pins objects] [-direction input|output|inout] […]
get_attribute_value_listall modes

读取指定设计对象上的属性值,并按输入对象顺序返回 Tcl list。

CONTEXT
unspecified / all contexts
USAGE
get_attribute_value_list object_spec -name attribute_name [-is_specified] [-silent]
set_attribute_valueall modes

为指定设计对象设置属性,并返回设置成功的对象 collection。

CONTEXT
unspecified / all contexts
USAGE
set_attribute_value object_spec -name attribute_name [-value attribute_value] [-silent]
open_visualizerall modes

打开 Tessent Visualizer,用原理图、布局或报告视图检查当前设计与 DFT 对象。

CONTEXT
unspecified / all contexts
USAGE
open_visualizer [-display tab ...] [-append] […]
catch_outputall modes

执行工具命令并捕获输出/结果;命令失败时返回 1,成功时返回 0。

CONTEXT
unspecified / all contexts
USAGE
catch_output {command} [-output variable] [-result variable] [-tee]

DFT 与 TSDB

10 commands
set_tsdb_output_directorysetup

设置 process_dft_specification 等流程写入的 TSDB 输出目录。

CONTEXT
dft / patterns
USAGE
set_tsdb_output_directory directory_path
open_tsdball modes

让一个或多个 TSDB 的设计视图、接口、ICL、PDL 与交付数据对当前会话可见。

CONTEXT
all contexts
USAGE
open_tsdb directory_path_list [-silent]
read_designsetup

根据 TSDB 中的 design source dictionary 重新加载 DFT 插入后的指定设计视图。

CONTEXT
dft / patterns
USAGE
read_design design_name [-design_identifier id] [-view full|scan_graybox|ijtag_graybox|interface] […]
create_dft_specificationanalysis

创建 DftSpecification(design_name,id) 配置 wrapper,并返回对象供脚本定制。

CONTEXT
dft(无 sub-context)
USAGE
set spec [create_dft_specification …]
process_dft_specificationsetup / analysis

验证并处理 DftSpecification;根据配置执行 DFT 硬件插入或仅做验证。

CONTEXT
dft(无 sub-context)
USAGE
process_dft_specification [id] [-no_insertion] [-validate_only] [-transcript_insertion_commands]
set_dft_specification_requirementssetup

声明当前 DFT 阶段的设计类型与要构建/提取的结构;Tile 流用 -design_type tile,独立 EBScan 签核用 -tcd_bscan_extraction on。

CONTEXT
dft(无 sub-context)
USAGE
set_dft_specification_requirements [-design_type standard|tile] [-boundary_scan on|off] [-tcd_bscan_extraction on|off] […]
process_top_module_connectionssetup / analysis

验证并处理 TopModuleConnections,在 tiled module 上预建 DFT 端口,并在 chip-level netlist 中按声明连接。

CONTEXT
dft(无 sub-context)
USAGE
process_top_module_connections [-validate_only] [-transcript_insertion_commands] [-extension_suffix suffix]
write_tsdb_dataanalysis

把 scan/retargeting Pattern 流程数据写入 TSDB,形成可供后续步骤复用的版本化交付。

CONTEXT
patterns -scan / scan_retargeting
USAGE
write_tsdb_data [-design_id id] [-pattern_id id] [-replace] [-flat_model auto|on] […]
extract_sdcall modes

为当前设计与子块生成供综合和 STA 使用的 Tessent SDC 约束。

CONTEXT
all contexts
USAGE
extract_sdc [-output_file output_file]
write_design_import_scriptsetup / analysis

生成可由综合工具执行的脚本,用于综合已完成 DFT 插入的 RTL 设计。

CONTEXT
dft / patterns
USAGE
write_design_import_script [filename] [-format dc_shell|genus|fc_shell] [-design_id id] [-replace] […]

流程骨架

7 commands
set_contextall modes

进入 IJTAG Pattern 生成上下文;多数后续命令都依赖正确的 context。

CONTEXT
all contexts
USAGE
set_context patterns -ijtag [-rtl | -no_rtl]
read_iclsetup

把一个或多个 ICL Module 读入内部 ICL 数据库。

CONTEXT
all contexts
USAGE
read_icl filename_list [-skip_child_blocks] [-force]
set_current_designsetup / insertion

确定后续命令所使用的顶层设计与 ICL 重定向边界。

CONTEXT
all contexts
USAGE
set_current_design [top_design [-icl_module icl_module]]
set_system_modeall modes

切换 setup、insertion、analysis 阶段;进入 analysis 时完成最终 DRC。

CONTEXT
all contexts
USAGE
set_system_mode {setup | insertion | analysis} [-force]
open_pattern_setanalysis

打开一个命名 Pattern set,承接后续 iCall、iRead、iWrite、iApply 等操作。

CONTEXT
patterns -ijtag
USAGE
open_pattern_set name [-timeplate tp | -tester_period p] [-tck_ratio n] [-replace]
close_pattern_setanalysis

完成并关闭当前 Pattern set。

CONTEXT
patterns -ijtag
USAGE
close_pattern_set [-network_end_state keep|reset|reset_all|initial] [-create_iproc]
write_patternsanalysis

把内存中的 Pattern set 格式化并输出为 Verilog、STIL、PDL、ATE 或其他目标格式。

CONTEXT
patterns -ijtag
USAGE
write_patterns file format_switch [-pattern_sets list] [-replace] [-unroll]

PDL 操作

10 commands
iProcsForModulesetup / insertion / patterns analysis

声明后续 iProc 绑定到哪个 ICL Module,并可指定 PDL namespace。

CONTEXT
all contexts
USAGE
iProcsForModule module_name [-iProcNameSpace namespace]
iProcsetup / insertion / patterns analysis

定义一个可复用的 PDL 过程。

CONTEXT
all contexts
USAGE
iProc name variables body
iCallanalysis

在指定 ICL 实例上调用已注册的 iProc。

CONTEXT
dft / patterns -ijtag / scan
USAGE
iCall [instance_path.]iproc_name [arguments…]
iWriteanalysis

把写目标加入队列,等待下一次 iApply 统一求解。

CONTEXT
dft / patterns -ijtag / scan
USAGE
iWrite [instance_path.]writable_object value [-ignore_when_value_already_present auto|off|on]
iReadanalysis

把读取或带期望值的比较目标加入队列。

CONTEXT
dft / patterns -ijtag / scan
USAGE
iRead [instance_path.]readable_object [expected_value]
iApplyanalysis

求解全部排队的 iRead/iWrite,生成扫描装载、PIO 激励与观察序列。

CONTEXT
dft / patterns -ijtag / scan
USAGE
iApply [-end_in_pause]
iResetanalysis

向当前 Pattern set 加入把 ICL 网络恢复到复位状态的动作。

CONTEXT
dft / patterns -ijtag / scan
USAGE
iReset [-sync]
iMergeanalysis

请求重定向器尽量并行处理 merge block 内的多个 iCall。

CONTEXT
dft / patterns -ijtag / scan
USAGE
iMerge -begin [-error_on_conflict] … iMerge -end
set_ijtag_retargeting_optionsmostly all modes

配置 iApply 求解与 IJTAG 时序;生成的 SDC 也提供同名 replica proc,用它覆盖 TCK、strobe 与控制信号余量。

CONTEXT
all contexts
USAGE
set_ijtag_retargeting_options [-tck_period time] [-default_scan_out_strobe_point value] [-extra_*_setup_hold_cycles n] […]
set_load_unload_timing_optionsall modes

设置 SSN load/unload 的 bus/shift 时钟,以及动态控制信号的 setup/hold 时序。

CONTEXT
all contexts
USAGE
set_load_unload_timing_options -usage ssn [-ssn_bus_clock_period time] [-shift_clock_period time] […]

提取与验证

5 commands
set_icl_extraction_optionsall modes

定制 ICL Extraction 对 mux、DataOutPort 和 ScanInterface 的处理。

CONTEXT
all contexts
USAGE
set_icl_extraction_options [-extract_learned_muxes on|off] [-extract_scan_interfaces on|off] …
add_loadboard_loopback_pairssetup(设计已 elaborated)

按列表顺序把输出与输入配成 loadboard loopback,用于独立 Tile 中闭合外接 EBScan 分支并生成本地签核 Pattern。

CONTEXT
all contexts
USAGE
add_loadboard_loopback_pairs -inputs {in…} -outputs {out…} [-ac_delay_to_z time]
set_flat_model_optionssetup

控制 flat model 是否模拟 add_loadboard_loopback_pairs 声明的外部回环。

CONTEXT
all contexts
USAGE
set_flat_model_options -emulate_loadboard_loopback_pairs on|off
extract_iclall modes

检查 IJTAG 实例连通规则,并提取顶层 ICL、可选 SDC 与 IJTAG graybox。

CONTEXT
all contexts
USAGE
extract_icl [-write_in_tsdb on|off|auto] [-skip_sdc_extraction] [-create_ijtag_graybox on|off]
create_icl_verification_patternsanalysis

根据当前 ICL 自动生成网络扫描与数据引脚结构验证 Pattern。

CONTEXT
patterns -ijtag
USAGE
create_icl_verification_patterns [-scan_test on|off] [-data_pin_test on|off|end_points_only] […]

查询与报告

8 commands
get_hb_ijtag_dataanalysis

以 ICL instance collection 返回网络中全部 SIH,或指定 Pattern set 内实际活动的 SIH。

CONTEXT
all contexts
USAGE
get_hb_ijtag_data {-ssn_ijtag_hosts | -active_ssn_ijtag_hosts} [-has_hb_ijtag_patterns] [-pattern_set ids]
report_hb_ijtag_dataanalysis

报告 SIH 列表、HB retarget solution,以及 global/HB cycles、packet、切换次数、padding 和总利用率。

CONTEXT
all contexts
USAGE
report_hb_ijtag_data {-ssn_ijtag_hosts | -active_ssn_ijtag_hosts | -retargeted_solution | -statistics} [-pattern_set ids]
get_pattern_set_dataanalysis

查看重定向 Pattern 的内部事件;HB-IJTAG 中可展开 packet、SIH scan、slot 与完整本地 scan path。

CONTEXT
dft / patterns -ijtag / scan / scan_retargeting
USAGE
get_pattern_set_data pattern_set_name [-unrolled] {-port_list | -event_list | -event_data event_id}
get_icl_objectsall modes

按对象类型、层次、属性和名称模式查询 ICL 对象集合。

CONTEXT
all contexts
USAGE
get_icl_objects [patterns] -object_types types [-below_instances obj] [-filter expr] [-hierarchical]
get_icl_instancesall modes

返回相对 current design 的 ICL 实例集合。

CONTEXT
all contexts
USAGE
get_icl_instances [patterns] [-of_modules modules] [-below_instances instances] [-filter expr]
get_icl_portsall modes

查询 ICL Module 的端口及其方向、功能和属性。

CONTEXT
all contexts
USAGE
get_icl_ports [patterns] [-of_modules modules] [-direction input|output] [-function function]
report_icl_modulesall modes

以 ICL 语法或人类可读形式报告已加载和已提取的 ICL Module。

CONTEXT
dft / patterns
USAGE
report_icl_modules [-all | -modules modules [-hierarchical]]
report_pattern_setsanalysis

报告一个或全部 Pattern set 的内部表示和组织情况。

CONTEXT
patterns -ijtag
USAGE
report_pattern_sets [-sort_by declaration_order|name] [pattern_set_list]

ATPG 集成

2 commands
set_test_setup_icallsetup

把仪器配置 iCall 加入 ATPG test_setup 过程。

CONTEXT
dft / patterns -scan / scan_retargeting
USAGE
set_test_setup_icall [path.]iproc [args…] [-append|-merge] [-front|-end]
set_test_end_icallsetup

把恢复或收尾 iCall 加入 ATPG test_end 过程。

CONTEXT
dft / patterns -scan / scan_retargeting
USAGE
set_test_end_icall [path.]iproc [args…] [-append|-merge] [-timeplate tp]

REFERENCE-ALIGNED EXAMPLE

一条带检查点的最小重定向流程

顺序体现 Reference 中的 context/mode 约束:先建立模型与 analysis 状态,再打开 Pattern set、执行 PDL,最后报告并写出。

Tessent Shell / PDL
# 1) 建立 IJTAG 分析上下文
set_context patterns -ijtag
read_icl ./icl/instruments.icl ./icl/chip_top.icl
dofile ./pdl/instruments.pdl
set_current_design chip_top
set_system_mode analysis

# 2) 先检查模型与实际选项
report_icl_modules -all
report_ijtag_retargeting_options

# 3) 组织可复查的 Pattern set
open_pattern_set smoke -replace
iReset
iCall Core0.Mbist.run_short
iWrite Core0.StatusMask 0xff
iRead  Core0.Status 0x00
iApply
close_pattern_set -network_end_state reset

# 4) 报告后再写出
report_pattern_sets smoke
write_patterns ./patterns/smoke.v -verilog -pattern_sets smoke -replace
19

REFERENCE · QUICK LOOKUP

术语与命令速查

适合学习时随手查,也适合在调试日志和脚本评审时快速对齐含义。顶部搜索会同时过滤术语、目录与第 18 章的 Reference 指令。

核心术语

15 / 15
IJTAG
IEEE 1687 仪器访问网络方法;本资料基于 IEEE 1687-2014。
Instrument
片上可被配置、触发或读取状态的测试/监控功能,例如 MBIST、温度传感器、EDT/OCC。
ICL
Instrument Connectivity Language,描述端口语义、寄存器、复用关系、实例和网络连接。
PDL
Procedural Description Language,描述如何使用仪器,并允许从 IP 级自动重定向到芯片级。
TAP
IEEE 1149.1 Test Access Port,常作为 IJTAG 网络的芯片级入口。
TDR
Test Data Register,承载控制值或捕获状态,可串入扫描路径。
SIB
Segment Insertion Bit,用控制位决定某段扫描网络是否出现在当前活动扫描路径中。
ScanMux
由选择信号决定扫描数据从哪条分支通过的 ICL 复用结构。
iProc
绑定到某个 ICL Module 的 PDL 过程;同类 Module 的每个实例都可调用。
iCall
按实例层次路径调用 iProc。
iWrite / iRead
将写操作或期望读操作加入待求解队列。
iApply
触发重定向器求解队列,生成打开路径、移位、捕获和更新所需序列。
Retargeting
把仪器边界上的抽象 PDL 操作转换成当前设计层级可执行的顶层端口序列。
ICL Extraction
从 Verilog/门级网表追踪 IJTAG 建筑块的真实连接并生成缺失的顶层/层次 ICL。
SIH
SSN IJTAG Host,HB-IJTAG 中连接 SSN 总线与本地 IJTAG 网络的节点。

Tessent Shell 流程速查

10 groups
set_context patterns -ijtag

进入 IJTAG Pattern 上下文

read_icl

读入 ICL Module 与实例层次

dofile / read_pdl

装载与 Module 绑定的 PDL

set_current_design

确定重定向目标层级

set_system_mode analysis

执行最终 DRC,并进入可生成 Pattern 的分析模式

open_pattern_set / close_pattern_set

组织一次或一组 PDL 操作为命名 Pattern 集

report_icl / get_*

进行 ICL introspection 与层次/对象查询

write_patterns

导出 PDL、Verilog testbench、STIL 或目标 Pattern 格式

extract_icl

从设计网表抽取 IJTAG 互连 ICL

create_icl_verification_patterns

自动生成网络与仪器结构验证 Pattern

LOCAL SOURCETessent Shell User's Manual + IJTAG User's Manual + Shell Reference Manual · 2026.1

本页面依据 D 盘 Tessent_MD_KnowledgeBase/tshell_user 的 607 篇 Tessent Shell User's Manual 文档, 以及 Tessent_MD_KnowledgeBase/tshell_ijtag_user 的 190 篇 IJTAG User's Manual 文档整理,并逐项核对Tessent_MD_KnowledgeBase/tshell_ref 中的命令定义;技术图保留自同库 common 目录的原始文件。 页面为学习型中文重构,完整可选参数、格式开关与版本限制仍以对应版本 Tessent Shell Reference Manual 为准。

● FULL OFFLINE · 20 CHAPTERS