Intel® MAX® 10 FPGA配置用户指南

ID 683865
日期 1/10/2022
Public
文档目录

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状态
  • 重新启动器件
  • 执行以下步骤:
    1. 配置完成后,使用CHANGE_EDREG JTAG指令移出预先计算的,正确的CRC值,并将错误的CRC值加载到CRC存储寄存器。检测到错误时,将CRC_ERROR管脚置位。
    2. 使用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