Pattern program MPAT 详解

news/2024/11/8 20:59:25 标签: 硬件工程, 单片机, 嵌入式硬件, 学习

本文为VIP文章,主要介绍Pattern中元素与格式、常用指令、地址&数据产生指令等。

目录

一、pattern概述

二:Pattern构成元素

1、pattern构成元素:MPAT、END

2、pattern构成元素:pattern file name

3、pattern构成元素:SDEF

4、Pattern构成元素:REGISETR

5、Pattern构成元素:MODULE BEGIN/MODULE END

6、Pattern构成元素:START

7、Pattern构成元素:label

8、Pattern构成元素:ADDRESS DEFINE

9、Pattern指令段内部格式

实例 

三:Pattern常用控制指令详解

1、NOP

2、JNIn

3、INCn、STIn、LDIn、IDXIn(n=1~8)

4、OUT指令详解

5、JNCm

6、JZD

7、FLGLI1

8、JSR、RTN、JMP、STPS

四:Pattern地址产生指令详解

1、地址产生相关寄存器概述

2、XMAX, YMAX寄存器详解

3、LMAX, HMAX寄存器详解

4、Base Register:XB、YB、Z详解

5、Hold Register:XH、YH、ZH详解

6、直接输出寄存器XTn,YTn

7、地址偏移寄存器D1-D4详解

8、Base Register ALU操作总结

9、Current Register ALU操作总结

10、关于地址产生指令的补充说明

11、DSEL相关指令介绍

五、Pattern数据产生指令详解

1、TP,TP2寄存器详解

2、DCMR和DCMR2寄存器详解

3、使用D5/D6寄存器进行数据操作

4、数据反转

实例1 

实例2 

总结


一、pattern概述

自动测试设备(ATE)中用于生成测试模式的程序。

Pattern program 在 Advantest T55xx 系列测试设备中扮演着重要角色。它需要时间学习如何生成各种DRAM算法的pattern,难度在于掌握具体的语法控制ALPG(Algorithmic Pattern Generator)生成算法要求的地址和数据。Pattern program 通常与 socket program、scramble program 和 main program 一起工作,其中 main program 调用其他程序并定义测试项

“Pattern program”是用“MPAT语言”编写的一种用于DUT(Design Under Test)测试的程序,它是tester程序的一部分,用于通过编程驱动pattern硬件系统产生特定的输出(地址,数据,波形等)来测试DUT设备。

在这种情境下,“MPAT语言”是一个特定的测试编程语言,用于描述和生成测试模式。测试模式是一系列预定义的指令和参数,用于控制测试设备以特定的方式工作,并收集DUT的响应数据。

测试程序(即Pattern program)的作用是通过编程方式控制测试硬件系统,以便产生所需的测试激励,例如特定的地址序列、数据模式或波形。这些激励被应用到DUT上,以验证其功能和性能是否符合预期。Pattern program可能会包括多种测试模式,每种模式针对DUT的不同方面进行测试。例如,一些模式可能关注于DUT的数据处理能力,而另一些模式可能关注于其在不同条件下的稳定性和可靠性。

二:Pattern构成元素

Pattern程序主要由以下几个核心组件构成:

1、首先是MPATEND字段,它们分别标志着程序的起始与终结,为整个流程提供了明确的边界。

2、随后是REGISTER寄存器声明部分,这一环节主要承担寄存器的初始化工作,确保在执行后续操作前,寄存器处于正确的初始状态。

3、最后是MODULE BEGINMODULE END模块定义,它们界定了pattern程序的主体内容所在。在这个模块中,真正的pattern程序得以展开。值得注意的是,一个完整的pattern程序可以包含多个MODULE,也可以不包含MODULE,这取决于具体的测试需求与程序设计。

1、pattern构成元素:MPAT、END

MPAT的语法为: MPAT program-name <IL-mode> 其中program-name将成为编译之后目标文件的文件名。同时,它也是对应的Pattern程序。 <IL-mode>是一个插页模式,当不指定插页模式时则默认使用1WAY模式。

MPAT指定插页模式的实例: MPAT  MSAMPLE1  1WAY   or   MPAT  MSAMPLE1 (默认为1 WAY) MPAT MSAMPLE2   2WAY 实际上有三个地方可以指定插页模式(由高到低):

Module part(模块段)中进行设置

Common part(公共段)中进行设置

MAPT后进行设置

2、pattern构成元素:pattern file name

3、pattern构成元素:SDEF

SDEF:Pattern字符串定义 SDEF是使用一个最大32位的任意字符串来定义地址产生指令和数据产生指令。SDEF可以和C语言中的宏定义相类比。SDEF的语法为: SDEF new-mnemonic = mnemonics-already-defined.

4、Pattern构成元素:REGISETR

REGISETR: 寄存器初始化区域

一个pattern主要包括一些寄存器和对这些寄存器的操作。寄存器之间的算术运算执行后可以产生DUT需要的地址和数据,一个寄存器声明可以用来初始化/设置每个寄存器的值,在不同的地方设置的优先级不同(由高到低):

