赛灵思
直播中

张凤英

7年用户 165经验值
私信 关注
[问答]

SEM控制器未检测到双位错误该怎么办?

我正在尝试集成sem控制器并在spartan 6 FPGA上验证其功能(xc6slx75t)
控制器提供20MHz时钟并配置为修复错误。
我试图使用核心的错误注入接口注入单位和双位错误。
我在注入双位错误时使用以下地址 - 也尝试过不同的地址。
根据https://www.xilinx.com/support/answers/61736.html的最大帧数为0x3C16
帧号 - 0x1000
字 - 2
位-2
最终36位注入地址= 0xC01000042
帧号 - 0x1000
字 - 2
位 - 3
最终36位注入地址= 0xC01000043
检测到单个位错误 - 设置status_essential。
在注入双位错误时,期望的行为是status_uncorrectable变高。
在我的情况下,这不会发生。
有什么建议么?
谢谢。

回帖(12)

黄彩萍

2019-8-1 08:15:35
在我的设计中,我也使用错误注入接口来实际控制SEM IP并注入错误,但是除了观察状态信号之外,我还监视SEM IP生成的消息,因为它们提供了更多信息。
您说您正在使用“修复”模式,这样只会纠正配置框架中的单个位翻转。
然而,这仍然意味着将校正相邻帧双位错误,因为它们将采用两个帧的形式,每个帧包含单个位错误。
相邻帧双位翻转将导致两个快速检测和校正周期;
每帧每个单个位错误一个。
顺便说一下,在7系列和UltraScale器件中,Xilinx已经对帧的配置存储单元进行了物理交织,这意味着双位翻转导致相邻帧单比特错误对而不是同帧双重错误的概率更高。
误码。
因此,“修复”模式意味着即使罕见的双位错误也经常被纠正(作为两个单身)。
事实上,UltraScale器件具有有效的8路存储器单元交错,因此我们只需要“修复”模式,因为它将覆盖8位相邻的镦粗。
要模拟不可纠正的双位错误,您需要将SEM IP置于“空闲状态”并将其保持在“空闲状态”,并在同一帧中注入两个相邻错误(显然,注入的行为将导致
临时更改为“注射状态”但每次都会返回“空闲状态”。
在注入两个错误之前,请勿更改为“观察状态”。
请注意,处于“空闲”状态时,“status_heartbeat”不会跳动。
这可以防止SEM IP在注入第二个错误之前检测到第一个错误。
然后,当您切换到“观察状态”时,将开始扫描并检测到错误。
由于无法纠正,SEM IP将最终处于“空闲状态”,但“status_uncorrectable”输出处于活动状态。
我刚用自己的Spartan-6设计证实了这种行为。
Ken Chapman英国Xilinx主要工程师
在原帖中查看解决方案
举报

潘晶燕

2019-8-1 08:23:30
AV,
你停止扫描,插入两个错误,然后继续吗?
这两个错误是否相邻?
SEU MCU物理上相邻。
是否在操作中更换了框架(它可以修复所有错误)?
必不可少的是分类,与修复无关。
在第一次无法修复的错误时,SEM IP停止。
Austin Lesea主要工程师Xilinx San Jose
举报

潘晶燕

2019-8-1 08:41:27
最后,是否启用了双相邻校正?
我忘了S6是否支持这个。
以后都做了。
Austin Lesea主要工程师Xilinx San Jose
举报

沈艳丽

2019-8-1 08:58:50
奥斯汀,
是。
控制器被驱动到空闲状态。
注入错误。
控制器被驱动到观察状态。
我相信它们是相邻的,因为注射位置仅改变一点。
帧替换是禁用的。
这是我到目前为止所理解的。
在修复模式下,控制器检测并纠正单个位错误。
由于模式不是“替换”,因此核心始终将单个位错误标记为必要。
如果我确实引起双位错误,控制器应该无法纠正它 - 控制器应该提高status_uncorrectable并停止。
这些信息是否正确?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分