chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Xilinx PCIe XDMA使用指南

費(fèi)加羅 ? 來(lái)源:費(fèi)加羅 ? 作者:費(fèi)加羅 ? 2022-08-02 09:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 為什么使用PCIe傳輸

FPGA需要和處理器打交道時(shí),無(wú)論是X86,還是PowerPC,以及一些嵌入式ARM等,對(duì)外的接口常見如下表。

pYYBAGGYHzmATl9hAACgbLlxkFc313.png

其中,USB需要外部的PHY對(duì)接FPGA,而且需要firmware;以太網(wǎng)走到TCP才會(huì)保證不丟數(shù)據(jù);PCI逐漸淘汰了,占用引腳多,而且?guī)捰邢蓿?a target="_blank">SATA側(cè)重存儲(chǔ),其協(xié)議的局限性比較高;RapidIO在一些場(chǎng)合使用,結(jié)構(gòu)可以做到Full Mesh結(jié)構(gòu),但是這些年發(fā)展速度比較慢。

而PCIe具備如下優(yōu)點(diǎn):
A. 帶寬高,目前FPGA有PCIe Gen3 x16,或者PCIe Gen4 x8,鏈路速度可以達(dá)到128Gbps;

B. FPGA直連,不需要外部PHY;
C. 協(xié)議保證數(shù)據(jù)無(wú)誤傳輸,兩級(jí)CRC,重傳機(jī)制,保證數(shù)據(jù)無(wú)誤;
D. 軟件生態(tài)豐富,各種系統(tǒng)原生支持,通過簡(jiǎn)單的驅(qū)動(dòng)就可以完成數(shù)據(jù)交互;
E. 在PCIe之上的協(xié)議逐漸增多,例如NVMe是基于PCIe的上層協(xié)議;

Xilinx從15年前,V4系列開始,一直在PCIe的解決方案上深耕,提供眾多的應(yīng)用方案級(jí)的解決方案,方便用戶專注于自己的應(yīng)用。早期,Xilinx提供的有Application Notes,例如XAPP859,XAPP1052等,構(gòu)建了基本的雙向數(shù)據(jù)傳輸。當(dāng)時(shí)一些第三方公司,類似于PLDA,NwLogic也出針對(duì)Xilinx FPGA的PCIe傳輸方案。

后來(lái),Xilinx團(tuán)隊(duì)2017年附近推出XDMA解決方案,并持續(xù)增加功能、修正Bug,到目前為止,XDMA已經(jīng)成為一個(gè)功能強(qiáng)大、成熟穩(wěn)定的Xilinx FPGA解決方案。功能上涵蓋了SG功能,AXI-Lite功能,多通道分離,AXI-MM和AXI-Stream支持等。穩(wěn)定性上,經(jīng)過4年的逐步完善,目前已經(jīng)有眾多的客戶基于這套方案實(shí)現(xiàn)產(chǎn)品,涵蓋醫(yī)療、電力、通訊、數(shù)據(jù)中心等各種應(yīng)用。
最重要的是,XDMA是免費(fèi)的!??!

2. XDMA IP配置實(shí)例

Xilinx XDMA支持的系列包括7系列,UltraScale系列,UltraScale+系列各種系列,界面配置基本相同。這里以KU040的一個(gè)板子做例程,其他系列可以參考。Vivado使用2018.3,Vivado的版本,做XDMA,建議盡量使用新一些的版本。詳細(xì)的說明,參考Xilinx的文檔PG195,下面主要摘取影響使用的關(guān)鍵部分。

配置IP

第一頁(yè),IP基本配置。

poYBAGLofnGAMtECAACBMRvjBAg544.jpg

紅色框根據(jù)實(shí)際板卡硬件來(lái)選擇,Lane Width是物理的位寬;Link Speed是希望運(yùn)行在那個(gè)速率。速率和位寬越高,最終的帶寬就越高,對(duì)應(yīng)FPGA內(nèi)的資源和頻率也相對(duì)多一些。

