摘要:ICL(Instrument Connectivity Language)是IEEE 1687(IJTAG)标准的一部分,用于描述芯片内嵌入式器件的连接性和访问方式。它是一种硬件架构描述语言,专注于定义器件之间的连接关系,而不涉及器件内部的具体操作细节。ICL
第一节:ICL概述
ICL(Instrument Connectivity Language)是IEEE 1687(IJTAG)标准的一部分,用于描述芯片内嵌入式器件的连接性和访问方式。它是一种硬件架构描述语言,专注于定义器件之间的连接关系,而不涉及器件内部的具体操作细节。ICL的主要作用是提供一种标准化的方式来描述嵌入式器件的连接网络,以便实现对这些器件的高效访问和控制。
第二节:ICL的主要组成部分
模块(Module):ICL的核心是模块,每个模块代表一个逻辑单元,可以是一个器件、一个器件的封装(wrapper)、一个扫描链网络等。模块可以包含其他模块的实例(Instance),形成层次化的网络结构。模块定义了其内部的器件接口(如扫描输入、扫描输出、数据输入、数据输出等)以及与其他模块的连接关系。
器件(Instrument):器件是模块中的关键节点,包括TAP(测试访问端口)、SIB(Segment Interconnect Bit,段互连位)、TDR(Test Data Register,测试数据寄存器)以及各种DFT IP(如EDT、OCC、MBIST等)。每个器件都在模块中定义,具有特定的接口和功能。
连接描述(Connection Description):描述模块之间的连接关系,包括扫描链的连接、扫描多路复用器(Scan Mux)的配置、SIB的控制等。通过定义输入端口(InputPort)、输出端口(OutputPort)和连接源(Source)等,明确模块之间的数据流向。
第三节:ICL的作用
标准化的连接描述:ICL提供了一种标准化的方式来描述嵌入式器件的连接网络,使得不同供应商的芯片和工具能够以一致的方式进行交互和操作。这有助于减少芯片设计和测试过程中的复杂性和成本,提高测试覆盖率和效率。
层次化的网络结构:ICL支持层次化的网络结构,允许将复杂的芯片设计分解为多个层次的模块和子模块。这种层次化结构使得对嵌入式器件的访问和控制更加灵活,便于在不同层次上进行测试和调试。
与PDL的协同工作:ICL与PDL(Procedural Description Language,过程描述语言)协同工作,PDL用于描述对器件的操作过程,而ICL则定义了这些操作所依赖的硬件连接。通过ICL和PDL的结合,可以实现对嵌入式器件的高效访问和控制,以及测试向量的可移植性。
以下是一个简单的ICL示例,描述了一个包含TDR和SIB的模块:
Module TDR_Module {
ScanInPort si;
ScanOutPort so { Source R[0]; }
ShiftEnPort se;
CaptureEnPort ce;
UpdateEnPort ue;
SelectPort sel;
TCKPort TCK;
ScanRegister R[7:0] {
ScanInSource si;
Module SIB_Module {
ScanInPort TDI;
ScanOutPort TDO { Source SIB_Mux; }
ScanRegister SIB {
ResetValue 1'b0;
ScanInSource TDI;
CaptureSource SIB;
ScanMux SIB_Mux SelectedBy SIB {
1'b0 : SIB;
1'b1 : TDR_Module.so;
在这个示例中,TDR_Module定义了一个8位的TDR,SIB_Module定义了一个SIB,用于控制TDR是否被包含在扫描链中。
第四节:ICL中各个组件的介绍
ICL的核心组件包括TAP(测试访问端口)、SIB(Segment Interconnect Bit,段互连位)、TDR(Test Data Register,测试数据寄存器)以及各种DFT IP(如EDT、OCC、MBIST等)。这些组件共同构成了ICL描述的网络结构,使得对嵌入式器件的访问和控制更加灵活和高效。
TAP是JTAG(Joint Test Action Group)标准中的一个关键组件,用于控制和访问芯片内的测试逻辑。在ICL中,TAP的作用是提供一个外部接口,通过这个接口可以访问和控制嵌入式器件。TAP的功能是提供对内部测试逻辑的访问;控制扫描链的操作;与外部测试设备(如ATE)进行通信。
TAP代码示例:
AccessLink Tap_1149_dot_1 Of STD_1149_1_2001 {
BSDLEntity XC6SLX9_FTG256;
USER1 {
ScanInterface { IJTAG_Demo_1Bit_ET_0.BSCAN_SPARTAN6_Gateway; }
SIB是一个单比特单元,用于控制扫描链中器件的插入和排除。SIB的作用类似于一个开关,决定是否将某个器件的数据包含在扫描链中。当SIB设置为0时,器件被跳过,不包含在扫描链中;当SIB设置为1时,器件被包含在扫描链中;SIB提供动态配置扫描链的能力。SIB结构包括输入端口、输出端口和选择信号;输入端口如reset、sel、ce、ue、se、si、from_so、tck;输出端口如so;选择信号如to_sel。
SIB代码示例:
Module LD_1Bit_Instr_1__Wrapper {
ScanInPort TDI;
ScanOutPort TDO { Source SIB_mux; }
DataOutPort LD0 { Source LD_1Bit_Instr_1.LD0; }
Instance LD_1Bit_Instr_1 Of BST_IO_LD_1Bit_Instr_1__LD_1Bit_Instr_1 {
InputPort xi_LD0 = Write_TDR[0];
ScanRegister Write_TDR[0] {
ResetValue 1'b0;
ScanInSource SIB;
CaptureSource LD_1Bit_Instr_1.LD0[0];
ScanRegister SIB {
ResetValue 1'b0;
ScanInSource TDI;
CaptureSource SIB;
ScanMux SIB_Mux SelectedBy SIB {
1'b0 : SIB;
1'b1 : Write_TDR;
TDR是ICL中的另一个关键组件,用于存储和传输测试数据。TDR类似于JTAG标准中的边界扫描寄存器,但专为嵌入式器件设计。TD可以存储测试数据,提供数据的捕获、更新和扫描操作,支持对嵌入式器件的访问和控制。TDR结构包括输入端口和输出端口。输入端口如si、to_sel、ue、ce、se、tck;输出端口如from_so。
TDR代码示例:
Module TDR {
ScanInPort si;
ScanOutPort so { Source R[0]; }
ShiftEnPort se;
CaptureEnPort ce;
UpdateEnPort ue;
SelectPort sel;
TCKPort TCK;
ScanRegister R[7:0] {
ScanInSource si;
DFT IPs是一系列用于测试和验证的知识产权模块,包括但不限于EDT(Embedded Deterministic Test)、OCC(On-Chip Controller)、MBIST(Memory Built-In Self Test)以及其他测试模块。
EDT:提供确定性测试功能,用于快速诊断和验证芯片功能。
OCC:控制和管理芯片内部的测试逻辑。
MBIST:提供内存自测试功能,用于验证内存模块的正确性。
其他测试模块:包括逻辑BIST、I/O BIST、传感器、电源控制器等,提供各种测试功能,支持芯片的验证和调试,提高测试覆盖率和可靠性。
ICL通过定义这些组件的连接和交互,实现了对嵌入式器件的高效访问和控制。
TAP与SIB的连接:TAP通过扫描链与SIB连接,SIB控制扫描链中器件的插入和排除。
SIB与TDR的连接:SIB通过选择信号to_sel控制TDR的插入,TDR存储和传输测试数据。
TDR与器件的连接:TDR通过数据输入和输出端口与器件连接,提供对器件的访问和控制。
DFT IPs的集成:DFT IPs通过扫描链与TDR连接,提供各种测试功能。
第五节:ICL的应用场景
芯片级测试:在芯片设计阶段,ICL可以用于定义芯片内部的测试网络,使得在芯片制造完成后能够方便地进行内部器件的测试和验证。通过ICL描述的测试网络,可以实现对芯片内部各种功能模块的快速访问和测试,提高芯片的测试覆盖率和可靠性。
系统级测试:在系统级测试中,ICL可以用于描述多个芯片之间的测试网络,实现对整个系统的测试和验证。通过ICL定义的系统级测试网络,可以方便地对系统中的各个芯片进行协同测试,确保系统的整体性能和可靠性。
3D堆叠芯片测试:在3D堆叠芯片设计中,ICL可以用于描述堆叠芯片之间的测试网络,实现对堆叠芯片内部器件的访问和测试。通过ICL定义的测试网络,可以方便地对堆叠芯片中的各个芯片进行单独测试或协同测试,提高3D堆叠芯片的测试效率和可靠性。
第六节:ICL的限制与挑战
复杂性:ICL的语法和语义相对复杂,需要一定的学习成本来掌握其使用方法。在描述复杂的芯片设计时,ICL代码可能会变得非常庞大和难以维护。
工具支持:ICL的使用依赖于EDA工具的支持,目前市场上对ICL的支持还不够完善,部分工具可能无法完全实现ICL的功能。不同工具之间的兼容性问题也可能导致ICL描述的网络在不同工具中无法正确解析和使用。
性能影响:在芯片设计中引入ICL描述的测试网络可能会对芯片的性能产生一定的影响,如增加芯片面积、功耗和延迟等。需要在测试功能和芯片性能之间进行权衡,以确保芯片在满足测试需求的同时,仍能保持良好的性能表现。
第七节:ICL的未来发展方向
工具改进:随着对ICL需求的增加,EDA工具供应商将不断改进工具对ICL的支持,提高工具的易用性和兼容性。未来可能会出现更加智能化的工具,能够自动优化ICL描述的网络结构,减少对芯片性能的影响。
与其他技术的融合:ICL可能会与其他测试技术(如ATPG、BIST等)进一步融合,形成更加完善的芯片测试解决方案。通过与其他技术的协同工作,可以更好地满足复杂芯片设计的测试需求,提高芯片的测试覆盖率和可靠性。
标准化的推进:IEEE 1687标准的不断推进和完善将为ICL的发展提供更加坚实的基础。随着标准的广泛接受和应用,ICL有望在芯片设计和测试领域得到更加广泛的应用和推广。
dsfsdfsdf
来源:科技连环画