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

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

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

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

基于AMD FPGA的PCIE DMA邏輯實現(xiàn)

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-14 15:53 ? 次閱讀

一、AMD FPGA PCIE IP介紹

AMD FPGA自帶PCIE硬核,實現(xiàn)了PCIE協(xié)議,把串行數(shù)據(jù)轉(zhuǎn)換為并行的用戶數(shù)據(jù),以UltraScale系列FPGA為例,其支持Gen1.02.03.04.0,1~16 Lanes,如下圖所示:

100571679-305868-01.png

另外當(dāng)前最新7nm系列器件Versal? ACAP可支持到PCIE Gen5.0,單個Lane可達32G的線速率,如下圖所示:

100571679-305869-02.png

1.1 PCIE IP功能介紹

用戶接口采用AXI接口實現(xiàn)PCIE TLP報文收發(fā),從而完成PCIE傳輸事務(wù)的收發(fā),最終實現(xiàn)PCIE的各種數(shù)據(jù)傳輸模式,系統(tǒng)架構(gòu)如下圖所示:

100571679-305870-03.png

圖左側(cè)為FPGA PCIE IP,實現(xiàn)了PCIE協(xié)議,其與用戶邏輯的數(shù)據(jù)交互主要通過AXI CQ,CC,RQ,RC四個接口,可以實現(xiàn)PCIE上行和下行的數(shù)據(jù)傳輸。

1.2 PCIE協(xié)議TLP報文介紹

使用PCIE IP用戶需要了解PCIE協(xié)議,至少了解TLP報文的構(gòu)造,如下圖所示為32位地址寫請求TLP報文:

100571679-305871-04.png

R:保留位,一般填0;
Fmt:報文長度類型,指示當(dāng)前TLP報文是3DW長度還是4DW長度(此處主要是跟地址位寬相關(guān),PCIE協(xié)議可支持32位地址和64位地址);
Type:包類型,指示包括Mrd(讀數(shù)據(jù))、Mwr(寫數(shù)據(jù))、Cfg(配置PCIe)、Msg(消息事務(wù))、Cpl(讀地址數(shù)據(jù)請求后返回的數(shù)據(jù)包);
TC:傳輸優(yōu)先級,數(shù)值越大表示優(yōu)先級越高;
Attr:包屬性,指示當(dāng)前包是順序或者是亂序,cache一致性等;
TH:PCIe V2.1 總線規(guī)范引入的一個重要功能。TLP 的發(fā)送端可以使用 TPH 信息,通知接收端即將訪問數(shù)據(jù)的特性,以便接收端合理地預(yù)讀和管理數(shù)據(jù),一般很少應(yīng)用;
TD:指示接收端是否需要做ECRC校驗;
EP:指示當(dāng)前TLP包的有效性;
AT:地址種類,與 PCIe 總線的地址轉(zhuǎn)換相關(guān);
Length:指示TLP長度;
Requester ID:請求者ID,包括PCIe設(shè)備的總線號(Bus Number)、設(shè)備號(Device Number)和功能號(Function Number),通過該ID可以找到對應(yīng)的目標(biāo)設(shè)備;
Tag:數(shù)據(jù)包標(biāo)簽,可以指示當(dāng)前TLP數(shù)據(jù)包是屬于哪一組數(shù)據(jù)中分拆的數(shù)據(jù)塊;
Last DW BE:指示最后一個DW中有效的字節(jié),主要是針對在傳輸數(shù)據(jù)粒度比較小的情況,比如最小粒度為1字節(jié);
1st DW BE:指示第一個DW中有效的字節(jié)。

1.3 PCIE IP邏輯設(shè)計

用戶在實現(xiàn)PCIE數(shù)據(jù)傳輸功能時可通過上圖中AXI CQ,CC,RQ,RC四個接口來完成各種PCIE事務(wù)的數(shù)據(jù)收發(fā):
RQ:請求者請求接口,通常是主機向終端設(shè)備發(fā)送數(shù)據(jù)傳輸請求;
RC:請求者完成接口,通常是終端設(shè)備向主機發(fā)送需要的返回數(shù)據(jù);
CQ:完成者請求接口,通常是終端設(shè)備向主機發(fā)送數(shù)據(jù)傳輸請求;
CC:完成者完成接口,通常是主機向終端設(shè)備發(fā)送需要的返回數(shù)據(jù);

用戶需要通過這4個接口構(gòu)造TLP報文可以實現(xiàn)從主機到終端或者終端到主機的訪問請求和相應(yīng)的數(shù)據(jù)傳輸,下面是主機向終端發(fā)起寫數(shù)據(jù)請求的時序:

100571679-305872-05.png