綠色框是選擇接口方式,AXI Memory Mapped選擇用戶接口是AXI內(nèi)存映射的接口,常見用于對(duì)接DDR、RAM等有地址尋址的外設(shè)。AXI Stream的用戶接口是流接口,類似于一段數(shù)據(jù)包,F(xiàn)IFO流等。IP只能支持其中一種選擇,不能說多通道混合使用不同的用戶接口,所以用戶需要分析自己的數(shù)據(jù)接入方式,慎重選擇。

常見的,例如ADC采集,如果帶DDR,則可以把ADC暫存在DDR中,XDMA使用AXI-MM的方式讀取DDR數(shù)據(jù);也可以ADC通過FIFO緩存后,XDMA使用AXI-Stream讀取FIFO,不過需要注意ADC速度非常高的時(shí)候容易溢出。

例如,讀取外部網(wǎng)絡(luò)報(bào)文,報(bào)文長(zhǎng)短不一,使用AXI-Stream接口方式比較合適。

第二頁(yè),VID,DID,Class等選擇。

poYBAGLofoKAYsTdAACEWVcEAM0954.jpg

如果沒有特殊的需要,這一頁(yè)可以不變。尤其是Vendor ID,Device ID,盡量不修改,因?yàn)閄ilinx提供的驅(qū)動(dòng)是對(duì)應(yīng)這些VID,DID的。

第三頁(yè),PCIe BAR空間。

poYBAGLofpOAfk6yAAB8g15Rw9U754.jpg

紅色框,PCIe to AXI Lite Master Interface可以選擇上。通常,這個(gè)接口可以用作寄存器接口。上位機(jī)需要控制板卡內(nèi)的用戶寄存器,可以通過這個(gè)接口擴(kuò)展。
通常來(lái)說,寄存器接口盡量對(duì)齊,比如常用32bit寄存器。

第四頁(yè),雜項(xiàng)

poYBAGLofrCAdz6QAACdNKz3CzA763.jpg

需要關(guān)注的是用戶中斷數(shù)量,是從用戶層通知CPU的中斷。注意,XDMA本身的操作中斷不算在內(nèi),這里是用戶產(chǎn)生的中斷。

第五頁(yè),DMA通道選擇

pYYBAGLofsCAN1y5AACYYnpnC-M248.jpg

需要關(guān)注的是紅色框,讀寫通道數(shù)量選擇,根據(jù)實(shí)際的業(yè)務(wù)來(lái)選擇。例如有4路ADC數(shù)據(jù)傳輸,可以選擇C2H為4,當(dāng)然,也可以4路ADC數(shù)據(jù)在FPGA內(nèi)合并后成1路,然后只選擇C2H為1 。

生成example design例程

上一步IP配置后,在生成的IP上,右鍵點(diǎn)擊,選擇打開open example design。

poYBAGLofs-AQmf0AAChkEFoWVo553.jpg

生成的例程,如果選擇是AXI-MM的用戶接口,那么這個(gè)接口對(duì)接的是AXI接口形式的Block RAM,上位機(jī)可以讀/寫這片RAM。如果選擇的是AXI-Stream接口,例程中將Stream讀寫環(huán)回,上位機(jī)寫下去的內(nèi)容再讀回去。

此外,第三頁(yè)BAR空間如果勾選了PCIeto AXI Lite Master Interface,例程中會(huì)額外多出來(lái)一個(gè)AXI接口的Block RAM。如果需要,可以將這塊修改為寄存器接口。

修改約束引腳后,生成bit文件,下載到FPGA中,并重啟電腦,注意這里說的是重啟電腦,不是關(guān)機(jī)再開機(jī)。電腦重啟的開始,BIOS會(huì)重新掃描PCIe設(shè)備,才能被CPU枚舉。

pYYBAGLofuCALLiHAABb9suIPq4744.jpg

