几种常见的关于SEM IP的冲突

作者:Ivy Guo,AMD赛灵思工程师

SEM IP是一种比较特殊的IP。它的基本工作就是不停地后台扫描检测FPGA配置RAM中的数据,一旦发现这些数据与预期值不符,即发出警告或者尽可能的修正。这个持续不断的RAM扫描动作带来的负面影响,除了一些后台资源的占用,就是产生了一定量噪声。
噪声的冲突
绝大多数设计里面SEM的噪声完全可以忽略不计;但是仍有部分高速应用比如HSSIO和memory,可能会受到一定干扰。比较典型的一个例子是Spartan-6. 如果Spartan-6使用了其上的GTP核,或者其GPIO通道达到了300Mbps以上,但是链路裕量小于500ps,那么这些高速通道有可能会受到SEM(或者POST_CRC)扫描噪声的影响而出现误码。如果你的设计符合上述情况,那么解决方法就是:关闭POST_CRC功能,升级至Spartan-6最新的SEM IP版本3.4,然后根据具体情况,关闭掉所使用的GTP区域的扫描。这样做的代价是损失了GTP所在这一行资源的SEU保护。更多细节,请参考https://support.xilinx.com/s/article/52716?language=en_US。其他系列的HSSIO没有类似影响。

另外一个例子,是UltraScale/+系列的Memory Controller。Memory Controller初始化的时候,需要在PHY中运行BIST(Built-In Self Test),根据温度和电压计算内部skew;其后还会对读写通道做时序校正,因此对精度要求较高。如果在此阶段SEM IP就开始了内部扫描,噪声就有可能干扰校正的精度和准确性,造成MIG calibration失败。我们的推荐做法是延迟SEM IP的工作开始。做法很简单,给SEM IP的icap_clk前加上一个BUFGCE, 使能端口CE默认为低,这样IP没有时钟,工作也就不会开始。直到MIG calibration全部正确完成,控制打开CE端即可。需要注意的是,一旦CE端口打开,就不能再次关闭,否则有可能造成SEM IP工作异常。如果不再需要SEM功能,可以彻底关闭CE端口,或者通过指令把SEM IP置入IDLE状态。

资源的冲突

SEM IP的正确工作依赖核心接口原语ICAP。因此IP与其他逻辑的冲突也主要集中在ICAP的使用权争夺上。最常见的冲突就是在动态重配置的设计中使用了IP。动态重配置的核心原语同样是ICAP,所以SEM IP和Partial Reconfiguration不能同时工作。此种设计需要考虑‘时分复用’的方法,即需要动态重配置的时候,Partial接管ICAP的控制权,同于把SEM IP置入IDLE状态。等到重配工作全部完成,ICAP递交回给SEM IP。但是由于配置数据已经部分改变,IP中存储的黄金校验值已经失效。 因此我们需要先重新初始化SEM IP,然后它才能继续正常工作。具体可以参考https://docs.xilinx.com/v/u/en-US/xapp1261-demo-sem-pr

资源类型的冲突也常表现为SEM IP自我初始化失败,这其实也是得不到ICAP控制权的一个结果。比如设计里面使用了Partial,或者MultiBoot,但是默认FPGA配置完成后把ICAP控制权分配给这些逻辑,那么SEM IP在初次查询ICAP接口时就会失败,从而导致IP初始化异常。 但是只要正常释放ICAP控制权,IP就可以开始工作了。

以上为几种常见的冲突情况。如果你碰到更多的异常,欢迎到中文论坛咨询。

最新文章

最新文章