我想知道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发布于 2017-08-03 18:59:32
基于我的硬件/软件测试,并使用AXI BRAM Controller生成ECC故障注入,如果启用缓存,即使在写入之前禁用缓存,MicroBlaze也不会发出数据或指令缓存异常;在读取之前重新启用以触发异常。如果缓存被刷新和失效,然后立即回读,情况也是如此。
这基本上意味着ECC在启用缓存的MicroBlaze设计中毫无价值;因为它们不会触发任何硬件异常。
尽管AXI BRAM Controller的响应是一个SLVERR,但MicroBlaze将按原样接受数据;就好像没有可能发生任何坏的事情一样。
是谁设计的。我是认真的。
我想唯一肯定的方法是使用中断来检测ECC错误;这些错误的优先级低于硬件异常。
https://stackoverflow.com/questions/45470442
复制相似问题