Conditional STOP (CNDSTP) について
NAND Falsh Memory の試験時に、例えば規定のエラー数を超えた場合に停止したり、別の処理に切り替えたいというようなことがあると思います。
ScriptにIF文の機能はありませんが、CNDSTPコマンドにより、指定した条件を満たす場合にScript実行停止、またはScript Fileを切り替えることができます。
これにより、NAND Flash Memory評価選別を効率よく行うことが可能となります。
コマンド記述様式
パラメータのみを指定した場合は停止、パラメータとファイル名を指定した場合はScript Fileを切り替えます。
なお、本コマンドを複数回実行することにより、複数の停止条件を有効にすることができます。
同じ停止条件を複数回設定した場合、最後に設定したパラメータおよびファイル名のみ有効になります。
実施例を下記します。
Condition STOP.ssl
- 'SET BLOCK
- VSET04 0 0000
- 'SET PAGE
- VSET04 1 0001
- 'BUSY TIME ON
- BUSYTM 1
- FNRSLT 0 RESULT.rst
- FNDUMP 0 DUMP.dmp
- FNCOMP 0 COMP.cmp
- FNECNT 0 ERROR.err
- PRTSTR 01 -----RESULT-----
- PRTSTR 02 ----- DUMP -----
- PRTSTR 04 ----- COMP -----
- PRTSTR 08 -----ERROR -----
- 'BLOCK ERASE
- BKERAS 0 $V04_0$
- 'Busy time over check
- CNDSTP 0002 00000050 Time-Over.ssl
- 'PAGE Program
- PGPROG 0 $V04_0$ $V04_1$ INCRMT 03020100 04040404
- 'Page Read & Dump
- PGRDDM 0 $V04_0$ $V04_1$ 0006
- PRTSTR 04 ---Read & Compare---
- 'Error number check (per 4bytes)
- CNDSTP 0011 00000005
- PGRDCP 0 $V04_0$ $V04_1$ 0006 INCRMT 03020100 04040403
- PRTSTR 08 ---Read & ERR Count---
- 'Bit Error number check
- CNDSTP 0023 00008000
- PGRDEC 0 $V04_0$ $V04_1$ INCRMT 03020100 04040403
- PRTSTR 01 ----- END with No Error -----
Time-Over.ssl
- PRTSTR 01 ---Time Over---
実行結果
ex1. 停止条件:無し
第23、33、38行全てコメント行とした時
Result.rst ファイルの内容
-----result----- (Line14)
BusyTime (Line20) CH0:4551
BusyTime (Line26) CH0:216
BusyTime (Line29) CH0:38
BusyTime (Line34) CH0:38
BusyTime (Line39) CH0:38
----- end with no error ----- (Line41)
Done 00h00m00s
ex2. 停止条件:Busy Time
第23行のCNDSTPのみ、を有効にした時
Result.rst ファイルの内容
-----result----- (Line14)
BusyTime (Line20) CH0:4550
BusyTime (Line26) CH0:216
---time over--- (Line27)
Done 00h00m00s
ex3.停止条件:Error Number
第33行のCNDSTPのみ、を有効にした時
Result.rst ファイルの内容
-----result----- (Line14)
BusyTime (Line20) CH0:4551
BusyTime (Line26) CH0:216
BusyTime (Line29) CH0:38
BusyTime (Line34) CH0:38
Conditional Stop at Line34 (ErrorNum = 5) 00h00m00s
Dump.dmp ファイルの内容
Line Cnt Channel Chip Block Page WordNo Dump
----- dump -----
0000001D 00000001 00 0 0000 0001 0000 03020100
0000001D 00000001 00 0 0000 0001 0001 07060504
0000001D 00000001 00 0 0000 0001 0002 0B0A0908
0000001D 00000001 00 0 0000 0001 0003 0F0E0D0C
0000001D 00000001 00 0 0000 0001 0004 13121110
0000001D 00000001 00 0 0000 0001 0005 17161514
Comp.cmp ファイルの内容
Line Cnt Channel Chip Block Page WordNo Comp
----- comp -----
---read & compare---
00000022 00000001 00 0 0000 0001 0001 00000007
00000022 00000001 00 0 0000 0001 0002 0000000E
00000022 00000001 00 0 0000 0001 0003 00000005
00000022 00000001 00 0 0000 0001 0004 0000001C
00000022 00000001 00 0 0000 0001 0005 0000001B
ex4. 停止条件:Bit Error Number
第38行のCNDSTPのみ、を有効にした時
Result.rst ファイルの内容
-----result----- (Line14)
BusyTime (Line20) CH0:4550
BusyTime (Line26) CH0:216
BusyTime (Line26) CH0:216
BusyTime (Line34) CH0:38
BusyTime (Line39) CH0:38
Conditional Stop at Line39 (BitErrorNum < 32768) 00h00m00s
Error.err ファイルの内容
Line Cnt Channel Chip Block Page BitError
-----error -----
---read & err count---
00000027 00000001 00 0 0000 0001 00007DE8
(27hex = 39dec) (7DE8hex=32232)
参考:Conditional Stopの停止条件 (Operation Guideより抜粋)
*1. エラー数は4バイト単位でカウントします。4バイトに1ビット以上のエラーが含まれていれば、 1個のエラーとしてカウントします。
*2. コマンドBKRDCP、BKRDECを発行したときは、ブロック全体のエラー数で停止判断を行います。
*3. Busy Timeの単位はusecです。16進数8桁で指定します。