引 言
SoC" target="_blank">SoC設(shè)計(jì)的快速發(fā)展是以IP核復(fù)用為基礎(chǔ)的,。IP核的復(fù)用極大地提高了SoC系統(tǒng)設(shè)計(jì)的開發(fā)效率,,SoC 片上總線的選擇是IP核間集成與互連的關(guān)鍵技術(shù)之一。目前片上總線的標(biāo)準(zhǔn)協(xié)議眾多,,如ARM公司提出的AMBA總線,、OPEN CORES組織提出的WishBone總線、IBM公司提出的CoreConnect總線等,。SoC片上總線的多樣性對IP核的封裝規(guī)范提出了要求,。標(biāo)準(zhǔn)的IP核封裝規(guī)范有助于提高IP核的復(fù)用甚至實(shí)現(xiàn)核的即插即用?;谔岣逫P核復(fù)用以及即插即用目的,,OCP-IP組織提出了OCP-IP標(biāo)準(zhǔn)。
1 OCP-lP標(biāo)準(zhǔn)介紹
1.1 OCP協(xié)議
OCP(Open Core Protoco1)標(biāo)準(zhǔn)是OCP-IP組織制定的一種以提高IP核的復(fù)用及實(shí)現(xiàn)IP核的即插即用為目的的IP核標(biāo)準(zhǔn),。SoC芯片設(shè)計(jì)不再是門級的設(shè)計(jì),,而是IP核復(fù)用及其接口的設(shè)計(jì)。IP核要集成到一個SoC系統(tǒng)中,,要考慮很多問題,,例如:模塊間的同步,如全局執(zhí)行,、數(shù)據(jù)交換的同步操作等,;協(xié)議轉(zhuǎn)換匹配,不同IP核模塊間可能使用不同的協(xié)議,,這樣必須考慮協(xié)議轉(zhuǎn)換的問題,。這些問題給IP復(fù)用帶來了一定的難度,并使SoC芯片的time-to-market (上市時間)延長,。為解決這些問題,,一些大公司提出了自己的總線接口標(biāo)準(zhǔn),如ARM的AMBA總線,、IBM的CoreConnect總線,、Altera的 Avalon總線等。因?yàn)楹说亩鄻有?,使用完全相同的總線接口是不現(xiàn)實(shí)的,。這就意味著,如果總線A上的一個IP核要移植到另一系統(tǒng)的總線B上,,就需要更改此IP的接口以及數(shù)據(jù)交換的方式,。如果設(shè)計(jì)者不了解總線B的數(shù)據(jù)交換協(xié)議,這樣就對SoC系統(tǒng)的開發(fā)帶來一系列困難。OCP-IP正是針對這些問題提出的,。OCP協(xié)議是免費(fèi)的,,獨(dú)立于具體的總線。它將軟件中的分層概念應(yīng)用到IP核接口,,提供一種具有通用結(jié)構(gòu)定義,、可擴(kuò)展的接口協(xié)議,能完全滿足IP內(nèi)核通信機(jī)制的所有要求,,方便了IP核與系統(tǒng)的集成,。
OCP協(xié)議使IP核的功能與系統(tǒng)的接口無關(guān),設(shè)計(jì)人員不需要了解IP核的功能也能利用它進(jìn)行系統(tǒng)設(shè)計(jì),。OCP接口允許設(shè)計(jì)者根據(jù)不同的目的配置接口,,包括接口的數(shù)據(jù)寬度、交換的握手協(xié)議等,,并且在SoC設(shè)計(jì)中可以裁剪核的功能,,降低設(shè)計(jì)復(fù)雜性,減小面積,,同時滿足SoC的要求,;OCP接口還保持核在集成到系統(tǒng)的過程中完全不被改變(即在總線寬度、總線頻率或電氣負(fù)載有變化時核保持不變),。使用OCP接口的設(shè)計(jì)可以交付即插即用的模塊,,同時支持核的開發(fā)與系統(tǒng)設(shè)計(jì)并行,節(jié)省設(shè)計(jì)時間,。
OCP采用套接口(socket)的方法實(shí)現(xiàn)IP核的即插即用,,如圖1所示。Target Bus A表示總線A,,Target Bus B表示總線B,。不論總線A或者總線B是哪一類總線協(xié)議,只要總線上提供了OCP的接口,,那么符合OCP協(xié)議的IP核就可以隨意集成到任意總線上去,,不需要重新設(shè)計(jì)IP核的接口。
1.2 OCP通信方式
OCP協(xié)議定義了兩個通信實(shí)體問點(diǎn)到點(diǎn)的接口,。其中一個實(shí)體作為通信的主體(Master),,另一個作為從體(Slave)。只有Master可以發(fā)命令,,Slave響應(yīng)Master的命令,,接收或發(fā)送數(shù)據(jù)。封裝接口模塊必須擔(dān)當(dāng)每個連接實(shí)體的對應(yīng)端,,當(dāng)連接實(shí)體是Master時,,封裝接口模塊就作為對應(yīng)的Slave,;當(dāng)連接實(shí)體是Slave時,封裝接口模塊作Master,。
OCP的系統(tǒng)架構(gòu)如圖2所示,。圖中有3個IP核,其中左邊標(biāo)有主控的IP核是通信的發(fā)起方或者主控方,,稱為Master,;最右邊標(biāo)有目標(biāo)的是通信的目標(biāo)對象,稱為Slave,;中間的IP核既可作為Master又可作Slave;下面的框代表OCP-IP封裝接口模塊,;從Master出來并進(jìn)入Slave的箭頭表示OCP請求命令,,從Slave出來并進(jìn)入Master的箭頭表示OCP的響應(yīng)。2個IP核通過接口通信的過程是:功能為Master的IP核發(fā)出請求命令給對應(yīng)的Slave端(總線封裝接口模塊),;封裝接口模塊將請求命令轉(zhuǎn)換成對應(yīng)的總線命令傳送給接收方的總線封裝模塊,;接收方的總線封裝模塊再作為Master,把對應(yīng)的內(nèi)部總線傳輸轉(zhuǎn)換成標(biāo)準(zhǔn)的OCP命令傳送給目標(biāo)IP核,,目標(biāo)IP核接收到命令并響應(yīng)命令和返回讀寫的數(shù)據(jù),。
2 基于AMBA總線的OCP接口設(shè)計(jì)
AMBA(Advaneed Microcontroller Bus Architecture)總線規(guī)范是ARM公司設(shè)計(jì)的一種用于高性能嵌入式系統(tǒng)的總線標(biāo)準(zhǔn)。AMBA總線規(guī)范是開放標(biāo)準(zhǔn),,通過ARM公司的授權(quán)就可以免費(fèi)獲得,。它獨(dú)立于處理器和制造工藝技術(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ù)總線,。