- SMT7快速开始
- Getting start以数字芯片为例
概念解析
Testmethod
是由test method API创建的标准CPP库,包含各种测试过程中使用的函数,是标准CPP语言的拓展 tml=test method lib
UTML
Universal test method library通用tml,由adv创建的通用coding环境
DUT Device目录结构
待测芯片以及其相关所有配置文件在smt中统称为device(宽泛概念)通常创建完device之后会自动生成以下目录:
SMT系统目录结构
SMT安装后包含特定子版本配置文件与通用公共配置文件;特定子版本配置文件存储在对应版本的目录中,例如:
- /etc/opt/hp93000/soc_
和/var/opt/hp93000/soc\_
通用公共文件存储在:
- /etc/opt/hp93000/soc_common和/var/opt/hp93000/soc_common
其中来自于特定于版本的目录的符号链接会指向公共文件,使用Switch Tool结构:
特定版本配置文件对照表:
| Path | Comment |
| /etc/opt/hp93000/soc_ |
Prober/Handler配置文件随时随需求更改而更改 |
| /opt/hp93000/soc_ |
用于equation、规格、波谱表格的编辑器,脚本需要随需求变更而更新 |
| /var/opt/hp93000/soc_ |
存储来自Prober/Handler的数据 |
通用版本配置文件对照表:
| Path | Comment |
| /etc/opt/hp93000/soc_common/lbin/ | 低级二进制文件;对于每一个特定版本的可执行文件来说,包含一个指向公共配置文件中对应的链接 |
| /etc/opt/hp93000/soc_common/model /etc/opt/hp93000/soc_common/org /etc/opt/hp93000/soc_common/passwd /etc/opt/hp93000/soc_common/ppu_alarms | 这些文件可以在不同版本之间共享。对于列出的每个文件,对应的版本目录中都会有一个指向公共配置文件的链接 |
| /var/opt/hp93000/soc_common/calibration | 这些文件可以在不同版本之间共享。当校准文件的格式发生变化时,校准文件可以被多个版本共享 |
| /var/opt/hp93000/soc_common/.sif_files | 系统信息文件,对于HP-UX这些文件保留在/var/opt/hp93000/soc中 |
| /var/opt/hp93000/soc_common/tracecal /var/opt/hp93000/soc_common/tmp/var/opt/hp93000/soc_common/diagnostic | 数据存储目录,任何版本的SmarTest软件生成的数据文件都将存储在这些公共目录中。对于列出的每个目录,对应版本特定目录中的链接指向公共目录 |
| /var/opt/hp93000/soc_common/prog_bug_log /var/opt/hp93000/soc_common/monitor | 这些数据文件是在安装过程中创建的,并且由SmarTest软件的所有版本共享。对于列出的每个文件,相应版本特定目录中的链接指向公共文件 |
- 定义Pins
使用Pin Configuration tool定义ate系统资源pins与DUT板的互联关系
- 定义device pins与测试机资源之间的连接,使用Digital Pins editor
- 定义sites的数量
- 为device pins分配channel
- 指定DPS工作范围
- 定义Pin Groups,创建utility lines与utility purposes
- 应用引脚配置数据
也可以从CSV文件中导入Pin configuration数据而非手动设置
- 设置Levels
总步骤
- 从顶部导航栏打开93000>SETUP>Levels
- 在弹出界面Select > Edit Equations ,Levels编辑器将被打开,Level配置文件在smt中以代码保存,代码在该界面展示,例:
- EQNSET 1 “OS_PS”
- SPECS
- Vcoef
- Vcore
- DVDD075_CORE_AVS_0V75 [V]
- DVDD075_PLL_FIX_0V75 [V]
- AVDD12_PLL_TS_FIX_1V2 [V]
- DPSPINS DVDD075_CORE_AVS
- vout = DVDD075_CORE_AVS_0V75*Vcoef*Vcore
- vout_frc_rng = 0.75*1.2
- ilimit = 20000
- iout_clamp_rng = 20000
- connect_state = UNGANG
- vout_rise_t_ms_per_volt = 1
- 根据Level或DPS pins,可以通过工具来自动生成代码:Shell > Generate Level或Shell > Generate DPS
- 在弹出界面中添加需要include的set与pins
- 点击Create完成sets与pins设置,将会自动生成配置代码
- 若需要指定自定义可变电平值,93000>SETUP>Levels>Select > Edit Specification打开Spec tool,完成编辑后点击File > Download以保存Spec设定
为Levels设定Context(内容)
每个电平equation都需要与一个context相关联,该context在引脚配置中分配。如果不显式指定上下文,则会自动设置上下文“DEFAULT”
在顶部菜单93000>SETUP>Levels>Select > Edit > Edit Equations打开的Levels编辑器中设置context模式:
- MODECONTEXT “context name”
在Levels编辑器中按下F8来将设定好的Levels配置下载到测试系统中;要验证所设置的context,可在Level setup窗口中Select > Show I/O Eqn. & Specs Results.中显示
常规std pins实际上不需要指定context,当没有定义context时,系统将自动设定该pin为default context,default 的modecontext定义了单端配置中的所有std引脚没有使用FAST模式;
图中的differential指任意一个用于描述差分引脚的context name,可以是除了default的其他任何context name
- 波形与时序设定
对于每个单独channel或某一组channel,均可配置波形和时序集合,波形组作为逻辑单元存储在系统内存中,对于所有pins而言其包含系统时钟周期和默认的device周期名称;对于每一单个pin而言其包含device周期定义、物理波形定义、一个或多个时序设定;设定波形需要提供时序信息,时序集作为波形集合的一部分存储在系统内存中,包含有测试系统周期与已配置的引脚边沿设定
基于equation的时序设置
包含三部分:生成wavetable波形表、生成时序equation组、生成时序规格链接波形表和时序equation,基于equation设定时序通常包含以下几个关键元素:
- 表达式
- Equation变量
- Spec变量
这几种元素的定义与语法和level equation相同
设定波形表wavetable
93000>SETUP>Timing>select>edit wavetables打开弹出窗口,wavetable编辑器是基于ASCII的编辑器,可以在此定义引脚的描述、形状、窗口大小等;默认情况下wavetable编辑器展示的是最近一次运行的wavetable文件,与当前正在运行的时序无关;在wavetable编辑器中选择shell>generate打开wavetable生成器,用于自动生成wavetable的ASCII描述
编辑完的wavetable文件是临时文件,即便下载到测试系统之后也需要单独手动保存才能在之后再次使用
Equation集的定义
在设定好wavetable之后,还必须要定义用于构成测试主干的equation,在93000>SETUP>Timing>select>edit equation打开编辑器,和wavetable类似,在shell>generate打开生成器
默认情况下测试系统会自动确定最佳的周期精度,例如对于20.4ns的周期选择10.2ns的精度,但如果有多个不同的时序集周期,可允许强制设定为自定义精度值
给出参考equation之后,定义specs,例:
- SPECS
- T [ns] # cycle time
- clkr [ns] # rising time of clock
- ref [ns] # basic reference for the bus timing
- sp1 [ns] # data valid
- sp2 [ns] # data invalid
定义时序,例:
- TIMINGSET 1 “only one used”
- period = T
示例中仅使用了一个时序集,可以通过数字或描述来表示(示例中的“1”和“only one used”)
对于每一个引脚都应定义跳变沿出现的时刻,例:
- TIMINGSET 1 “only one used”
- period = T
- PINS clkout
- e1 = clkref
- PINS data
- e1 = 0
- e5 = ref + sp1 + acc
- e6 = ref + sp2 – acc
示例中,边沿1即e1处于ref,同时也展示了clkout和data的定义
如有需要,可定义跳变沿的guard band和精度,上一个示例中引入了acc,acc通常被定义为常数变量,即对于该equation中的所有集合具有相同的数值0,代表了guard band的精度为0.1ns
- EQUATIONS
- acc = 0.1
Spec集的定义
通过spec tool来声明一组spec,SPEC集和EQN(equation)集存在一定冲突,如果一个或多个SPECset中应用了equation set中所定义的单位,smt将会显示警告信息:
- WARNING: Unit for spec variable “
" in EQNSET , SPECSET is not consistent (EQNSET unit: [ ], SPECSET unit: [ ]).Only EQNSET units will be used. To overwrite SPECSET units with EQNSET units, press "Download" and then save the setup.To keep SPECSET units, edit EQNSETs and set the same units as in SPECSETs.
在timing setup中打开Select > Edit Specifications 在change下拉菜单中点击Create Specification以创建新的spec集,弹出窗口会列出当前所有已定义的equation集,选择需要的equation集后创建新的spec集,spec必须要指定关联的equation和wavetable;定义spec是在equation编辑器中定义每个变量的初值和最大最小范围,允许为每个变量加入注释,设定完成后可以启动spec检查自动排查
- SMT平台结构
- Perspective
一系列预设好的窗口组合,常用的有Setup、Hardware、Result,也允许自定义自己习惯的窗口组合
Setup
包含Test Program Explor:load flow、setups等功能,可以清晰观察到整个程序的结构;Flow Sequence Edit:以流程图的样式显示flow,edit flow;Flow Data Edit:表格形式显示flow,edit flow;Properties:显示/编辑具体测试项参数,F3便捷进入timing/level equset/spec,pattern edit修改相关值
Hardware
此perspective会展示各项硬件调试控制窗口组合,通常与Pin browser、Hardware电路图、Firmware、waveform等,检查硬件状态,测量Pin电压电流电阻值
Result
包含各种debug窗口,系统数据流、原始数据、各类图标绘制
- Device结构
创建新device后系统会自动新建相关二级目录,但通常我们直接导入已有项目的device即可,创建之后将所需要的Testmethod添加进来,TML即testmethod lib,指一类已创建好的包含各种测试方案,测试函数的集合体,类似于库函数;
Device的setup
Setup本身也是smt一类概念,指Device里一系列通用设定,setup以masterfile的形式被调用,masterfile内通常声明了所调用的测试程序的文件路径
Pin
Gang:指当电源pin电流输出能力不够时将多跟pin合并在一起达到期待的电流输出能力;alias:化名——管脚复用pins are multiplexed;Port是一类特殊的Pin group
Pin Configuration文件表明芯片Pad上对应机台哪根channel
- 简单LOG收集
- 三种启动模式
启动前先确认smt版本信息
Smartest启动
ADV菜单中,直接点击Smartest,在线机台的调试模式才会使用
Smartest offline启动
ADV菜单中选择smartest offline,VNC离线调试模式,进入时载入最近所使用的device及其相关配置,但上一次使用的device不一定是当前所使用的
Offline脚本启动
通过编写好的 ./xxx.sh 启动,直接调佣编写好的model,启动时可以指定device
- LOG收集
启动后导入所需testmethod
打开operation control窗口,Production setting > report formatter > 选择entFormatter
注意确保operation control中system flag里log_event_enable为开启状态
Console窗口中,report dialog设置里,参照如下设定,pass/fail一定要打开
- 常用TML
- HidigitalLink
HiDigitalLink = Functional + CharTool + HiDiag,统一了MTE现有的数字相关测试
开始使用
请确保 libhicbb_comm.so 这个通用lib拷贝至testmethod/preload目录下;HidigitalLink支持Properties与data flow模式下的编辑选择,支持多个test mode同时运行最后显示是按照代码中的先后顺序显示的
- Vmin&Vmax
概念解析
Vcoef 电压系数
Vcoef_start 电压系数左限
Vcoef_end 电压系数右限
V_point 粗扫电压点数
V_detail_points细扫电压点数
Vclamp_EN电压钳制保护开关
Output 输出位置
GetDps 查看所拉偏的电源
VminVmax一栏选择MostSearch&BoundarySearch两种细扫方式,当粗扫正常时,该两种方式无异,范围一致;粗扫结果和预期时,MostSearch会更准确;结果打印上一行为粗扫,下一行为细扫。
PreExecute 可以设置跑每个点都跑一次鉴权(init&setup),可以设置三种不同的条件的pattern,level 和timing,还有相对于的relay或者waiting time
MD5_Check是Masterfile选择pattern master时,跑function的时候就会打印出MD5码, MD5码是一种追踪pattern的一种码,会结合pattern路径打印出一串码,用来追踪实际使用的pattern与DFT给的是不是同一个,有没有改变,以后release A10的程序需要打印这个进行向量基线确认。
- SHM
概念解析
X/Y可选择任意spec
Y_ LL和Y_ UL: Y轴spec扫描的起始点到终止点
X_ LL和X_ UL: X轴spec扫描的起始点到终止点
SpecType:
RelativeMode以扫描1倍频和1倍电压点为中心点,以此去自动选择分配左右各自扫描的点和点数
AbsoluteMode以LL和UL为起始点与终止点的值
Y_ points: Y轴spec扫描点数
X_ points: X轴spec扫描点数
Vclamp_EN: 电压钳制保护,为ON时,启动保护机制,默认范围为0.5~1.5V
三种输出格式
ResultType支持多个pattern burst起来执行shmoo测试
ALL:输出primary pattern名字 + shmoo结果
PerLabelRow: 输出每一条pattern名字 + shmoo结果
PerLabel:在输出ALL的基础上,输出每一个port名字 + 对应的一条pattern名字 + 对应的一个shmoo结果
多向量burst测shmoo
在pattern explorer中新建一个向量,以_burst结尾命名,选择对应的port,在insert instruction中插入要burst的向量,timing和level还有向量的port要一致,ResultType必须选择PerlabelRow
- Failcycle
Failcycle是芯片失效分析的主要手段,其方法通过海思专有的test method 抓取functional test向量中有比较的pin在每个cycle 时pass/fail的状况,其判断标准来源于level 中对应pin 的voh/vol 设置;failcycle通常针对Vmin的失效做分析,仅针对单独某几个Pin,通常是pJtag管脚,failcycle跑完输出一份log,展示出哪些Pin在哪些Vmin发生失效(形式为H/L的跳变)针对Vmin失效分析的时候,SpecToLogValue中选择Vcoef。
ScanTest_tml为例
Testmethod中选择scantest打开参数配置页面:
scanPins:需要抓取fail cycle 的pin、pingroup、prot;默认为@,表示所有pins
maxFailsPerPin:抓取fail cycles 的最大个数;默认为-1,表示所有fail cycles
cycleBased:抓取fail cycles 打印出的格式;默认为1,表示X1 format,如果向量为X mode,选择1会自动将fail cycle 转换为X1
includeExpectedData:log 是否打印出期望值;默认为0,表示不打印。通常我们选择1,需要打印
testerCycleMode:fail cycle 比对时选择tester cycle or x-mode cycle;默认为0,表示X-mode cycle
output:数据如何输出,通常选择testerUI
Diagnosis
Testmethod中选择Diagnosis打开参数配置页面
FuncPort:选择failcycle所在的port,需要抓取failcycle的pin所在的prot,默认为@ 表示所有pins
ResultLogPins:可以选择pins或者port
MaxFailPerPins:需要的cycle数的最大值
DPS Vout toLog:设置具体某个电源查看具体值
SpecToLogValue:设置为拉偏系数(Vcoef),打印出具体拉偏值
Xmode:需要和所在上级pattern的mode保持一致
MarginPoints:抓取的点数
VminVmaxVstep:两点之间的间隔值
抓取Diagnosis时必须要VminVmax一起测试
@表示全部,建议可以先用scan确认cycle所在port,再选择对应port
辨析
Diagnosis是从临界值以一个步进扫相同间隔的点的failcycle,可以显示出failcycle到底是固定几个pin fail还是呈现翻倍的fail;Scan只能扫固定的一个点的failcycle
注:
- 当抓取的failcycle中含有“T”时,将向量的wavetable中JTAG_TDO中的“M”改成“X”(JTAG_TDO为例)M 为中间态,在向量模拟环境下无法避免的会生成M态,但是数字状态下不识别M态,所以需要手动修改X即不比较
- 报错“ERROR:FAST?-The Acquire target for port! pothers is not supported (insufficient channel memory for result storage in RAM)”
根据error可看出pattern过多导致所占用的memory无法满足需求,可以创建只包含所需的pattern,不仅可以缩减load的时间并且可以避免出现以上错误。此外可以在firmware中输入“DCRT TP,(@@)”(两个空格),解决测试无法进行的问题
- Waveform
打开DC Scale卡的硬件视图生成电流电压波形图,确保AC_Sense和AC_Force继电器闭合(连接到DUT)在“Hardware”视图的底部,单击“Profile”进入DPS配置文件对话框:
指定配置文件选项:测量范围(V)预期测量伏特值。
A.采样率(ms):采样周期(以毫秒为单位)。
B.平均因子:每个样本的测量数量。
C.电流测量或电压测量
D.次测量或循环测量
单击MEAS,当计算完成时,波形视图显示结果波形
- Timing Diagram&Error Map
用于查看具体管脚的波形的debug方法
向量测试fail后,点开Error Map,可以看到cycle所在的port,点击按钮可查看具体的cycle点击按钮可以一步转到Timing Diagram
1.从Error Map跳转到Timing Diagram 会显示fail的管脚
2.可以修改查看的cycle数
3.显示具体fail的cycle数
4.点击查看fail时的波形
- Vloop
Vmin是在一定的电压范围内,对芯片进行多个电压点测试,看芯片在这些点下的性能;进行Vmin测试的测试项为function测试。Vloop与Vmin的区别在于,进行Vloop测试的测试项除了进行function测试之外,还要进行一些参数测试。如果也对这些测试项扫Vmin,则达不到参数测试的需求;Vloop这一操作可以理解为参数测试的“shmoo”;shmoo仅能跑出来H/L,故仅对Func测试有效,param测试要进行类似的debug分析通过Vloop来达成
在某节点处插入For loop循环,变量选择Vloop,填入相关参数即可添加loop环节,一般的vloop是拉偏电压,也可以是Tcoef,或者是某个电源的具体值,设置对应的拉偏系数,此处vloop是一个for 循环
Vloop结束后需要将所改动的测试项电压回归默认值
参数一览
Mode
选择当前VLOOP扫描方式
单位:string
默认值:rough
要求输入范围:【rough,detail】
用户自由度:选择粗扫,或细扫模式
细扫模式下需要额外填写以下参数
Rough_VRESULT_Name
单位:string
默认值:NA
要求输入范围:必须是flow中已有的USERSTRING类
用户自由度:根据实际情况输入粗扫时记录结果的变量名称
RoughUDName
单位:string
默认值:NA
要求输入范围:必须是flow中已有的USERDOUBLE类
用户自由度:根据实际情况输入粗扫时记录粗扫vmin的变量名称
DetailVIncrement
单位:double
默认值:NA
要求输入范围:细扫VLOOP的增量
用户自由度:此变量会作为VLOOP结束的标志,影响何时输出结果,请根据实际
情况输入细扫VLOOP每次增加(减少)的数值。
VLOOP_RESULT_Name
单位:string
默认值:NA
要求输入范围:必须是flow中已有的USERSTRING类
用户自由度:根据实际情况输入本次记录结果的变量名称
ResultVarName
单位:string
默认值:VLOOP
要求输入范围:必须是flow中已有的USERDOUBLE类
用户自由度:根据实际情况输入本次关联的VLOOP循环变量
SuiteResult
单位:string
默认值:PASS
要求输入范围:【PASS,FAIL】
用户自由度:选择测试项的所在位置监测的结果应该为PASS还是FAIL。此变量影响
众多因素,请根据实际情况正确选择。
ResultPrint
单位:int
默认值:0
要求输入范围:【0,1】
用户自由度:0为关闭,1为开启结果打印(此变量不会影响全fail时打印vmin = 0的结果)建议粗扫关闭,细扫打开,细扫打开时会结合粗扫结果一并输出。
Vmin.UserDoubleName
单位:string
默认值:NA
要求输入范围:必须是flow中已有的USERDOUBLE类
用户自由度:根据实际情况输入本次VLOOP记录vmin的变量名称
Vincrement
单位:double
默认值:NA
要求输入范围:细扫VLOOP的增量
用户自由度:此变量会作为VLOOP结束的标志,影响何时输出结果,请根据实际情况
输入粗扫VLOOP每次增加(减少)的数值。
Vmin.VsearchBegin
单位:double
默认值:NA
要求输入范围:VLOOP的起始值
用户自由度:此变量作为控制标志,影响输出结果和判断VLOOP开始,请根据实际情
况填写VLOOP开始循环时,循环变量的第一个值
Vmin.VsearchEnd
单位:double
默认值:NA
要求输入范围:VLOOP的结束值
用户自由度:此变量作为控制标志,影响输出结果和判断VLOOP循环结束,请根据实
际情况填写VLOOP结束循环时,循环变量的最后一个值
细扫模式下的VLOOP需要配合USERDOUBLE中已记录的粗扫VMIN 结果,作为细扫循环开始的值
Vloop需求实操
在flow的data editor中添加完vloop的var,初值给0,按操作步骤插入for循环与设置上下循环限和步进,Vloop选点位置任意,在任一节点插入for循环;
For循环插入之后需要声明vloop中的V具体指哪个变量,在for循环内节点插入assign level value,EQN set与SPEC set选择与要进行Vloop操作的测试项相同的设置,name选择要进行Vloop的对象,通常为Vcoef;value选择@vloop
再插入Print,值选择@Vloop,随后再print后插入待vloop的测试项进for循环内部
此时需在flow data editor中将对应测试项中全部test suite的LEVEL sepc改成同一值(通常为VDDN,spec2)即加入到for循环内部的所将要进行vloop的那个测试项/group的level需要保持一致(原始的level不一定是一样的);
Vloop设置循环上限时,需要给多0.001,例需求是Vcoef 从1.02-1.08,condition设置成 < 1.081
Vloop验证时不是所有测试项都需要运行,通常必要的测试项包含EPRE、OS、AUTH
一些参数值参考:
- 某电源的拉偏
- 准备
仅针对offline环境;获取到测试需求后,先检查offline主机空间剩余与程序包提权,拉偏需求样例:
- 25C function BSCAN测试项只拉偏DVDD09 0.7-1.2 mV,Step 0.01
空间检查与程序提权:
- csh //切换至SHELL
- df -h //检查硬盘空间剩余
- rm -rf xxxxxxxxxxxx //不可恢复的彻底删除文件xxxxxxxxxxxxxx
- chmod 777 -R xxxxxxxxxxxxxx //文件xxxxxxxxxxxx提至最高权限,所有用户可访问可读写
su提权密码huawei@123
- 两种输出core电源拉偏方法
Offline启动,设置完Event Formatter LOG之后
第一种
找到BSCAN下的FC _BSCAN_Vcoef095 ,选中复制粘贴,重命名 FC _BSCAN_DVDD09(命名加上需要拉偏的某电源项,以需求为准)
在Test Method右侧打开‘…’按钮, 输入Vmin 选择Vmin_Vmax_Search_MS_Doublechoose_2_0_3 (VminVmax搜索工具)确认
更改 Level Spec/DPS为2 [LVLSPEC_VDDN]
右键 Equation点击 Open Level Equation… F3,在打开的equation编辑器搜索栏 输入eqnset 5 找到EqnSet 5 下所有参数定义,eqnset5取决于该测试项选择的序号
清除eqnset 5 定义下所有方程式的系数Vcoef,只保留要拉偏的DVDD09参数系数
DVDD09的系数保持不变,点击Shell – Download保存更改。
Equation更改完后,按要求设定0.7-1.2mV扫描电压,Step 0.01mV , V_Points计算为51点。在Test Method – Parameters 下修改,修改后保存程序
选中FC _BSCAN_VminVax_DVDD09,Run Selected,得到输出LOG
第二种
添加定义一个新系数Vdvdd075,单独对需要拉偏的板卡乘该系数扫描步骤类似,在Eqnset编辑器中,对需要拉偏的电源乘该系数(图中定义为Vcoef1)EQNSET序号以测试项使用的eqn为准
给对应Level文件中每一个level spec都加上新系数Vdvdd075的初值,通常为1,打开测试项Level下spec tools
选择spec
将全部eqnset为序号2的spec中(以测试项使用的eqnset序号为准),新定义的Vdvdd075系数的初值均设置为1,重复操作直至eqnset2下所有的spec设置完成
完成后download以保存
按要求设定0.7-1.2mV扫描电压Step 0.01mV V_Points计算为51点,Vcoef参数选 Vdvdd075
Run Selected跑出LOG
- 合向量
合并向量主要分timing、vector、flw三个部分的合并,需要将timing和vector合并入主文件夹中的timing和vector文件中,将新flw merge进主flw里
- Timing合并
Timing文件夹里面有mfh文件和timing自身文件/文件夹,如图:
Timing本体的文件夹下通常有三个.tim文件分别为equation文件,spec文件和wavetable文件,wavetable通常不加后缀说明:
Mfh中写的是对应.tim文件的路径,Timing合并时,首先将将新向量文件夹中的timing本体三个.tim文件或包含其的文件夹复制进当前项目对应timing文件夹下,其次将mfh文件中的路径复制进目标主mfh文件中,并前面加上复制的timing文件所在文件夹目录路径位置即timing合并完成
- Vector合并
与timing类似,Vectors文件夹里面有存放向量本体的文件夹和pmfl路径文件
合并过程和timing相同,把存放新向量的文件夹复制一份进目标主vector文件夹下,将.pmfl文件中的路径复制进目标项目的主.pmfl文件中,并前面加上复制的向量文件所在文件夹目录
- Flow合并
右击已经load的主flw,左击Open Testflow To Merge,进入新向量的testflow文件夹,选择我们需要合并的新.flw文件,如图中Char_flow.flw
复制整个group到目标项目的flow中,合并后需要检查原flow中SHM或PM等测试项的TM是否需要更换(红色提示),并需要检查timing和level设置是否正确,确认timing或level是否可以复用,将4个测试项的level的SPEC/DPS都改为normal电压
- 检查
合并完成后需要扫PM与扫SHM进行一些简单检查:
运行PM测试项,查看Tcoef中心点附近的pass情况,offline下为全pass,若pass图形非对称,则修改timing equation中roff的值,公式为
-
new roff=old roff+(最右边pass值- 最左边pass值 /2)
如下为eqnset 102中的roff位置,修改它将PM左右对称
运行SHM测试项,看是否正常,若有缺陷,如空洞、低压墙则需抓取failcycle
- 常频率与倍频率
- 概念
部分需求中会有如图所示的两种Vmin区分:
包括NF与0P5F,其中NF就是常频,正常频率;0P5F即为0.5F,就是倍频;出现这两种不同频对于同一个测试项来说,需要复制出两份测试项,其中一个用NF;另一个用0.5F
- 倍频Timing的修改
- 找到原测试项(NF测试项)的timing,打开原timing的mfh文件
- Mfh文件可通过smartest loading信息看到具体加载的是哪一个timing.mfh
- 在对应tim.mfh文件中找到NF测试项所使用的那条timing的路径,备用
- 复制一份NF所使用的那条timing的SPEC,加上倍频后缀“_Tcoef2”
- 修改如图所示内容,倍频即Tcoef改为2,同时修改这条timing的SPEC命名,测试项调用使用这个名字
- 将这条复制出来的新的倍频timing,加入到所使用的tim.mfh中,并保持命名一致
- Retention
通常retention需求表如:
在testmethod中选择SramRetention,其中voltageNorm与voltageEnd参数即为需求表中VminVmax给定值,从高到低:
参数里,Port通常固定为pDPS,DPS栏和VectorNumDOWN/BACK需要在路径:程序目录/vector/FTA/MBIST_RT中找到对应测试项的pDPS结尾的文本文件;在红框处找到DPS型号与DOWN和BACK的值,用逗号隔开
- 93K常用Linux命令
- cd .. //返回上一级目录
- cd XX //进入当前路径下的XX
- ls 显示当前目录下有哪些文件
- ll 显示当前目录下有哪些文件,每行显示一个文件
- mv XX YY 把XX改名为YY
- mv XX .. 把XX移动到上一级目录
- cp XX YY 复制XX并命名为YY
- rm XX 删除文件XX
- rm –rf XX 强制删除文件XX,不可恢复
- tar zcvf XX.tar.gz YY 将YY文件夹打包为XX压缩包
- tar zxvf XX.tar.gz 解压XX压缩包
- unzip XX.zip 解压XX压缩包
- nedit XX 以文本格式打开XX文件
- pwd 显示当前路径
- mkdir XX 新建XX文件夹
-
ps –ef grep xxx 查进程关键词为XX的进程号 - kill -9 xxx 强杀xxx进程
- df –h 显示系统磁盘剩余空间
- du –sh * 查看当前路径下各文件占用空间
- kompare XX YY 比较XX与YY文件间的差别
- git clone ssh://git@szv-y.codehub.huawei.com:2222/hiate/turing/Ascend/hsi-ate-hi1981v100.git
//从git仓克隆项目,位置默认为此terminal的根目录
- git branch -a //拉取所有分支
- git checkout 1981-ft-cct //检查完整性
- git plfs //LFS大文件存储下载
- 杂记
- 实际项目中timing在转向量的时候会一并生成,不需要手动新建
- 输入以数字0/1表示,输出以字母H/L/X/C表示
- 可通过修改SpecTool中Tcoef值修改向量运行频率
- 跑Shmoo测试之前需要将板卡速率扩大一倍license中将所有数字版卡速率X2
- 芯片上机上socket之前需要检查引脚或植球点是否连锡
- Pmfl文件包含内容各部分的路径,类似一个索引
- 单独的flw文件仅表示平台以何种顺序执行测试,不包含测试代码本身
- 完整测试程序中Tj的test suite通常代表芯片内结温自检自测,必要时可以bypass掉整个Tj部分
- 出于测试调试需求,可能会出现某些测试项fail时不care的情况(如OS里DC_IIHL_CTRL_PD/PU_VDDN无视)
- POST/NORMAL/PG三种DFTgroup解析:POST通常包含必须pass的测试项内容,normal即正常测试的DFT内容诸如stuck、trans、mist等,PG即partial good次良品,_PG的dft测试项通常针对片内不同模块进行测试以分bin
- Tcoef系数本质仍然是T,故Tcoef越小,频率越高,系数值通常为1±0.5
- 拉偏这个动作指Vcoef系数的变更,通常针对不同的DPS型号进行Vcoef系数调整以达到确认某个模块问题的目的
- 每一个body向量之前都需要有一个init测试项
- loading缓存地址:/var/opt/hp93000/soc_common/tmp 关闭smartest之后若没有自动删除,手动进入该目录删除全部内容(部分内容会由于权限问题没有删除许可,不打紧)
- Rentension need用于生成port(mte用)already用于vmin扫描(char用)