學習XDMA—20240709

概覽:

在內部,子系統可以配置為實現多達8個獨立的物理DMA引擎(最多4個H2C和4個C2H)。這些DMA引擎可以映射到單獨的AXI4Stream接口,也可以將共享的AXI4內存映射(MM)接口映射到用戶應用程序。在axis4 MM接口上,PCI Express?的DMA/橋接子系統生成請求和預期完成。axis4 - stream接口僅支持數據

H2C (Host-to-Card)通道向PCIe發出讀請求,并向用戶應用提供數據或生成寫請求。

卡到主機(C2H)通道要么在用戶端等待數據,要么在用戶端生成一個讀請求,然后生成一個寫請求,其中包含收到的數據到PCIe

PCIe的DMA/橋接子系統也使主機能夠訪問用戶邏輯。到達PCIe到DMA旁路基址寄存器(BAR)的寫請求由DMA處理。來自寫請求的數據通過PL邏輯的NoC接口轉發給用戶應用程序。PCIe的DMA/橋接子系統也使主機能夠訪問用戶邏輯。到達PCIe到DMA旁路基址寄存器(BAR)的寫請求由DMA處理。來自寫請求的數據通過PL邏輯的NoC接口轉發給用戶應用程序。

BAR是什么意思??

H2C通道?的數量在AMD Vivado?集成設計環境(IDE)中配置。H2C通道處理從主機到卡的DMA傳輸。它負責根據最大讀請求大小和可用的內部資源拆分讀請求。DMA通道根據rnum_rid保持最大未完成請求數,rnum_rid是未完成的H2C通道請求ID參數的數量。讀請求的每次拆分(如果有的話)都會消耗一個額外的讀請求條目。當DMA通道收到用戶界面上按順序完成寫操作的確認時,向PCIe RQ塊發出讀操作后,請求是未完成的。在傳輸完成后,DMA通道發出回寫或中斷來通知主機。H2C通道也在其讀和寫接口上分割事務。在到主機的讀接口上,事務被分割以滿足配置的最大讀請求大小,并基于可用的Data FIFO空間。數據FIFO空間在讀取請求時分配,以確保讀取完成的空間。PCIe RC塊將完成數據返回到分配的數據緩沖區位置。為了最小化延遲,在接收到任何完成數據后,H2C通道開始向用戶界面發出寫請求。它還將寫請求分解為最大有效負載大小。在AXI4-Stream用戶界面上,這種分割是透明的。當啟用多個通道時,axis4 Master接口上的事務(就是請求??)在所有選定的通道之間交錯進行。采用簡單輪詢協議服務所有通道。事務粒度取決于主機最大有效負載大小(MPS)、頁面大小和其他主機設置。

C2H通道處理從卡到主機的DMA傳輸。C2H通道的實例化數量在AMD Vivado?IDE中控制。類似地,未完成傳輸的數量是通過wnum_rid配置的,它是C2H通道請求id的數量。在AXI4-Stream配置中,DMA傳輸的細節是在AXI4-Stream接口上接收數據之前設置的。這通常是通過接收DMA描述符來完成的。在準備好請求ID并啟用通道之后,通道的AXI4Stream接口可以接收數據并對主機執行DMA。在AXI4 MM接口配置中,請求id是在發出對AXI4 MM接口的讀請求時分配的。與H2C通道類似,在寫請求完成之前,給定的請求ID是未完成的。對于C2H通道,寫請求完成是指PCIe IP指示的寫請求已經發出。當啟用多個通道時,axis4 Master接口上的事務在所有選定的通道之間交錯進行。采用簡單輪詢協議服務所有通道。事務粒度取決于主機的MaxPayload Size (MPS)、頁面大小和其他主機設置。

AXI4-Lite Master該模塊實現了axis4 - lite主總線協議。主機可以通過該接口向用戶邏輯生成32位讀、32位寫請求。讀或寫請求通過PCIe接收到AXI4-Lite主BAR。讀完成數據通過目標橋通過PCIe IP CC總線返回給主機

AXI4-Lite Slave該模塊實現了AXI4-Lite從總線協議。用戶邏輯只能掌握在DMA內部寄存器上的32位讀或寫操作。不能通過該接口訪問PCIe集成塊寄存器。該接口不生成對主機的請求。

