第二章-AMBA原理与IP包装(Wrapping)流程_第1页
第二章-AMBA原理与IP包装(Wrapping)流程_第2页
第二章-AMBA原理与IP包装(Wrapping)流程_第3页
第二章-AMBA原理与IP包装(Wrapping)流程_第4页
第二章-AMBA原理与IP包装(Wrapping)流程_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AMBA原理與IP包裝(Wrapping)流程,General Systems LAB/系統晶片實驗室 國立高雄第一科技大學 陳朝烈 教授 崑山科技大學 吳俊慶 鄭宇良,1,AMBA簡介,目錄,AMBA系統架構圖 4 各種不同晶片匯流排之比較 5 ASB Bus使用條件 6 AHB Bus使用條件 7 APB Bus使用條件 8,AHB介紹與包裝,AMBA AHB signals 簡介 10 典型匯流排連接方式 13 AHB操作原理 14 AMBA Wrapper 15 BUS權限轉換波形圖 16 AHB實例:將DATA存入記憶體 17,2,IP Wrapper,目錄,Master IP Wr

2、apper之FSM 21 Slave IP Wrapper之FSM 24,模擬波形圖,模擬說明 28 模擬一 29 模擬二 30 模擬三 31,3,AMBA簡介,4,AHB Bus or ASB Bus,APB Bus,ARM,LCD Controller,Bridge,Arbiter/ Decoder,Timer 0/1/2,UART,DMA,GPIO,2.1.1 AMBA系統架構圖,5,2.1.2 各種不同晶片匯流排之比較,AMBA Bus,6,2.1.3 ASB Bus使用條件,ASB匯流排為舊版的高速(系統)匯流排,現在幾乎都被AHB取代,因為ASB是負緣觸發,而電路設計中,正緣觸發技

3、術比較純熟,且一般特定應用積體電路程式庫(ASIC library)在正緣觸發的正反器設計通常有較佳的表現等,所以現在較常見的匯流排為AHB及APB,7,2.1.4 AHB Bus使用條件,有多個MASTER,而且都為高效能的IP,常見的有處理器或DMA控制器等,8,2.1.5 APB Bus使用條件,APB匯流排用於連接速度較慢的系統模式和頻寬較低的外接設備,將功率消耗降至最低,並減低介面之複雜性。因所有匯流排訊號都與時脈訊號有關,可以使用時脈頻率較低(低於AHB)之匯流排,9,AHB介紹與包裝,10,2.2.1 AMBA AHB signals 簡介,Master: HADDR:32bit

4、的位址匯流排 HWRITE:讀寫控制線,1為寫入、0為讀取 HWDATA:32bit的寫入資料匯流排 HTRANS:2bit的狀態訊號,01為忙碌、10為第一筆資料 HBUSREQ:向仲裁者要求使用匯流排的訊號腳,11,2.2.1 AMBA AHB signals 簡介,Slave: HREADY:匯流排轉讓訊號,1為處理完成、0為需再延 遲1cycle HRESP:2bit的處理狀態,00為完成、01為錯誤、 10為再試 HRDATA:32bit的讀取資料匯流排,12,2.2.1 AMBA AHB signals 簡介,Decoder: HSEL:Slave選擇訊號,依據位址解碼,選擇一個特

5、 定的Slave Arbiter: HGRANT:匯流排使用權之選擇訊號,1為允許使用匯 流排、0為禁止使用,13,2.2.2 典型匯流排連接方式,14,2.2.3 AHB操作原理,AHB以仲裁器來控制多工器以連接在其上的MASTER與SLAVE。 在AHB匯流排上,其操作順序一般如下: MASTER要求使用匯流排 仲裁器回應允許訊號 MASTER送出位址與控制訊號 將位址與控制訊號送到所有的Slave端 Decoder解碼,致能正確的Slave來接受資料 Slave依據自身處理狀態做出回應,15,2.2.4 AMBA Wrapper,AHB Bus,FPGA,IP SDRAM Control

6、ler,IP Wrapper,SDRAM Controller,FSM,Cmd reg,Buf,IP Wrapper,HCLK,HADDR,HWDATA,HRDATA,HREADY,HREADYout,.,HSEL,16,2.2.5 BUS權限轉換波形圖,T5:這段時間,切換匯流排使用權,並將最後一筆控制及位址訊號送出 T6;這段時間,接收到HREADY為0訊號,故訊號延長 T7:這段時間,接收到HREADY為1訊號,M1交出控制及位址的匯流排 使用權,並送出最後一筆資料 T9:M1交出資料匯流排使用權,17,2.2.6 AHB實例:將DATA存入記憶體,18,2.2.6 AHB實例:將DAT

