Tessent ICL语法详解:如何高效定义SIB、TDR和TAP模块

Tessent ICL语法精要:从模块定义到高效测试网络构建实战

如果你正在为复杂的芯片测试结构描述而头疼,看着那些交织的SIB、TDR和TAP模块连接关系感到无从下手,那么你很可能需要重新审视一下Tessent ICL这门“硬件描述语言”。和Verilog、VHDL这类我们熟知的电路描述语言不同,ICL(Instrument Connective Language)的视角非常独特——它不关心晶体管的开关,也不描述寄存器的逻辑功能,它的核心使命是清晰地定义测试仪器(Instrument)之间的拓扑连接关系。你可以把它想象成芯片测试架构的“接线图”或“网络拓扑说明书”。对于负责DFT(可测试性设计)或芯片验证的工程师而言,精通ICL意味着你能高效、准确地将设计意图传达给Tessent工具链,从而自动化地生成测试访问端口(TAP)、插入测试逻辑,并最终实现高效的生产测试。本文将抛开那些枯燥的语法手册,从实际项目出发,深入剖析如何用ICL高效、清晰地定义SIB、TDR和TAP,并分享一些能让你少走弯路的实战技巧。

1. 理解ICL的核心哲学:从“是什么”到“为什么”

在跳进具体的语法细节之前,花点时间理解ICL的设计哲学至关重要。这能帮你避免写出看似正确、实则违背工具逻辑的代码。

ICL的本质是一种声明式连接语言。它不像过程式编程语言那样一步步告诉计算机“怎么做”,而是声明“什么东西连接到哪里”。工具(如Tessent Shell)读取ICL文件后,会根据这些声明来理解整个测试网络的层次结构、信号流向和控制关系。因此,编写ICL时,你的思维模式应该从“如何实现一个功能”切换到“如何描述一个已经存在的连接关系”。

一个常见的误解是把ICL模块(Module)等同于Verilog的模块。虽然语法上有相似之处(都有端口和实例化),但它们的语义天差地别。Verilog模块描述的是电路行为或结构,而ICL模块描述的是一个测试仪器(Instrument)的接口和内部扫描寄存器。这个Instrument可以是TAP控制器、扫描链选择块(SIB)、测试数据寄存器(TDR),甚至是嵌入式确定性测试(EDT)压缩器。

为什么这种区分如此重要? 因为在ICL的世界里,ScanInterface的定义决定了仪器扮演的角色。client接口意味着这个仪器“被上级控制”,而host接口意味着它“可以控制下级”。这种主-从(host-client)关系是构建分层测试网络的基础。理解这一点,你就能明白为什么一个SIB模块里会同时存在clienthost两个ScanInterface——它既是TAP的“客户”(被TAP控制),又是下游TDR的“主机”(控制TDR)。

2. 模块定义深度解析:SIB、TDR与TAP的语法实战

让我们暂时忘掉那些抽象的术语,通过构建一个具体的、两级的测试网络来拆解每个模块的定义。假设我们有一个简单的场景:一个TAP控制器通过两个SIB(SIB1, SIB2)分别访问两个独立的TDR(TDR1, TDR2)。我们将一步步构建这个网络的ICL描述。

2.1 SIB模块:测试网络的交通枢纽

扫描链插入块(Scan Insertion Block, SIB)是IJTAG(IEEE 1687)网络中的关键组件,它像一个可编程的交换机,决定测试数据流是穿过它访问下游仪器,还是绕过它。在ICL中定义SIB,核心在于清晰地描述其多路选择逻辑双重接口角色

一个典型的SIB模块声明始于其所有必要的控制与数据端口:

Module sib_example {
  // 控制与时钟端口
  ResetPort rst { ActivePolarity 0; } // 复位端口,低电平有效
  SelectPort en;                       // 选择使能端口
  ScanInPort si;                       // 主扫描输入
  CaptureEnPort ce;                    // 捕获使能
  ShiftEnPort se;                      // 移位使能
  UpdateEnPort ue;                     // 更新使能
  TCKPort tck;                         // 测试时钟

  // 输出与级联端口
  ScanOutPort so { Source sib_reg; }   // 扫描输出,源是内部的SIB寄存器
  ToSelectPort en_out;                 // 输出给下游仪器的选择信号
  ScanInPort fsi;                      // 来自下游仪器的反馈扫描输入(FeedBack Scan-In)

  // 接口定义:明确角色
  ScanInterface client {
    Port si;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值