3. Block Design下快速構(gòu)建XDMA Subsystem

上面的例程,例化一個(gè)IP,然后打開example design的方式。實(shí)際使用,可以用block design快速構(gòu)建XDMA的設(shè)計(jì)。

下面舉例,快速構(gòu)建一個(gè)XDMA到DDR4傳輸?shù)脑O(shè)計(jì)。

1. 新建block design,加入XDMA IP和DDR4 MIG IP。XDMA配置參考上面描述的內(nèi)容,DDR4根據(jù)板卡實(shí)際的選擇配置。

2. 連接關(guān)系很簡(jiǎn)單,XDMA的M_AXI接口通過AXI_Interconnect連接DDR4,這里AXI_Interconnect起到時(shí)鐘域轉(zhuǎn)換的作用。

poYBAGLofu6AFrRPAABa1EntIRM891.jpg

3. 地址分配,將DDR4的空間分配到XDMA中即可。

pYYBAGLofv2ABCvrAABDD4YfrgY196.jpg

4. 生成block design的wrapper,修改正確的引腳約束后,生成bit文件。下載到FPGA后重啟電腦。

Block Design的方式,適用于快速構(gòu)建比較復(fù)雜的設(shè)計(jì),例如包含DDR4,Datamover等各種基于AXI互聯(lián)的IP。

4. 驅(qū)動(dòng)和軟件應(yīng)用

通過pci utility查看設(shè)備

pci utility工具,用于查看PCIe設(shè)備各種屬性的工具。Linux系統(tǒng)默認(rèn)自帶了pci utility工具,windows下也有對(duì)應(yīng)版本,在GitHub上搜索。

lspci命令,列舉所有pci和pcie設(shè)備:

poYBAGLofw2AO-KwAAGLJi_63EE381.jpg

紅色框,即上面配置的XDMA example design。
lspci -vv -s 02:00.0 命令,詳細(xì)列出位于02:00.0槽位的Xilinx設(shè)備詳細(xì)信息。

poYBAGLofx2AECblAAHygAzGkmA062.jpg

這里把一些信息列舉下來(lái):

A. Region 0,這個(gè)是上面PCIe to AXI Lite Master Interface選擇的空間。Region 1,這個(gè)是XDMA IP自身內(nèi)部寄存器空間,不用關(guān)心。
B. MaxPayload size是256字節(jié),是系統(tǒng)協(xié)商的,不能修改。MaxReadReq是最大請(qǐng)求字節(jié),協(xié)商后是512字節(jié)。
C. LnkCap字段,是協(xié)商后的PCIe鏈路狀態(tài),上面寫的速度是8G,位寬是x4。PCIe IP上選擇的是8G,這個(gè)目前協(xié)商到了。位寬選擇x8,實(shí)際是x4,因?yàn)檫@個(gè)機(jī)箱用的一個(gè)x4PCIe延長(zhǎng)線,限制了適配到x8位寬。
D. LnkCtl2,顯示設(shè)備最大能支持到8G的鏈路速度。

5. 驅(qū)動(dòng)安裝,Linux環(huán)境

Linux的驅(qū)動(dòng)在GitHub上,https://github.com/Xilinx/dma_ip_drivers,下載到宿主機(jī)。
readme.txt中有驅(qū)動(dòng)使用說明,目錄結(jié)構(gòu)、安裝使用等。tests目錄下有安裝腳本,測(cè)試腳本等。

5.1. 驅(qū)動(dòng)安裝

tests目錄下,sh load_driver.sh即安裝驅(qū)動(dòng),安裝成功會(huì)提示。

pYYBAGGYH0eAEo2FAAAxkFLkI50420.png

安裝完畢,查看/dev目錄下,多出來(lái)一些xdma0開頭的設(shè)備。

poYBAGLofzCADih_AADVc3TnXCA417.jpg