Host-to-Card Bypass Master到達PCIe到DMA旁路BAR的主機請求被發送到該模塊。旁路主端口是一個ax4mm接口,支持讀寫訪問

IRQ模塊從用戶邏輯接收可配置數量的中斷線,從每個DMA通道接收一條中斷線。該模塊負責通過PCIe產生中斷。可以在IP配置期間指定對MSI- x、MSI和遺留中斷的支持。注意:在IP配置期間,主機可以從指定的支持中斷列表中啟用一種或多種中斷類型。IP在給定時間只生成一種中斷類型,即使有多個中斷類型被啟用。MSI- x中斷優先于MSI中斷,MSI中斷優先于Legacy中斷。主機軟件不能切換(啟用或禁用)中斷類型,而有一個中斷斷言或掛起。

配置模塊,DMA寄存器空間,包含PCIe?解決方案IP配置信息和DMA控制寄存器,存儲與PCIe的DMA/Bridge子系統相關的PCIe IP配置信息。該配置信息可以通過寄存器讀取讀取到配置模塊中適當的寄存器偏移量

PCIe DMA引擎只是將數據移到或移出PCIe地址位置。在典型的操作中,主機中的應用程序在FPGA和主機內存之間移動數據。為了完成這種傳輸,主機在系統內存中設置緩沖空間,并創建DMA引擎用來移動數據的描述符。描述符的內容將取決于許多因素,包括為DMA引擎選擇哪個用戶界面。如果選擇了AXI4-Stream接口,則C2H傳輸不使用源地址字段,H2C字段不使用目的地址。這是因為AXI4-Stream接口是一個不使用地址的FIFO類型接口。如果選擇了AXI內存映射接口,則C2H傳輸的源地址為AXI地址,目的地址為PCIe地址。對于H2C傳輸,源地址是PCIe地址,目的地址是AXI地址。數據傳輸流程:pg195? ? ? ?p20-23

描述符:像鏈表一樣,前一個描述符包含指向下一個描述符的信息,知道最后一個描述符。DMA具有Bit_width * 512深度FIFO來保存描述符引擎中的所有描述符。這個描述符FIFO與所有選定的通道共享,并且僅在內部模式下使用(而不是在描述符旁路模式下使用)。?對于具有2H2C和2C2H設計的Gen3x8, AXI位寬度為256位。FIFO深度為256位* 512 = 32b * 512 = 16kb(512個描述符)。這個FIFO由4個DMA引擎共享。//描述符獲取引擎可以通過AMD Vivado?IDE參數在每個通道的基礎上繞過。啟用了描述符旁路的通道從其各自的c2h_dsc_byp或h2c_dsc_byp總線接受描述符。在通道接受描述符之前,必須設置控制寄存器運行位。當繞過描述符時,不使用NextDescriptorAddress和NextAdjacentCount以及Magic描述符字段。控制寄存器位中的ie_descriptor_stopped位不會阻止用戶邏輯寫入額外的描述符。所有寫入通道的描述符都會被處理,除非在通道緩沖區已滿時寫入新的描述符//(大概的意思就是bypass是接收描述符的通路,當啟用的bypass,描述符就從bypass上傳輸)??//每個引擎都能夠將完成的描述符計數寫回主機內存。這允許驅動程序輪詢主機內存以確定DMA何時完成,而不是等待中斷。

DMA H2C Stream:

對于主機到卡的傳輸,從源地址處的主機讀取數據,但描述符中的目標地址是未使用的。數據包可以跨越多個描述符。包的終止由EOP控制位表示。帶有EOP位的描述符在數據的最后一個節拍上斷言AXI4-Stream用戶界面上的tlast。

交付給axis4 - stream接口的數據將為每個描述符打包。如果Tkeep不是數據路徑寬度的倍數,則除了描述符數據傳輸的最后一個周期外,Tkeep都是1s。DMA不會跨多個描述符打包數據。(就是說 stream模式下不適用目的地址,只是用帶有EOP的描述符,當EOP出現的時候,tlast拉高,表示不再接收數據)

DMA C2H?Stream:

