基于FPGA帧ECC逻辑端口描述应用

FPGA/ASIC技术

190人已加入

描述

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 中布局。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分