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