對于卡到主機的傳輸,從AXI4-Stream接口接收數據并將其寫入目標地址。數據包可以跨越多個描述符。C2H通道在啟用時接受數據,并具有有效的描述符。當接收到數據時,它按順序填充描述符。當描述符被完全填充或由于接口上的數據包結束而關閉時,C2H通道將信息用預定義的WB Magic值16'h52b4(表10:C2H流回寫字段)回寫到主機上的回寫地址,并根據需要更新EOP和長度。對于C2H AXI4-Stream接口上的有效數據周期,與給定數據包關聯的所有數據必須是連續的(就是說 接收數據填充描述符,描述符就像計數器一樣,當描述符滿了的時候,stream會向主機回寫一個信息。)C2H流描述符的長度(目標緩沖區的大小)必須始終是64字節的倍數。

端口描述:用于PCI Express?的AMD DMA/Bridge子系統直接連接到用于PCIe的集成塊。PCIe集成塊IP的數據路徑接口有64、128、256或512位寬,根據IP配置的不同,接口的工作頻率最高可達250mhz。數據路徑寬度適用于除AXI4-Lite接口以外的所有數據接口。AXI4-Lite接口固定為32位寬。

7系列Gen2和Virtex 7 Gen3: PCIe參考時鐘。應該從參考時鐘IBUFDS_GTE2的O端口驅動。

從PCIe邊緣連接器復位信號復位

PCIe派生時鐘輸出m_axi*和s_axi*接口。ax_aclk是從GT塊的TXOUTCLK引腳派生出來的時鐘;在斷言axi_aresetn時,不期望它連續運行。

輸輸出?Active-High標識?連接到主機設備

內部信號在手冊31-43頁

寄存器空間,有關寄存器的描述核定義在手冊43-75頁

Clocking and Resets:

axi_aclk輸出是用于所有AXI接口的時鐘,應該驅動所有相應的AXI Interconnect ack信號。

對于在AXI橋接模式下的PCIe的DMA/橋接子系統,有一個可選的dma_bridge_resetn輸入引腳,它允許您重置所有內部橋接引擎和寄存器以及由ax_aresetn引腳驅動的所有AXI外設。

Lane Width: The subsystem requires the selection of the initial lane width

帶寬:子系統要求選擇初始車道寬度

Maximum Link Speed: The subsystem requires the selection of the PCIe Gen speed.

最大鏈路速度:子系統需要選擇PCIe Gen速度。

參考時鐘頻率:默認為100mhz,也支持125mhz和250mhz

復位:您可以在User Reset和Phy ready之間選擇。一旦鏈路建立,用戶復位來自PCIe核心。當PCIe鏈路斷開時,斷言User Reset, XDMA進入復位模式。當鏈接恢復時,用戶重置被解除。當選擇Phy ready選項時,XDMA不受PCIe鏈路狀態的影響。

GT DRP時鐘選擇:選擇內部時鐘(默認)或外部時鐘。

GT Selection, Enable GT Quad Selection:選擇0號通道所在的Quad。

AXI地址寬度:目前只支持64位寬度。

AXI數據寬度:選擇64、128、256位或512位(僅適用于UltraScale+)。該子系統允許您選擇接口寬度

AXI時鐘頻率:根據通道寬度/速度選擇62.5 MHz、125 MHz或250 MHz。

DMA接口選項:選擇AXI4內存映射和AXI4- stream

數據保護:默認禁用奇偶校驗,當啟用Check Parity時,XDMA會對從PCIe讀數據進行奇偶校驗,并對寫入PCIe的數據進行奇偶校驗,當“傳播奇偶校驗”被啟用時,XDMA將奇偶校驗傳播到用戶AXI接口。用戶負責在用戶AXI接口上檢查和生成奇偶校驗。

PCIe ID Tab:啟用PCIe-ID接口:通過啟用此選項,PCIe_ID端口作為輸入端口,您希望連接到所需的適當值。

在Endpoint配置中,核心最多支持6個32位BAR或3個64位BAR,以及擴展只讀存儲器(ROM) BAR。bar有兩種大小:

約束:PCI Express?的DMA/橋接子系統需要定時和其他物理實現約束的規范,以滿足PCI Express的指定性能要求。這些約束在Xilinx Design constraints (XDC)文件中提供。生成的XDC中的引腳和層次結構名稱對應于所提供的示例設計

示例設計:

