本文为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、首先是MPAT和END字段,它们分别标志着程序的起始与终结,为整个流程提供了明确的边界。
2、随后是REGISTER寄存器声明部分,这一环节主要承担寄存器的初始化工作,确保在执行后续操作前,寄存器处于正确的初始状态。
3、最后是MODULE BEGIN和MODULE 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信号:控制触发,读写等信号
时钟控制部分:控制输出波形