SPM_PATTERN這個陳述式,是用來定義有使用到SPM的 test pattern,其語法、使用方法。
SPM: Sequential Pattern Memory
格 式
SPM_PATTERN ( module_name [, NORM | DBL | DBL_2X, [ NORM_SET |K_SET | Z_SET ] ])
{
Label :: * pattern_data * [ts_name, micro_ins ] ;
Label : * pattern_data * [ts_name, micro_ins ] ;
* pattern_data # ape_field * [ts_name, micro_ins ] ;
}
❏ ape_field
◆ AWI pattern區域。
◆ NOP,Exx or Pxx, xx:1~31
◆ Pxx:Pattern trigger, waveform_set/memory_set :xx
◆ Exx:External trigger, waveform_set/memory_set :xx
❏ module_name
◆ 即pattern的名稱。
◆ 此名稱在程式中無法使用,但可在debug工具中使用。如Pattern Editor Tool.
◆ 資料型態:字串。最大32個字元。
◆ 必填項目。
NORM / DBL / DBL_2X : no-entry --> NORM
DBL_2X pattern setting has K_SET / Z_SET: no-entry --> NORM_SET DBL limitation : only even cycle can use micro-instruction , and moudle pattern start from even address DBL_2X: only 4*I th(i=0,1,2,3….) cycle can use micro-instruction
❏ Label
◆ 用以定位想要已定義的Pattern module。
◆ 在名稱之後加上「冒號」、「:」即可
◆ 若想定義一個全域的label,則在名稱上加「:」即可。此全域label則可在其它Pattern和Test program 中使用。
◆ 資料型態:字串。
◆ 最大16個字元。
❏ Pattern_data
◆ Pattern vector中的資訊是由一組已事先定義好的字符所支援。
Pattern字符清單
Symbol | Meaning |
0 | Drive on and low |
1 | Drive on and high |
L | Drive off and compare for a low |
H | Drive off and compare for a high |
X | Drive off and don’t care comparator |
2 | Drive VHH in MXLPC board (HVIN pin type) Release version : CRAFT_3380_2.00 |
U | Drive low and compare low (underside) |
S | Drive high and compare low (sink) |
R | Drive low and compare high (rise) |
T | Drive high and compare high (top) |
V | Drive off and compare for valid state (V) |
Z | Drive off and compare for tri-state (Z) |
K | Drive trigger for statement "SET_CAPTURE_MEM_MODE" |
Symbol | Meaning |
c | Compare data (L=0, H=1) |
d | Drive data (0=0, 1=1) |
z | Tri state (V=0, Z=1) |
x | Tri state (V=0, Z=1) |
t | (U=0, T=1) |
s | (R=0, S=1) |
範 例
SET_DEC_FILE "./3360_ls299_pin.dec"
HEADER CTRL1, %CLK, %QQ, %OAH;
SPM_PATTERN(func_pat) {
{
sfr_st:
* dA0 1 X1 c80 c8*TS1; // shift H signal start
* dA0 1 X1 cC0 cc8*;
* dA0 1 X1 cE0 c8*;
* dA0 1 X1 cF0 c8*;
* dA0 1 X1 cF8 c8*;
* dA0 1 X1 cFC c8*;
* dA0 1 X1 cFE c8*;
* dA0 1 X1 cFF c8*;
}
❏ ts_name
◆ Timing set的範圍從1~15。
◆ 所以可以使用TS1~TS15。
◆ 亦可使用定義在「TIME_NAME_DEF」中的名稱。
❏ micro_instruction
◆ 微指令是由微控制器所控制,用同時執行vector和timing set指標。
Micro-instruction
Micro-instruction | Description |
NOP | No operation |
RPT | Repeat count: repeat the same address. RPT times 2 <= N <= 16777215 (24bit register) |
STOP | Stop pattern execution. |
SETM | Match count: set match count to index match register, match_count : 30 <= N <= 1677215 (24bit register) |
IMATCH | Immediately match and this instruction executes a single vector match. It will repeat the vector until a match occurs or the count specified in the data field of the SETM micro-instruction is decremented to zero. |
DPS | High-speed pattern trigger to measure DPS simultaneously |
DPSMST | Start marker for recording the maximum value. |
PREF | High-speed pattern trigger to measure PREF simultaneously |
SET Xi | count_value, i = 0~3: count_value : 2 <= N <= 16777215 (24bit register) .Need to be used with "JNZi" |
JNZi | label , i = 0~3: |
JMP label | Unconditional jump |
JCONT label | Continuous loop jmp, execute the "PAT_CONTINUE()" statement in the test plan program. |
SETS | count_value: Set Subroutine Counter (24 bits counter) |
JSR label | Subroutine call |
RET label | Returning from the subroutine to the label |
TFTM | Trigger of Freq. And Time Measurement |
UISUYNC | Send trigger signal to test head from u-instruction. |
LDXN | LDXN Xi+Xj : I, j = 0~7 : Load Xi index counter value from index holding register (X0~X7, setup by test plan ) |
PRPTN | RPTN Xi: i = 0~7: repeat count define by index holding register(X0 ~ X7, setup by test plan ) |
SPM_PATTERN ( func_pat , NORM , K_SET | Z_SET ) -> compiler error
SPM_PATTERN ( func_pat , DBL , K_SET | Z_SET ) -> compiler error
SPM_PATTERN ( func_pat , DBL_2X , K_SET | Z_SET ) -> compiler correct
留言列表