仅对英特尔可见 — GUID: sss1394430719550
Ixiasoft
3.6.1. 验证错误检测功能
可以更改CRC电路中的32-bit CRC存储寄存器注入一个软错误。验证该诱发故障后,可使用相同指令将32-bit CRC值恢复为正确的CRC值,并插入正确值。使用已知错误值更新电路前,请务必先读取正确值。
用户模式中, Intel® MAX® 10器件支持CHANGE_EDREG JTAG指令,从而支持写入32-bit存储寄存器。可以使用.jam进行自动测试和验证处理。仅当器件处于用户模式时才可以执行该指令。该指令使您能够动态验证在系统CRC功能性,且无需重配置器件。然后,可切换到CRC电路来检查由SEU诱发的实际错误。
测试完成后,可清除CRC错误并通过如下方法之一恢复原有CRC值:
- 将TMS保持高电平5个TCK时钟,使TAP控制器进入RESET状态
- 重新启动器件
- 执行以下步骤:
- 配置完成后,使用CHANGE_EDREG JTAG指令移出预先计算的,正确的CRC值,并将错误的CRC值加载到CRC存储寄存器。检测到错误时,将CRC_ERROR管脚置位。
- 使用CHANGE_EDREG JTAG指令将移入预先计算的,正确的CRC值。解除CRC_ERROR管脚置位,以显示错误检测CRC电路在正常工作中。
JAM文件
'EDCRC_ERROR_INJECT ACTION ERROR_INJECT = EXECUTE; DATA DEVICE_DATA; BOOLEAN out[32]; BOOLEAN in[32] = $02040608; 'shift in any wrong CRC value ENDDATA; PROCEDURE EXECUTE USES DEVICE_DATA; BOOLEAN X = 0; DRSTOP IDLE; IRSTOP IDLE; STATE IDLE; IRSCAN 10, $015; 'shift in CHANGE_EDREG instruction WAIT IDLE, 10 CYCLES, 1 USEC, IDLE; DRSCAN 32, in[31..0], CAPTURE out[31..0]; WAIT IDLE, 10 CYCLES, 50 USEC, IDLE; PRINT " "; PRINT "Data read out from the Storage Register: "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]; 'Read out correct precomputed CRC value PRINT " "; STATE IDLE; EXIT 0; ENDPROC;
可使用quartus_jli可执行文件以及如下命令行来运行.jam文件:
quartus_jli -c<cable index> -a<action name> <filename>.jam