用戶在邏輯設(shè)計時可以先通過右鍵IP生成一個example工程,工程里面就有構(gòu)造TLP報文的代碼,用戶可以在這個工程代碼上修改TLP報文的相關(guān)數(shù)據(jù)來實現(xiàn)具體的數(shù)據(jù)傳輸需求。

二、AMD PCIE DMA功能實現(xiàn)

AMD PCIE DMA功能主要是通過XDMA IP來實現(xiàn),其作用本質(zhì)上是通過這幾個接口實現(xiàn)PCIE DMA傳輸流程,用戶不需要關(guān)注PCIE TLP報文的構(gòu)造細節(jié),只需要通過XDMA的AXI接口完成數(shù)據(jù)傳輸即可,如下圖所示:

100571679-305873-06.png

用戶只需關(guān)注AXI用戶接口的邏輯設(shè)計,通過該接口就可以實現(xiàn)DMA傳輸。另外,AXI用戶接口包括MM接口和ST兩種接口,MM接口是可以直接對接內(nèi)存,其包括了地址控制,可以直接實現(xiàn)內(nèi)存讀寫。

2.1 XDMA AXI-MM接口實現(xiàn)DMA傳輸

AXI-MM接口的操作相對簡單,其與用戶邏輯對接的接口為標(biāo)準(zhǔn)的AXI接口,包括了地址信息,可以直接對接內(nèi)存,最簡單的方式就是例化一個AXI接口的RAM直接對接,PC端就可以直接訪問該RAM,如下圖所示:

100571679-305875-07.png

AXI-MM接口主要應(yīng)用場景是直接訪問FPGA內(nèi)存,但對于視頻流,采集數(shù)據(jù)流等場景,特別是需要用到多通道的場景通常采用ST接口會更加方便。

2.2 XDMA ST接口實現(xiàn)DMA傳輸

ST(AXI4-Stream)接口是實現(xiàn)數(shù)據(jù)流傳輸接口,用于傳輸連續(xù)的數(shù)據(jù)流,比如視頻數(shù)據(jù)流,特別是在實現(xiàn)多通道DMA的情況下通常會采用該接口,如下圖所示:

100571679-305876-08.png

S_AXIS_C2H是終端設(shè)備向主機發(fā)送數(shù)據(jù)接口,S_AXIS_H2C是主機向終端設(shè)備發(fā)送數(shù)據(jù)接口,均為AXI Stream接口,只實現(xiàn)數(shù)據(jù)流傳輸,典型特征是不傳輸?shù)刂罚?a target="_blank">端口如下圖所示:

100571679-305877-09.png

其時序跟上述PCIE IP的AXI接口類似,所以,通過XDMA的ST接口可以很方便實現(xiàn)數(shù)據(jù)流傳輸,只需要跟PC驅(qū)動程序配對好地址和長度信息,邏輯設(shè)計只需要通過ST接口收發(fā)數(shù)據(jù)。

2.3 DMA邏輯設(shè)計方法

邏輯與主機上層軟件實現(xiàn)DMA數(shù)據(jù)傳輸主要有查詢和中斷兩種方式,以ST接口為例,邏輯可以通過AXI LITE接口實現(xiàn)PC的寄存器訪問,PC可以通過查詢寄存器來確定是否可以啟動DMA下發(fā)數(shù)據(jù),或者通過發(fā)起DMA獲取邏輯需要上傳的數(shù)據(jù),邏輯根據(jù)當(dāng)前數(shù)據(jù)需要上傳或者允許PC下發(fā)數(shù)據(jù)的具體情況來設(shè)置寄存器的狀態(tài)。
中斷模式首先要在例化XDMA IP時要選擇一個中斷,IP自動生成一個可供用戶產(chǎn)生中斷的接口,時序如下圖所示:

100571679-305878-10.png

用戶產(chǎn)生中斷的方法很簡單,只需要拉高usr_irq_req,等待usr_irq_ack拉高即可產(chǎn)生中斷。需要注意的是當(dāng)usr_irq_ack拉高時用戶不能立刻把usr_irq_req拉低,因為此刻不能確定PC已經(jīng)響應(yīng)并完成中斷處理,最簡單的方式是設(shè)置一個清中斷寄存器,PC通過向這個寄存器寫1來通知邏輯,中斷事務(wù)已經(jīng)被處理完成。

另外,PCIE協(xié)議支持3種中斷:
INTx中斷:主要是為了兼容PCI設(shè)備,是電平觸發(fā)中斷;
MSI中斷:消息中斷,PCIE設(shè)備通過構(gòu)造對應(yīng)的中斷消息發(fā)送到主機,從而觸發(fā)中斷;
MSI-X中斷:是MSI中斷的擴展,可以通過中斷向量表的方式把中斷個數(shù)擴展到2048個;

