FPGA/ASIC技术
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输出 帧 ECC 综合有效脉冲。每个帧激活的一个周期。用于为 ERROR 和 SYNDROME[12:0] 采样。
ECCERROR输出 在 SYNDROMEVALID 激活时,该输出可表明一个帧错误是否已经检查:
SYNDROME[12:0] 为非零时,ERROR=1。
SYNDROME[12:0] 都为 0 时,ERROR=0。
SYNDROME[12:0]输出
SYNDROMEVALID 激活时,该输出可反映帧错误情况:
没有位错误:[12]==0、[11:0] ==0
有一个位错误:[12]==1、[11:0]!=0
有两个位错误:[12]==0、[11:0]!= 0
两个位以上:SYNDROME 为不确定
校验位错误:[12]==1、[11:0]==0
CRCERROR输出 RBCRC 错误。请查看 (UG470) 的第 8 章:读回 CRC
FAR[25:0]输出 帧地址寄存器值。
SEU 校正/注入与 ICAP 应用能够查看 FAR 寄存器,从而可从中获得优势。
该输出可指向依赖于 FARSRC 属性的 EFAR 或 FAR 配置寄存器。
SYNWORD[6:0]输出 输出错误的字地址。
帧(已经检查出一个 ECC 错误)中 32 位字的索引 (0? -> 80)。已经从 SYNDROME 解码。
ECCERRORSINGLE 为高时有效。
SYNBIT[4:0]输出 错误的位地址。
字(由已检查的帧中 SYNWORD 指向)中有错误的位的索引 (0 -> 31)。
ECCERRORSINGLE 为高时有效。
ECCERRORSINGLE输出 表明已检查的单位帧 ECC 错误
对于 SSIT 器件,FRAME_ECCE2 提供在所有 SLR 上。用户应布局并使用该组件检查每个 SLR 上的 ECC。
如果设计中只包含一个单 FRAME_ECC,而且没有布局,它将在主 SLR 中布局。
全部0条评论
快来发表一下你的评论吧 !