AMBA息線(xiàn)SOC系統IP核的即插即用研究
2 基于AMBA總線(xiàn)的OCP接口設計
AMBA(Advaneed Microcontroller Bus Architecture)總線(xiàn)規范是ARM公司設計的一種用于高性能嵌入式系統的總線(xiàn)標準。AMBA總線(xiàn)規范是開(kāi)放標準,通過(guò)ARM公司的授權就可以免費獲得。它獨立于處理器和制造工藝技術(shù),增強了各種應用中的外設和系統IP核單元的可重用性。2.O版AMBA標準定義了3組總線(xiàn):AHB(AM-BA高性能總線(xiàn))、ASB(AMBA系統總線(xiàn))、和APB(AM-BA外設總線(xiàn))。AHB總線(xiàn)應用于要求高速度高帶寬的系統。本文以AHB總線(xiàn)為例,說(shuō)明OCP -IP如何集成到SoC系統總線(xiàn)上。AMBA總線(xiàn)基本傳輸時(shí)序如圖3所示。HCLK表示AMBA系統時(shí)鐘,HADDR[31:0]表示32位地址總線(xiàn), HWDATA[31:O]表示32位寫(xiě)操作時(shí)的數據總線(xiàn),HREADY是AMBA總線(xiàn)的讀寫(xiě)狀態(tài)信號(狀態(tài)為低電平時(shí),表示一次讀寫(xiě)操作完成), HRDATA[31:0]表示讀操作時(shí)的數據總線(xiàn)。
OCP-IP核的功能是可裁剪的,即OCP-IP的大部分信號都是可選擇的。根據核的功能,選擇使用不同的信號。OCP協(xié)議中共有三大類(lèi)型號:數據流信號 (dataflowsignals)、邊帶信號(sideband)、測試信號(test signals)。數據流信號主要包括:基本信號(basic signals)、簡(jiǎn)單擴展信號(simple extensions signals)、突發(fā)擴展信號(burst exten-sions signals)和線(xiàn)程擴展信號(thread extensions signals)。邊帶信號主要包括:復位(.Reset)、中斷(Interrupt)、錯誤(Error)等信號。測試信號主要包括用于支持掃描 (Scan)、時(shí)鐘控制和IEEE 1149.1(JTAG)的信號。此處用到的OCP信號包括:Reset(復位)、Clk(時(shí)鐘)、En-ableClk(時(shí)鐘使能)、MAddr(地址)、MCmd(命令)、MData(數據)、SCmdAccept(命令接受)、SData(Slave數據)、SResp(操作成功標志)。簡(jiǎn)單的 OCP讀寫(xiě)時(shí)序如圖4所示。Request Phase表示請求階段,Response Phase表示響應階段。A處由系統Master發(fā)出1個(gè)WR寫(xiě)命令,并給出地址A1和數據D1。隨即Slave發(fā)出命令接受響應ScmdAccept,此處一個(gè)周期完成了一個(gè)寫(xiě)周期操作,不需要Slave給出寫(xiě)操作成功響應。C處系統Master發(fā)出一個(gè)RD讀命令,并給出要讀取的地址A2。Slave 隨即給出命令接受響應信號SCmdAccept,在下一個(gè)時(shí)鐘周期D處Slave給出要讀取的數據D2并在Slave響應信號SResp上給出讀操作成功標志DVA。此處讀操作用了2個(gè)時(shí)鐘周期。
OCP-IP跟AMBA總線(xiàn)的通信通過(guò)設計2個(gè)狀態(tài)機來(lái)實(shí)現,1個(gè)用于接收AMBA總線(xiàn)上的流水數據,1個(gè)用于發(fā)送接收的數據并以OCP標準的方式發(fā)送。接收數據的狀態(tài)機編碼如下:
H_CTRL_PHASE1用于存儲第1級流水指令,H_CTRL_PHASE2用于存儲第2級流水指令,其狀態(tài)轉移圖如圖5所示。當AMBA總線(xiàn)上發(fā)出第1個(gè)讀寫(xiě)指令,狀態(tài)機進(jìn)入H_CTRL_PHASE1狀態(tài),并將第1個(gè)讀寫(xiě)指令轉換成OCP命令。因為AMBA總線(xiàn)是基于流水的操作,所以第2條指令的發(fā)出不需要等第1條指令執行結束。這時(shí)候,狀態(tài)機進(jìn)入H_CTRL_PHASE2狀態(tài),并將此指令存儲起來(lái),等OCP命令執行結束立即將此存儲的指令轉換成OCP命令。這時(shí)如果AMBA總線(xiàn)上再次發(fā)出第3條指令,則狀態(tài)機進(jìn)入H_CTRL_PHASE1狀態(tài),并存儲此指令。
評論