當(dāng)PC啟動DMA下發(fā)數(shù)據(jù)時,XDMA IP會通過H2C接口向邏輯發(fā)送數(shù)據(jù),邏輯可以通過s_axis_h2c_tready信號來決定是否允許數(shù)據(jù)下發(fā);當(dāng)邏輯向PC上傳數(shù)據(jù)時可通過C2H接口向PC傳輸數(shù)據(jù),在發(fā)送數(shù)據(jù)前邏輯需要向PC產(chǎn)生一個中斷,PC檢測到中斷后就會啟動DMA上傳數(shù)據(jù),邏輯側(cè)看到的是s_axis_c2h_tready信號拉高,說明邏輯可以開始通過C2H接口發(fā)送數(shù)據(jù)給PC。所以,整個DMA傳輸都是由PC發(fā)起的,無論是上傳還是下發(fā)數(shù)據(jù),邏輯只是被動完成數(shù)據(jù)傳輸。

值得注意的是當(dāng)使用多通道DMA時每個通道的操作是完全獨立的,包括ST接口和中斷都是獨立的,相關(guān)的寄存器用戶最好也采用獨立的寄存器來實現(xiàn)與PC的交互。

責(zé)任編輯:彭菁

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

    關(guān)注

    1643

    文章

    21987

    瀏覽量

    615104
  • amd
    amd
    +關(guān)注

    關(guān)注

    25

    文章

    5573

    瀏覽量

    136026
