微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 7 系列 FPGA 帧 ECC 逻辑如何检查配置帧数据的单位或双位错误

7 系列 FPGA 帧 ECC 逻辑如何检查配置帧数据的单位或双位错误

时间:08-28 来源:FPGA开发圈 点击:

7 系列 FPGA 帧 ECC 逻辑可检查配置帧数据的单位或双位错误。它可使用基于帧数据( BitGen 生成)计算的 13 位汉明码校验值。

在读回过程中,帧 ECC 逻辑可计算使用所有帧位(包括 ECC 位)的综合值。如果位没有改变,还是最初设定的值,那 SYNDROME[12:0] 都是零。如果一个位发生改变,包括所有 ECC 位,那该位的位置则由 SYNDROME[11:0] 表明。如果两个位发生改变,则 SYNDROME[12] 为 0,其余位都为非零。如果改变的位数超过了两位,SYNDROME[12:0] 则为不确定。

如果一个位或两个位发生改变,则可断言模块的错误输出。要使用帧 ECC 逻辑,FRAME_ECC _VIRTEX6 原语在用户设计中就必须实例化,而且必须通过 SelectMAP、JTAG 或 ICAP 接口执行读回。

在每个读回帧的末端,可针对读回时钟(CCLK、TCK 或 ICAP_CLK)的一个周期断言 syndrome_valid 信号。读回一个帧所需的周期数不是固定的,随所用接口的不同而不同。修复已经发生改变的位需要一个用户设计。FRAME_ECCE2 逻辑不修复改变的位。设计必须能够存储至少一个帧的数据,要么就必须能够取回原始数据帧,以便重新加载。

最简单的操作为:1. 通过 ICAP 读出一个帧,并存在模块的 RAM 中。读取每个帧时,生成帧地址。2. 如果一个错误由 FRAME_ECC 模块的错误输出表明,读回就会停止,并将保存 SYNDROME 值。3. 如果 SYNDROME[12] 为 0,而 SYNDROME[11:0] 为非零,则必须恢复整个帧。 如果 SYNDROME[12] 为 1,SYNDROME[11:0] 可用于定位所保存帧的错误位。4. 修复的帧随后将写回第 1 步生成的帧地址中。5. 读回随后会在下一个帧地址上恢复。

引脚名称

类型

说明

SYNDROMEVALID

ECCERROR

SYNDROME[12:0]

CRCERROR

FAR[25:0]

SYNWORD[6:0]

SYNBIT[4:0]

ECCERRORSINGLE

   

输出

帧 ECC 综合有效脉冲。每个帧激活的一个周期。用于为 ERROR 和 SYNDROME[12:0] 采样。

输出

在 SYNDROMEVALID 激活时,该输出可表明一个帧错误是否已经检查:

  • SYNDROME[12:0] 为非零时,ERROR=1。

  • SYNDROME[12:0] 都为 0 时,ERROR=0。

输出

SYNDROMEVALID 激活时,该输出可反映帧错误情况:

  • 没有位错误:[12]==0、[11:0] ==0

  • 有一个位错误:[12]==1、[11:0]!=0

  • 有两个位错误:[12]==0、[11:0]!= 0

  • 两个位以上:SYNDROME 为不确定

  • 校验位错误:[12]==1、[11:0]==0

输出

RBCRC 错误。请查看 (UG470) 的第 8 章:读回 CRC

输出

帧地址寄存器值。

  • SEU 校正/注入与 ICAP 应用能够查看 FAR 寄存器,从而可从中获得优势。

  • 该输出可指向依赖于 FARSRC 属性的 EFAR 或 FAR 配置寄存器。

输出

输出错误的字地址。

  • 帧(已经检查出一个 ECC 错误)中 32 位字的索引 (0? -> 80)。已经从 SYNDROME 解码。

  • ECCERRORSINGLE 为高时有效。

输出

错误的位地址。

  • 字(由已检查的帧中 SYNWORD 指向)中有错误的位的索引 (0 -> 31)。

  • ECCERRORSINGLE 为高时有效。

输出

表明已检查的单位帧 ECC 错误

对于 SSIT 器件,FRAME_ECCE2 提供在所有 SLR 上。用户应布局并使用该组件检查每个 SLR 上的 ECC。

如果设计中只包含一个单 FRAME_ECC,而且没有布局,它将在主 SLR 中布局。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top