在ATE测试时的pattern x mode是如何来使pattern体积变小的

原因 :因为ATE上的每个pin的vector
memory都是固定的,当测试的使用使用的pattern太大的话,pattern是不能成功加载到ATE中去的,当然可以不同pin的vector
memory可以互相share,当时这个另外一个topic了。

为什么x mode可以work
:因为每一个wavetable在系统中其实就是一张表,这个表的索引范围是0~255(问题:如果wavetable太大的话,怎么办?),如果你的wavetable中只定义了两个wave,剩下的253的位置就浪费了,所以这就引入了x
mode的概念

什么是x mode
一般来说,一个period,我们一般放入一个测试cycle,
但是x mode就是在一个period中,放入更多的测试cycle,放入几个(x)就叫做 x mode( 1/2
mode相反,就是讲一个测试cycle放入多个period中去,这里不讨论)

使用x mode的时候需要改变的是timing, wavetable和pattern,下面以wavetable来示例。但是好的ATE会根据你的x
mode情况,自动计算这些,有的可能需要手动去修改。

以下只以wavetable来说明,假如有如下的wavetable
定义了两个波形:

0:  drive1:0 drive2:0
1: drive1:1 drive2:0

对应的pattern如下:

1
0
1
0
0
0
1
1

如果使用x2 mode的话,wavetable会变成如下:

0: drive1:0 drive2:0 drive3:0 drive4:0 #equals 00
1: drive1:1 drive2:0 drive3:1 drive4:0 #equals 11
2: drive1:0 drive2:0 drive3:1 drive4:0 #equals 01
3: drive1:0 drive2:0 drive3:1 drive4:0 #equals 10

对应的pattern会变成如下形式:

3 #equals 10
3 #equals 10
0 #equals 00
1 #equals 11

原先的pattern行数是8,使用x2 mode只用,pattern的行数变成了4,从而达到节省vector memory的目的。

当然在使用x mode的使用还是有一些讲究的地方,
比方说如果
原来的pattern的行数/x ~= integer
的时候怎么办?
如果原来wavetable的波形太多怎么办?
在实际的工作中都有意识到这些。