在以前所做的項目中用到的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設備的操作已經完成的信號。