應(yīng)用于SoC設(shè)計中IP核的接口技術(shù)
OCP接口信號
OCP通過命令完成實體間的通信操作,在接口為選擇的命令配置相應(yīng)信號,所有的信號都是在時鐘上升沿采樣,是完全的同步設(shè)計。OCP接口信號包括數(shù)據(jù)信號、邊帶信號和測試信號。數(shù)據(jù)信號又分為基本信號、簡單擴展信號、猝發(fā)信號和多線程擴展信號。所有IP核都需要基本數(shù)據(jù)信號中的一組信號,其他可選信號用于支持通信需要,實現(xiàn)可配置和可擴展性。
基本數(shù)據(jù)信號包括:Clk、MAddr、MCmd、MData、MDataValid、MRespAccept、SCmdAccept、SData、SDataAccept、SResp。其中只有CLK和MCmd是必須的,其他可選。Mcmd是傳輸命令,指出主方OCP傳輸類型,包括讀、寫和廣播類型的八種命令。簡單擴展信號增加了OCP接口地址空間、字節(jié)使能和核在不同階段的特征信息。猝發(fā)式擴展信號允許猝發(fā)傳輸,可設(shè)置不同猝發(fā)傳輸模式的參數(shù)。多線程擴展信號支持OCP接口的多線程處理。邊帶信號傳送諸如復(fù)位、中斷、錯誤和核特性標(biāo)志等控制信息,也是IP核與系統(tǒng)間交換控制和狀態(tài)信息的手段,可以同請求/響應(yīng)信號異步,但與時鐘上升沿同步。測試信號支持掃描、時鐘控制和JTAG。
OCP接口時序及接口狀態(tài)機
以簡單讀寫操作的時序為例說明OCP接口時序要求,如圖2所示。
在上升沿1處OCP Master方通過將MCmd由Idle變?yōu)閃r開始進(jìn)入請求狀態(tài),在此周期內(nèi)把地址A1和數(shù)據(jù)D1分別送到MAddr和MData信號線上,Slave必須在同一個周期內(nèi)發(fā)出SCmdAccept有效信號;Slave在上升沿2處開始接收地址和數(shù)據(jù)并進(jìn)行內(nèi)部寫操作;在上升沿4處MCmd賦值為Rd,OCP進(jìn)入讀請求狀態(tài),在這個周期內(nèi)Master方將地址放在MAddr信號線上,在同周期Slave發(fā)出SCmdAccept有效信號;在上升沿5處Slave方置SResp為DVA從而開始響應(yīng)階段,請求階段結(jié)束,根據(jù)從MAddr獲得的地址讀取數(shù)據(jù)并放到SData信號線上;在上升沿6處開始Master方收到Slave的響應(yīng)信號并開始讀數(shù)據(jù),響應(yīng)階段完成。
圖3是在讀、寫操作中請求階段和響應(yīng)階段主、從兩方的狀態(tài)機。
Master 和Slave都是從IDLE狀態(tài)開始,當(dāng)檢測到MCmd變?yōu)樽x或?qū)憰rMaster轉(zhuǎn)為請求階段,Slave轉(zhuǎn)到讀或?qū)憼顟B(tài)。如果是讀操作,Master的請求狀態(tài)持續(xù)到SCmdAccept有效,Slave在完成讀操作后發(fā)出SCmdAccept有效信號并置SResp為DVA,Slave變?yōu)轫憫?yīng)狀態(tài),Master進(jìn)入IDLE狀態(tài);SResp是NULL時,Slave沒有進(jìn)入響應(yīng)狀態(tài)Master進(jìn)入Wait Resp狀態(tài),等待Slave進(jìn)入響應(yīng)狀態(tài)。如果是寫操作,沒有響應(yīng)信號,當(dāng)SCmdAccept有效時Master的請求階段結(jié)束進(jìn)入IDLE狀態(tài),Slave處理寫操作,完成后進(jìn)入IDLE狀態(tài)。
結(jié)語
OCP是基于核的免費開放的接口協(xié)議,可以根據(jù)不同IP核的通信要求進(jìn)行配置和擴展,能夠?qū)崿F(xiàn)硬件集成真正的即插即用,允許系統(tǒng)集成根據(jù)應(yīng)用需要選擇最好的IP核和互聯(lián)機制。OCP為IP核設(shè)計提供了解決可配置性和接口的較好辦法,實現(xiàn)了IP核與系統(tǒng)集成的SoCket接口,能夠做到核的模塊化和即插即用特性。
評論