Here is an example test vector file:
# my test vector for add32 A[8] B[8] C[8] Cin Cout 0000_0000 0000_0000 0000_0000 0 0 -2 0x05 3 0 0 0 0o3 3 0 0
First and foremost, the file format is simple. Headers match the circuit's input/output pins. Under that are the values to test against.
The first non-blank, non-comment line lists the name of each circuit input pin and its bit-width (if > 1), separated by whitespace.
One thing that often confuses people starting out is that the bit-width must be specified in the header any time it is not 1 bit.
NOTE: Bit width is not necessarily the same as the number of characters in the value. For example, a 4-bit value of 13 can be represented as 1101, 00001101, 0x0d, 0o15, 15, or 0b1101, etc.
Blank lines are ignored. Anything following a '#' character is a comment. The first non-blank, non-comment line lists the name of each circuit input pin and its width (if > 1), separated by whitespace.
The remaining lines list each value separated by whitespace. The values can be in hex, octal, binary, or signed decimal. Hex values must have a '0x' prefix. Octal values must have a '0o' prefix. Binary and decimal are be distinguished by the number of digits: binary values must always have exactly as many digits as the width of the column; decimal values must always have fewer, should not have leading zeros, and may have a negative sign.
For improved readability, you can use underscores (_) anywhere
in numeric values. Underscores are ignored during parsing. Examples:
0x0000_1111, 0o1234_5670, 1111_0000,
1_234, or -5_000.
For hex, octal, and binary values, a digit of 'x' specifies four, three, or one "don't care" bits. So the value 101xx is a five bit binary value, with the last two bits unspecified, and 0x1ax5 is a hex value with four unspecified bits. Such "don't cares" can not be used in decimal notation.
Previous: Test Vector Window | Next: Special Values.