【正文】
HADDR[31:0] 32位系統(tǒng)地址總線 HWDATA[31:0] 寫數(shù)據(jù)總線,從主設(shè)備寫到從設(shè)備 HRDATA[31:0] 讀數(shù)據(jù)總線,從從設(shè)備讀到主設(shè)備 21 基本 AHB信號(續(xù)) HTRANS 指出當(dāng)前傳輸?shù)臓顟B(tài) NONSEQ、 SEQ、 IDLE、 BUSY HSIZE 指出當(dāng)前傳輸?shù)拇笮? HBURST 指出傳輸?shù)?burst類型 HRESP 從設(shè)備發(fā)給主設(shè)備的總線傳輸狀態(tài) OKAY、 ERROR、 RETRY、 SPLIT HREADY 高:從設(shè)備指出傳輸結(jié)束 低電平:從設(shè)備需延長傳輸周期 22 基本 AHB傳輸 兩個階段 地址周期,只有一個 cycle 數(shù)據(jù)周期,由 HREADY信號決定需要幾個cycle 流水線傳送 先是地址周期,然后是數(shù)據(jù)周期 23 Master release address and control Slave sample the address and control Master sample the data If slave hasn’t ready to receive data, how to do? 基本 AHB傳輸(續(xù)) 一次無需等待狀態(tài)的簡單傳輸 24 Not ready Not ready Ready One transfer need at least two cycles, how to promote its efficiency? Note: slave shouldn’t insert more than 16 wait cycles!!! 基本 AHB傳輸(續(xù)) 需要兩個等待周期的簡單傳輸 25 Pipeline A Address A Data B Address B Data C Address C Data Slave decodes every transfer, so many waits, how to decrease the wait cycles? 基本 AHB傳輸(續(xù)) 26 Burst Transfer A A A+4 A+4 A+8 A+8 A+12 A+12 HBURST shows the burst types: Single Transfer Incrementing transfer with unspecified length( INCR) 4beat 8beat 16beat Slave has know that master need 4 data, A/A+4/A+8/A+12 During burst transfer, if slave not ready, then hready=0。 65 Split傳輸過程 由主設(shè)備開始傳輸。只需要記錄主設(shè)備號(忽略地址和控制信號) 給出 RETRY響應(yīng)的從設(shè)備在某一時刻只能由一個主設(shè)備訪問。 仲裁器恢復(fù)優(yōu)先級 仲裁器 grant主設(shè)備,這樣主設(shè)備可以重新開始傳輸。 每一位對應(yīng)一個主設(shè)備 60 仲裁舉例( 1) 沒有等待狀態(tài)的 grant 61 仲裁舉例( 2) 有等待狀態(tài)的 grant 62 仲裁舉例( 3) Burst傳輸之后移交總線 63 總線主設(shè)備 Grant信號 Arbiter 64 幾點說明 對于固定長度的 burst傳輸,不必持續(xù)請求總線 對于未定義長度的 burst傳輸,主設(shè)備應(yīng)該持續(xù)送出 request信號,直到開始最后一次傳輸。 when others = HRESP = ERROR。 when …. = HSELsram = ‘1’。 but if master is not ready, how to do? 基本 AHB傳輸(續(xù)) 27 傳輸類型 HTRANS[1:0]:當(dāng)前傳輸?shù)臓顟B(tài) IDLE、 BUSY、 NONSEQ、 SEQ 00: IDLE 主設(shè)備占用總線,但沒進行傳輸 兩次 burst傳輸中間主設(shè)備發(fā) IDLE 01: BUSY 主設(shè)備占用總線,但是在 burst傳輸過程中還沒有準(zhǔn)備好進行下一次傳輸 一次 burst傳輸中間主設(shè)備發(fā) BUSY 28 傳輸類型(續(xù)) 10: NOSEQ 表明一次單個數(shù)據(jù)的傳輸 或者一次 burst傳輸?shù)牡谝粋€數(shù)據(jù) 地址和控制信號與上一次傳輸無關(guān) 11: SEQ 表明 burst傳輸接下來的數(shù)據(jù) 地址和上一次傳輸?shù)牡刂肥窍嚓P(guān)的 29 The first transfer Master is busy The subsequent transfer The subsequent transfer Slave is not ready The subsequent transfer 傳輸類型舉例 30 其它 AHB控制信號 HWRITE 高電平:寫 低電平:讀 HSIZE[2:0] 000:8bits 100:128bits 001:16bits 101:256bits 010:32bits 110:512bits 011:64bits 111:1024bits 最大值受總線的配置所限制 通常使用 32bits( 010) 31 其它 AHB控制信號(續(xù)) HPROT[3:0] HPROT[0]: OPCODE/DATA HPROT[1]