新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AMBA總線 SoC 系統(tǒng)IP核的即插即用研究

AMBA總線 SoC 系統(tǒng)IP核的即插即用研究

作者: 時(shí)間:2011-07-08 來源:網(wǎng)絡(luò) 收藏
OCP-IP核的功能是可裁剪的,即OCP-IP的大部分信號(hào)都是可選擇的。根據(jù)核的功能,選擇使用不同的信號(hào)。OCP協(xié)議中共有三大類型號(hào):數(shù)據(jù)流信號(hào) (dataflowsignals)、邊帶信號(hào)(sideband)、測試信號(hào)(test signals)。數(shù)據(jù)流信號(hào)主要包括:基本信號(hào)(basic signals)、簡單擴(kuò)展信號(hào)(simple extensions signals)、突發(fā)擴(kuò)展信號(hào)(burst exten-sions signals)和線程擴(kuò)展信號(hào)(thread extensions signals)。邊帶信號(hào)主要包括:復(fù)位(.Reset)、中斷(Interrupt)、錯(cuò)誤(Error)等信號(hào)。測試信號(hào)主要包括用于支持掃描 (Scan)、時(shí)鐘控制和IEEE 1149.1(JTAG)的信號(hào)。此處用到的OCP信號(hào)包括:Reset(復(fù)位)、Clk(時(shí)鐘)、En-ableClk(時(shí)鐘使能)、MAddr(地址)、MCmd(命令)、MData(數(shù)據(jù))、SCmDACcept(命令接受)、SData(Slave數(shù)據(jù))、SResp(操作成功標(biāo)志)。簡單的 OCP讀寫時(shí)序如圖4所示。Request Phase表示請(qǐng)求階段,Response Phase表示響應(yīng)階段。A處由系統(tǒng)Master發(fā)出1個(gè)WR寫命令,并給出地址A1和數(shù)據(jù)D1。隨即Slave發(fā)出命令接受響應(yīng)ScmdAccept,此處一個(gè)周期完成了一個(gè)寫周期操作,不需要Slave給出寫操作成功響應(yīng)。C處系統(tǒng)Master發(fā)出一個(gè)RD讀命令,并給出要讀取的地址A2。Slave 隨即給出命令接受響應(yīng)信號(hào)SCmdAccept,在下一個(gè)時(shí)鐘周期D處Slave給出要讀取的數(shù)據(jù)D2并在Slave響應(yīng)信號(hào)SResp上給出讀操作成功標(biāo)志DVA。此處讀操作用了2個(gè)時(shí)鐘周期。

OCP-IP跟AMBA總線的通信通過設(shè)計(jì)2個(gè)狀態(tài)機(jī)來實(shí)現(xiàn),1個(gè)用于接收AMBA總線上的流水?dāng)?shù)據(jù),1個(gè)用于發(fā)送接收的數(shù)據(jù)并以O(shè)CP標(biāo)準(zhǔn)的方式發(fā)送。接收數(shù)據(jù)的狀態(tài)機(jī)編碼如下:

H_CTRL_PHASE1用于存儲(chǔ)第1級(jí)流水指令,H_CTRL_PHASE2用于存儲(chǔ)第2級(jí)流水指令,其狀態(tài)轉(zhuǎn)移圖如圖5所示。當(dāng)AMBA總線上發(fā)出第1個(gè)讀寫指令,狀態(tài)機(jī)進(jìn)入H_CTRL_PHASE1狀態(tài),并將第1個(gè)讀寫指令轉(zhuǎn)換成OCP命令。因?yàn)锳MBA總線是基于流水的操作,所以第2條指令的發(fā)出不需要等第1條指令執(zhí)行結(jié)束。這時(shí)候,狀態(tài)機(jī)進(jìn)入H_CTRL_PHASE2狀態(tài),并將此指令存儲(chǔ)起來,等OCP命令執(zhí)行結(jié)束立即將此存儲(chǔ)的指令轉(zhuǎn)換成OCP命令。這時(shí)如果AMBA總線上再次發(fā)出第3條指令,則狀態(tài)機(jī)進(jìn)入H_CTRL_PHASE1狀態(tài),并存儲(chǔ)此指令。

發(fā)送接收到的數(shù)據(jù)的狀態(tài)機(jī)編碼如下:

狀態(tài)轉(zhuǎn)移圖如圖6所示。當(dāng)接收數(shù)據(jù)的狀態(tài)機(jī)接收到AMBA總線上的命令時(shí),狀態(tài)機(jī)讓OCP接口進(jìn)入第1個(gè)讀寫操作狀態(tài),即READl狀態(tài)或者WRITE1 狀態(tài)。如果AMBA總線上有持續(xù)的流水操作命令,狀態(tài)機(jī)進(jìn)入READ2狀態(tài)或者WRITE2狀態(tài),即在AMBA流水操作的條件下,以1結(jié)尾的狀態(tài)的下一個(gè)狀態(tài)一定是以2結(jié)尾的狀態(tài),反之以2結(jié)尾的狀態(tài)的下一個(gè)狀態(tài)一定是以1結(jié)尾的狀態(tài)。

3 OCP-IP標(biāo)準(zhǔn)封裝軟件設(shè)計(jì)

OCP是一種IP的標(biāo)準(zhǔn),但不僅僅是IP的接口和數(shù)據(jù)的交換方式,還規(guī)定了IP的配置、端口等信息,即所謂的OCP配置文件。讀取OCP配置文件中的內(nèi)容,就可以知道此IP對(duì)應(yīng)的OCP接口的性能,從而對(duì)總線上的接口進(jìn)行配置,進(jìn)而實(shí)現(xiàn)IP的。雖然IP的功能是多樣的,總線的數(shù)據(jù)交互方式也是多樣的,但OCP接口的時(shí)序是固定的。這樣就可以通過設(shè)計(jì)軟件提取IP的端口信息,并自動(dòng)生成相應(yīng)的OCP接口模塊。該封裝軟件運(yùn)行流程如圖7所示。用戶的 IP可以直接掛在該SOC平臺(tái)上進(jìn)行驗(yàn)證,同時(shí)也可以直接集成到其他帶有OCP接口的SoC系統(tǒng)中去,加快IP的驗(yàn)證和系統(tǒng)的設(shè)計(jì)。

封裝軟件采用MFC(微軟基礎(chǔ)類庫)來編寫。通過設(shè)計(jì)用戶界面,用戶只要輸入IP的時(shí)鐘、地址、數(shù)據(jù)、讀寫控制信號(hào)等,就可以自動(dòng)生成1個(gè)OCP的接口,以及標(biāo)準(zhǔn)的配置文件,從而實(shí)現(xiàn)IP的以及IP的統(tǒng)一管理。

結(jié) 語

OCP是免費(fèi)的基于點(diǎn)對(duì)點(diǎn)傳輸?shù)腎P核的標(biāo)準(zhǔn)協(xié)議,可重配置以及可擴(kuò)展性很強(qiáng),可以實(shí)現(xiàn)真正意義上的IP核,減少SoC系統(tǒng)設(shè)計(jì)的時(shí)間。本文討論了OCP-IP的協(xié)議與特點(diǎn),設(shè)計(jì)了基于AMBA總線的OCP-IP接口,提出了一種IP自動(dòng)封裝的方法,為IP核的集成和管理帶來極大的方便。


上一頁 1 2 下一頁

關(guān)鍵詞: IP核復(fù)用 即插即用

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