2017-08-02 111 views
0

我想知道MicroBlaze的数据总线例外情况。在MicroBlaze产品手册中,它指出只有在缓存关闭时才能在M_AXI_DC上发生异常?这对我没有意义;是否意味着如果在M_AXI_DC行上给出错误响应,如果启用缓存,则不会触发异常?我目前有C_DCACHE_ALWAYS_USED设置为1,所以这不是一个问题。MicroBlaze AXI4异常

谢谢。从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 

回答

0

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

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

即使AXI BRAM控制器的响应是SLVERR,MicroBlaze也会按原样接受数据;仿佛没有什么不好的事情可能发生。

这是谁设计的。 严重

我猜唯一的保证是使用中断来检测ECC​​错误;其优先级低于硬件异常。