當啟用axis4 - stream接口時,每個H2C流通道都被循環回C2H通道。如下圖所示,示例設計給出了axis4流的環回設計。限制是您需要選擇相同數量的H2C和C2H通道才能正常運行。這個示例設計還顯示了PCIe到DMA旁路接口和PCIe到axis - lite Master的選擇。

User IRQ Example Design:

用戶IRQ示例設計使主機能夠連接到axis4 - lite Master接口以及用于PCI Express?示例設計的默認DMA/Bridge子系統。在示例設計中,用戶中斷生成器模塊和外部塊RAM集成在這個AXI4-Lite接口上。主機可以使用該接口通過寫入用戶中斷生成器模塊的寄存器空間來生成用戶IRQ,也可以對外部1K塊RAM進行讀寫。下圖顯示了示例設計。

設置驅動程序:p123,暫時還沒看

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42816.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42816.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42816.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智能警衛:Conda包依賴的自動監控之道

智能警衛:Conda包依賴的自動監控之道 引言 在復雜的軟件開發項目中,依賴管理是確保項目健康運行的關鍵環節。Conda作為Python和其他科學計算語言的強大包管理器,提供了依賴監控功能,幫助用戶自動化和簡化依賴項的監控過程。本文…

軟考高級第四版備考--第15天(建設團隊)Develop Team

定義:提高工作能力,促進團隊成員互動,改善團隊整體氛圍以提高項目績效的過程 作用:改進團隊協作、增強人際關系技能、激勵員工、減少摩擦以提升整體項目績效 說明:高效團隊行為: 使用開放與有效的溝通&a…

簡述 JS 中對象的創建和拷貝

在 JavaScript 中,對象是一種非常重要且靈活的數據結構,用于存儲多個值(屬性)和方法(函數) 對象的創建和拷貝是日常開發中經常涉及的操作,對于業務邏輯的準確實現有著重要的作用 本文將簡要概…

linux查看目錄下的文件夾命令,find 查找某個目錄,但是不包括這個目錄本身?

linux查看目錄下的文件夾命令,find 查找某個目錄,但是不包括這個目錄本身? Linux中查看目錄下的文件夾的命令是使用ls命令。ls命令用于列出指定目錄中的文件和文件夾。通過不同的選項可以實現顯示詳細信息、按照不同的排序方式以及使用不同的…

Profibus轉ModbusTCP網關模塊實現Profibus_DP向ModbusTCP轉換

Profibus和ModbusTCP是工業控制自動化常用的二種通信協議。Profibus是一種串口通信協議,它提供了迅速靠譜的數據傳輸和各種拓撲結構,如總線和星型構造。Profibus可以和感應器、執行器、PLC等各類設備進行通信。 ModbusTCP是一種基于TCP/IP協議的通信協議…

一次零基礎 自“信息收集“到“權限維持“的滲透測試全程詳細記錄

一、滲透總流程 1.確定目標: 在本靶場中,確定目標就是使用各種掃描工具進行ip掃描,確定目標ip。 2.信息收集: 比如平常挖洞使用fofa,天眼查,ip域名等進行查,在我們這個靶場中比如使用Wappalyz…

基于網絡編碼的 tcp 變種-tcp/nc

tcp/nc 是指 “tcp with network coding”,是一種結合了網絡編碼技術的 tcp 變種,網上資源很少,我也不準備多介紹,只介紹它的核心。 傳統 tcp 在演進過程中一直搞不定效率問題,網絡帶寬在增長,cpu 卻沒有變…

C++類和對象(上篇)

文章目錄 前言一、面向過程和面向對象初步認識 二、類的引入 三、類的定義 六、類的實例化 七、類的對象大小的計算 八、類成員函數的this指針 總結 前言 類和對象是面向對象編程的兩個核心概念。 類是一種抽象的數據類型,是描述對象共同特征和行為的模板。一個類…

yolov5:Conv類參數量計算

Conv是yolov5自定義的類,里邊包含了卷積層、BN層和激活函數 class Conv(nn.Module):# Standard convolution with args(ch_in, ch_out, kernel, stride, padding, groups, dilation, activation)default_act nn.SiLU() # default activationdef __init__(self, c…

點云下采樣有損壓縮

轉自本人博客&#xff1a;點云下采樣有損壓縮 點云下采樣是通過一定規則對原點云數據進行再采樣&#xff0c;減少點云個數&#xff0c;降低點云稀疏程度&#xff0c;減小點云數據大小。 1. 體素下采樣&#xff08;Voxel Down Sample&#xff09; std::shared_ptr<PointClo…

