原因 :因为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的波形太多怎么办?
在实际的工作中都有意识到这些。