Main Program(C code)中设置寄存器的值

Pattern Module(模块段)中设置寄存器的值

Pattern Common(公共段)中设置寄存器的值

5、Pattern构成元素:MODULE BEGIN/MODULE END

MODULE: 一个pattern程序中可以有多个MODULE,每个MODULE可以实现不同的功能。 MODULE的语法:

MODULE BEGIN   ;表示模块开始        

START    #n        ......

MODULE END      ;表示模块结束

MODULE注意事项: Pattern中可以有多个MODULE MODULE中需要其指令开始位置,使用START指定。

6、Pattern构成元素:START

SATRT: Pattern序列从START声明开始执行 START的语法:

START    #NO  (NO表示ALPG PATTERN MEMORY中的位置)

7、Pattern构成元素:label

label: 类似汇编语言中的标签 label的语法: label: (”:”一定不能少)

8、Pattern构成元素:ADDRESS DEFINE

ADDRESS DEFINE:N/Z/B中对应的Bit将替换对应的X/Y信号输出到DUT ADDRESS DEFINE的(提示:不支持XY = XY.OR.ZN (即某个X/Y信号只能选择B/N/Z中的一个,有重复的话,后写的会覆盖先写的。)

ADDRESS DEFINE

Y12-15 = N0-3

Y12-13 = B0-1

Y14-15 = Z0-1

XY = ZN

9、Pattern指令段内部格式

指令段内部格式可以分为如下部分:

序列控制部分:主要是相关的指令如NOP,JZD等

地址计算部分:操作寄存器输出相关地址

数据计算部分:操作寄存器输出相关数据

MUT信号:控制触发,读写等信号

时钟控制部分:控制输出波形


http://www.niftyadmin.cn/n/5744426.html

相关文章

Sophos | 网络安全

在 SophosLabs 和 SophosAI 的威胁情报、人工智能和机器学习的支持下&#xff0c;Sophos 提供广泛的高级产品和服务组合&#xff0c;以保护用户、网络和端点免受勒索软件、恶意软件、漏洞利用、网络钓鱼和各种其他网络攻击。Sophos 提供单一的集成式基于云的管理控制台 Sophos …

关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧

文章目录 1. sizeof 和 strlen1.1 sizeof1.2 strlen 2. 数组和指针结合的试题深入解析2.1 一维数组2.2 字符数组代码1代码2代码3代码4代码5代码6 2.3 二维数组 3.指针运算的试题深入解析题1题2题3题4题5题6题7 希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力…

CDA Level I思维导图

ATTN:学习过程中采用官方书籍&#xff1a;《精益数据分析》 目录 一、绪论 二、表格结构data&表结构data 三、DB应用 四、描述性统计分析(统计学) 4.1statistics概论 4.2data的描述性统计 &#xff08;一&#xff09;集中趋势 &#xff08;二&#xff09;离散程度…

C转C++学习笔记--基础知识摘录总结

一、类型转换 静态转换&#xff08;Static Cast&#xff09; 静态转换是将一种数据类型的值强制转换为另一种数据类型的值。 静态转换通常用于比较类型相似的对象之间的转换&#xff0c;例如将 int 类型转换为 float 类型。 静态转换不进行任何运行时类型检查&#xff0c;因此…

JavaScript定时器详解:setTimeout与setInterval的使用与注意事项

在JavaScript中&#xff0c;定时器用于在指定的时间间隔后或周期性地执行代码。JavaScript 提供了两种主要的定时器函数&#xff1a;setTimeout 和 setInterval。以下是它们的详细解释和实现方式&#xff1a; 1. setTimeout setTimeout 函数用于在指定的毫秒数后执行一次函数…

YoloV10改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码

论文介绍 CARAFE模块概述:本文介绍了一种名为CARAFE(Content-Aware ReAssembly of FEatures)的模块,它是一种用于特征上采样的新方法。应用场景:CARAFE模块旨在改进图像处理和计算机视觉任务中的上采样过程,特别适用于目标检测、实例分割、语义分割和图像修复等任务。目标…

ORACLE的字符集

我们在ORACLE数据库中常见的两种字符集&#xff1a;AL32UTF8/ZHS16GBK 什么是字符集&#xff1a; 在计算机语言中每个国家对于自己国家语言的二进制代码设计是不一样的&#xff0c;例如&#xff1a; zhs16gbk 简体中文字符集 &#xff1a;中 01010 国 01100 0101001100 ut…

pnpm管理多工作区依赖

pnpm是一个支持多包仓库的一个包管理工具,那么怎么可以在项目根目录下执行pnpm install的时候,也能同步让所有的工作区都能够通安装依赖呢? 方式一,在执行pnpm install指令的时候,添加recursive参数: pnpm install --recursive 方式二,在项目的根目录下通过pnpm的配置文件p…