微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于AXI 总线中SlvErr和DecErr的使用

关于AXI 总线中SlvErr和DecErr的使用

时间:10-02 整理:3721RD 点击:
AXI的response channel有两个error status, decErr和SlvErr。可是我不是很明白当AXI 的IP (slave)端返回了这样的error status给AXI的master 后,ARM是如何定义整个系统的纠错行为的呢?猜测有2个
1. Slave IP 自己发中断
2. cpu 收集err status, 然后统一发exception处理各种错误。
请懂的大侠给些帮助,谢谢先。

我验证过一个SOC芯片的bus,出现过dec error是因为访问了不在slave有效地址内的地址,所以没有slave 响应。slv err是因为slave接收到了master的请求信号,但是slave还是想传出来一个错误信号。我认为应该是slave会在它准备好传输的时候,自动传输。但是我也不确定我说的对不对。

谢谢。请问你们看到了那个decErr,让software做什么,通过什么方式来resume你的SOC呢?
还是你们debug的时候看到这个问题,修正了driver什么的,然后这个bug就修掉了?

slave 可以有中断发出,并在中断状态寄存器中给标志上。这是设计IP的时,在错误处理考虑的。
做为MASTER,接收到错误后,一般会立即中止本次传输,防止陷入无限的等待,并进入错误处理。一般也是标志错误状态及中断。
CPU的错误集体中处理,一般主要是各种总线桥接器上面的错误以及CPU本身做为MASTER时候。系统中其它的MASTER/SLAVE出错了,CPU未必知道也不需要直接知道,但好的IP设计一定有办法让CPU知道,如中断。

正常情况下面,报错就是表明你的程序进行了非法操作,即与IP的SPEC不符合,如只读区域你进行了写操作,可以报错。或者某个IP只支持32BIT位操作,你进行了16BIT位操作,也可以回个ERR,告诉MASTER给出的要求SLAVE满足不了。一般考虑修改程序。如果你是做IC验证的,根据IP的SPEC进行验证,发现有ERROR,则与设计人员,IP的SPEC是否与他的设计 一致,考虑让他修改。

上一篇:DDR2仿真问题
下一篇:DCT 综合问题请教

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top