文件目錄分別說明下
A. _c2h_x,是card to host的設(shè)備,板卡向CPU傳輸數(shù)據(jù)的時(shí)候使用這個(gè)設(shè)備;
B. _h2c_x,是host to card的設(shè)備,CPU向板卡發(fā)送數(shù)據(jù)的時(shí)候使用這個(gè)設(shè)備;
C. _control,是XDMA的內(nèi)部寄存器控制設(shè)備,一般用戶不需要使用;
D. _user,是PCIe to AXI Lite Master Interface選擇的空間;
E. _event_x,是IP配置第四頁(yè),選擇的用戶層中斷對(duì)應(yīng)的設(shè)備;

5.2 軟件測(cè)試,Linux環(huán)境

如果IP配置選擇AXI-Memory Map,參考dma_memory_mapped_test.sh,這個(gè)腳本寫入一段數(shù)據(jù)到BlockRAM中,然后讀出對(duì)比。
如果IP配置選擇AXI-Stream接口,參考dma_streaming_test.sh,腳本寫入一段數(shù)據(jù),回環(huán)后讀回校驗(yàn)。
上述兩個(gè)例子,用下面的命令測(cè)試。
sh dma_memory_mapped_test.sh 1024 1 1 1

poYBAGLof0KATx6ZAAFBLnoJAvQ650.jpg

Block Design下,DDR4顯示已經(jīng)校準(zhǔn)完畢。使用dma_memory_mapped_test.sh測(cè)試,數(shù)據(jù)寫入DDR4,然后再?gòu)腄DR4讀回。

pYYBAGLof1OAU3kVAAB_zGrCias491.jpg

FAQ

1. Windows下安裝驅(qū)動(dòng),安裝后驅(qū)動(dòng)有一個(gè)感嘆號(hào),不能正常使用。

Windows從Win764bit開始,安裝驅(qū)動(dòng)必須的簽名,Win7的簽名和Win10的簽名還不同。Xilinx提供的Windows驅(qū)動(dòng)不包括驅(qū)動(dòng)簽名,安裝的時(shí)候就出現(xiàn)感嘆號(hào)。

這個(gè)問題可以百度下,開機(jī)的時(shí)候選擇禁止驅(qū)動(dòng)簽名?;蛘哔?gòu)買微軟的簽名即可。
例如下圖,是一個(gè)公司購(gòu)買了簽名,簽名這個(gè)驅(qū)動(dòng)后的狀態(tài),可以直接安裝好驅(qū)動(dòng)。

pYYBAGLof2OAG5NuAADFhlp_Is8937.jpg

2. Linux下,Stream模式接收溢出。

