登录站点

用户名

密码

AHB Slave接口

已有 388 次阅读  2011-12-05 23:25   标签接口 
ahb slave接口主要作用是对从设备的寄存器进行配置,同时产生相应的回复信号和输出hrdata数据,回复信号分别为:hresp[1:0],hready。hready即为hreadyout。
hresp[1:0]定义了四种状态okay、error、split、retry。四个状态中,OKAY 表示transfer 成功的完成了,ERROR 表示transfer失败了,失败的可能原因比如说试图写入read-only 的memory location,或读写根本不存在的memory location等。而RETRY 和SPLIT 则是用在当slave判断目前的transfer将需要很多的bus cycle来完成,为了避免因为目前的transfer将bus一直lock 住,而回应RETRY/SPLIT response 给master,表示目前的transfer尚未完成,master 需要重新发出相同的transfer 再试一次,而此时arbiter就能将bus release 給其他有需要的master使用。至于Retry 和Split的差別在于arbiter 的master优先权管理(Priority Scheme)。
这四个response中,除了OKAY response 只需one-cycle 之外,其余三个response都需要two-cycle去完成。在这两个cycle中HRESP要维持想要回应的status不变(ERROR or RETRY or SPLIT),而HREADY 则在第一个cycle为low,第二个cycle为HIGH。
在一般的设计中,感觉okay、error状态已经够用了。
hready在amba中定义为inout类型,在ahb slave的设计时要分为hreadyin和hreadyout两个信号。其中hreadyout为slave输出的信号,表明当前传输是否完成。送出的hreadyout与其它从设备输出的hreadyout经过mux后送给主设备,同时也是slave的hreadyin。slave判断有效的master请求应该是在hclk的上升沿,如果hreadyin为高,hsel为高,htrans为noseq或者seq,表明master来了一个有效的请求.在这个时刻就可以得到size, address,write等控制信息。
AMBA协议中,没有规定缺省的hreadyout是高还是低,只是在AMBA FAQ中建议缺省值为高。我们也这样建议。

上一篇: Memory Interface Grouping Assignment 下一篇: 有关OHCI、UHCI、EHCI的知识

分享 举报