《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > SOC總線即插即用的實現(xiàn)
SOC總線即插即用的實現(xiàn)
摘要: SOC設計的快速發(fā)展是以IP核復用為基礎的。IP核的復用極大地提高了SoC系統(tǒng)設計的開發(fā)效率,,SoC 片上總線的選擇是IP核間集成與互連的關鍵技術之一,。SoC片上總線的多樣性對IP核的封裝規(guī)范提出了要求。標準的IP核封裝規(guī)范有助于提高IP核的復用甚至實現(xiàn)核的即插即用,?;谔岣逫P核復用以及即插即用目的,OCP-IP組織提出了OCP-IP標準,。
Abstract:
Key words :
  引言

  SOC設計的快速發(fā)展是以IP核復用為基礎的,。IP核的復用極大地提高了SoC系統(tǒng)設計的開發(fā)效率,SoC 片上總線的選擇是IP核間集成與互連的關鍵技術之一,。SoC片上總線的多樣性對IP核的封裝規(guī)范提出了要求,。標準的IP核封裝規(guī)范有助于提高IP核的復用甚至實現(xiàn)核的即插即用?;谔岣逫P核復用以及即插即用目的,,OCP-IP組織提出了OCP-IP標準。 

  1 OCP-lP標準介紹

  1.1 OCP協(xié)議

  OCP(Open Core Protoco1)標準是OCP-IP組織制定的一種以提高IP核的復用及實現(xiàn)IP核的即插即用為目的的IP核標準,。SoC芯片設計不再是門級的設計,,而是IP核復用及其接口的設計。IP核要集成到一個SoC系統(tǒng)中,,要考慮很多問題,,例如:模塊間的同步,如全局執(zhí)行,、數(shù)據(jù)交換的同步操作等,;協(xié)議轉換匹配,,不同IP核模塊間可能使用不同的協(xié)議,這樣必須考慮協(xié)議轉換的問題,。這些問題給IP復用帶來了一定的難度,,并使SoC芯片的time-to-market (上市時間)延長。為解決這些問題,,一些大公司提出了自己的總線接口標準,,如ARM的AMBA總線、IBM的CoreConnect總線,、Altera的 Avalon總線等,。因為核的多樣性,使用完全相同的總線接口是不現(xiàn)實的,。這就意味著,,如果總線A上的一個IP核要移植到另一系統(tǒng)的總線B上,就需要更改此IP的接口以及數(shù)據(jù)交換的方式,。如果設計者不了解總線B的數(shù)據(jù)交換協(xié)議,,這樣就對SoC系統(tǒng)的開發(fā)帶來一系列困難。OCP-IP正是針對這些問題提出的,。OCP協(xié)議是免費的,,獨立于具體的總線。它將軟件中的分層概念應用到IP核接口,,提供一種具有通用結構定義,、可擴展的接口協(xié)議,能完全滿足IP內核通信機制的所有要求,,方便了IP核與系統(tǒng)的集成,。

  OCP協(xié)議使IP核的功能與系統(tǒng)的接口無關,設計人員不需要了解IP核的功能也能利用它進行系統(tǒng)設計,。OCP接口允許設計者根據(jù)不同的目的配置接口,包括接口的數(shù)據(jù)寬度,、交換的握手協(xié)議等,,并且在SoC設計中可以裁剪核的功能,降低設計復雜性,,減小面積,,同時滿足SoC的要求;OCP接口還保持核在集成到系統(tǒng)的過程中完全不被改變(即在總線寬度,、總線頻率或電氣負載有變化時核保持不變),。使用OCP接口的設計可以交付即插即用的模塊,同時支持核的開發(fā)與系統(tǒng)設計并行,,節(jié)省設計時間,。

  OCP采用套接口(socket)的方法實現(xiàn)IP核的即插即用,,如圖1所示。Target Bus A表示總線A,,Target Bus B表示總線B,。不論總線A或者總線B是哪一類總線協(xié)議,只要總線上提供了OCP的接口,,那么符合OCP協(xié)議的IP核就可以隨意集成到任意總線上去,,不需要重新設計IP核的接口。

  1.2 OCP通信方式

  OCP協(xié)議定義了兩個通信實體問點到點的接口,。其中一個實體作為通信的主體(Master),,另一個作為從體(Slave)。只有MaSTer可以發(fā)命令,,Slave響應Master的命令,,接收或發(fā)送數(shù)據(jù)。封裝接口模塊必須擔當每個連接實體的對應端,,當連接實體是Master時,,封裝接口模塊就作為對應的Slave;當連接實體是Slave時,,封裝接口模塊作Master,。

  OCP的系統(tǒng)架構如圖2所示。圖中有3個IP核,,其中左邊標有主控的IP核是通信的發(fā)起方或者主控方,,稱為Master;最右邊標有目標的是通信的目標對象,,稱為Slave,;中間的IP核既可作為Master又可作Slave;下面的框代表OCP-IP封裝接口模塊,;從Master出來并進入Slave的箭頭表示OCP請求命令,,從Slave出來并進入Master的箭頭表示OCP的響應。2個IP核通過接口通信的過程是:功能為Master的IP核發(fā)出請求命令給對應的Slave端(總線封裝接口模塊),;封裝接口模塊將請求命令轉換成對應的總線命令傳送給接收方的總線封裝模塊,;接收方的總線封裝模塊再作為Master,把對應的內部總線傳輸轉換成標準的OCP命令傳送給目標IP核,,目標IP核接收到命令并響應命令和返回讀寫的數(shù)據(jù),。

  2 基于AMBA總線的OCP接口設計

  AMBA(Advaneed Microcontroller Bus Architecture)總線規(guī)范是ARM公司設計的一種用于高性能嵌入式系統(tǒng)的總線標準。AMBA總線規(guī)范是開放標準,,通過ARM公司的授權就可以免費獲得,。它獨立于處理器和制造工藝技術,增強了各種應用中的外設和系統(tǒng)IP核單元的可重用性。2.O版AMBA標準定義了3組總線:AHB(AM-BA高性能總線),、ASB(AMBA系統(tǒng)總線),、和APB(AM-BA外設總線)。AHB總線應用于要求高速度高帶寬的系統(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)、簡單擴展信號(simple extensions signals),、突發(fā)擴展信號(burst exten-sions signals)和線程擴展信號(thread extensions signals),。邊帶信號主要包括:復位(。Reset),、中斷(Interrupt),、錯誤(Error)等信號。測試信號主要包括用于支持掃描 (Scan),、時鐘控制和IEEE 1149.1(JTAG)的信號,。此處用到的OCP信號包括:Reset(復位)、Clk(時鐘),、En-ableClk(時鐘使能),、MAddr(地址)、MCmd(命令),、MData(數(shù)據(jù))、SCmDACcept(命令接受),、SData(Slave數(shù)據(jù)),、SResp(操作成功標志)。簡單的 OCP讀寫時序如圖4所示,。Request Phase表示請求階段,,Response Phase表示響應階段,。A處由系統(tǒng)Master發(fā)出1個WR寫命令,并給出地址A1和數(shù)據(jù)D1,。隨即Slave發(fā)出命令接受響應ScmdAccept,,此處一個周期完成了一個寫周期操作,不需要Slave給出寫操作成功響應,。C處系統(tǒng)Master發(fā)出一個RD讀命令,,并給出要讀取的地址A2。Slave 隨即給出命令接受響應信號SCmdAccept,,在下一個時鐘周期D處Slave給出要讀取的數(shù)據(jù)D2并在Slave響應信號SResp上給出讀操作成功標志DVA,。此處讀操作用了2個時鐘周期。

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

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

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

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

  3 OCP-IP標準封裝軟件設計

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

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

  4 結語

  OCP是免費的基于點對點傳輸?shù)腎P核的標準協(xié)議,可重配置以及可擴展性很強,,可以實現(xiàn)真正意義上的IP核即插即用,,減少SoC系統(tǒng)設計的時間。



 

此內容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載,。