Looking for a programmer to write a small program to verify the output of a hardware design is indeed flawless. The output file is a text document, and the C program will simulate the hardware design and see if its own output file matches the one from the hardware design.
Without going into details,
let's say we have a text file, with 4 columns
WE is write enable
DtIn is data in
RE is read enable
DtOut is data out
SIZE= 4; (size of the stack)
UNSIGNED = 1; (can be signed, or unsigned)
INCREASED = 1; (increasing, or decreasing order when stacking the numbers)
We DtIn Re DtOut
1 45 0 z
1 34 0 z
1 23 0 z
0 z 1 23
1 87 0 z
0 z 1 34
0 z 1 45
0 z 1 87
What the hardware design is suppose to do, is see if WE is true, and if it is, it compares the current number to the existing ones, put it in to appropriate place (from small to the big).
If RE is true, then the first number on top of the stack (smallest) is outputted.
WE and RE can be enabled on the same line.
The text file finishes when there are no more numbers to output.
Your C program will read WE/RE commands, store/output data on its own and compare with the output file I provided to see if the software result matches the hardware result.
This text file could get potentially HUGE, we're talking about a few GB in size.