【芯片测试】:6. 向量、Sequencer 指令与高速串行 IO

news2026/5/24 6:02:05
Pattern 详解向量、Sequencer 指令与高速串行 IO系列Advantest V93000 SmarTest 8 核心概念解析第 6 篇共 8 篇适合读者需要理解数字测试激励数据结构的工程师前言Pattern模式是 SmarTest 测试中最庞大的数据单元可能包含数亿个向量占据数 GB 的存储空间。理解 Pattern 的结构不仅关系到写出正确的测试更关系到如何在有限的测试机内存中高效组织数据。本篇覆盖三个层次基础Pattern 的文件结构、Vector 的格式、Signal Group存储向量内存的硬件组织与优化Memory Pooling高级SOC 多核测试的 Virtual Pattern以及高速串行接口的 Link Scale / HSIO一、Pattern 的基本结构一个 Pattern 是**向量序列vectors和Sequencer 指令sequencer instructions**的组合存储为.pat文件本质是 zip 压缩包包含多个子文件pattern_file.pat (zip archive) ├── program ← Sequencer 指令循环、跳转、Action 锚点等 ├── vectors ← 向量数据状态字符阵列 ├── comments ← 注释可选 └── metadata ← 元数据可选Vector向量Vector 是一个状态字符的线性数组每个位置对应一个 DUT 信号或信号组在当前 device cycle 的波形。向量示例5个信号向量编号31245 信号: CLK DATA0 DATA1 RESETn IO_OUT 向量: 1 0 1 H X 含义CLK 驱动高DATA0 驱动低DATA1 驱动高 RESETn 输出期望高IO_OUT 不关心dont care每个状态字符如0、1、H、L、X、Z都在 wavetable 中有对应的波形定义参见第 4 篇。每个向量中每个信号必须有且仅有一个状态字符。Pattern 可以用在哪里直接绑定在 Test Suite 上最简单用法一个 test suite 直接指定一个 pattern通过 Operating Sequence 调用多个 pattern 和 action 按时序编排后由 test suite 使用 operating sequence二、Signal Group in Pattern批量广播什么是 Signal GroupSignal Group 允许把多个拥有相同波形需求的信号合并成一个组在 pattern 中只写一列状态字符SmarTest 自动将该状态字符广播给组内所有信号。适用场景场景 1多核 SOC 中的相同 IP 核例如一个 DUT 上有 16 个 CPU core每个 core 的 CLK 信号都需要相同的时钟波形。使用 signal groupIO07_CPU将 16 个 CLK 信号合并pattern 中只写一列。场景 2多个相同功能模块PCIe 接收信号组RXp3包含 8 路 PCIe 信号测试时发送相同激励使用 signal group 可以大幅减少 pattern 的列数和 binding 时间。内存的注意点虽然一个 signal group 在 pattern 中看起来只有一列但底层每个信号仍然有自己独立的 pogo pin 和向量内存。数据在 binding 时被复制到每个信号各自的内存中。如果要避免这种内存复制需要使用Pin Scale Intra-site Memory Sharing同一 channel group 内存共享。三、Sequencer 指令控制 Pattern 执行流程Pattern 不是线性播放的Sequencer 指令可以在向量中插入控制流指令类别功能Loop / Repeat重复执行一段向量 N 次GenVec生成并执行 N 个向量Call / Jump跳转到 pattern 的另一处MatchLoop循环执行直到 DUT 响应匹配期望值动态等待BreakPoint在并行 pattern 中标记同步点配合 break vector 使用Action Anchor在特定向量位置触发一个 Action仪器操作CTIM / CLEV在 pattern 执行中途切换 timing set 或 level setMatchLoop是一个特别有用的指令常用于等待 DUT 完成内部初始化busy-wait等待 DUT 输出特定响应后才继续四、向量内存的硬件组织数字卡的物理结构以 PS5000 为例一张卡有多个逻辑板Logical Board每个逻辑板对应 DUT board 上一个 pogo block16 个 pogo pin。每个逻辑板内有两个测试处理器Test Processor每个处理器控制一个8-channel group的内存。PS5000 卡单张 ├── Logical Board 1 │ ├── Test Processor A → 8-channel groupCH01~CH08 │ └── Test Processor B → 8-channel groupCH09~CH16 ├── Logical Board 2 │ ├── ...关键约束内存共享和 pooling 只能发生在同一个 channel group 内PS5000 Xtreme Pooling 是例外。Pin Scale Memory Pooling自动利用碎片内存不同信号对向量内存的需求差异极大深扫描信号Deep Scan通过高速串行接口传输大量扫描数据需要 GB 级内存控制信号CLK、RESET、SYNC 等只需要少量向量内存这种不均衡导致大量内存碎片。Memory Pooling机制自动利用富余信号的空闲内存来存储缺口信号的向量数据Channel Group8 channels CH01: Signal S01需要 48 MiB已许可 64 MiB剩余 16 MiB CH06: Signal S07需要 62 MiB已许可 112 MiB剩余 50 MiB ↑ S02 需要 110 MiB但自身只有 64 MiB 许可 → Memory Pooling 自动将 S02 的额外数据存入 S07 的剩余空间 → S02 可以访问 S07 的捐出内存无需物理搬运Memory Pooling 是完全透明的无需修改测试程序或 pattern系统自动完成。约束Donor 和 Recipient 必须在同一个 4/8-channel group 内Recipient 的许可内存级别必须 ≥ Donor只能向上捐不支持级联A 捐给 BB 无法再捐给 CXtreme Memory PoolingPS5000、PSMLS B 专属当深扫描信号需要的数据超过整个 channel group 的容量时Xtreme Memory Pooling允许跨 channel group 转移数据Channel Group A内存空闲 Channel Group B深扫描内存饱和 ↓ ↑ 存储 B 的向量数据 →→→ 运行时复制到 B →→→ 执行完释放 →→→ 接收下一批这实现了流水线式的数据供给使得深扫描信号可以执行远超单个 channel group 容量的向量序列。五、Virtual PatternSOC 多核测试的抽象随着 SOC 的复杂度增加DUT 内部有多个 IP 核Core A、B、C…每个核有自己的接口信号。但这些核的信号不一定直接连接到测试机的 pogo pin——它们可能是 DUT 内部路由只能通过扫描链间接访问。SmarTest 引入Virtual Signal 和 Virtual Pattern来处理这种情况。三个层次的信号层次名称描述物理层DUT Pin / Pogo Pin实际与测试机接触的管脚逻辑层DUT Signal测试程序中使用的逻辑信号名通过.dbd映射到 pogo pin虚拟层Virtual SignalIP Core 的内部信号不直接连接 pogo pinVirtual Vector 与 Virtual PatternVirtual Vectorm 个 virtual signal 在一个 core cycle 的状态字符数组类比 DUT 的 vectorVirtual Pattern一系列 virtual vector 的序列描述某个 IP Core 的激励或期望响应类比 DUT 的 parallel pattern例如一个有 5 个 IP 核A、B、C、D、E的 SOCCore A: Asig0 Asig1 虚拟向量序列 → Virtual Pattern A Core B: Bsig0 Bsig1 Bsig2 ... Bsig7 虚拟向量序列 → Virtual Pattern B Core C: Csig0 Csig1 ... Csig4 虚拟向量序列 → Virtual Pattern C ...D、E 类似每个 IP Core 有自己独立的 Virtual Pattern它们捕获了该 Core 在功能测试中应该发送和接收的完整数据序列。重要限制Virtual Pattern不能是 site-specific不支持不同 site 发不同数据SmarTest 8 的.pat文件原生支持 virtual pattern 格式Virtual Pattern 不通过标准 pogo pin 接口直接执行而是由 Link Scale / HSIO 序列化后传输六、Link Scale / HSIO高速串行扫描传统的 ATE 测试使用并行 pogo pin 接口传输向量数据。随着 DUT 数据量增加并行接口的带宽和引脚资源不足出现了通过**高速串行接口HSIO**传输扫描数据的方案——这就是Link Scale。Link Scale 的架构Link Scale 使用USB3或PCIe4这两种 HSIO 协议与 DUT 通信测试机 Link Scale 卡 ↓USB3 或 PCIe4 高速串行链路 DUT 上的 DUT Scan ControllerDFT 组件 ↓内部路由 各 IP Core 的 Scan ChainDUT 上必须有一个DUT Scan Controller它负责接收 HSIO 数据包解包后将扫描数据路由到各个内部扫描链。Link Scale HSIO PatternLink Scale HSIO Pattern 是在 Virtual Pattern 基础上增加了序列化信息和 DUT Scan Controller 控制指令的扩展格式Link Scale HSIO Pattern 序列化的 Virtual Pattern 数据 可选DUT Scan Controller 控制指令一个 HSIO Pattern 可以包含多个 Virtual Pattern或包含让 DUT Scan Controller 自动生成 Virtual Pattern 的指令DUT 自生成模式。前向映射Forward Mapping前向映射是将 Virtual Pattern 的状态字符序列化为 HSIO 比特流的过程规则包括添加包头元信息描述 pattern 结构将信号名称替换为 DUT 内部标识符按 LSB/MSB 顺序、大端/小端字节序排列比特Virtual Pattern A → [包头] [信号ID映射] [数据比特流] → USB3/PCIe4 传输 Virtual Pattern B → [包头] [信号ID映射] [数据比特流] ↗ 两个 pattern 可打包在同一个 HSIO 数据包中后向映射Backward MappingDUT 响应的序列化输出需要被还原为与 Virtual Pattern 对应的数据结构这个过程叫后向映射Back MappingDUT HSIO 输出流 → 反序列化 → 按信号分配的并行结构 → 标记失败周期结果有两种形式Raw Result Data直接从 HSIO 比特流中提取的原始失败比特Back-mapped Data将失败比特映射回 Virtual Signal 的失败周期更易于分析工具链分工Link Scale 的前向/后向映射不是 SmarTest 功能而是由第三方 EDA 工具完成例如 Synopsys TestMAX ALE。SmarTest 的职责是接受已序列化好的 HSIO Pattern通过 Link Scale 卡物理传输收集 DUT 的 HSIO 响应输出将 raw 结果或 back-mapped 结果提供给测试方法七、Pattern 相关的数量限制速查限制项数值每个 wavetable 最大波形数256Pattern 文件大小无硬性上限受内存约束向量数必须是 X-Mode 的倍数X8 模式 → 向量数必须是 8 的倍数每个 tester cycle 最大 drive/receive edge 数X1PS1600/PS50008Signal Group 内信号数无硬性上限总结概念一句话关键点Pattern向量序列 sequencer 指令.pat是 zip 文件包含 program/vectors 等Vector所有信号在一个 device cycle 的状态字符数组每信号一个状态字符Signal Group相同波形信号的批量广播省列宽但底层仍有独立内存Memory Pooling利用闲置内存为高需求信号服务自动透明跨 channel group 需 Xtreme Pooling仅 PS5000、PSMLS BVirtual Pattern针对 IP Core 内部信号的抽象向量序列不直接连 pogo pin需序列化传输Link Scale / HSIO通过 USB3/PCIe4 串行传输扫描数据DUT 需要 DUT Scan Controller前/后向映射由 EDA 工具完成下一篇将介绍Action 与 Operating Sequence讲清楚仪器动作的生命周期以及如何把 Pattern 和 Action 按时序编排在一起。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2639972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…