赛灵思
直播中

张润佘

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

如何找到带有SEM IP的spartan 6的LUT地址?

你好,
我正在使用带有SEM IP的spartan 6,我想在我的设计的特定部分注入错误。如何找到该部分的LUT地址。
.ll文件不足以找到所有位置。
谢谢
我尝试使用FPGA_edline命令和essential_bits而没有正面结果。

回帖(8)

黄彩萍

2019-7-31 09:37:45
我自己的实验已经涉及到使用BD文件已经涉及Virtex-5和7_series设备,所以请接受当我将这些信息与您联系时,我实际上没有为Spartan-6设备使用EBD文件。
EDB文件是一个易于打开和阅读的文本文件。
在描述性标题之后,每一行将配置的一个WORD描述为BITS。
在Spartan-6的情况下,每个WORD都是16位,因此每行有16个字符。
MSB在左侧,LSB在右侧。
Spartan-6器件中的0型配置帧每个由65个字组成,因此每65行描述一帧中的1,040位。
每个65的第一行是帧的第一个字(WD = 0),每个65的最后一行是帧的最后一个字(WD = 40 hex)。
SEM IP根据其帧,字和位识别位位置,因此我们几乎就在那里。
根据“线性帧地址”(LA)使用SEM IP。
第一个线性帧地址是LA = 0,然后LA递增到设备中的最后一帧,这是尽可能容易的。
EBD文件遵循相同的线性序列,因此每65行代表下一个线性帧的开始。
您唯一需要知道的是在图像的开头有一个“虚拟帧”,因此您需要在到达LA = 0的开始之前忽略第一帧(65行)。
听起来很奇怪,但它实际上与从物理设备读取帧的回读一致,该物理设备以回读机制的延迟引起的“虚拟帧”开始。
EBD文件中的每个位都会告诉您设备中的相应位是否为非必要('0'),这意味着它与您的设计无关或必不可少('1'),这意味着它与您的设计有关或可能
如果翻转,会以某种方式影响它。
请注意,标识的配置单元的实际值可能具有值“0”或“1”,具体取决于它在您的设计中定义的内容,您可以在EBC文件的相应位中看到此值。
可以公平地说,你必须认真地想要并且需要以这种方式注入错误,以便尝试应用所有这些。
我只能重申,通过使用随机注入和简单记录统计数据,我找到了相对简单的模拟SEU的方法。
Ken Chapman英国Xilinx主要工程师
在原帖中查看解决方案
举报

黄彩萍

2019-7-31 09:52:09
最低级别的位映射被认为是适当的信息,Xilinx不提供工具信息来促进每个配置单元的特定交叉引用。
虽然在执行诸如错误注入之类的事情时,这些信息可能具有某些有限的价值,但对于试图非法逆向工程或篡改设计的错误类型的人来说,这将是非常有用的。
因此,工程设计是多种因素的妥协。
根据我使用错误注入的实际经验,我发现在尝试识别特定位时没有任何价值。
在大多数情况下,我使用随机注入来模拟真实的SEU并以这种方式得出关于我的设计的统计行为。
几十万个随机注射告诉我几乎所有我需要知道的事情。
为了避免浪费时间注入与我的设计无关的单元格,我已经知道可以使用可以与配置映像(BIT文件)同时生成的Essential Bits数据文件(EBD)。
这至少可以识别作为设计一部分的所有位(或可能影响设计的位),并排除永远不会产生任何影响的位(通常只使用20%到40%的位)。
在一些非常特殊的情况下,我想在某些电路中注入错误而不是其他电路。
例如,我可能正在测试TMR实现,并且只想在一个模块中注入错误,以便测试TMR方案是否正常工作(无论如何,完整测试应该是随机的)。
为此,我使用'优先级基本位'流程,它将生成一个EDB文件,该文件仅识别与设计的已识别部分相关联的位(或可能影响该部分设计的位)。
这是使用Xilinx提供的工具可以实现的最小粒度的定向错误注入,但我坚信,根据我自己使用它的经验,这是绰绰有余的。
Ken Chapman英国Xilinx主要工程师
举报

江根磊

2019-7-31 10:00:48
感谢您的回答。
我得出了相同的结论,但如何使用EDB文件来提取错误地址?
BR。
举报

黄彩萍

2019-7-31 10:13:28
我自己的实验已经涉及到使用BD文件已经涉及Virtex-5和7_series设备,所以请接受当我将这些信息与您联系时,我实际上没有为Spartan-6设备使用EBD文件。
EDB文件是一个易于打开和阅读的文本文件。
在描述性标题之后,每一行将配置的一个WORD描述为BITS。
在Spartan-6的情况下,每个WORD都是16位,因此每行有16个字符。
MSB在左侧,LSB在右侧。
Spartan-6器件中的0型配置帧每个由65个字组成,因此每65行描述一帧中的1,040位。
每个65的第一行是帧的第一个字(WD = 0),每个65的最后一行是帧的最后一个字(WD = 40 hex)。
SEM IP根据其帧,字和位识别位位置,因此我们几乎就在那里。
根据“线性帧地址”(LA)使用SEM IP。
第一个线性帧地址是LA = 0,然后LA递增到设备中的最后一帧,这是尽可能容易的。
EBD文件遵循相同的线性序列,因此每65行代表下一个线性帧的开始。
您唯一需要知道的是在图像的开头有一个“虚拟帧”,因此您需要在到达LA = 0的开始之前忽略第一帧(65行)。
听起来很奇怪,但它实际上与从物理设备读取帧的回读一致,该物理设备以回读机制的延迟引起的“虚拟帧”开始。
EBD文件中的每个位都会告诉您设备中的相应位是否为非必要('0'),这意味着它与您的设计无关或必不可少('1'),这意味着它与您的设计有关或可能
如果翻转,会以某种方式影响它。
请注意,标识的配置单元的实际值可能具有值“0”或“1”,具体取决于它在您的设计中定义的内容,您可以在EBC文件的相应位中看到此值。
可以公平地说,你必须认真地想要并且需要以这种方式注入错误,以便尝试应用所有这些。
我只能重申,通过使用随机注入和简单记录统计数据,我找到了相对简单的模拟SEU的方法。
Ken Chapman英国Xilinx主要工程师
举报

更多回帖

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