在介紹IP核之前,先了解下PCIE是什么?
PCIE是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),屬于高速串行點(diǎn)對(duì)點(diǎn)雙通道高帶寬傳輸,所連接的設(shè)備分配獨(dú)享通道帶寬,不共享總線帶寬,支持主動(dòng)電源的管理,錯(cuò)誤報(bào)告,端對(duì)端的可靠性傳輸,熱插拔以及服務(wù)質(zhì)量等功能。優(yōu)點(diǎn)有數(shù)據(jù)傳輸速率高,發(fā)展?jié)摿ο喈?dāng)大。
一. PCIE IP核
PCI-Express IP核,可以實(shí)現(xiàn)PCIE協(xié)議物理層到數(shù)據(jù)鏈路層、再到事務(wù)層的協(xié)議接口信號(hào)轉(zhuǎn)換。因此這里選擇在PCIE協(xié)議 IP核的基礎(chǔ)上,直接在PCIE協(xié)議的事務(wù)層進(jìn)行DMA控制器的設(shè)計(jì)。
IP核是知識(shí)產(chǎn)權(quán)模塊的意思,EDA開發(fā)中具有相當(dāng)?shù)牡匚?。IP主要分為軟IP、固IP和硬IP。軟IP是用Verilog/VHDL等硬件描述語言描述的功能塊,但是并不涉及用什么具體電路元件實(shí)現(xiàn)這些功能。固IP是完成了綜合的功能塊。硬IP提供設(shè)計(jì)的最終階段產(chǎn)品——掩膜。
IP核將一些在數(shù)字電路中比較常用,但是復(fù)雜的功能塊,如、SDRAM控制器、等設(shè)計(jì)成可修改參數(shù)的模塊。但是CPLD/FPGA的規(guī)模越來越大,設(shè)計(jì)越來越復(fù)雜,所以設(shè)計(jì)者的任務(wù)難度大大的提升了。但是調(diào)用IP核能避免重復(fù)勞動(dòng),減輕工程師的負(fù)擔(dān),因此使用IP核是能夠縮短大量產(chǎn)品上市時(shí)間。
利用IP核設(shè)計(jì)電子系統(tǒng),引用方便,修改基本元件的功能容易。具有復(fù)雜功能和商業(yè)價(jià)值的IP核一般具有知識(shí)產(chǎn)權(quán),盡管IP核的市場(chǎng)活動(dòng)還不規(guī)范,但是仍有許多公司從事IP核的設(shè)計(jì)、開發(fā)和營(yíng)銷工作。
IP核有三種不同的存在形式,分別對(duì)應(yīng)我們常說的三類IP內(nèi)核:軟核、固核和硬核。這種分類主要依據(jù)產(chǎn)品交付的方式,而這三種IP內(nèi)核實(shí)現(xiàn)方法也各具特色。
固核是和硬核的折衷。大多數(shù)應(yīng)用于FPGA的IP內(nèi)核均為軟核,軟核有助于用戶調(diào)節(jié)參數(shù)并增強(qiáng)可復(fù)用性。軟核通常以加密形式提供,這樣實(shí)際的 RTL對(duì)用戶是不可見的,但布局和布線靈活。在這些加密的軟核中,如果對(duì)進(jìn)行了參數(shù)化,那么用戶就可通過頭文件或圖形(GUI)方便地對(duì)參數(shù)進(jìn)行操作。對(duì)于那些對(duì)時(shí)序要求嚴(yán)格的內(nèi)核(如接口內(nèi)核),可預(yù)布線特定信號(hào)或分配特定的布線資源,以滿足時(shí)序要求。這些內(nèi)核可歸類為固核,由于內(nèi)核是預(yù)先設(shè)計(jì)的代碼模塊,因此這有可能影響包含該內(nèi)核的整體設(shè)計(jì)。由于內(nèi)核的建立、保持時(shí)間和握手信號(hào)都可能是固定的,因此其它電路的設(shè)計(jì)時(shí)都必須考慮與該內(nèi)核進(jìn)行正確地接口。如果內(nèi)核具有固定布局或部分固定的布局,那么這還將影響其它電路的布局。
PCIE DMA控制器在發(fā)送和接收數(shù)據(jù)時(shí)需要嚴(yán)格按照PCIE協(xié)議進(jìn)行組包和拆包,同時(shí)由于每次DMA傳輸?shù)臄?shù)據(jù)量等傳輸參數(shù)不盡相同,還需要設(shè)計(jì)DMA狀態(tài)控制模塊,配置與DMA操作相關(guān)的寄存器。此外,還需要實(shí)現(xiàn)DDR3到PCIE DMA控制器的接口轉(zhuǎn)換模塊和DDR3控制器。
發(fā)送引擎主要負(fù)責(zé)將待發(fā)送數(shù)據(jù)按照PCIE協(xié)議組織成不同類型的TLP數(shù)據(jù)包,并發(fā)送給PCIE IP核;發(fā)送DMA控制模塊主要負(fù)責(zé)把DDR3中讀取的數(shù)據(jù)轉(zhuǎn)換成TLP格式,并傳送給發(fā)送引擎;接收引擎用于從PCIE IP核接收不同類型的TLP數(shù)據(jù),接收DMA控制模塊用于實(shí)現(xiàn)存儲(chǔ)器讀請(qǐng)求包的發(fā)送流量控制及接收數(shù)據(jù)位寬的轉(zhuǎn)換;DMA狀態(tài)控制寄存器模塊主要用來解析來自PC對(duì)模塊內(nèi)部寄存器的命令和配置,并通知發(fā)送引擎模塊、接收引擎模塊及其他模塊作出相應(yīng)執(zhí)行。
以上就是IP核的介紹,想要學(xué)習(xí)更多內(nèi)容的同學(xué)可以加蘭老師微信了解。
溫馨提示:明德?lián)P擅長(zhǎng)的項(xiàng)目主要包括的方向有以下幾個(gè)方面:
1. MIPI視頻拼接
2. SLVS-EC轉(zhuǎn)MIPI接口(IMX472 IMX492)
3. PCIE采集系統(tǒng)
4. 圖像項(xiàng)目
5. 高速多通道ADDA系統(tǒng)
6. 基于FPGA板卡研發(fā)
7. 前端模擬采集、射頻、電荷靈敏前置放大器
有相關(guān)需求可以聯(lián)系:蘭老師18011939283(微信同號(hào))