Tuesday, August 09, 2005

Hardware Fault Injection

Some people have expressed interest in being able to simulate faults on the MOD 88 hardware system. The MOD 88 (Version 6.1) now has that capability. The upgrade from 5.1 is a single socketed chip, available on request if you already have V5.1 There is also a software upgrade in the API and the Command Line Interface.

A single API call, set_fault(row,col,output,value) is used to SET (value=1) or CLEAR (value=0) a STUCK fault in any cell [row,col] and any output (dn,ds,dw,de,cn,cs,cw or ce). When SET, a STUCK fault will freeze the indicated output, causing it to remain at its present output value, regardless of subsequent cell activity. When a stuck fault is set to CLEAR, the fault is removed, and the output operates normally.

Additionally, when a cell contains any such faults, its LED will turn orange.

From the Command Line Interface, a new command "E" is available. It takes several forms:

E row col output value

behaves identically to the set_fault() API call.

E row col

clears all faults in cell [row,col]

E

clears all faults in the MOD 88.

Note that faults are NOT cleared by the reset() call or the R (reset) command. This more accurately models the behavior of persistant faults which would remain following a system reset. Note also that faults can only be set in the board directly connected to the PC. In the online 2x2 setup, only the cells in the upper-left board can have faults applied.

The online MOD 88 has also been upgraded to V6.1, and the E commands are available from the user interface.

Below is a picture of the online system, configured as a binary counter.

After a fault has been injected into cell [5,5], the corresponding LED turns orange, and the higher counter bits freeze.

Re-bootstrapping the Cell Matrix with a faulty cell can lead to unexpected results, as shown below. This is because cell [5,5] is used in the configuration of other cells, but since it is faulty, those configuration operations have failed.

Send us a comment...