華為機考真題 -- 信道分配

題目描述&#xff1a; 算法工程師小明面對著這樣一個問題&#xff0c;需要將通信用的信道分配給盡量多的用戶&#xff0c; 信道的條件及分配規則如下&#xff1a; 1) 所有信道都有屬性&#xff1a;”階”。階為 r 的信道容量為 2^r 比特&#xff1b; 2) 所有用戶需要傳輸的數…

區間貪心

目錄 1.貪心算法的思想 2.區間貪心算法常用的一些題目類型 1.選擇最多不相交區間問題 P2970 [USACO09DEC] Selfish Grazing S 1.思路分析 2.上代碼 2.區間選點問題 P1250 種樹 1.題目 2.方法一 1.代碼解釋 3.方法二 3.區間合并問題 P2434 [SDOI2005] 區間 1. 思路…

中科海訊 C++初級研發工程師筆試題目

C語言中的const關鍵字有什么作用&#xff1f;為什么要使用const關鍵字&#xff1f; 1 const修飾的變量將會被放到常量區&#xff0c;避免被意外的改動。 const修飾的常量比#define修飾的有更多的優勢&#xff0c;比如可以調試&#xff0c;類型檢查等 2 const修飾的參數可做輸入…

Java集合面試題

Java集合框架 1、List、Set、Map的區別2、ArrayList、LinkedList、Vector區別3、為什么數組索引從0開始&#xff0c;而不是從1開始&#xff1f;4、ArrayList底層的實現原理5、紅黑樹、散列表6、HashMap的底層原理7、HashMap的put方法具體流程8、HashMap的擴容機制9、HashMap是怎…

南方科技大學馬永勝教授給年輕人使用AI工具上的建議

摘要 - 1. AI的未來&#xff0c;是機器人和機器人之間的合作&#xff1b; 2. 行業的發展方向是需求決定的&#xff0c;不要做同質化的發展&#xff0c;要做專/精/特/新&#xff1b; 3. 新質生產力 &#xff08; 科學技術革命性突破 生產要素創新型配置 產業深度轉型升級&…

java通過poi-tl導出word實戰詳細步驟

文章目錄 與其他模版引擎對比1.引入maven依賴包2.新建Word文檔exportWprd.docx模版3.編寫導出word接口代碼4.導出成果 poi-tl是一個基于Apache POI的Word模板引擎&#xff0c;也是一個免費開源的Java類庫&#xff0c;你可以非常方便的加入到你的項目中&#xff0c;并且擁有著讓…

貪心算法-以高校教材管理系統為例

1.貪心算法介紹 1.算法思路 貪心算法的基本思路是從問題的某一個初始解出發一步一步地進行&#xff0c;根據某個優化測度&#xff0c;每一 步都要確保能獲得局部最優解。每一步只考慮一 個數據&#xff0c;其選取應該滿足局部優化的條件。若下 一個數據和部分最優解連在一起…

Pix4Dmapper:無人機測繪的革命性工具

在現代測繪和地理信息系統&#xff08;GIS&#xff09;領域&#xff0c;Pix4Dmapper無疑是一款革命性的工具。作為一名長期使用這款軟件的用戶&#xff0c;我深深感受到它在工作中的重要性和便利性。Pix4Dmapper不僅僅是一款軟件&#xff0c;更是測繪工作者的得力助手&#xff…

285個地級市出口產品質量及技術復雜度(2011-2021年)

出口產品質量與技術復雜度&#xff1a;衡量國家競爭力的關鍵指標 出口產品質量是衡量國內企業生產的產品在國際市場上競爭力的重要標準。它不僅要求產品符合國際標準和目標市場的法律法規&#xff0c;而且需要保證產品質量的穩定性和可靠性。而出口技術復雜度則進一步體現了一…

新一代信息技術及應用

關于云計算的描述不正確的是&#xff08; &#xff09;。 A 云計算可以通過網絡連接&#xff0c;用戶通過網絡接入“云”中并獲得有關的服務&#xff0c;“云”內節點之間也通過內部的網絡相連 B 云計算可以快速、按需、彈性服務&#xff0c;用戶可以按照實際需求迅速獲取或釋放…