引言
隨著半導(dǎo)體技術(shù)的發(fā)展,深亞微米工藝加工技術(shù)允許開(kāi)發(fā)上百萬(wàn)門(mén)級(jí)的單芯片,已能夠?qū)⑾到y(tǒng)級(jí)設(shè)計(jì)集成到單個(gè)芯片中即實(shí)現(xiàn)片上系統(tǒng)SoC。IP核的復(fù)用是SoC設(shè)計(jì)的關(guān)鍵,但困難在于缺乏IP核與系統(tǒng)的接口標(biāo)準(zhǔn),因此,開(kāi)發(fā)統(tǒng)一的IP核接口標(biāo)準(zhǔn)對(duì)提高IP核的復(fù)用意義重大。本文簡(jiǎn)單介紹IP核概念,然后從接口標(biāo)準(zhǔn)的角度討論在SoC設(shè)計(jì)中提高IP核的復(fù)用度,從而簡(jiǎn)化系統(tǒng)設(shè)計(jì)和驗(yàn)證的方法,主要討論OCP(開(kāi)放核協(xié)議)。

圖1 OCP工作原理示意圖

圖2 讀/寫(xiě)操作的時(shí)序

圖3 讀/寫(xiě)狀態(tài)機(jī)
OCP簡(jiǎn)介
基于IP核復(fù)用技術(shù)的SoC 設(shè)計(jì)使芯片的設(shè)計(jì)從以硬件為中心轉(zhuǎn)向以軟件為中心,芯片設(shè)計(jì)不再是門(mén)級(jí)的設(shè)計(jì),而是IP核和接口及其復(fù)用設(shè)計(jì)。IP核集成到系統(tǒng)所要考慮的問(wèn)題包括:同步,例如全局執(zhí)行、數(shù)據(jù)交換和協(xié)議方面的同步操作;協(xié)議轉(zhuǎn)換,不同模塊間不兼容的協(xié)議的轉(zhuǎn)換,封裝可用來(lái)解決這個(gè)問(wèn)題,但需要考慮時(shí)序約束;I/O緩存,為滿(mǎn)足系統(tǒng)行為和時(shí)序約束可能需要緩存數(shù)據(jù)。另外,出于對(duì)核設(shè)計(jì)的保護(hù)會(huì)故意隱藏一些信息,而這些信息在集成時(shí)可能需要。為解決這些問(wèn)題需要一個(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核的功能無(wú)關(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í)滿(mǎn)足SoC的要求;OCP接口還保持核在集成到系統(tǒng)的過(guò)程中自身完全不被改變,就是說(shuō)在總線(xiàn)寬度、總線(xiàn)頻率或電氣負(fù)載有變化時(shí)核保持不變。使用OCP接口的設(shè)計(jì)可以交付即插即用的模塊,同時(shí)支持核的開(kāi)發(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í)體的對(duì)應(yīng)端,當(dāng)連接實(shí)體是Master時(shí),封裝接口模塊就作為對(duì)應(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出來(lái)并進(jìn)入Slave的箭頭表示請(qǐng)求命令,從Slave出來(lái)并進(jìn)入Master的箭頭表示響應(yīng);加黑的線(xiàn)段代表片上互連總線(xiàn)。兩個(gè)IP核通過(guò)接口通信的過(guò)程是:作為Master的 IP核發(fā)出請(qǐng)求命令給對(duì)應(yīng)的Slave端(總線(xiàn)封裝接口模塊);封裝接口模塊通過(guò)片上總線(xiàn)將請(qǐng)求命令(OCP并不指定片上互連總線(xiàn)的工作機(jī)制,而是把OCP命令轉(zhuǎn)換成總線(xiàn)上的傳送)傳送給接收方的總線(xiàn)封裝模塊;接收方的總線(xiàn)封裝模塊再作為Master把這種內(nèi)部總線(xiàn)傳輸轉(zhuǎn)換成合法的OCP命令傳送給目標(biāo)IP核;其作為Slave方接收命令并執(zhí)行所要求的操作。
每一個(gè)OCP接口都是可根據(jù)連接實(shí)體的要求進(jìn)行配置的(通過(guò)選擇需要的信號(hào)或某一信號(hào)的位寬),也是互相獨(dú)立的,例如系統(tǒng)中通信發(fā)起者總是會(huì)需要比目標(biāo)方更多的地址位數(shù)用來(lái)選擇發(fā)起者所要求的目標(biāo)。
OCP接口信號(hào)
OCP通過(guò)命令完成實(shí)體間的通信操作,在接口為選擇的命令配置相應(yīng)信號(hào),所有的信號(hào)都是在時(shí)鐘上升沿采樣,是完全的同步設(shè)計(jì)。OCP接口信號(hào)包括數(shù)據(jù)信號(hào)、邊帶信號(hào)和測(cè)試信號(hào)。數(shù)據(jù)信號(hào)又分為基本信號(hào)、簡(jiǎn)單擴(kuò)展信號(hào)、猝發(fā)信號(hào)和多線(xiàn)程擴(kuò)展信號(hào)。所有IP核都需要基本數(shù)據(jù)信號(hào)中的一組信號(hào),其他可選信號(hào)用于支持通信需要,實(shí)現(xiàn)可配置和可擴(kuò)展性。
基本數(shù)據(jù)信號(hào)包括:Clk、MAddr、MCmd、MData、MDataValid、MRespAccept、SCmdAccept、SData、SDataAccept、SResp。其中只有CLK和MCmd是必須的,其他可選。Mcmd是傳輸命令,指出主方OCP傳輸類(lèi)型,包括讀、寫(xiě)和廣播類(lèi)型的八種命令。簡(jiǎn)單擴(kuò)展信號(hào)增加了OCP接口地址空間、字節(jié)使能和核在不同階段的特征信息。猝發(fā)式擴(kuò)展信號(hào)允許猝發(fā)傳輸,可設(shè)置不同猝發(fā)傳輸模式的參數(shù)。多線(xiàn)程擴(kuò)展信號(hào)支持OCP接口的多線(xiàn)程處理。邊帶信號(hào)傳送諸如復(fù)位、中斷、錯(cuò)誤和核特性標(biāo)志等控制信息,也是IP核與系統(tǒng)間交換控制和狀態(tài)信息的手段,可以同請(qǐng)求/響應(yīng)信號(hào)異步,但與時(shí)鐘上升沿同步。測(cè)試信號(hào)支持掃描、時(shí)鐘控制和JTAG。
OCP接口時(shí)序及接口狀態(tài)機(jī)
以簡(jiǎn)單讀寫(xiě)操作的時(shí)序?yàn)槔f(shuō)明OCP接口時(shí)序要求,如圖2所示。
在上升沿1處OCP Master方通過(guò)將MCmd由Idle變?yōu)閃r開(kāi)始進(jìn)入請(qǐng)求狀態(tài),在此周期內(nèi)把地址A1和數(shù)據(jù)D1分別送到MAddr和MData信號(hào)線(xiàn)上,Slave必須在同一個(gè)周期內(nèi)發(fā)出SCmdAccept有效信號(hào);Slave在上升沿2處開(kāi)始接收地址和數(shù)據(jù)并進(jìn)行內(nèi)部寫(xiě)操作;在上升沿4處MCmd賦值為Rd,OCP進(jìn)入讀請(qǐng)求狀態(tài),在這個(gè)周期內(nèi)Master方將地址放在MAddr信號(hào)線(xiàn)上,在同周期Slave發(fā)出SCmdAccept有效信號(hào);在上升沿5處Slave方置SResp為DVA從而開(kāi)始響應(yīng)階段,請(qǐng)求階段結(jié)束,根據(jù)從MAddr獲得的地址讀取數(shù)據(jù)并放到SData信號(hào)線(xiàn)上;在上升沿6處開(kāi)始Master方收到Slave的響應(yīng)信號(hào)并開(kāi)始讀數(shù)據(jù),響應(yīng)階段完成。
圖3是在讀、寫(xiě)操作中請(qǐng)求階段和響應(yīng)階段主、從兩方的狀態(tài)機(jī)。
Master和Slave都是從IDLE狀態(tài)開(kāi)始,當(dāng)檢測(cè)到MCmd變?yōu)樽x或?qū)憰r(shí)Master轉(zhuǎn)為請(qǐng)求階段,Slave轉(zhuǎn)到讀或?qū)憼顟B(tài)。如果是讀操作,Master的請(qǐng)求狀態(tài)持續(xù)到SCmdAccept有效,Slave在完成讀操作后發(fā)出SCmdAccept有效信號(hào)并置SResp為DVA,Slave變?yōu)轫憫?yīng)狀態(tài),Master進(jìn)入IDLE狀態(tài);SResp是NULL時(shí),Slave沒(méi)有進(jìn)入響應(yīng)狀態(tài)Master進(jìn)入Wait Resp狀態(tài),等待Slave進(jìn)入響應(yīng)狀態(tài)。如果是寫(xiě)操作,沒(méi)有響應(yīng)信號(hào),當(dāng)SCmdAccept有效時(shí)Master的請(qǐng)求階段結(jié)束進(jìn)入IDLE狀態(tài),Slave處理寫(xiě)操作,完成后進(jìn)入IDLE狀態(tài)。
結(jié)語(yǔ)
OCP是基于核的免費(fèi)開(kā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ù)(42142)
- 開(kāi)放核協(xié)(6157)
使用AXI4接口IP核進(jìn)行DDR讀寫(xiě)測(cè)試
3468
AVR AT90S1200 IP核設(shè)計(jì)及復(fù)用技術(shù)
2516
IP核簡(jiǎn)介
IP核簡(jiǎn)介
ip核使用問(wèn)題
開(kāi)放核協(xié)議:IP核在SoC設(shè)計(jì)中的接口技術(shù)
FPGA IP核的相關(guān)問(wèn)題
FPGA的IP軟核使用技巧
FPGA的軟核、硬核以及固核的概念
FSL總線(xiàn)IP核及其在MicroBlaze系統(tǒng)中的應(yīng)用
LCD的通用驅(qū)動(dòng)電路IP核設(shè)計(jì)
QUARTUS II中IP核的調(diào)用方法
TEMAC核有哪些功能
USB_OTG_IP核中AMBA接口的設(shè)計(jì)與FPGA實(shí)現(xiàn)
Vivado生成IP核
WCDMA無(wú)線(xiàn)接口技術(shù)
quartus ii的IP核中的 sincos核怎么使用?
quartusII FFT ip核
關(guān)于FPGA IP核
基于IP核的SoC接口技術(shù)
基于IP核的PCI總線(xiàn)接口設(shè)計(jì)與實(shí)現(xiàn)
基于SOC/IP的智能傳感器設(shè)計(jì)研究
基于DSP核控制的SoC系統(tǒng)該如何去設(shè)計(jì)?
基于層次模型的USB2.0接口芯片IP核固件的設(shè)計(jì)
如何將IP軟核與硬核整合到芯片上,兩者有什么對(duì)比區(qū)別?具體怎么選
如何獲得打印機(jī)接口IP核?
如何設(shè)計(jì)RS232異步串行口IP核?
怎樣使用Arm DesignStart計(jì)劃開(kāi)放的處理器核搭建SoC系統(tǒng)呢
有人知道為什么MIG IP核中的AXI協(xié)議。為什么沒(méi)有AXI_WID這個(gè)信號(hào)呢?
求助,所搭的IP軟核的通訊協(xié)議與總線(xiàn)支持的通訊協(xié)議(ICB)不同怎么轉(zhuǎn)換?
玩轉(zhuǎn)Zynq連載21——Vivado中IP核的移植
請(qǐng)教大神怎樣使用ARM DesignStart計(jì)劃開(kāi)放的處理器核搭建SoC系統(tǒng)呢
請(qǐng)問(wèn)怎樣去設(shè)計(jì)SCI接口電路IP核?
基于ARM 平臺(tái)的MAC 協(xié)議IP 核設(shè)計(jì)
10基于IP核復(fù)用的SoC設(shè)計(jì)技術(shù)探討
18基于SOC技術(shù)設(shè)計(jì)可復(fù)用的異步串行通信接口IP 核
8用內(nèi)建自測(cè)試(BIST)方法測(cè)試IP核
24IC設(shè)計(jì)技術(shù)中的IP核互連
8基于FPGA的UART IP核設(shè)計(jì)與實(shí)現(xiàn)
20SoC中IP核互連的不同策略
8面向SoC的開(kāi)放式IP核接口協(xié)議OCP研究
14面向SoC的開(kāi)放式IP核接口協(xié)議(OCP)研究
21USB設(shè)備接口IP核的設(shè)計(jì)
22基于Wishbone片上總線(xiàn)的IP核的互聯(lián)
13M8051 IP軟核的改進(jìn)性設(shè)計(jì)及其在視頻字符疊加器中的重應(yīng)
47IIC總線(xiàn)控制器IP核設(shè)計(jì)
21基于Avalon-ST接口幀讀取IP核的研究應(yīng)用
0基于AMBA總線(xiàn)的SPI協(xié)議IP核的實(shí)現(xiàn)與驗(yàn)證
47基于BIST的編譯碼器IP核測(cè)試
10開(kāi)放核協(xié)議—IP核在SoC設(shè)計(jì)中的接口技術(shù)
2412基于BIST的編譯碼器IP核測(cè)
1195
I2C器件接口IP核的CPLD設(shè)計(jì)
1351
USB2.0設(shè)備控制器IP核的AHB接口技術(shù)
1990
USB2.0接口IP核的開(kāi)發(fā)與設(shè)計(jì)
1602IP核互連策略及規(guī)范
990
基于PCI IP核的碼流接收卡的設(shè)計(jì)
912
應(yīng)用于片上系統(tǒng)中低功耗IP核設(shè)計(jì)的自適應(yīng)門(mén)控時(shí)鐘技術(shù)
36基于Wishbone總線(xiàn)的UART IP核設(shè)計(jì)
4199
FPGA中IP核的生成
12基于FPGA的IP核設(shè)計(jì)技術(shù)
6Xilinx Vivado的使用詳細(xì)介紹(3):使用IP核
3085
IP核在SoC設(shè)計(jì)中的接口技術(shù)解析
0了解Vivado中IP核的原理與應(yīng)用
10746基于IP核的PCI接口與具體功能的FPGA芯片設(shè)計(jì)
7056
AXI接口簡(jiǎn)介_(kāi)AXI IP核的創(chuàng)建流程及讀寫(xiě)邏輯分析
17729
vivado調(diào)用IP核詳細(xì)介紹
38569千兆以太網(wǎng)的IP核接口和萬(wàn)兆以太網(wǎng)IP核接口
4234SoC設(shè)計(jì)中的IP軟核與硬核的對(duì)比及方案選擇
3668
便攜式IP核的WISHBONE片上系統(tǒng)SoC互連結(jié)構(gòu)
21基于SOC和IP核復(fù)用技術(shù)實(shí)現(xiàn)綜合業(yè)務(wù)接入系統(tǒng)集成電路的設(shè)計(jì)
4248
ip核設(shè)計(jì)電路特點(diǎn)
3100基于ARM的IEEE802-11bMAC層協(xié)議IP核設(shè)計(jì)
4Arasan宣布其Total IP核解決方案
1762VCS獨(dú)立仿真Vivado IP核的問(wèn)題補(bǔ)充
2875
如何在Vivado中配置FIFO IP核
7272
HDLC協(xié)議IP核的設(shè)計(jì)與實(shí)現(xiàn)
5如何申請(qǐng)xilinx IP核的license
2275
芯驛電子ALINX推出全新IP核產(chǎn)品線(xiàn)
1164
芯驛電子 ALINX 推出全新 IP 核產(chǎn)品線(xiàn),覆蓋 TCP/UDP/NVMe AXI IP 核
1459
Vivado中FFT IP核的使用教程
5641
電子發(fā)燒友App



評(píng)論