引言
隨著半導(dǎo)體技術(shù)的發(fā)展,深亞微米工藝加工技術(shù)允許開發(fā)上百萬門級的單芯片,已能夠?qū)⑾到y(tǒng)級設(shè)計(jì)集成到單個(gè)芯片中即實(shí)現(xiàn)片上系統(tǒng)SoC。IP核的復(fù)用是SoC設(shè)計(jì)的關(guān)鍵,但困難在于缺乏IP核與系統(tǒng)的接口標(biāo)準(zhǔn),因此,開發(fā)統(tǒng)一的IP核接口標(biāo)準(zhǔn)對提高IP核的復(fù)用意義重大。本文簡單介紹IP核概念,然后從接口標(biāo)準(zhǔn)的角度討論在SoC設(shè)計(jì)中提高IP核的復(fù)用度,從而簡化系統(tǒng)設(shè)計(jì)和驗(yàn)證的方法,主要討論OCP(開放核協(xié)議)。
圖1 OCP工作原理示意圖
圖2 讀/寫操作的時(shí)序
圖3 讀/寫狀態(tài)機(jī)
OCP簡介
基于IP核復(fù)用技術(shù)的SoC 設(shè)計(jì)使芯片的設(shè)計(jì)從以硬件為中心轉(zhuǎn)向以軟件為中心,芯片設(shè)計(jì)不再是門級的設(shè)計(jì),而是IP核和接口及其復(fù)用設(shè)計(jì)。IP核集成到系統(tǒng)所要考慮的問題包括:同步,例如全局執(zhí)行、數(shù)據(jù)交換和協(xié)議方面的同步操作;協(xié)議轉(zhuǎn)換,不同模塊間不兼容的協(xié)議的轉(zhuǎn)換,封裝可用來解決這個(gè)問題,但需要考慮時(shí)序約束;I/O緩存,為滿足系統(tǒng)行為和時(shí)序約束可能需要緩存數(shù)據(jù)。另外,出于對核設(shè)計(jì)的保護(hù)會故意隱藏一些信息,而這些信息在集成時(shí)可能需要。為解決這些問題需要一個(gè)好的接口標(biāo)準(zhǔn),一些大公司現(xiàn)在已有自己的IP核接口標(biāo)準(zhǔn),比如Altera的Avalon,Atlantic、IBM的CoreConnect、ARM的AMBA等。因?yàn)楹说亩鄻有裕褂猛耆嗤慕涌谑遣滑F(xiàn)實(shí)的,OCP將軟件中的分層概念應(yīng)用到IP核接口,提供一種具有通用結(jié)構(gòu)定義、可擴(kuò)展的接口協(xié)議,方便了IP核與系統(tǒng)的集成。
OCP協(xié)議使IP核與系統(tǒng)的接口與IP核的功能無關(guān),設(shè)計(jì)人員不需要了解核內(nèi)部也能利用它進(jìn)行系統(tǒng)設(shè)計(jì)。OCP接口允許設(shè)計(jì)者根據(jù)不同的目的配置接口,包括接口的數(shù)據(jù)寬度、交換的握手協(xié)議等,在SoC設(shè)計(jì)中可以裁剪核的功能,降低設(shè)計(jì)復(fù)雜性,減小面積,同時(shí)滿足SoC的要求;OCP接口還保持核在集成到系統(tǒng)的過程中自身完全不被改變,就是說在總線寬度、總線頻率或電氣負(fù)載有變化時(shí)核保持不變。使用OCP接口的設(shè)計(jì)可以交付即插即用的模塊,同時(shí)支持核的開發(fā)與系統(tǒng)設(shè)計(jì)并行,節(jié)省設(shè)計(jì)時(shí)間。
OCP接口運(yùn)行機(jī)制
OCP定義兩個(gè)通信實(shí)體間點(diǎn)到點(diǎn)的接口。其中一個(gè)實(shí)體作為通信的主體(Master),另一個(gè)作為從體(Slave)。只有Master可以發(fā)命令,Slave響應(yīng)Master的命令,接收或發(fā)送數(shù)據(jù)。封裝接口模塊必須擔(dān)當(dāng)每個(gè)連接實(shí)體的對應(yīng)端,當(dāng)連接實(shí)體是Master時(shí),封裝接口模塊就作為對應(yīng)的Slave;當(dāng)連接實(shí)體是Slave時(shí),封裝接口模塊作Master。
OCP的工作原理如圖1所示。圖中有三個(gè)IP核,其中左邊標(biāo)有Initiator的IP核是通信的發(fā)起方,作Master;右邊標(biāo)有Target的是通信的目標(biāo)方,作Slave;中間的既可作Master又可作Slave;下面的框圖代表封裝接口模塊;從Master出來并進(jìn)入Slave的箭頭表示請求命令,從Slave出來并進(jìn)入Master的箭頭表示響應(yīng);加黑的線段代表片上互連總線。兩個(gè)IP核通過接口通信的過程是:作為Master的 IP核發(fā)出請求命令給對應(yīng)的Slave端(總線封裝接口模塊);封裝接口模塊通過片上總線將請求命令(OCP并不指定片上互連總線的工作機(jī)制,而是把OCP命令轉(zhuǎn)換成總線上的傳送)傳送給接收方的總線封裝模塊;接收方的總線封裝模塊再作為Master把這種內(nèi)部總線傳輸轉(zhuǎn)換成合法的OCP命令傳送給目標(biāo)IP核;其作為Slave方接收命令并執(zhí)行所要求的操作。
每一個(gè)OCP接口都是可根據(jù)連接實(shí)體的要求進(jìn)行配置的(通過選擇需要的信號或某一信號的位寬),也是互相獨(dú)立的,例如系統(tǒng)中通信發(fā)起者總是會需要比目標(biāo)方更多的地址位數(shù)用來選擇發(fā)起者所要求的目標(biāo)。
OCP接口信號
OCP通過命令完成實(shí)體間的通信操作,在接口為選擇的命令配置相應(yīng)信號,所有的信號都是在時(shí)鐘上升沿采樣,是完全的同步設(shè)計(jì)。OCP接口信號包括數(shù)據(jù)信號、邊帶信號和測試信號。數(shù)據(jù)信號又分為基本信號、簡單擴(kuò)展信號、猝發(fā)信號和多線程擴(kuò)展信號。所有IP核都需要基本數(shù)據(jù)信號中的一組信號,其他可選信號用于支持通信需要,實(shí)現(xiàn)可配置和可擴(kuò)展性。
基本數(shù)據(jù)信號包括:Clk、MAddr、MCmd、MData、MDataValid、MRespAccept、SCmdAccept、SData、SDataAccept、SResp。其中只有CLK和MCmd是必須的,其他可選。Mcmd是傳輸命令,指出主方OCP傳輸類型,包括讀、寫和廣播類型的八種命令。簡單擴(kuò)展信號增加了OCP接口地址空間、字節(jié)使能和核在不同階段的特征信息。猝發(fā)式擴(kuò)展信號允許猝發(fā)傳輸,可設(shè)置不同猝發(fā)傳輸模式的參數(shù)。多線程擴(kuò)展信號支持OCP接口的多線程處理。邊帶信號傳送諸如復(fù)位、中斷、錯(cuò)誤和核特性標(biāo)志等控制信息,也是IP核與系統(tǒng)間交換控制和狀態(tài)信息的手段,可以同請求/響應(yīng)信號異步,但與時(shí)鐘上升沿同步。測試信號支持掃描、時(shí)鐘控制和JTAG。
OCP接口時(shí)序及接口狀態(tài)機(jī)
以簡單讀寫操作的時(shí)序?yàn)槔f明OCP接口時(shí)序要求,如圖2所示。
在上升沿1處OCP Master方通過將MCmd由Idle變?yōu)閃r開始進(jìn)入請求狀態(tài),在此周期內(nèi)把地址A1和數(shù)據(jù)D1分別送到MAddr和MData信號線上,Slave必須在同一個(gè)周期內(nèi)發(fā)出SCmdAccept有效信號;Slave在上升沿2處開始接收地址和數(shù)據(jù)并進(jìn)行內(nèi)部寫操作;在上升沿4處MCmd賦值為Rd,OCP進(jìn)入讀請求狀態(tài),在這個(gè)周期內(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)機(jī)。
Master和Slave都是從IDLE狀態(tài)開始,當(dāng)檢測到MCmd變?yōu)樽x或?qū)憰r(shí)Master轉(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時(shí),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有效時(shí)Master的請求階段結(jié)束進(jìn)入IDLE狀態(tài),Slave處理寫操作,完成后進(jìn)入IDLE狀態(tài)。
結(jié)語
OCP是基于核的免費(fèi)開放的接口協(xié)議,可以根據(jù)不同IP核的通信要求進(jìn)行配置和擴(kuò)展,能夠?qū)崿F(xiàn)硬件集成真正的即插即用,允許系統(tǒng)集成根據(jù)應(yīng)用需要選擇最好的IP核和互聯(lián)機(jī)制。OCP為IP核設(shè)計(jì)提供了解決可配置性和接口的較好辦法,實(shí)現(xiàn)了IP核與系統(tǒng)集成的Socket接口,能夠做到核的模塊化和即插即用特性。
- 接口技術(shù)(41224)
- 開放核協(xié)(6033)
相關(guān)推薦
IP核是指什么?分為哪幾種形式
IP核生成文件:XilinxAltera
IP核簡介
IP核簡介
ip核使用問題
開放核協(xié)議:IP核在SoC設(shè)計(jì)中的接口技術(shù)
AD9683的引腳如何與zynq 7015芯片中的JESD204 ip核端口對應(yīng)相連?
ATM流量控制器IP核的設(shè)計(jì)和實(shí)現(xiàn)
FPGA IP核的相關(guān)問題
FPGA的軟核、硬核以及固核的概念
LCD的通用驅(qū)動電路IP核設(shè)計(jì)
MES50HP——IP核安裝與查看用戶指南
NioslI中如何設(shè)計(jì)SOPC的LCD顯示驅(qū)動IP核
PCIE項(xiàng)目中AXI4 IP核例化詳解
QUARTUS II中IP核的調(diào)用方法
Quartus 中ATAN IP核的使用問題
TEMAC核有哪些功能
USB_OTG_IP核中AMBA接口的設(shè)計(jì)與FPGA實(shí)現(xiàn)
VIP系列IP核使用
Vivado IP核鎖定的解決辦法分享
Vivado生成IP核
WCDMA無線接口技術(shù)
planahead中ip核生成時(shí)的warning如何去掉
quartus ip核破解
quartus ii的IP核中的 sincos核怎么使用?
quartusII FFT ip核
vivado 調(diào)用IP核 詳細(xì)介紹
【鋯石A4 FPGA試用體驗(yàn)】IP核之PLL(一)新建IP核
一款USB OTG IP核的設(shè)計(jì)與實(shí)現(xiàn),不看肯定后悔
什么是IP核保護(hù)技術(shù)?
使用Arm DesignStart處理器核搭建SoC流程
關(guān)于IP核
關(guān)于altera系列芯片F(xiàn)IR IP核在使用過程中的問題
關(guān)于fpga的IP核
可以在EDK中使用ISE的IP核嗎?
基于IP核的SoC接口技術(shù)
基于IP核的PCI總線接口設(shè)計(jì)與實(shí)現(xiàn)
基于SOC/IP的智能傳感器設(shè)計(jì)研究
基于DSP核控制的SoC系統(tǒng)該如何去設(shè)計(jì)?
基于FPGA的IP核的DDS信號發(fā)生器如何用IP核
基于FPGA的FFT和IFFT IP核應(yīng)用實(shí)例
基于FPGA的USB接口IP核設(shè)計(jì)
基于層次模型的USB2.0接口芯片IP核固件的設(shè)計(jì)
如何在SOPC的NiosII中設(shè)計(jì)LCD顯示驅(qū)動IP核?
如何將IP軟核與硬核整合到芯片上,兩者有什么對比區(qū)別?具體怎么選
如何構(gòu)建基于LEON開源軟核的SoC平臺?
如何根據(jù)Xilinx官方提供的技術(shù)參數(shù)來實(shí)現(xiàn)對IP核的讀寫控制
如何獲得打印機(jī)接口IP核?
如何設(shè)計(jì)RS232異步串行口IP核?
怎么在FPGA上對OC8051 IP核的修改與測試?
怎么在Vivado HLS中生成IP核?
怎樣使用Arm DesignStart計(jì)劃開放的處理器核搭建SoC系統(tǒng)呢
有人知道為什么MIG IP核中的AXI協(xié)議。為什么沒有AXI_WID這個(gè)信號呢?
求助,所搭的IP軟核的通訊協(xié)議與總線支持的通訊協(xié)議(ICB)不同怎么轉(zhuǎn)換?
玩轉(zhuǎn)Zynq連載21——Vivado中IP核的移植
詳細(xì)操作 vivado 調(diào)用IP核(附圖)
請教使用IP核的latency問題
請教大神怎樣使用ARM DesignStart計(jì)劃開放的處理器核搭建SoC系統(tǒng)呢
請問下什么叫不可使用IP核?
請問成像/視頻IP核是否包含在主板附帶的軟件開發(fā)中?
采用EDA軟件和FPGA實(shí)現(xiàn)IP核保護(hù)技術(shù)
針對I2C的主方式串行擴(kuò)展通信的接口IP核設(shè)計(jì)
面向SoC的開放式IP核接口協(xié)議OCP研究
![](https://skin.elecfans.com/images/2021-soft/load.png)
面向SoC的開放式IP核接口協(xié)議(OCP)研究
![](https://skin.elecfans.com/images/2021-soft/load.png)
開放核協(xié)議—IP核在SoC設(shè)計(jì)中的接口技術(shù)
![](https://skin.elecfans.com/images/2021-soft/eye.png)
IP核在SoC設(shè)計(jì)中的接口技術(shù)解析
![](https://skin.elecfans.com/images/2021-soft/load.png)
評論