IC Tester HELP - Database section
Test data files

There are three types of files which are used with ictester program. All files are textual and you can edit it with text editor. In all files # character at beginning of line is used to comment entire line.

First type is link file and have identical suffix like one of other two file types. Main purpose is to redirect reading to another file.
For example, there's test file for 7400 ICs, but you can with that file test 7403, 7437, etc., why? Because IC logic and pinouts are the same, only difference is on some upgrades which this IC Tester device can't test anyway.
So that test file don't have to be copied in several copies and took additional space on disk, instead of that there's this link file which is small and it can redirected program to another file.
Structure of link file:

  1. line: Information to program which type of file is it that it knows how to read it.
  2. line: Starts with keyword Information: after what comes text which will be wrote when program reads file.
  3. line: Contain location of redirected file, so that program knows where is it.
You can look in database directory /usr/local/share/ictester/data (default on Linux and Minix) or C:\ICTESTER\DATA (default on dos) for 7403.adf or 4016.ddf file to see how it looks.

Second type is dump file and have .ddf suffix.
This is dump file which is generated from program, but you can edit it like others, just make sure that next lines are in place:

  1. line: Information to program which is file type, so that it knows how to read it.
  2. line: Description of dumped ICs, like part number and comments.
  3. line: Number of pins, location of +5 V pin and GND pin at dumped IC.
  4. line: First and last name who is author of this dump file.
  5. line: E-mail address of author.
    Next lines: Contains data which will be set and read from device. This data lines must be in form that first 16 characters are for setting and next 16 characters what should be read from test socket at device.

You can with -d option generate dump file and take a look in it to see how it looks.
You can use -c option to check if data from this file match with data from tested IC, but this doesn't work with complex ICs like counters, bistables, shifting registers, etc.
Check for details in Program - ictester section under -c option.

Third type is analyze file and have .adf suffix.
This is real test file, with it you can test if IC is correct and if it's not where's the problem and how to use this IC.
For standard testing you can use -r option to read status and -w option to set data on test socket. But if you want test more ICs on the same principle, you don't have to do it manually with r and w options, you can write those testing steps in script, which is this analyze file.
Make it easy to you, there are few rules which you may find very interesting.

First line must be information to program which type of file is, so that it knows how to read it.
Next lines you can wrote with listed actions:

All actions which are write above must be written before any actions which will be described next. Also try to write it in orders which are listed above, because program display information from actions as it reads it.
When you want import this file into database, all comments what you type before any W:, R:, E: or ?: actions will be erased. If you do not write comment before this actions as:######### Test part from here #############, all comments will be ignored and not included in database.
You can look in database directory /usr/local/share/ictester/data (default on Linux and Minix) or C:\ICTESTER\DATA (default on dos) for 7400.adf file to see how it looks.
When you write test file take this advice for writing test part:
  1. Set to all pins NC and test if NC is at all pins. If aren't there may be error with IC Tester device itself, write error message and ask to continue.
  2. Set power up and check if power up is really working, if not tested IC maybe in short circuit, write error and ask to abort testing.
  3. Test if there are on all inputs of tested IC +5V or NC, if not, IC is probably damaged and in most cases you can't use that input.
  4. If there's more parts in tested IC like gates, set +5V to inputs of one gate and check if there's respond from it.
    Then check others inputs on others gates to see if there may be break from this gate. Repeat this test for each gate.
  5. Now perform the same tests described in last entry, only this time set GND to input pins of one gate. In this way you can cover all possibilities of breaking from one gate to other.
  6. If you have IC with more gates, perform binary count on all inputs of each gate to test if gate logic works.
  7. By this point all entries was standard testing, if there was error you can safely ask to abort testing, because tested IC is probably damaged.
  8. Perform full test at all inputs with binary count to make sure that all logic on tested IC working properly.

If you wrote test file and you want to share it, take a look in Feedback section for more details.

Database files
From program version 0.0.6 there is available database which contains all data as analyze data files, but in smaller format and more compact.
All test data what you write in analyze data file you can import to database and export from it back to analyze data file of course. Database file are in binary form and it's modified or generated by ictdataedit program. It's graphical program and requires X-windows environment and gtk+ graphic library.
Here I'll describe only construction of database, if someone want to make own program for manipulating with database file. Note: you can download source code of program and see how ictdataedit program work with database.

Green color : Size of entry in database
Red color : Entry of variable size in database
Black color : Standard text for explanations or naming some part
Normal color : for additional information.

Here is structure from first byte to last:
[2 bytes database identification (0xFF and 0x00)]
[1 byte version of current database (from 0x00 to 0xFF)]
Beginning of single test entry.
Next part is data part from single analyze test file and that structure can repeating until reach end of file (Eq. if you have more analyze test files in database).
[1 byte size of string for link or test file name (7400), mixed with first bit of this byte is type of data (link or data file): 1xxxxxxx - link, 0xxxxxxx - test file] [string of test file name, max 128 chars]
If this is link entry then only in this case there will be this entry:
<1 byte size of string for link location> <string of link location, max 128 chars>
otherwise it will continue with:
[4 bytes size of the rest test file entry]
[1 byte size of string ][string of true name (SN 7400), max 255 chars ]
[1 byte size of string ][description of IC test name (4xNAND), max 255 chars]
[2 bytes size of string ][ list of tested ICs, max 65025 chars]
[2 bytes size of string ][list of author names and/or e-mail, max 65025 chars]
[20 bytes for date - YYYY/MM/DD-HH:MM-ZONE]
[4 bytes size of additional data]
In ictester program this 4 bytes is using as skip value. In that area is place pictures for IC pinout, tables of truth, additional information, etc...
That part of database is using graphical test program xictester who will be available for Linux and Windows when gtk+ library will be completely ported on windows. When xictester program comes out then here will be described in details this part of database.
From this point is data for testing IC to end of this test entry. It means that you must from total size of entire test entry (you got this value at beginning) subtract total size of all read entries so far and after that you know how large is next test data part. O.k. here is what you can find in this:
[1 byte action: 0 - write data, 1 - read data, 2 - error report, 3 - ask report, 4 - pause]
After that action byte goes data in next forms:
[4 bytes for read (R:) and write (W:) actions, where standard 16 characters data are converted with next form: original entry - 1==10==1000==1=1; converted into 4 binary entries: 10010001(rw) 01100110(ign) 00000101(rw) 00011010(ign); and finally converted from binary to decimal or hexadecimal: 145 102 5 26]
[1 byte size of string for error (E:) and ask (?:) actions] [ask or error string report]
[1 byte size of string for pause[max 10 characters for string of long number]
With this ends test data entry block, if there is more imported analyze test files it will be wrote continuously after, in exact form as described entry in database.

You can also see currently supported ICs for full testing in supported file.

© Copyright Silvio Klaic
Linux | Vim | HTML 4.01