AN 539: Test Methodology of Error Detection and Recovery using CRC in Intel FPGA Devices
Visible to Intel only — GUID: sss1425388984132
Ixiasoft
Visible to Intel only — GUID: sss1425388984132
Ixiasoft
1.4.3. Clearing Fault Injection Register
After completing the test process, clear the contents of the fault injection register or start a reconfiguration by pulling the nCONFIG signal low to disable the error that you injected. To clear the contents of the fault injection register, scan all zero data into the register.
The following examples show .jam files used to clear the contents of the fault injection register.
Example of .jam File to Clear the Contents of the Fault Injection Register for Arria® II, Stratix® III, and Stratix® IV Devices
ACTION ERROR_INJECT_DISABLE = EXECUTE;
DATA DEVICE_DATA;
BOOLEAN out[21];
BOOLEAN in[21] = $000000;
ENDDATA;
PROCEDURE EXECUTE USES DEVICE_DATA;
BOOLEAN X = 0;
DRSTOP IDLE;
IRSTOP IDLE;
STATE IDLE;
IRSCAN 10, $015;
WAIT IDLE, 10 CYCLES, 1 USEC, IDLE;
DRSCAN 21, in[20..0], CAPTURE out[20..0]; 'shift out the previous content from fault injection register
WAIT IDLE, 10 CYCLES, 1 USEC, IDLE;
DRSCAN 21, in[20..0], CAPTURE out[20..0]; 'shift out current content from fault injection register
WAIT IDLE, 10 CYCLES, 25 USEC, IDLE;
PRINT " ";
PRINT "Data read out from the FIR Register: ", out[20], out[19], " ", out[18], out[17], out[16], out[15], out[14], out[13], out[12], out[11], out[10], out[9], out[8], " ", out[7], out[6], out[5], out[4], out[3], out[2], out[1], out[0];
PRINT " ";
PRINT "Error Type:", out[20], out[19];
PRINT " ";
PRINT "Byte Location:", out[18], out[17], out[16], out[15], out[14], out[13], out[12], out[11], out[10], out[9], out[8];
PRINT " ";
PRINT "Error Byte Value:", out[7], out[6], out[5], out[4], out[3], out[2], out[1], out[0];
STATE IDLE;
EXIT 0;
ENDPROC;
Example of .jam File to Clear the Contents of the Fault Injection Register for Arria® V, Stratix® V, and Cyclone® V Devices
ACTION ERROR_INJECT_DISABLE = EXECUTE;
DATA DEVICE_DATA;
BOOLEAN out[46];
BOOLEAN in[46] = $000000000000;
ENDDATA;
PROCEDURE EXECUTE USES DEVICE_DATA;
BOOLEAN X = 0;
DRSTOP IDLE;
IRSTOP IDLE;
STATE IDLE;
IRSCAN 10, $015;
WAIT IDLE, 10 CYCLES, 1 USEC, IDLE;
DRSCAN 46, in[45..0], CAPTURE out[45..0]; 'shift out the previous content from fault injection register
WAIT IDLE, 10 CYCLES, 1 USEC, IDLE;
DRSCAN 46, in[45..0], CAPTURE out[45..0]; 'shift out current content from fault injection register
WAIT IDLE, 10 CYCLES, 50 USEC, IDLE;
PRINT " ";
PRINT "Data read out from the FIR Register: ", out[45], out[44], out[43], out[42], " ", out[41], out[40], out[39], out[38], out[37], out[36], out[35], out[34], out[33], out[32], " ", out[31], out[30], out[29], out[28], out[27], out[26], out[25], out[24], out[23], out[22], out[21], out[20], out[19], out[18], out[17], out[16], out[15], out[14], out[13], out[12], out[11], out[10], out[9], out[8], out[7], out[6], out[5], out[4], out[3], out[2], out[1], out[0];
PRINT " ";
PRINT "Error Type:", out[45], out[44], out[43], out[42];
PRINT " ";
PRINT "Byte Location:", out[41], out[40], out[39], out[38], out[37], out[36], out[35], out[34], out[33], out[32];
PRINT " ";
PRINT "Error Byte Value:", out[31], out[30], out[29], out[28], out[27], out[26], out[25], out[24], out[23], out[22], out[21], out[20], out[19], out[18], out[17], out[16], out[15], out[14], out[13], out[12], out[11], out[10], out[9], out[8], out[7], out[6], out[5], out[4], out[3], out[2], out[1], out[0];
STATE IDLE;
EXIT 0;
ENDPROC;