This was one of my projects during my internship at TIMA labs, Grenoble. TIMA labs specializes in analysing the errors created in memories and other semiconductor devices when exposed to radiation in the form of neutron beams. The lab, in collaboration with Universidad Complutense de Madrid (UCM), had developed a Fault Injection Tool that can simulate the errors that a neutron beam creates without the neutrons at all. So, the question at hand was, how well does the tool simulate the errors and that can’t be known until both errors created in both ways are recorded and compared. Enter Rapsberry Pi (henceforth referred as RPi). The RPi is used as the remote computer that will detect and store the errors for later processing. Therefore my job was to basically write a python script (because RPi’s run Python scripts not C) for the requirement above. The primary platform, on which the experimentation will be done, was a FPGA board. The idea was to load a circuit onto the FPGA, make the RPi feed it inputs and store the corresponding outputs. The correct outputs for each given input will be stored as a GOLDEN file while subsequent trials will involve errors by either radiation or simulation (by the Fault Injection Tool). The RPi will feed it inputs, get the outputs and check if the output is correct with respect to the GOLDEN file. If not, it assumes an error and stores it along with the position and time of the error in an ERROR file.
The correlation between the error files from the simulation and the actual test under radiation will be evidence of how well the Fault Injection Tool works and hence its performance can be validated. A sample of how it looks like is seen the photo below. The black window is the actual console where the input and output sequence is seen in real time. To the right we see, the error.txt file with the log of all errors that were detected.
Unfortunately there is no video of this process because it is too long. So I have attached the python code: io