在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

分享一些Xilinx PCIe XDMA使用指南

YCqV_FPGA_EETre ? 來源:電腦愛好者小陸 ? 作者:電腦愛好者小陸 ? 2021-05-31 10:25 ? 次閱讀

1. 為什么使用PCIe傳輸

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

o4YBAGC0SYSAT9FlAABauEUzUSM035.png

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

A. 帶寬高,目前FPGA有PCIe Gen3 x16,或者PCIe Gen4 x8,鏈路速度可以達到128Gbps;

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

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

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

2. XDMA IP配置實例

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

配置IP

第一頁,IP基本配置。

19ca2de8-bf86-11eb-9e57-12bb97331649.png

紅色框根據(jù)實際板卡硬件來選擇,Lane Width是物理的位寬;Link Speed是希望運行在那個速率。速率和位寬越高,最終的帶寬就越高,對應(yīng)FPGA內(nèi)的資源和頻率也相對多一些。綠色框是選擇接口方式,AXI Memory Mapped選擇用戶接口是AXI內(nèi)存映射的接口,常見用于對接DDRRAM等有地址尋址的外設(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速度非常高的時候容易溢出。例如,讀取外部網(wǎng)絡(luò)報文,報文長短不一,使用AXI-Stream接口方式比較合適。

第二頁,VID,DID,Class等選擇。

19da4f34-bf86-11eb-9e57-12bb97331649.png

如果沒有特殊的需要,這一頁可以不變。尤其是Vendor ID,Device ID,盡量不修改,因為Xilinx提供的驅(qū)動是對應(yīng)這些VID,DID的。

第三頁,PCIe BAR空間。

19e77bbe-bf86-11eb-9e57-12bb97331649.png

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

第四頁,雜項

19f2b7a4-bf86-11eb-9e57-12bb97331649.png

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

第五頁,DMA通道選擇

1a3f44e8-bf86-11eb-9e57-12bb97331649.png

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

生成example design例程

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

1a48cfea-bf86-11eb-9e57-12bb97331649.png

生成的例程,如果選擇是AXI-MM的用戶接口,那么這個接口對接的是AXI接口形式的Block RAM,上位機可以讀/寫這片RAM。如果選擇的是AXI-Stream接口,例程中將Stream讀寫環(huán)回,上位機寫下去的內(nèi)容再讀回去。此外,第三頁BAR空間如果勾選了PCIeto AXI Lite Master Interface,例程中會額外多出來一個AXI接口的Block RAM。如果需要,可以將這塊修改為寄存器接口。修改約束引腳后,生成bit文件,下載到FPGA中,并重啟電腦,注意這里說的是重啟電腦,不是關(guān)機再開機。電腦重啟的開始,BIOS會重新掃描PCIe設(shè)備,才能被CPU枚舉。

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

上面的例程,例化一個IP,然后打開example design的方式。實際使用,可以用block design快速構(gòu)建XDMA的設(shè)計。下面舉例,快速構(gòu)建一個XDMA到DDR4傳輸?shù)脑O(shè)計。

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

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

1a70e598-bf86-11eb-9e57-12bb97331649.png

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

4. 生成block design的wrapper,修改正確的引腳約束后,生成bit文件。下載到FPGA后重啟電腦。Block Design的方式,適用于快速構(gòu)建比較復(fù)雜的設(shè)計,例如包含DDR4,Datamover等各種基于AXI互聯(lián)的IP。

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

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

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

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

1ab26bc6-bf86-11eb-9e57-12bb97331649.png

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

1b349f1a-bf86-11eb-9e57-12bb97331649.png

這里把一些信息列舉下來:

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

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

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

5.1. 驅(qū)動安裝

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

1b997016-bf86-11eb-9e57-12bb97331649.png

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

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

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

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

Block Design下,DDR4顯示已經(jīng)校準完畢。使用dma_memory_mapped_test.sh測試,數(shù)據(jù)寫入DDR4,然后再從DDR4讀回。

FAQ

1. Windows下安裝驅(qū)動,安裝后驅(qū)動有一個感嘆號,不能正常使用。

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

這個問題可以百度下,開機的時候選擇禁止驅(qū)動簽名。或者購買微軟的簽名即可。

例如下圖,是一個公司購買了簽名,簽名這個驅(qū)動后的狀態(tài),可以直接安裝好驅(qū)動。

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

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

編輯:jq

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

    關(guān)注

    12

    文章

    1882

    瀏覽量

    86363
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    727

    瀏覽量

    66208

