Pattern program MPAT 详解

本文为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信号:控制触发,读写等信号

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【通义灵码】AI编码新时代

目录 一.初识灵码&#xff0c;开启新篇 安装 登录 二.灵码相伴&#xff0c;探索新境 实时续写 自然生成 单元测试生成 解释代码 优化建议 快捷键 三.智慧流转&#xff0c;高效开发 驱动移植 LVGL框架 项目总结 四.融合创新&#xff0c;携手同行 一.初识灵码&#…

RabbitMQ客户端应用开发实战

这一章节我们将快速完成RabbitMQ客户端基础功能的开发实战。 一、回顾RabbitMQ基础概念 这个RabbitMQ的核心组件&#xff0c;是进行应用开发的基础。 二、RabbitMQ基础编程模型 RabbitMQ提供了很多种主流编程语言的客户端支持。这里我们只分析Java语言的客户端。 上一章节提…

PySide6百炼成真(2)

文章目录 1.简单的登录页面2.简单的计算器 本篇根据前面所学做两个小demo 制作一个简单的登录页面制作一个计算器 因为还没有学习布局流等,所以就只能拖拉到设计师中. 1.简单的登录页面 下面就到计算器了,在图形界面中计算器就跟我们编程语言的hello,world一样,所以一定要自己…

群控系统服务端开发模式-应用开发-上传工厂开发

现在的文件、图片等上传基本都在使用oss存储。而现在常用的oss存储有阿里云、腾讯云、七牛云、华为云等&#xff0c;但是用的最多的还是前三种。而我主要封装的是本地存储、阿里云存储、腾讯云存储、七牛云存储。废话不多说&#xff0c;直接上传设计图及说明&#xff0c;就一目…

服务器被病毒入侵如何彻底清除?

当服务器遭遇病毒入侵时&#xff0c;彻底清除病毒是确保系统安全和数据完整性的关键步骤。这一过程不仅需要技术上的精准操作&#xff0c;还需要严密的计划、合理的资源调配以及后续的防范措施。以下是一篇关于如何在服务器被病毒入侵时彻底清除病毒的详细指南。 一、初步响应与…

修改 title标题图标

路径 \web\views\webclient_templates.xml \web\static\src\webclient\webclient.js 再升级web模块

docker安装zookeeper,以及zk可视化界面介绍

1. zookeeper 1.1. zookeeper简单介绍 ZooKeeper 是一个分布式的开源协调服务&#xff0c;最初由 Apache Hadoop 项目开发&#xff0c;用于构建分布式应用程序。它提供了一个简单的接口&#xff0c;允许开发人员实现诸如配置维护、域名服务、分布式同步、组服务等常见任务。Z…

Excel 无法打开文件

Excel 无法打开文件 ‘新建 Microsoft Excel 工作表.xlsx",因为 文件格式或文件扩展名无效。请确定文件未损坏&#xff0c;并且文件扩展名与文件的格式匹配。

idea配置maven仓库

下载Maven并配置文件内容 maven下载网址&#xff1a;Maven – Download Apache Maven 下载到D盘&#xff1a;D:\apache-maven-3.9.9 创建maven-repository文件夹作为本地仓库 修改conf文件夹下的setting.xml文件内容 在里面添加一条&#xff0c;指定本地仓库&#xff0c;下载…

L1G3000 提示工程(Prompt Engineering)

什么是Prompt(提示词)? Prompt是一种灵活、多样化的输入方式&#xff0c;可以用于指导大语言模型生成各种类型的内容。什么是提示工程? 提示工程是一种通过设计和调整输入(Prompts)来改善模型性能或控制其输出结果的技术。 六大基本原则: 指令要清晰提供参考内容复杂的任务拆…

C#与C++交互开发系列(十九):跨进程通信之套接字(Sockets)

1、前言 套接字&#xff08;Sockets&#xff09;是一种强大的通信方式&#xff0c;可以在同一台设备或网络上的不同设备之间进行通信。C# 和 C 都支持套接字编程&#xff0c;这使得在它们之间实现跨进程通信成为可能。本文将介绍如何通过套接字实现 C# 和 C 程序的跨进程通信&…

Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树

题目&#xff1a; 题解&#xff1a; class Solution:def convertBST(self, root: TreeNode) -> TreeNode:def getSuccessor(node: TreeNode) -> TreeNode:succ node.rightwhile succ.left and succ.left ! node:succ succ.leftreturn succtotal 0node rootwhile nod…

几个docker可用的镜像源

几个docker可用的镜像源 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; sudo rm -rf /etc/docker/daemon.json sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://d…

java ssm 校园快递物流平台 校园快递管理系统 物流管理 源码 jsp

一、项目简介 本项目是一套基于SSM的校园快递物流平台&#xff0c;主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本、软件工具等。 项目都经过严格调试&#xff0c;确保可以运行&#xff01; 二、技术实现 ​后端技术&#x…

Sentinel通过限流对微服务进行保护

目录 雪崩问题 解决雪崩问题的方法&#xff1a; 我们使用sentinel组件实现微服务的保护 一&#xff1a;下载sentinel 二.启动sentinel 三.访问&#xff1a;localhost:8080 默认的账号和密码都是sentinel 微服务整合sentinel 一.导入sentinel依赖 二.在application.yml配…

【Linux】冯诺依曼体系、再谈操作系统

目录 一、冯诺依曼体系结构&#xff1a; 1、产生&#xff1a; 2、介绍&#xff1a; 二、再谈操作系统&#xff1a; 1、为什么要管理软硬件资源&#xff1a; 2、操作系统如何进行管理&#xff1a; 3、库函数&#xff1a; 4、学习操作系统的意义&#xff1a; 一、冯诺依曼…

斗破QT编程入门系列之二:GUI应用程序设计基础:UI文件(四星斗师)

斗破Qt目录&#xff1a; 斗破Qt编程入门系列之前言&#xff1a;认识Qt&#xff1a;Qt的获取与安装&#xff08;四星斗师&#xff09; 斗破QT编程入门系列之一&#xff1a;认识Qt&#xff1a;初步使用&#xff08;四星斗师&#xff09; 斗破QT编程入门系列之二&#xff1a;认识…

ffmpeg命令

1. 修改视频的数据速率 ffmpeg.exe -i video.mp4 -r 30 -c:v libx264 -b:v 1500k output.mp42. mp4与h264互相转换 ffmpeg.exe -i a.mp4 -vcodec h264 output.h264 ffmpeg.exe -i output.h264 -vcodec mpeg4 output.mp4

前端三件套-css

一、元素选择器 元素选择器&#xff1a;利用标签名称。p,h1-h6...... 行内样式&#xff08;内联样式&#xff09;&#xff1a;例如<p style"color:red;font-size:50px"> id选择器&#xff1a;针对某一个特定的标签来使用。以#定义。 class&#xff08;类&a…

c++设计模式demo

模式设计原则 依赖倒置原则 ⾼层模块不应该依赖低层模块&#xff0c;⼆者都应该依赖抽象 &#xff1b; 抽象不应该依赖具体实现&#xff0c;具体实现应该依赖于抽象&#xff1b; ⾃动驾驶系统公司是⾼层&#xff0c;汽⻋⽣产⼚商为低层&#xff0c;它们不应该互相依赖&#x…