1

我想知道 MicroBlaze 的数据总线异常。在 MicroBlaze 产品手册中指出,当缓存关闭时,异常只能在 M_AXI_DC 上发生?这对我来说没有意义;是不是说如果在M_AXI_DC线上给出了错误响应,开启缓存就不会触发异常?我目前将 C_DCACHE_ALWAYS_USED 设置为 1,所以这不是问题。

谢谢。

MicroBlaze 产品指南摘录:

The data cache AXI4 interface (M_AXI_DC) exception is caused by:

    - An error response on M_AXI_DC_RRESP or M_AXI_DC_BRESP,
    - OKAY response on M_AXI_DC_RRESP in case of an exclusive access using LWX.

The exception can only occur when C_DCACHE_ALWAYS_USED is set to 1 and the
cache is turned off
4

1 回答 1

1

根据我的硬件/软件测试并使用 AXI BRAM 控制器生成 ECC 故障注入,如果启用缓存,MicroBlaze 不会发出数据或指令缓存异常,即使在写入前禁用缓存也是如此;并在读取之前重新启用以触发异常。如果缓存被刷新和失效,然后立即读回,情况也是如此。

这基本上意味着 ECC 在启用缓存的 MicroBlaze 设计中毫无价值。因为它们不会触发任何硬件异常。

即使 AXI BRAM 控制器的响应是 SLVERR,MicroBlaze 也会按原样接受数据;好像不可能发生任何不好的事情。

这是谁设计的。认真的。

我想唯一可靠的方法是使用中断来检测 ECC 错误;其优先级低于硬件异常。

于 2017-08-03T18:59:32.037 回答