每个Slave的HREADYOUT都“与”在一起,以给出系统范围的HREADY信号,该信号再作为输入反馈给每个Slave。这意味着每个Slave将具有2个HREADY信号: HREADY_in(系统范围的HREADY信号)和HREADY_out。因此,如果任何Slave将HREADYOUT设为低,则hready_in将变为低电平。因此每个Slave都等该hready_in变为高电平,然后才能做出响应。每个Slave的HREADYOUT用来扩展数据阶段,并且每个Slave必须有hready_in,以便知道系统上是否有任何其他Slave正在请求数据阶段扩展。如果任何Slave的hready_in为低电平,则该Slave必须等待其hready_in变为高电平,然后才能响应任何AHB请求。因此每个Slave都有两个hready信号,一个hready_in信号,一个hready_out信号。建议每个Slave的HREADY信号默认值设为“1”
AHB2协议里只有hready的叫法,并没有hready_out这一说法的,到AHB3和AHB5协议里就有了hready_out的叫法。但协议原文中都没有hready_in的称呼,hready_in只是工程项目中比较形象、比较好沟通的一种称呼。这种称呼很流行,甚至很多ip厂商也这么给信号命名。大家对照理解,不要搞混了。下图中的hready就是通常所说的hready_out。到这里,相信你已经理解了hready和hready_out的含义。