4、IEEE 1500标准概述:标准背景、目标、适用范围,与IEEE 1149.1(JTAG)的关系,以及核心架构(Wrapper、TAM、WSP等)
随着SoC(System-on-Chip)设计复杂度呈指数级增长,单个芯片内集成的IP核(Intellectual Property Core)数量越来越多,工艺节点不断微缩,测试数据量急剧膨胀。传统的芯片级测试方法(如直接ATE访问)在面对嵌入式芯核时显得力不从心:芯核的输入输出被封装在芯片内部,无法直接通过引脚控制。IEEE 1500标准正是在这一背景下应运而生,它提供了一种标准化的、可复用的芯核测试基础设施,使得芯核设计者、集成者和测试工程师能够在不同项目、不同工艺、不同供应商之间高效地传递和复用测试知识。本章将深入剖析IEEE 1500标准的背景、目标、适用范围、与JTAG的关系,以及其核心架构组件。
上图清晰地展示了IEEE 1500标准在SoC测试架构中的位置。左侧是传统的IEEE 1149.1 JTAG接口,右侧是IEEE 1500定义的芯核测试域,中间通过桥接逻辑实现两者的协同工作。下方则是连接各个芯核的TAM总线。这张图是理解整个标准体系的钥匙,接下来我们将逐一拆解各个组成部分。
4.1 标准背景与目标:为什么需要IEEE 1500?
在IEEE 1500标准诞生之前,芯核级可测试性设计面临严重的“碎片化”问题。每个IP供应商都使用自己私有的测试接口和协议,导致SoC集成者必须为每个芯核编写定制化的测试适配逻辑。这不仅增加了集成时间,还使得测试复用几乎不可能。例如,一个来自A公司的USB 3.0 PHY芯核和一个来自B公司的DDR控制器芯核,它们的测试接口可能完全不同,SoC团队需要分别开发两套测试访问机制(TAM),这极大地浪费了资源和时间。
IEEE 1500标准的核心目标可以归纳为以下几点:
- 标准化测试接口:为嵌入式芯核定义统一的测试访问端口和协议,使得任何符合标准的芯核都能被标准的测试设备访问。
- 促进测试复用:芯核设计者只需开发一次符合IEEE 1500标准的测试逻辑,即可在多个SoC项目中复用,无需修改。
- 支持分层测试策略:允许在芯核级、模块级和系统级分别进行测试,并支持测试的并行执行,从而缩短测试时间。
- 降低测试成本:通过标准化和复用,减少测试开发时间和ATE(自动测试设备)的占用时间,从而降低整体测试成本。
- 独立于芯核功能:标准不关心芯核内部的具体功能逻辑,只关注如何隔离和测试芯核,因此适用于任何类型的数字逻辑芯核。
4.2 适用范围与限制:哪些场景适用?
IEEE 1500标准主要适用于数字逻辑芯核的测试。它特别适用于以下场景:
- 大规模SoC设计:当芯片中包含多个复杂IP核(如CPU、GPU、DSP、编解码器)时,IEEE 1500提供了高效的测试访问方案。
- 第三方IP集成:当SoC设计团队从不同供应商采购IP核时,标准化的测试接口可以大大简化集成工作。
- 芯核测试复用:对于需要跨项目、跨工艺节点复用的芯核,IEEE 1500保证了测试逻辑的可移植性。
然而,该标准也有其局限性,需要工程师注意:
- 不适用于模拟/混合信号芯核:IEEE 1500主要针对数字逻辑,对于模拟电路、射频电路或混合信号芯核,需要额外的测试策略。
- 不定义TAM的具体实现:标准只定义了芯核侧的接口(Wrapper),但TAM的宽度、拓扑结构(如菊花链、多路并行)由SoC集成者自行决定。
- 不包含故障诊断机制:标准关注的是测试数据的传输和控制,不涉及具体的故障诊断算法或逻辑。
| 特性 | IEEE 1500 | IEEE 1149.1 (JTAG) |
|---|---|---|
| 主要目标 | 芯核级测试访问与隔离 | 板级/芯片级互连测试与调试 |
| 应用层级 | SoC内部嵌入式芯核 | 芯片引脚与PCB板级互连 |
| 端口定义 | WSP(串行)、WPP(并行) | TDI, TDO, TMS, TCK, TRST |
| 指令系统 | WIR(Wrapper指令寄存器) | IR(指令寄存器) |
| 数据寄存器 | WBR, WBY, WDR | DR(如边界扫描寄存器、旁路寄存器) |
| 控制方式 | 可由JTAG TAP控制,也可独立控制 | 独立TAP控制器 |
| 主要用途 | 芯核内部扫描测试、BIST启动 | 板级互连测试、芯片ID读取、在线编程 |
4.3 与IEEE 1149.1(JTAG)的关系:协同与差异
IEEE 1500与IEEE 1149.1(通常称为JTAG)是互补而非替代的关系。JTAG最初是为了解决PCB板级互连测试问题而设计的,它通过芯片引脚上的边界扫描单元(BSC)来控制和观察引脚状态。而IEEE 1500则是为了解决芯片内部芯核的测试问题。
在实际SoC中,两者通常协同工作:
- JTAG作为顶层控制接口:SoC芯片通常只有一个JTAG TAP控制器作为顶层测试控制点。外部测试设备通过JTAG接口发送指令。
- IEEE 1500作为芯核访问层:JTAG TAP控制器解析指令后,通过桥接逻辑将控制信号传递给各个芯核的IEEE 1500 Wrapper。Wrapper再执行具体的芯核测试操作。
- 共享测试数据路径:在某些设计中,JTAG的TDI/TDO数据路径可以复用为IEEE 1500的串行测试数据输入/输出(WSP),从而减少引脚开销。
4.4 核心架构详解:Wrapper、TAM与WSP
IEEE 1500标准的核心架构由三个关键组件构成:Wrapper(外壳)、TAM(测试访问机制)和WSP(Wrapper串行端口)。理解这三者的关系是掌握标准的关键。
4.4.1 Wrapper(外壳)
Wrapper是环绕在芯核周围的一组逻辑电路,它实现了芯核的隔离、测试数据的施加和响应收集。Wrapper主要由以下寄存器组成:
- Wrapper Instruction Register (WIR):用于存储当前芯核的测试指令,如“外部测试”、“内部扫描测试”、“旁路”等。
- Wrapper Boundary Register (WBR):由一系列边界单元组成,每个边界单元连接到芯核的一个功能引脚。WBR用于控制芯核输入引脚的状态(施加测试激励)和捕获芯核输出引脚的状态(收集测试响应)。
- Wrapper Bypass Register (WBY):一个1位移位寄存器,用于将测试数据从TAM输入直接旁路到TAM输出,从而跳过当前芯核,缩短测试数据路径。
- Wrapper Data Registers (WDR):可选的用户自定义数据寄存器,用于支持特定的测试需求,如芯核内部的扫描链访问。
4.4.2 TAM(测试访问机制)
TAM是连接SoC测试源(如ATE或JTAG TAP)与各个芯核Wrapper的数据通道。TAM的设计是SoC集成者的责任,标准不限定其具体实现方式。常见的TAM类型包括:
- 菊花链(Daisy Chain):所有芯核的Wrapper串行连接,数据依次通过每个芯核。优点是布线简单,缺点是测试时间随芯核数量线性增长。
- 多路并行总线(Parallel Bus):多个芯核共享一组并行测试数据线,通过选择信号激活目标芯核。优点是测试速度快,缺点是布线复杂。
- 混合拓扑:结合上述两种方式,将芯核分组,组内菊花链,组间并行。
4.4.3 WSP(Wrapper串行端口)
WSP是IEEE 1500标准定义的最基本的串行测试端口。它由以下信号组成:
- WSP_WIP (Wrapper Serial Port - Wrapper Input Port):串行测试数据输入。
- WSP_WOP (Wrapper Serial Port - Wrapper Output Port):串行测试数据输出。
- WSP_WCK (Wrapper Serial Port - Wrapper Clock):测试时钟。
- WSP_WRSTN (Wrapper Serial Port - Wrapper Reset):异步复位信号(可选)。
- WSP_WSI (Wrapper Serial Port - Wrapper Shift Input):移位使能控制。
- WSP_WSO (Wrapper Serial Port - Wrapper Shift Output):移位状态输出(可选)。
WSP的设计目标是提供一个最小化的、通用的串行接口,使得任何芯核都能通过简单的4-6根信号线进行测试访问。对于需要更高测试带宽的芯核,标准还定义了可选的并行端口(WPP),但WSP是所有实现必须支持的基础。
4.5 案例拆解:一个多芯核SoC的IEEE 1500测试架构设计
假设我们正在设计一个智能语音交互SoC,内部集成了三个芯核:一个Cortex-M4F MCU核、一个自定义的DSP音频处理核、以及一个硬件加速器(如FFT引擎)。我们需要为这三个芯核设计IEEE 1500测试架构。
背景与约束:
- 芯片有64个引脚,其中4个引脚分配给JTAG接口(TDI, TDO, TMS, TCK)。
- ATE测试设备支持最高100MHz的测试时钟。
- 三个芯核的扫描链总长度分别为:MCU核 10,000位,DSP核 20,000位,FFT核 5,000位。
- 目标是将芯核级测试时间控制在50ms以内。
初始现象与目标:如果采用简单的菊花链TAM,所有芯核串行连接,总扫描链长度为35,000位。在100MHz时钟下,移位一次需要350μs。假设需要1000个测试向量,总测试时间为350ms,远超50ms的目标。
分析判断过程:显然,菊花链无法满足测试时间要求。我们需要采用并行TAM架构。考虑到引脚限制,我们决定使用一个8位宽的并行TAM总线,三个芯核共享这8位数据线,但通过独立的Wrapper选择信号来激活目标芯核。
实际操作步骤:
- 定义TAM总线:设计8位宽的TAM数据总线(TAM[7:0]),以及每个芯核独立的Wrapper使能信号(WEN_MCU, WEN_DSP, WEN_FFT)。
- 配置Wrapper:为每个芯核配置IEEE 1500 Wrapper,设置WBR宽度与芯核引脚数一致,并连接TAM总线到Wrapper的并行数据端口(WPP)。
- 桥接逻辑设计:设计一个桥接模块,将JTAG TAP的指令解码为对各个Wrapper的控制信号。例如,当JTAG指令为“TEST_MCU”时,桥接逻辑激活WEN_MCU,并将TAM总线连接到MCU核的Wrapper。
- 测试调度:在测试程序中,依次激活每个芯核进行测试。由于是并行TAM,每个芯核的测试数据可以同时加载,但通过使能信号分时复用TAM总线。
结果对比:采用并行TAM后,每个芯核的测试时间分别为:MCU核 10,000位/8位 = 1,250个时钟周期,加上测试向量施加时间,总计约2ms;DSP核约4ms;FFT核约1ms。总测试时间约为7ms,远小于50ms的目标。
风险与代价:并行TAM增加了布线复杂度,需要额外的8根测试数据线,且需要更复杂的桥接逻辑。此外,由于TAM总线共享,无法同时测试多个芯核,限制了并行测试的潜力。
复盘经验:在本案例中,我们通过将菊花链改为并行TAM,成功将测试时间缩短了50倍。这证明了TAM拓扑选择对测试效率的巨大影响。在实际项目中,建议使用EDA工具进行TAM优化,综合考虑测试时间、布线资源和功耗。
4.6 常见误区与总结复盘
在学习和应用IEEE 1500标准时,工程师常陷入以下误区:
- 误区一:认为IEEE 1500就是JTAG。如前所述,两者层级不同,JTAG是芯片级接口,IEEE 1500是芯核级接口。虽然可以桥接,但不能混为一谈。
- 误区二:忽视WIR的指令设计。WIR的指令编码直接影响Wrapper的控制灵活性。设计过少的指令可能导致无法支持复杂的测试模式(如芯核BIST与外部测试的切换)。
- 误区三:TAM宽度越大越好。过宽的TAM不仅增加布线压力,还可能因同步问题导致测试时序混乱。应根据实际测试数据量和ATE通道数合理选择。
- 误区四:忽略Wrapper的时序约束。Wrapper逻辑位于芯核功能路径上,会引入额外的延迟。在时序关键路径上,需要仔细评估Wrapper的插入对功能时序的影响。