7、A存入記憶體,19,IP Wrapper,20,2.3.1 Master IP Wrapper之FSM,Step1:State assignment (state definition) idle:等待開始或工作結束。 要求使用bus:準備開始動作,對Arbiter要求要使用bus,並等待。 準備傳值及初值設定:設定傳送資料格式。(例:HBURST= INCR4、 HSIZE= Word,等等) 傳送資料:按照傳送格式傳送資料。 忙碌:Slave來不及處理完,等待一個週期。 重新傳值:Slave要求重新傳上一筆資料,21,2.3.1 Master IP Wrapper之FSM,Step2:De

8、fine state transitions (event triggered, and state transition,22,2.3.1 Master IP Wrapper之FSM,Step3:State Action idle:if R=1 or W=1 then HBUSREQx=1; 要求使用bus:if HGRANTx=1 then State =準備傳值,23,2.3.2 Slave IP Wrapper之FSM,Step1:State assignment (state definition) idle:等待開始或工作結束。 Start:準備開始動作,等待接受控制訊號。 R/W

9、 Start:按照Master發出的訊號傳送資料/做出回應。 停止接收訊號:Master來不及處理,要求等待。 R/W Next:按照Master發出的訊號傳送資料/做出回應(差別在於無 ERROR)。 要求重新傳值:Slave來不及處理,要求重新傳上一筆資料。 ERROR:資料錯誤。 ErrorCnt:資料錯誤狀態,24,2.3.2 Slave IP Wrapper之FSM,Step2:Define state transitions (event triggered, and state transition,25,2.3.2 Slave IP Wrapper之FSM,Step3:Stat

10、e Action idle:if HSELx=1 then State =Start; Start:if HWRITE=1/0 ant HTRANS=NONSEQ then HREADY=1;HRESP=OKAY;EndCnt=HBURST(用CASE編碼) R/W Start:if HTRANS=SEQ then HREADY=1;HRESP=OKAY; DataCnt =DataCnt+1; if HTRANS=BUSY then State = 停止接收訊號; if (cnt=next addr) and (HBURST = SINGLE or INCR)then HREADY=0;HR

11、ESP=OKAY; 停止接收訊號:if HTRANS=SEQ then HREADY=1;HRESP=OKAY; DataCnt =DataCnt+1; R/W Next:if DataCnt = EndCnt then HREADY=1;HRESP=OKAY; DataCnt=0; if HTRANS=BUSY then State = 停止接收訊號; if (cnt=next addr) and (HBURST = SINGLE or INCR)then HREADY=0;HRESP=RETRY; 要求重新傳值:if HTRANS=IDLE then HREADY=1;HRESP=OKAY

12、; ERROR:if ErrorCnt=2 then State = idle; DataCnt=0,26,模擬波形圖,27,2.4.1 模擬說明,因為沒有寫Arbiter,所以hgrant改成I/O由使用者自行設定: 若hgrant =1表示允許Master0使用bus 若hgrant =0表示有別的Master使用bus,Master0無法使用bus,28,在M0發出HBUSREQ = 1 時的下一個CLK, 先準備好第一筆ADDR 等到Arbiter允許M0使用BUS時( hgrant = 1 ),才把控制訊號及ADDR等資料送到 BUS上,在S0的hsel被選中時( hsel = 1

13、)才開始收bus的資料,2.4.2 模擬一,模擬HBURST2:0使用INCR模式且Slave無發出Hready = 0的狀況,29,遇到8這筆資料,延遲一個CLK才能完成 ( Hready = 0 維持1個CLK ) 遇到11這筆資料,延遲一個CLK無法完成, 再延遲一個CLK才能完成( Hready = 0 維持 2個CLK ) 遇到13這筆資料,延遲一個CLK無法完成, 再延遲一個CLK也無法完成,再延遲一個CLK 才能完成( Hready = 0 維持3個CLK,2.4.3 模擬二,模擬HBURST2:0使用INCR模式且Slave發出Hready = 0的狀況,30,遇到8這筆資料,延遲一個CLK才能完成 ( Hready = 0 維持1個CLK) I/O:hgrant = 0,BUS的使用權被別的 Master搶走 M0:因為沒有BUS使用權限,所以資料維持 在11,直到獲得BU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论