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