IP設(shè)置為Stream模式,默認(rèn)Linux上有循環(huán)Buffer來(lái)處理接收的數(shù)據(jù)。如果Stream接收的速率太高,超過驅(qū)動(dòng)和應(yīng)用能處理的范圍,就會(huì)出現(xiàn)溢出的問題。出現(xiàn)溢出后,驅(qū)動(dòng)里做了錯(cuò)誤恢復(fù),一段數(shù)據(jù)就丟掉了。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20142

    瀏覽量

    246646
  • FPGA
    +關(guān)注

    關(guān)注

    1654

    文章

    22273

    瀏覽量

    629896
  • USB接口
    +關(guān)注

    關(guān)注

    9

    文章

    712

    瀏覽量

    58474
  • PCIe
    +關(guān)注

    關(guān)注

    16

    文章

    1419

    瀏覽量

    87504
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    大彩講堂:VisualHMI-LUA教程-on_screen_change回調(diào)函數(shù)使用指南

    on_screen_change回調(diào)函數(shù)使用指南
    的頭像 發(fā)表于 08-31 16:32 ?552次閱讀
    大彩講堂:VisualHMI-LUA教程-on_screen_change回調(diào)函數(shù)<b class='flag-5'>使用指南</b>

    大彩講堂:VisualHMI-LUA教程-on_update回調(diào)函數(shù)使用指南

    回調(diào)函數(shù)使用指南
    的頭像 發(fā)表于 08-31 16:25 ?602次閱讀
    大彩講堂:VisualHMI-LUA教程-on_update回調(diào)函數(shù)<b class='flag-5'>使用指南</b>

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)20: PCIe應(yīng)答模塊設(shè)計(jì)

    應(yīng)答模塊的具體任務(wù)是接收來(lái)自PCIe鏈路上的設(shè)備的TLP請(qǐng)求,并響應(yīng)請(qǐng)求。由于基于PCIe協(xié)議的NVMe數(shù)據(jù)傳輸只使用PCIe協(xié)議的存儲(chǔ)器讀請(qǐng)求TLP和存儲(chǔ)器寫請(qǐng)求TLP,應(yīng)答模塊也分別針對(duì)兩種TLP設(shè)置處理引擎來(lái)提高并行性和處
    的頭像 發(fā)表于 08-13 10:43 ?617次閱讀
    NVMe高速傳輸之?dāng)[脫<b class='flag-5'>XDMA</b>設(shè)計(jì)20: <b class='flag-5'>PCIe</b>應(yīng)答模塊設(shè)計(jì)

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)17:PCIe加速模塊設(shè)計(jì)

    PCIe加速模塊負(fù)責(zé)實(shí)現(xiàn)PCIe傳輸層任務(wù)的處理,同時(shí)與NVMe層進(jìn)行任務(wù)交互。PCIe加速模塊按照請(qǐng)求發(fā)起方分為請(qǐng)求模塊和應(yīng)答模塊。
    的頭像 發(fā)表于 08-09 14:38 ?4558次閱讀
    NVMe高速傳輸之?dāng)[脫<b class='flag-5'>XDMA</b>設(shè)計(jì)17:<b class='flag-5'>PCIe</b>加速模塊設(shè)計(jì)

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)14: PCIe應(yīng)答模塊設(shè)計(jì)

    應(yīng)答模塊的具體任務(wù)是接收來(lái)自PCIe鏈路上的設(shè)備的TLP請(qǐng)求,并響應(yīng)請(qǐng)求。由于基于PCIe協(xié)議的NVMe數(shù)據(jù)傳輸只使用PCIe協(xié)議的存儲(chǔ)器讀請(qǐng)求TLP和存儲(chǔ)器寫請(qǐng)求TLP,應(yīng)答模塊也分別針對(duì)兩種TLP設(shè)置處理引擎來(lái)提高并行性和處
    的頭像 發(fā)表于 08-04 16:47 ?674次閱讀
    NVMe高速傳輸之?dāng)[脫<b class='flag-5'>XDMA</b>設(shè)計(jì)14: <b class='flag-5'>PCIe</b>應(yīng)答模塊設(shè)計(jì)

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)13:PCIe請(qǐng)求模塊設(shè)計(jì)(下)

    PCIe接口替代XDMA,可以靈活使用IP接口,便于調(diào)試等功能。 續(xù)上:在接收到請(qǐng)求總線接口的請(qǐng)求事務(wù)后,當(dāng)請(qǐng)求類型的值為0時(shí),表示通過PCIE硬核的配置管理接口發(fā)送請(qǐng)求,由于請(qǐng)求接口的接口和時(shí)序
    發(fā)表于 08-04 16:39

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之九:隊(duì)列管理模塊(上)

    這是采用PCIe設(shè)計(jì)NVMe,并非調(diào)用XDMA方式,后者在PCIe4.0時(shí)不大方便,故團(tuán)隊(duì)直接采用PCIe設(shè)計(jì),結(jié)合UVM驗(yàn)證加快設(shè)計(jì)速度。 隊(duì)列管理模塊采用隊(duì)列的存儲(chǔ)與控制分
    的頭像 發(fā)表于 08-04 09:53 ?581次閱讀
    NVMe IP高速傳輸卻不依賴<b class='flag-5'>XDMA</b>設(shè)計(jì)之九:隊(duì)列管理模塊(上)

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之八:系統(tǒng)初始化

    采用XDMA是許多人常用xilinx庫(kù)實(shí)現(xiàn)NVMe或其他傳輸?shù)姆椒?。但是?b class='flag-5'>XDMA介紹較少,在高速存儲(chǔ)設(shè)計(jì)時(shí),尤其是PCIe4.0模式下,較難發(fā)揮其最優(yōu)性能,因此,直接采用
    的頭像 發(fā)表于 07-26 15:14 ?627次閱讀
    NVMe IP高速傳輸卻不依賴<b class='flag-5'>XDMA</b>設(shè)計(jì)之八:系統(tǒng)初始化

    Quartus工具使用指南

    電子發(fā)燒友網(wǎng)站提供《Quartus工具使用指南.pdf》資料免費(fèi)下載
    發(fā)表于 07-15 16:34 ?1次下載

    NVMe IP over PCIe 4.0:擺脫XDMA,實(shí)現(xiàn)超高速!

    基于NVMe加速引擎,它直接放棄XDMA,改為深度結(jié)合PCIe,通過高速傳輸機(jī)制開發(fā)。同時(shí)利用UVM驗(yàn)證平臺(tái)驗(yàn)證,有效提升工作效率。
    的頭像 發(fā)表于 04-16 14:57 ?795次閱讀
    NVMe IP over <b class='flag-5'>PCIe</b> 4.0:擺脫<b class='flag-5'>XDMA</b>,實(shí)現(xiàn)超高速!

    基于PCIeXDMA/QDMA)的多路視頻采集與顯示IP 多路高速AD采集與DA回放IP

    基于PCIeXDMA/QDMA)的多路視頻采集與顯示子系統(tǒng)多路高速AD采集與DA回放子系統(tǒng)1 概述視頻采集與顯示子系統(tǒng)可以實(shí)時(shí)采集多路視頻信號(hào),并存儲(chǔ)到視頻采集隊(duì)列中,借助高效的硬實(shí)時(shí)視頻幀出入
    發(fā)表于 04-14 15:17

    GaN HEMT的SPICE模型使用指南及示例

    GaN HEMT的SPICE模型使用指南及示例總結(jié) 本文檔基于GaN HEMT的實(shí)測(cè)特性描述了當(dāng)前版本的模型。該模型專為與PSpice和LTspice配合使用而開發(fā)。本文檔首先介紹該模型,然后提供將
    的頭像 發(fā)表于 03-11 17:43 ?1897次閱讀
    GaN HEMT的SPICE模型<b class='flag-5'>使用指南</b>及示例

    Nexperia SiC MOSFET LTspice模型使用指南

    電子發(fā)燒友網(wǎng)站提供《Nexperia SiC MOSFET LTspice模型使用指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-13 17:21 ?2次下載
    Nexperia SiC MOSFET LTspice模型<b class='flag-5'>使用指南</b>

    GD32H7xx電源旁路模式使用指南

    電子發(fā)燒友網(wǎng)站提供《GD32H7xx電源旁路模式使用指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 17:34 ?3次下載
    GD32H7xx電源旁路模式<b class='flag-5'>使用指南</b>

    PCIE XDMA開發(fā)環(huán)境搭建以及環(huán)路測(cè)試

    1.1 課程介紹? 這一章開始主要介紹 XILINX FPGA PICE IP XDMA IP的使用。XDMA IP使用部分教程分LINUX 篇和WINDOWS篇兩個(gè)部分。通過實(shí)戰(zhàn),面向應(yīng)用,提供給
    的頭像 發(fā)表于 01-13 09:38 ?2675次閱讀
    <b class='flag-5'>PCIE</b> <b class='flag-5'>XDMA</b>開發(fā)環(huán)境搭建以及環(huán)路測(cè)試