原文標題:Xilinx PCIe XDMA使用指南

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

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

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

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

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

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

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

    模型導(dǎo)入PSpice和LTspice的說明,最后比較一些測試和仿真結(jié)果。按照以下說明正確加載模型后,晶體管符號將如圖1所示出現(xiàn)。 深度詳細的PDF文檔免費下載: *附件:GaN HEMT的SPICE
    的頭像 發(fā)表于 03-11 17:43 ?631次閱讀
    GaN HEMT的SPICE模型<b class='flag-5'>使用指南</b>及示例

    Nexperia SiC MOSFET LTspice模型使用指南

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

    GD32H7xx電源旁路模式使用指南

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

    AN-202: IC放大器用戶指南:去耦、接地及其他一些要點

    電子發(fā)燒友網(wǎng)站提供《AN-202: IC放大器用戶指南:去耦、接地及其他一些要點.pdf》資料免費下載
    發(fā)表于 01-13 15:16 ?2次下載
    AN-202: IC放大器用戶<b class='flag-5'>指南</b>:去耦、接地及其他<b class='flag-5'>一些</b>要點

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

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

    示波器使用指南 如何選擇合適的示波器

    示波器使用指南 示波器是種電子測量儀器,用于顯示電壓隨時間變化的波形。以下是示波器的基本使用指南: 獲得基線 : 預(yù)置面板各開關(guān)、旋鈕至適當(dāng)位置。 按下電源開關(guān),電源指示燈點亮。 調(diào)節(jié)相關(guān)控制旋鈕
    的頭像 發(fā)表于 11-28 09:26 ?766次閱讀

    【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】+02.PCIE接口測試(zmj)

    通信速率可高達 5G bit 帶寬。本例程中通過利用 XILINXXDMA IP 來實現(xiàn) PCIE 的發(fā)送和接收速度測試。 1.1參考電路 米爾-Xilinx XC7A100T
    發(fā)表于 11-12 16:05

    RTC時鐘使用指南:簡單步驟,實用成果

    今天展示的是RTC時鐘使用指南,輕松學(xué)習(xí),完美成果。
    的頭像 發(fā)表于 11-08 11:40 ?797次閱讀
    RTC時鐘<b class='flag-5'>使用指南</b>:簡單步驟,實用成果

    Xilinx 7系列FPGA PCIe Gen3的應(yīng)用接口及特性

    Xilinx7系列FPGA集成了新代PCI Express集成塊,支持8.0Gb/s數(shù)據(jù)速率的PCI Express 3.0。本文介紹了7系列FPGA PCIe Gen3的應(yīng)用接口及一些
    的頭像 發(fā)表于 11-05 15:45 ?2381次閱讀
    <b class='flag-5'>Xilinx</b> 7系列FPGA <b class='flag-5'>PCIe</b> Gen3的應(yīng)用接口及特性

    技術(shù)指南 | 深視智能SRI系列體式激光三維輪廓測量儀快速使用指南

    技術(shù)指南 | 深視智能SRI系列體式激光三維輪廓測量儀快速使用指南
    的頭像 發(fā)表于 10-29 08:08 ?670次閱讀
    技術(shù)<b class='flag-5'>指南</b> | 深視智能SRI系列<b class='flag-5'>一</b>體式激光三維輪廓測量儀快速<b class='flag-5'>使用指南</b>

    技術(shù)指南 | 深視智能SCI系列光譜共焦位移傳感器快速使用指南

    技術(shù)指南 | 深視智能SCI系列光譜共焦位移傳感器快速使用指南
    的頭像 發(fā)表于 10-22 08:06 ?430次閱讀
    技術(shù)<b class='flag-5'>指南</b> | 深視智能SCI系列光譜共焦位移傳感器快速<b class='flag-5'>使用指南</b>

    LED驅(qū)動器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動器應(yīng)用的一些指南和技巧.pdf》資料免費下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動器應(yīng)用的<b class='flag-5'>一些</b><b class='flag-5'>指南</b>和技巧

    GD32F10x 固件庫使用指南

    電子發(fā)燒友網(wǎng)站提供《GD32F10x 固件庫使用指南.pdf》資料免費下載
    發(fā)表于 05-22 14:15 ?36次下載
    主站蜘蛛池模板: 色老头网址 | 亚洲日本三级 | 丁香激情六月天 | 色女人在线| 天天干天天要 | 永久免费在线播放 | 色噜噜亚洲 | 亚色成人 | 水果视频色版 | 很很鲁在线视频播放影院 | 午夜视频在线播放 | 国产黄色大片网站 | riav久久中文一区二区 | 欧美午夜视频在线观看 | 狠狠色丁香婷婷综合小时婷婷 | 色婷婷综合久久久 | 欧美成人午夜精品免费福利 | 国产日韩精品欧美一区色 | 免费人成网站在线高清 | 伊人婷婷涩六月丁香七月 | xxxxxxxxx18免费视频| 三级黄色一级视频 | 免费人成网ww777kkk手机 | 久久久久99精品成人片三人毛片 | 鲁丝一区二区三区 | 最近国语剧情视频在线观看 | 在线视频免费观看 | 成人午夜视频免费看欧美 | 天天干夜夜想 | 国产精欧美一区二区三区 | 久久2017| 手机在线观看免费视频 | 加勒比日本在线 | 又大又粗进出白浆直流动态图 | 全部免费特黄特色大片农村 | 热久久久久 | 亚欧免费视频一区二区三区 | 又长又大又粗又硬3p免费视 | 天天干天天曰天天操 | 久久精品国产99精品最新 | bt天堂网在线资源www |