在以前所做的项目中用到的AHB总线中,发现作为Slave设备有2个hready信号线。
一直没搞清楚这2个信号线详细作用,最近在请教高人之后终于弄明白了2个hready信号线
的作用。
一般作为AHB总线的Slave设备都有2根hready信号,一个为input类型(hready_in),
另一个为output类型(hready_out)。在AHB总线协议中,如果Master设备发起读写操作
的时候,Slave设备不能及时响应的话,由Slave设备把hready_out信号拉低来拖延Data
Phaze周期。
但是在Pipeline操作的时候,本次操作data phaze是下一次操作的address phaze,
所以作为Slave设备在响应Master设备的时候,必须先判断一下Master设备对上一次其它
Slave设备的操作是否已经完成。如果完成,则响应主设备的操作;如果没有完成,则等待
完成,然后才响应操作。hready_in就是Slave设备用来判断Master设备是否对其它
Slave设备的操作已经完成的信号。