收藏 人收藏

    評論

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

    基于AMD Versal器件實現(xiàn)PCIe5 DMA功能

    Versal是AMD 7nm的SoC高端器件,不僅擁有比16nm性能更強的邏輯性能,并且其PS系統(tǒng)中的CPM PCIe也較上一代MPSoC PS硬核PCIe單元強大得多。本節(jié)將基于
    的頭像 發(fā)表于 06-19 09:44 ?90次閱讀
    基于<b class='flag-5'>AMD</b> Versal器件<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>PCIe</b>5 <b class='flag-5'>DMA</b>功能

    基于PCIE(mcap)的部分可重構(gòu)實現(xiàn)方案

    芯片才能實現(xiàn),具體哪些系列能實現(xiàn)哪種配置方式如下圖所示: 圖1 本質(zhì)上來說,無論是JTAG還是ICAP或者MCAP以及其它FPGA的配置方式,目的都是配置FPGA
    的頭像 發(fā)表于 01-03 09:20 ?4807次閱讀
    基于<b class='flag-5'>PCIE</b>(mcap)的部分可重構(gòu)<b class='flag-5'>實現(xiàn)</b>方案

    基于Xilinx V6的PCIE DMA高速傳輸模塊

    利用XIlinx V6評估板ML605實現(xiàn)PCIE2.0,8通道主模式DMA數(shù)據(jù)傳輸,DMAFPGA發(fā)起,采用1GB DDR3作為
    發(fā)表于 04-25 12:48

    Xilinx PCIe Master DMA設(shè)計

    基于PCI Express的數(shù)據(jù)采集卡PCIe數(shù)據(jù)采集卡PCI Express數(shù)據(jù)采集卡本人在北京工作6年以上,從事FPGA外圍接口設(shè)計,非常熟悉PCI Express協(xié)議,設(shè)計調(diào)試了多個基于PCI
    發(fā)表于 03-01 18:11

    PCIe DMA設(shè)計實現(xiàn)

    基于PCI Express的數(shù)據(jù)采集卡PCIe數(shù)據(jù)采集卡PCI Express數(shù)據(jù)采集卡在北京工作6年以上,從事FPGA外圍接口設(shè)計,非常熟悉PCI Express協(xié)議,設(shè)計調(diào)試了多個基于PCI
    發(fā)表于 01-10 20:36

    關(guān)于PCIE DMA操作的一個疑問

    功能,1、FPGA是不是可以直接通過PCIE操作DDR完成DMA操作?2、在操作過程中CPU是一個旁觀者的角色嗎?3、地址轉(zhuǎn)換,DDR接口操作等都是由CPU內(nèi)部的硬件完成?CPU在FPGA
    發(fā)表于 04-06 16:24

    尋求fpga大牛開發(fā)一個簡單的fpga pcie設(shè)備

    需求:兩塊fpga互聯(lián),兩塊fpga分別模擬成特定的pcie設(shè)備,兩個設(shè)備通過serdes總線互聯(lián)通信,fpga僅僅只要模擬特定的設(shè)備就可以,不需要負(fù)載的
    發(fā)表于 02-11 15:31

    采用FPGA實現(xiàn)PCIe接口設(shè)計

    系列FPGA實現(xiàn)PCIe接口所涉及的硬件板卡參數(shù)、應(yīng)用層系統(tǒng)方案、DMA仲裁、PCIe硬核配置與讀寫時序等內(nèi)容。
    發(fā)表于 05-21 09:12

    如何通過PCIe進行FPGA到PC的通信?

    嗨,我正在使用超大規(guī)模的FPGA板。我可以通過DMA子系統(tǒng)IP和DDR控制器IP將數(shù)據(jù)從PC傳輸?shù)紻DR。我打算在FPGA中進行一些處理,然后更新數(shù)據(jù),以便PC可以讀取。如何通過PCIe
    發(fā)表于 05-08 09:40

    如何利用PCIe DMA總線實現(xiàn)一個基于FPGAPCIe 8位數(shù)據(jù)采集卡?

    PCIe總線通信過程是怎樣的?是什么原理?如何利用PCIe DMA總線實現(xiàn)一個基于FPGAPCIe
    發(fā)表于 09-17 07:16

    PCIE DMA例子

    Xilinx FPGA工程例子源碼:PCIE DMA例子
    發(fā)表于 06-07 14:13 ?53次下載

    基于FPGAPCIe總線接口的DMA控制器的實現(xiàn)并進行仿真驗證

    本文實現(xiàn)的基于FPGAPCIe總線接口的DMA控制器是在Altera PHY IP和Synopsys Core IP的基礎(chǔ)上實現(xiàn)的,
    的頭像 發(fā)表于 01-11 10:57 ?1.4w次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIe</b>總線接口的<b class='flag-5'>DMA</b>控制器的<b class='flag-5'>實現(xiàn)</b>并進行仿真驗證

    基于AMD FPGAPCIE DMA邏輯實現(xiàn)

    AMD FPGA自帶PCIE硬核,實現(xiàn)PCIE協(xié)議,把串行數(shù)據(jù)轉(zhuǎn)換為并行的用戶數(shù)據(jù),以UltraScale系列
    的頭像 發(fā)表于 06-09 09:34 ?2365次閱讀
    基于<b class='flag-5'>AMD</b> <b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b> <b class='flag-5'>DMA</b><b class='flag-5'>邏輯</b><b class='flag-5'>實現(xiàn)</b>

    PCIe控制器(FPGA或ASIC),PCIe-AXI-Controller

    Transaction Layer的所有功能特性,不僅內(nèi)置DMA控制器,而且具備AXI4用戶接口,提供一個高性能,易于使用,可定制化的PCIe-AXI互連解決方案,同時適用于ASIC和FPGA
    的頭像 發(fā)表于 02-21 15:15 ?1339次閱讀
    <b class='flag-5'>PCIe</b>控制器(<b class='flag-5'>FPGA</b>或ASIC),<b class='flag-5'>PCIe</b>-AXI-Controller

    Xilinx高性能PCIe DMA控制器IP,8個DMA通道

    基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem實現(xiàn)了使用DMA地址隊列的獨立多通道、高性能Continous或
    的頭像 發(fā)表于 02-22 11:11 ?2043次閱讀
    Xilinx高性能<b class='flag-5'>PCIe</b> <b class='flag-5'>DMA</b>控制器IP,8個<b class='flag-5'>DMA</b>通道
    主站蜘蛛池模板: aa黄色片| 手机看片1024在线观看 | 午夜视 | 日本一线a视频免费观看 | 九月婷婷综合婷婷 | 亚洲国产色婷婷精品综合在线观看 | 啪啪午夜免费 | 成人午夜免费视频毛片 | 中文天堂最新版在线中文 | 六月丁香深爱六月综合激情 | 亚洲色图欧美视频 | 免费观看视频 | 5月婷婷6月丁香 | 深夜影院一级毛片 | 给我一个可以看片的www日本 | 免费观看黄a一级视频日本 免费观看黄色网页 | 黄视频在线观看网站 | 婷婷综合久久狠狠色99h | 免费在线一区二区三区 | 成人a毛片免费全部播放 | 亚洲综合日韩欧美一区二区三 | 日本久久黄色 | 91大神在线免费观看 | 操欧美女人| 天堂色综合 | 一级免费黄色片 | 久久婷人人澡人人爽 | 国产成在线人视频免费视频 | 亚洲人成电影在线观看网 | 日本不卡一区二区三区视频 | www狠狠操| 四虎影院视频在线观看 | 毛片毛片毛片毛片毛片毛片 | 色www永久免费视频 色y情视频免费看 | 日本亚洲精品成人 | 国产经典一区 | 午夜大片男女免费观看爽爽爽尤物 | 日日干夜夜操 | 国产色爽女小说免费看 | 色婷婷六月桃花综合影院 | 亲女乱h文小兰第一次 |