CASCON Language CASLAN
|
In many cases, automatically generated test programs such as Infrastructure, Interconnection, Memory Cluster, and Logic Cluster Tests are sufficient to test the BScan accessible circuitry on the UUT. However, sometimes non-compliant devices require a work-around, or part of the board cannot or not easily be tested with an automatically generated Cluster Test. In those cases, it may be desirable to be able to manually create the test sequence. Since Boundary Scan is a standardized test approach (IEEE 1149.1), it is possible to have the Boundary Scan resources handled automatically by software tools. The BScan tool can automatically control the test bus signals once it knows the BScan chain configuration, while the user can concentrate on the test problem (toggling pins, finding shorts, finding opens, etc.). SYSTEM CASCON provides a powerful high-level programming language called CASLAN (CAScon LANguage). Every automatically generated test is written in that programming language. Furthermore, the user can create test programs manually by writing the test sequence in CASLAN syntax. Through CASLAN commands, the user has access to all BScan resources on the UUT. Single BScan cells or groups of BScan cells and/or pins can be accessed to drive test pattern or capture test results. Test pattern can be modified at run time if necessary. To load BScan pattern into the Boundary Scan cells and to read test results back the simple CASLAN command DrShift can be executed (the software takes care of BScan cell mapping and TAP control). Support commands for file handling, user interaction, etc. allow the programmer very easily to create a BScan test application in CASLAN. The following is a list of main features of CASLAN (the command set is extended continuously):
|
Simple CASLAN example program: |
PROGRAM Example_program;
GROUP led U300 : #32;
VAR v_key : 8;
LABEL m1;
---------- MAIN PROGRAM ----------
BEGIN
ldi U603, sample;
ldi U300, sample;
irshift;
enable(U603:#3);
enable(U603:#8);
dh(U603:#3);
dh(U603:#8);
enable(U300:#32);
ld led, 1;
drshift;
ldi U603, extest;
ldi U300, extest;
irshift;
wait 500; ld led, 0; drshift;
wait 500; ld led, 1; drshift;
wait 500; ld led, 0; drshift;
wait 500; ld led, 1; drshift;
wait 500; ld led, 0; drshift;
wait 500; ld led, 1; drshift;
writeln('If the test failed
please push the ESCAPE key');
writeln('If the test passed
please push any other key');
readkey v_key;
cmp v_key, 01Bh;
jnz M1;
writeln('The test is FAIL');
stop 300;
M1:
writeln('The test is PASS');
END.
|