您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > 第二章-AMBA原理与IP包装(Wrapping)流程
1AMBA原理與IP包裝(Wrapping)流程GeneralSystemsLAB/系統晶片實驗室國立高雄第一科技大學陳朝烈教授崑山科技大學吳俊慶鄭宇良2AMBA簡介目錄•AMBA系統架構圖……………………………………………………4•各種不同晶片匯流排之比較………………………………………5•ASBBus使用條件……………………………………………………6•AHBBus使用條件……………………………………………………7•APBBus使用條件……………………………………………………8AHB介紹與包裝•AMBAAHBsignals簡介……………………………………………10•典型匯流排連接方式………………………………………………13•AHB操作原理…………………………………………………………14•AMBAWrapper………………………………………………………15•BUS權限轉換波形圖…………………………………………………16•AHB實例:將DATA存入記憶體………………………………………173IPWrapper目錄•MasterIPWrapper之FSM…………………………………………21•SlaveIPWrapper之FSM……………………………………………24模擬波形圖•模擬說明……………………………………………………………28•模擬一………………………………………………………………29•模擬二………………………………………………………………30•模擬三………………………………………………………………314AMBA簡介5AHBBusorASBBusAPBBusARMLCDControllerBridgeArbiter/DecoderTimer0/1/2UARTDMAGPIO2.1.1AMBA系統架構圖62.1.2各種不同晶片匯流排之比較OPBPLBAPBASBAHBPIbusPIbus2支援頻寬(bit)8,16,328,16,24,32328,16,322n(n=3~10)8,16,328,16,24,32,64最高頻寬(cycle)1byte2byte4byte4byte128byte1byte1byte特性低速低功率高效率高頻寬低速低功率高速高效能高速高效能高速高頻寬高速高頻寬時序準則百分比百分比時序圖時序圖時序圖早,中,晚早,中,晚時脈同步是是是(正緣)是(負緣)是(正緣)是(正緣)是(正緣)匯流排多工器多工器多工器三態電路多工器三態電路三態電路中斷否否否否否否否分離式資料傳輸否否否否是是是仲裁者是是否是是是是連續資料傳輸是是否是是是是AMBABus72.1.3ASBBus使用條件•ASB匯流排為舊版的高速(系統)匯流排,現在幾乎都被AHB取代,因為ASB是負緣觸發,而電路設計中,正緣觸發技術比較純熟,且一般特定應用積體電路程式庫(ASIClibrary)在正緣觸發的正反器設計通常有較佳的表現等,所以現在較常見的匯流排為AHB及APB。82.1.4AHBBus使用條件•有多個MASTER,而且都為高效能的IP,常見的有處理器或DMA控制器等。92.1.5APBBus使用條件•APB匯流排用於連接速度較慢的系統模式和頻寬較低的外接設備,將功率消耗降至最低,並減低介面之複雜性。因所有匯流排訊號都與時脈訊號有關,可以使用時脈頻率較低(低於AHB)之匯流排。10AHB介紹與包裝112.2.1AMBAAHBsignals簡介•Master:HADDR:32bit的位址匯流排HWRITE:讀寫控制線,1為寫入、0為讀取HWDATA:32bit的寫入資料匯流排HTRANS:2bit的狀態訊號,01為忙碌、10為第一筆資料HBUSREQ:向仲裁者要求使用匯流排的訊號腳122.2.1AMBAAHBsignals簡介•Slave:HREADY:匯流排轉讓訊號,1為處理完成、0為需再延遲1cycleHRESP:2bit的處理狀態,00為完成、01為錯誤、10為再試HRDATA:32bit的讀取資料匯流排132.2.1AMBAAHBsignals簡介•Decoder:HSEL:Slave選擇訊號,依據位址解碼,選擇一個特定的Slave•Arbiter:HGRANT:匯流排使用權之選擇訊號,1為允許使用匯流排、0為禁止使用142.2.2典型匯流排連接方式Master#1Master#2Master#3Slave#1Slave#2Slave#3Slave#4ArbiterDecoderHWDATAHWDATAHWDATAHRDATAHRDATAHRDATAHADDRHADDRHADDRHWDATAHWDATAHWDATAHWDATAHRDATAHRDATAHRDATAHRDATAHADDRHADDRHADDRHADDRWritedatamuxReaddatamuxAddress&controlmux152.2.3AHB操作原理•AHB以仲裁器來控制多工器以連接在其上的MASTER與SLAVE。•在AHB匯流排上,其操作順序一般如下:1.MASTER要求使用匯流排2.仲裁器回應允許訊號3.MASTER送出位址與控制訊號4.將位址與控制訊號送到所有的Slave端5.Decoder解碼,致能正確的Slave來接受資料6.Slave依據自身處理狀態做出回應162.2.4AMBAWrapperAHBBusFPGAIPSDRAMControllerIPWrapperSDRAMControllerFSMCmdregBufIPWrapperHCLKHADDRHWDATAHRDATAHREADYHREADYout...HSEL172.2.5BUS權限轉換波形圖T1T2T3T4T5T6T7T8T9T5:這段時間,切換匯流排使用權,並將最後一筆控制及位址訊號送出T6;這段時間,接收到HREADY為0訊號,故訊號延長T7:這段時間,接收到HREADY為1訊號,M1交出控制及位址的匯流排使用權,並送出最後一筆資料T9:M1交出資料匯流排使用權182.2.6AHB實例:將DATA存入記憶體ArbiterRAMChipRAMCtrl(Slave1)HBUSREQ_M1=1HGRANT_M1=1HADDR=AUSBCtrl(Master1)AHBDecoderHMASTER=M1HTRANS=NONSEQothers(Slave2)HSEL_S1=1AHBT1T2HWRITE=1HBURST=INCR4HSIZE=WORDT3Master2HBUSREQ_M2=1HADDR=A+4HTRANS=SEQHREADY=1並接收位址及控制訊號寫資料到記憶體裡HWDATA=DATA(A)HADDR=A+8HTRANS=SEQHREADY=1並接收位址及控制訊號寫資料到記憶體裡HWDATA=DATA(A+4)T4T5HADDR=A+12HTRANS=SEQHREADY=0HWDATA=DATA(A+8)HGRANT_M1=0HGRANT_M2=1HSEL_S1=1HSEL_S1=1HSEL_S1=1來不及寫入192.2.6AHB實例:將DATA存入記憶體ArbiterRAMChipRAMCtrl(Slave1)USBCtrl(Master1)AHBDecoderothers(Slave2)AHBMaster2T6HADDR=A+12HTRANS=SEQHWDATA=DATA(A+8)HREADY=1並接收位址及控制訊號寫資料到記憶體裡T7HWDATA=DATA(A+12)HREADY=0HMASTER=M2T8HWDATA=DATA(A+12)HREADY=1並接收位址及控制訊號寫資料到記憶體裡HTRANS=NONSEQHSEL_S2=1T9HWRITE=1HBURST=INCR4HSIZE=WORDHADDR=BHRESP=OKAY寫入完成T10...來不及寫入HSEL_S1=1HSEL_S1=1HSEL_S1=120IPWrapper212.3.1MasterIPWrapper之FSMStep1:Stateassignment(statedefinition)idle:等待開始或工作結束。要求使用bus:準備開始動作,對Arbiter要求要使用bus,並等待。準備傳值及初值設定:設定傳送資料格式。(例:HBURST=INCR4、HSIZE=Word,等等)傳送資料:按照傳送格式傳送資料。忙碌:Slave來不及處理完,等待一個週期。重新傳值:Slave要求重新傳上一筆資料。222.3.1MasterIPWrapper之FSMStep2:Definestatetransitions(eventtriggered,andstatetransition)idle忙碌傳送資料R/W要求使用busHGRANTx=0準備傳值及初值設定HGRANTx=1HREADY=1HREADY=0HREADY=1HRESP=OKAYHREADY=1重新傳值HRESP=RETRYHRESP=RETRYHREADY=1HRESP=ERROR232.3.1MasterIPWrapper之FSMStep3:StateActionidle:ifR=1orW=1thenHBUSREQx=1;要求使用bus:ifHGRANTx=1thenState=準備傳值&初值設定;準備傳值&初值設定:ifHREADY=1thenHTRANS=NONSEQ;Address=自訂;control=自訂;傳送資料:ifHREADY=0then(HTRANS/Address=維持不變);ifHRESP=ERRORthenState=要求使用bus;ifHRESP=RETRYthenState=重新傳值;忙碌:ifHREADY=1then(Address=跳到下一筆);重新傳值:ifHRESP=RETRYandHREADY=1thenAddress=跳到上一筆;242.3.2SlaveIPWrapper之FSMStep1:Stateassignment(statedefinition)idle:等待開始或工作結束。Start:準備開始動作,等待接受控制訊號。R/WStart:按照Master發出的訊號傳送資料/做出回應。停止接收訊號:Master來不及處理,要求等待。R/WNext:按照Master發出的訊號傳送資料/做出回應(差別在於無ERROR)。要求重新傳值:Slave來不及處理,要求重新傳上一筆資料。ERROR:資料錯誤。ErrorCnt:資料錯誤狀態。252.3.2SlaveIPWrapper之FSMStep2:Definestatetransitions(eventtriggered,andstatetransition)Start要求重新傳值R/WStartHWRITE=1/0HTRANS=NONSEQHTRANS=SEQHSELx=1HTRANS=BUSYR/WNEXT停止接收訊號HTRANS=BUSYHTRANS=SEQHTRANS=IDLEERRORDataCnt=EndCntBegun≠1idleCnt≠nextaddr=自訂HBURST=(SINGLEorINCR)ErrorCnt=2signal說明ErrorCnt計數資料錯誤狀態需維持的時間EndCnt由HBURST發出來的訊號決定需要完成的資料數DataCnt計數已經完成的資料數BegunSDRAMController本身的所產生的訊號,為1時表示處理完成可以處理下一筆資料262.3.2SlaveIPWrapper之FSMStep3:StateActionidle:ifHSELx=1thenState=Start;Start:ifHWRITE=1/0antHTRANS=NONSEQthenHREADY=1;HRESP=OKAY;EndCnt=HBURST(用CASE編碼)R/WStart:ifHTRANS=SEQthenHREADY
本文标题:第二章-AMBA原理与IP包装(Wrapping)流程
链接地址:https://www.777doc.com/doc-62339 .html