当满足以下所有条件时,您将在Cyclone®V和Stratix®V中看到此行为。
– 启用内部清理功能
– 每个EDERROR_INJECT JTAG指令使用相同的JTAG故障注入寄存器内容。
使用EDERROR_INJECT JTAG指令将错误信息转移到JTAG故障注入寄存器时,会修改第一帧的回读位。因此检测到CRC错误,CRC_ERROR引脚输出一个脉冲。
但是这个错误是假错误,操作只修改第一帧的回读位,而不是修改存储在配置RAM(CRAM)中的第一帧的内容。
在第一次CRC错误检测之后,如果启用了内部清理功能,则根据假错误修改CRAM中第一帧的内容。结果,修改的第一帧的内容与故障注入寄存器的内容匹配。因此,没有检测到CRC错误,CRC_ERROR引脚不再切换为高电平。
即使再次执行EDERROR_INJECT JTAG指令,只要使用相同的JTAG故障注入寄存器内容,就不会检测到错误,CRC_ERROR引脚也不会再次切换。
要再次切换CRC_ERROR引脚,可以发送JTAG故障注入寄存器的不同内容。但它进一步修改了CRAM中第一帧的内容。为避免此类进一步修改,建议将全零发送到JTAG故障注入寄存器,以便恢复CRAM中第一帧的内容。
当您在AN 539中使用示例.jam文件:在英特尔 ®FPGA 器件中使用CRC进行错误检测和恢复的测试方法时 ,您可以在[46]中看到BOOLEAN = $ 040600004000;在脚本中。示例.jam文件将$ 040600004000发送到JTAG故障注入寄存器。
将全零发送到JTAG故障注入寄存器时,请在[46] = $ 000000000000中使用BOOLEAN;
没有回复内容