国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持

這篇具有很好參考價值的文章主要介紹了FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


FPGA實現(xiàn) NIC 100G 網卡,GTY+100G Ethernet Subsystem架構,純verilog代碼實現(xiàn),提供2套工程源碼和技術支持

1、前言

網絡接口控制器(NIC)是計算機與網絡進行交互的網關。NIC構成了軟件協(xié)議棧和網絡之間的橋梁,該橋梁的功能定義了網絡接口。網絡接口的功能以及這些功能的實現(xiàn)都在迅速發(fā)展。這些變化是由提高線速和支持高性能分布式計算和虛擬化的NIC功能的雙重要求所驅動的。不斷提高的線速導致許多NIC功能必須在硬件而非軟件中實現(xiàn)。同時,需要新的網絡功能,例如對多個隊列的精確傳輸控制,以實現(xiàn)高級協(xié)議和網絡體系結構。

為了以實際的線速滿足對新的網絡協(xié)議和體系結構的開放式開發(fā)平臺的需求,我們正在開發(fā)一種基于FPGA的開源高性能NIC原型平臺。本100G網卡平臺能夠以100Gbps的速度運行,連同其驅動程序一起,可以在整個網絡協(xié)議棧中使用。該設計既便攜式又緊湊,支持許多不同的設備,同時即使在較小的設備上也留有足夠的資源用于進一步的自定義。本100G網卡的模塊化設計和可擴展性允許共同優(yōu)化的硬件/軟件解決方案在現(xiàn)實的環(huán)境中開發(fā)和測試高級網絡應用程序。

基于FPGA的NIC結合了基于ASIC的NIC和軟件NIC的功能:它們能夠以線速運行并提供低延遲和精確定時,同時新功能的開發(fā)周期相對較短。市面上也有開發(fā)了高性能、基于FPGA的專有NIC;例如,阿里巴巴開發(fā)了一個完全定制的基于FPGA的RDMA-onlyNIC,他們用它來運行精密擁塞控制協(xié)議(HPCC)的硬件實現(xiàn)。商業(yè)產品也存在,包括Exablaze和Netcope提供的產品。不幸的是,類似于基于ASIC的NIC,可商用的基于FPGA的NIC往往具有無法修改的基本“黑匣子”功能。基本NIC功能的封閉性嚴重限制了它們在開發(fā)新的網絡應用程序時的效用和靈活性。

商業(yè)上可用的高性能DMA組件,例如Xilinx XDMA內核和QDMA內核,以及Atomic Rules ArkvilleDPDK加速內核都沒有提供完全可配置的硬件來控制傳輸數(shù)據(jù)流。Xilinx XDMA內核是為計算卸載應用程序而設計的,因此提供了非常有限的排隊功能,并且沒有簡單的方法來控制傳輸調度。Xilinx QDMA內核和Atomic Rules ArkvilleDPDK加速內核通過支持少量隊列并提供DPDK驅動程序而面向網絡應用程序;但是支持的隊列數(shù)量很少(XDMA內核為2K隊列,而Arkville內核為128個隊列)而且兩個內核都不提供用于精確控制數(shù)據(jù)包傳輸?shù)暮唵畏椒??;贔PGA的分組處理解決方案包括實現(xiàn)網絡應用程序卸載的Catapult和實現(xiàn)FPGA上可重構匹配引擎的FlowBlaze。但是,這些平臺將標準的NIC功能留給了單獨的基于ASIC的NIC,并且完全作為“線下突擊”進行操作,沒有提供對NIC調度程序或隊列的明確控制。其他項目使用軟件實現(xiàn)或部分硬件實現(xiàn)。Shoal描述了一種網絡架構,該網絡架構使用自定義NIC和快速的第1層電交叉點交換機執(zhí)行小規(guī)模路由。Shoal是用硬件構建的,但僅在沒有主機連接的情況下通過綜合流量進行評估。SENIC描述了基于NIC的可擴展速率限制。單獨評估了調度程序的硬件實現(xiàn),但是系統(tǒng)級評估是在具有自定義排隊規(guī)則(qdisc)模塊的軟件中進行的。PIEO描述了一種靈活的NIC調度程序,它是在硬件中單獨進行評估的。NDP是用于數(shù)據(jù)中心應用程序的拉模式傳輸協(xié)議。NDP已通過DPDK軟件NIC和基于FPGA的交換機進行了評估。Loom描述了一種有效的NIC設計,可以使用BESS在軟件中對其進行評估。

本100G網卡的開發(fā)與所有這些項目都不同,因為它是完全可以看到verilog源碼的vivado工程,可以作為實際NIC網卡,也可以作為開發(fā)NIC網卡芯片的驗證。它提供了多個傳輸隊列,并帶有可擴展的傳輸調度程序,以實現(xiàn)對流的細粒度控制。最后我們建立了一個強大而靈活的開源平臺,用于開發(fā)結合了硬件和軟件功能的網絡應用程序。

本設計是一個100G速率的NIC網卡,其架構如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
基于目前市面上主流的FPGA平臺,本博目前移植了2套2022.2版本的vivado工程源碼,具體如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
本設計經過反復大量測試穩(wěn)定可靠,可在項目中直接移植使用,工程代碼可綜合編譯上板調試,可直接項目移植,適用于在校學生、研究生項目開發(fā),也適用于在職工程師做項目開發(fā),可應用于醫(yī)療、軍工等行業(yè)的數(shù)字通信領域;
提供完整的、跑通的工程源碼和技術支持;
工程源碼和技術支持的獲取方式放在了文章末尾,請耐心看到最后;

更新說明

這是第二版,相比之前的版本做了如下優(yōu)化;
1:時序優(yōu)化,做了細致的時序約束,所有工程編譯后都沒有時序違約,如果存在時序違約,很影響性能;
2:代碼優(yōu)化,補齊了代碼中基于generate生成的某些沒有被當前工程使用的模塊,可讀性更強;
3:增加Linux驅動,新增了Linux驅動源碼和測試源碼,實用性更強;
4:工程優(yōu)化,新增移植了兩套2022.2版本的工程源碼,使得工程達到了2套,選擇性更多;

免責聲明

本工程及其源碼即有自己寫的一部分,也有網絡公開渠道獲取的一部分(包括CSDN、Xilinx官網、Altera官網等等),若大佬們覺得有所冒犯,請私信批評教育;基于此,本工程及其源碼僅限于讀者或粉絲個人學習和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導致的法律問題,與本博客及博主無關,請謹慎使用。。。

2、相關方案推薦

我這里已有的以太網方案

目前我這里有大量UDP協(xié)議的工程源碼,包括UDP數(shù)據(jù)回環(huán),視頻傳輸,AD采集傳輸?shù)龋灿蠺CP協(xié)議的工程,對網絡通信有需求的兄弟可以去看看:直接點擊前往

本方案的 10G-NIC網卡項目

本方案適用于10G-NIC、25G-NIC、100G-NIC項目,本博文是講述100G-NIC的應用,想要了解10G-NIC的應用,請移步我之前寫的博文,參考連接如下:點擊直接前往

本方案的 25G-NIC網卡項目

本方案適用于10G-NIC、25G-NIC、100G-NIC項目,本博文是講述100G-NIC的應用,想要了解25G-NIC的應用,請移步我之前寫的博文,參考連接如下:點擊直接前往

3、100G-NIC 網卡基本性能簡介

本100G網卡是一個基于Xilinx高端系列FPGA為平臺的,用于高達100Gbps及更高的網絡接口的開發(fā)平臺;平臺包括一些用于實現(xiàn)實時,高線速操作的核心功能,包括:高性能數(shù)據(jù)路徑,10G/ 25G / 100G以太網MAC,Xilinx 系列FPGA集成的第3代PCIE Express,自定義PCIe DMA引擎以及本機高精確的 IEEE 1588 PTP時間戳;本設計的一個關鍵功能是可擴展隊列管理,它可以支持超過10,000個隊列以及可擴展的傳輸調度程序,從而可以對包傳輸進行細粒度的硬件控制;結合多個網絡接口,每個接口多個端口以及每個端口事件驅動的傳輸調度,這些功能可實現(xiàn)高級網絡接口體系結構和協(xié)議的開發(fā);這些硬件功能的軟件接口是Linux網絡協(xié)議棧的高性能驅動程序。本平臺還支持分散/聚集DMA,校驗和卸載,接收流散列和接收端縮放。通過實現(xiàn)微秒級時分多址(TDMA)硬件調度程序,以25Gbps的線速執(zhí)行TDMA調度,而沒有CPU開銷,證明了該平臺的強大功能和靈活性。

本100G網卡具有幾種獨特的體系結構特點。首先,將硬件隊列狀態(tài)有效地存儲在FPGA的BRAM或者Ultra RAM中,從而支持數(shù)千個可單獨控制的隊列;這些隊列與接口相關聯(lián),每個接口可以具有多個端口,每個端口都有自己的獨立傳輸調度程序;這樣就可以對數(shù)據(jù)包傳輸進行極其精細的控制;調度器模塊的設計是為了修改或交換,完全可以實現(xiàn)不同的傳輸調度方案,包括實驗調度器,再加上PTP時間同步,這樣可以實現(xiàn)基于時間的調度,包括高精度的TDMA;

本100G網卡的設計是模塊化且高度參數(shù)化的,可以在綜合時通過Verilog參數(shù)設置許多配置和結構選項,包括接口和端口計數(shù),隊列計數(shù),內存大小,調度程序類型等;這些設計參數(shù)公開在驅動程序讀取以確定NIC配置的配置寄存器中,使同一驅動程序無需修改即可支持許多不同的板卡和配置。

4、詳細設計方案

設計框圖

FPGA 100G-NIC 系統(tǒng)設計框圖如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
其中具體到NIC部分詳細設計框圖如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

架構說明

從較高的層次來看,NIC由3個主要的嵌套模塊組成。頂層模塊主要包含支持和接口組件。這些組件包括PCI Express硬IP內核和DMA接口,PTP硬件時鐘以及包括MAC,PHY和相關串行器的以太網接口組件。頂層模塊還包括一個或多個接口模塊實例。每個接口模塊都對應于操作系統(tǒng)級別的網絡接口(例如eth0)。每個接口模塊都包含隊列管理邏輯以及描述符和完成處理邏輯。隊列管理邏輯維護所有NIC隊列的隊列狀態(tài):包括傳輸、傳輸完成、接收、接收完成和事件隊列。每個接口模塊還包含一個或多個端口模塊實例。每個端口模塊都提供一個到MAC的AXI流接口,并包含一個傳輸調度程序、傳輸和接收引擎、傳輸和接收數(shù)據(jù)路徑以及一個暫存RAM,用于在DMA操作期間臨時存儲傳入和傳出的數(shù)據(jù)包。對于每個端口,端口模塊中的傳輸調度程序決定將哪些隊列指定用于傳輸;傳輸調度程序為發(fā)送引擎生成命令,這些命令協(xié)調傳輸數(shù)據(jù)路徑上的操作。調度程序模塊是一個靈活的功能塊,可以對其進行修改或替換,以支持任意調度,這些調度可以是事件驅動的,調度程序的默認實現(xiàn)是簡單循環(huán),與同一接口模塊關聯(lián)的所有端口共享同一組傳輸隊列,并顯示為操作系統(tǒng)的單個統(tǒng)一接口。通過僅更改傳輸調度程序設置,而不會影響網絡協(xié)議棧的其余部分,這可以使流在端口之間遷移或在多個端口之間實現(xiàn)負載平衡;這種動態(tài)的、調度程序定義的隊列到端口的映射是本25G/100G網卡的獨特功能,可以使人們能夠研究新的協(xié)議和網絡體系結構,包括并行網絡(例如P-FatTree和光交換網絡、RotorNet)和Opera。

接口概述

現(xiàn)在對框圖中的模塊解釋如下:
PCIe HIP:
調用的Xilinx集成在FPGA內部的PCIE資源,該資源已經固化在FPGA芯片內部,非XDMA這種由LUT和BRAM等資源搭建,這種資源具有速度更高、性能更強、不占用現(xiàn)有邏輯資源等諸多優(yōu)點,但也有缺點,那就是不帶DMA,需要自己寫DMA與之對接,根據(jù)FPGA型號不同,在UltraScale系列FPGA中是UltraScale FPGA Gen3 Integrated Block for PCI Express;在UltraScale+系列FPGA中是UltraScale+ Integrated Block (PCIE4) Express;在Virtix-7系列FPGA中是Virtix-7 FPGA Gen3 Integrated Block for PCI Express;可根據(jù)自己的FPGA型號確定;

AXIL M:
AXI lite Master接口;主要對接PCIE內核、軟件或者SDK的AXI lite Slaver接口,用作三者對網卡的管理、配置、狀態(tài)讀取等;

DMA IF:
DMA接口;由于PCIE內核是集成的,不帶DMA,也沒有官方推薦的DMA方案,所以這個接口就是自寫的DMA與PCIE內核的接口;

PTP HC:
純verilog實現(xiàn)的PTP硬件時鐘;

TXQ:傳輸隊列管理器;

TXCQ:傳輸完成隊列管理器;

RXQ:接收隊列管理器;

RXCQ:接收完成隊列管理器;

EQ:事件隊列管理器;

MAC + PHY:
以太網媒體訪問控制器(MAC)和物理接口層(PHY),即調用Xilinx GT高速接口資源+手寫的 MAC接口;

以上接口概述只是簡略說明,具體數(shù)據(jù)流向會在后面的“數(shù)據(jù)路徑以及發(fā)送和接收引擎”章節(jié)中介紹;

傳輸說明

在接收方向,傳入的數(shù)據(jù)包通過流哈希模塊確定目標接收隊列,并為接收引擎生成命令,這些命令協(xié)調對接收數(shù)據(jù)路徑的操作。由于同一接口模塊中的所有端口共享同一組接收隊列,因此不同端口上的傳入流將合并到同一組隊列中。還可以向NIC添加自定義模塊,以在傳入數(shù)據(jù)包通過PCIe總線之前對其進行預處理和過濾。NIC上的組件與多個不同的接口互連,包括AXI lite,AXI流和用于DMA操作的自定義分段存儲器接口,這將在后面討論。AXI lite用于從驅動程序到NIC的控制路徑。它用于初始化和配置NIC組件,并在發(fā)送和接收操作期間控制隊列指針。AXI stream接口用于在NIC內傳輸打包數(shù)據(jù),包括PCIe傳輸層數(shù)據(jù)包(TLP)和以太網幀。分段存儲器接口用于將PCIe DMA接口連接到NIC數(shù)據(jù)路徑以及描述符和完成處理邏輯。大部分NIC邏輯都運行在PCIe用戶時鐘域中,對于所有當前的設計變體,名義上為250 MHz。異步FIFO用于與MAC接口,這些MAC在串行器中運行,以適當?shù)匕l(fā)送和接收時鐘域-10G為156.25 MHz,25G為390.625 MHz,100G為322.266 MHz。以下各節(jié)描述了NIC中的幾個關鍵功能塊。

PCIe 內核

NIC網卡與主機交互的部分為PCIe,調用的Xilinx集成在FPGA內部的PCIE資源,該資源已經固化在FPGA芯片內部,非XDMA這種由LUT和BRAM等資源搭建,這種資源具有速度更高、性能更強、不占用現(xiàn)有邏輯資源等諸多優(yōu)點,但也有缺點,那就是不帶DMA,需要自己寫DMA與之對接,根據(jù)FPGA型號不同,在UltraScale系列FPGA中是UltraScale FPGA Gen3 Integrated Block for PCI Express;在UltraScale+系列FPGA中是UltraScale+ Integrated Block (PCIE4) Express;在Virtix-7系列FPGA中是Virtix-7 FPGA Gen3 Integrated Block for PCI Express;可根據(jù)自己的FPGA型號確定;以工程1為例,IP在代碼中的位置和配置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
我的FPGA板卡性能很高,所以直接使用PCIE3.0 X8模式,速率直接干到單Line 8G;

高性能 DMA

由于PCIE內核是集成的,不帶DMA,也沒有官方推薦的DMA方案,所以這個接口就是自寫的DMA與PCIE內核的接口;純verilog編寫的DMA控制器實現(xiàn)PCIE數(shù)據(jù)的搬運工作;以工程1為例,該模塊在代碼中的位置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

AXI總線接口

AXIL M:AXI lite master;即AXI-Lite總線主機,因為PCIE IP有AXI-Lite配置接口,這里屬于掛載總線的需求,主要對接PCIE內核、軟件或者SDK的AXI lite Slaver接口,用作三者對網卡的管理、配置、狀態(tài)讀取等;;
AXI M:AXI master;即AXI-FULL總線主機,因為PCIE IP有AXI用戶接口,這里屬于掛載總線的需求;
以工程1為例,該模塊在代碼中的位置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

PTP硬件時鐘

純verilog實現(xiàn)的PTP硬件時鐘;PTP(Precision Time Protocol) 是一個通過網絡同步時鐘的一個協(xié)議。當硬件支持時,PTP 精度能達到亞微秒,比 NTP(Network Time Protocol)精度更高;本設計顯然是支持的;以工程1為例,代碼位置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

流水線隊列管理

本100G網卡NIC和驅動程序之間的數(shù)據(jù)包數(shù)據(jù)通信通過描述符和完成隊列進行調解。描述符隊列形成主機到NIC的通信通道,承載有關各個數(shù)據(jù)包在系統(tǒng)內存中存儲位置的信息。完成隊列構成了NIC到主機的通信通道,其中包含有關已完成的操作和關聯(lián)的元數(shù)據(jù)的信息。描述符和完成隊列被實現(xiàn)為駐留在DMA可訪問的系統(tǒng)內存中的環(huán)形緩沖區(qū),而NIC硬件則維護必要的隊列狀態(tài)信息。此狀態(tài)信息包括指向環(huán)形緩沖區(qū)DMA地址的指針,環(huán)形緩沖區(qū)的大小,生產者和使用者指針以及對關聯(lián)的完成隊列的引用。每個隊列所需的描述符狀態(tài)適合128位。

本100G網卡NIC的隊列管理邏輯必須能夠有效地存儲和管理數(shù)千個隊列的狀態(tài)。這意味著隊列狀態(tài)必須完全存儲在FPGA的Block RAM(BRAM)或Ultra RAM(URAM)中。由于需要128位RAM,并且URAM塊為72x4096,因此存儲4096個隊列的狀態(tài)僅需要2個URAM實例。利用 URAM 實例可以將隊列管理邏輯擴展到每個接口至少處理 32768 個隊列。

為了支持高吞吐量,本100G網卡NIC必須能夠并行處理多個描述符。因此,隊列管理邏輯必須跟蹤多個正在進行的操作,并在操作完成時向驅動程序報告更新的隊列指針。跟蹤進程中操作所需的狀態(tài)比描述符狀態(tài)小得多,因此可以將其存儲在觸發(fā)器和分布式RAM中。

本100G網卡NIC設計使用兩個隊列管理器模塊:queue_manager用于管理主機到NIC的描述符隊列,而cpl_queue_manager用于管理NIC到主機的完成隊列。除了指針處理,填充處理和門鈴/事件生成方面的一些細微差別外,這些模塊相似。由于相似之處,本節(jié)將僅討論queue_manager模塊的操作。

用于存儲隊列狀態(tài)信息的BRAM或URAM陣列對于每個讀取操作都需要幾個延遲周期,因此queue_manager是使用流水線結構構建的,以促進多個并發(fā)操作。流水線支持四種不同的操作:寄存器讀取,寄存器寫入,出隊/入隊請求和出隊/入隊提交。通過AXI lite接口進行的寄存器訪問操作使驅動程序可以初始化隊列狀態(tài),并提供指向已分配的主機內存的指針,以及在正常操作期間訪問生產者和使用者指針。以工程1為例,queue_manager模塊和cpl_queue_manager模塊在代碼中的位置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
實際上,NIC中為了提高數(shù)據(jù)帶寬利用率,幾乎所有的模塊都采用了流水線處理方式來促進高并發(fā)。本節(jié)以隊列管理模塊來介紹基于操作表和操作指針的流水線設計思路。

本100G網卡NIC的隊列管理邏輯必須能夠有效地存儲和管理數(shù)千個隊列的狀態(tài)。為了支持高吞吐量,NIC必須能夠并行處理多個描述符。因此,隊列管理邏輯必須跟蹤多個正在進行的操作,并在操作完成時向驅動程序報告更新的隊列指針。NIC的操作表項包含激活和提交標志、所屬隊列號、和影子指針,操作指針包括操作表開始指針和操作表提交指針,通過不同的指針對操作表不同字段的索引就可以跟蹤當前進行中的不同操作項目進展到哪一個步驟,從而可以觸發(fā)流水操作。更詳細的來說,當隊列管理接收到出隊請求時將命令放置到Pipeline同時觸發(fā)隊列消息,當命令到達處理周期時,對應隊列的信息已經被索引到,此時可以進行處理,如果出隊被允許,必要的信息會被記錄到操作表,處理邏輯只需要不斷寫入操作表并更新操作指針,可以認為出隊邏輯在處理操作表的表頭,操作被提交時會觸發(fā)提交邏輯,提交邏輯處理操作表末并合理的釋放操作表。需要注意的是,操作表只跟蹤正在進行中的處理進程,因此不需要設置太大。它和隊列管理的信息RAM構成了一個雙向鏈表,即隊列信息中需要存入為該隊列服務的最新的操作表項索引,用于維護正確的影子指針。其原理框圖如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

發(fā)送調度程序

本100G網卡NIC中使用的默認傳輸調度程序是在tx_scheduler_rr模塊中實現(xiàn)的簡單循環(huán)調度程序。調度器向發(fā)送引擎發(fā)送命令,從NIC傳輸隊列中啟動傳輸操作。循環(huán)調度器包含所有隊列的基本隊列狀態(tài),一個FIFO用于存儲當前活動隊列并執(zhí)行循環(huán)調度,一個操作表用于跟蹤進程中的傳輸操作。與隊列管理邏輯類似,循環(huán)傳輸調度程序還將隊列狀態(tài)信息存儲在FPGA上的BRAM或URAM中,以便可以擴展以支持大量隊列。傳輸調度程序還使用處理流水線來隱藏內存訪問延遲。以工程1為例,tx_scheduler_rr模塊在代碼中的位置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
傳輸調度器模塊具有四個主要接口:AXI lite寄存器接口和三個stream接口。AXI lite接口允許驅動程序更改調度程序參數(shù)并啟用/禁用隊列。當驅動程序將數(shù)據(jù)包排隊發(fā)送時,第一個流接口從隊列管理邏輯提供門鈴事件。第二個流接口將由調度器生成的傳輸命令攜帶到發(fā)送引擎。每個命令都包含要發(fā)送的隊列索引以及用于跟蹤進程中操作的標簽。最終的流接口將傳輸操作狀態(tài)信息返回給調度程序。狀態(tài)信息會通知調度程序已傳輸數(shù)據(jù)包的長度,或者是否由于隊列為空或禁用而導致傳輸操作失敗。

傳輸調度程序模塊可以擴展或替換以實現(xiàn)任意調度算法。這使本25G/100G網卡可用作評估實驗調度算法的平臺,包括SENIC、Carousel、PIEO和Loom中提出的算法。還可能向發(fā)射調度器模塊提供其他輸入,包括來自接收路徑的反饋,這些輸入可用于實現(xiàn)新協(xié)議和擁塞控制技術,例如NDP和HPCC。將調度程序連接到PTP硬件時鐘可用于支持TDMA,TDMA可用于實現(xiàn)RotorNet 、Opera和其他電路交換體系結構。

端口和接口

本100G網卡的獨特體系結構特征是端口和網絡接口之間的分隔,因此多個端口可以與同一接口關聯(lián)。當前的大多數(shù)NIC每個接口支持一個端口,如下圖a所示:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
當網絡協(xié)議棧將數(shù)據(jù)包排隊以便在網絡接口上傳輸時,數(shù)據(jù)包將通過與該接口關聯(lián)的網絡端口注入網絡。但是,在本設計中,每個接口都可以關聯(lián)多個端口,因此可以在出隊時由硬件決定將數(shù)據(jù)包注入到網絡中的哪個端口,如上圖b所示。

與同一網絡接口模塊關聯(lián)的所有端口共享同一組傳輸隊列,并顯示為操作系統(tǒng)的單個統(tǒng)一接口。這樣,通過僅更改傳輸調度程序設置,就可以在端口之間遷移流或在多個端口之間實現(xiàn)負載平衡,而不會影響其余的網絡協(xié)議棧。動態(tài)的,由調度程序定義的隊列到端口的映射使人們能夠研究新的協(xié)議和網絡體系結構,包括諸如P-FatTree的并行網絡以及諸如RotorNet和Opera的光交換網絡。

數(shù)據(jù)路徑以及發(fā)送和接收引擎

本100G網卡在數(shù)據(jù)路徑中同時使用了內存映射接口和流接口。AXI stream用于在端口DMA模塊,以太網MAC,校驗和與哈希計算模塊之間傳輸以太網數(shù)據(jù)包數(shù)據(jù)。AXI stream還用于將PCIe硬IP內核連接到PCIe AXI lite主模塊和PCIe DMA接口模塊。定制的分段存儲器接口用于將PCIe DMA接口模塊,端口DMA模塊以及描述符和完成處理邏輯連接到內部暫存器RAM。

AXI stream接口的寬度由所需帶寬確定。除以太網MAC外,核心數(shù)據(jù)路徑邏輯完全在250 MHz PCIe用戶時鐘域中運行。因此,到PCIe硬IP內核的AXI流接口必須與硬核接口寬度匹配-PCIe Gen 3 x8為256位,PCIe Gen 3 x16為512位。在以太網端,接口寬度與MAC接口寬度匹配,除非250 MHz時鐘太慢而無法提供足夠的帶寬。對于10G以太網,MAC接口是156.25 MHz的64位,可以以相同的寬度連接到250 MHz的時鐘域。對于25G以太網,MAC接口在390.625 MHz時為64位,因此必須轉換為128位才能在250 MHz時提供足夠的帶寬。對于100G以太網,本25G/100G網卡在Ultrascale Plus FPGA上使用Xilinx 100G硬CMAC內核。MAC接口在322.266 MHz時為512位,它以512位在250 MHz時鐘域上連接,因為它需要以大約195 MHz的頻率運行才能提供100Gbps。

本100G網卡NIC數(shù)據(jù)路徑的框圖如下圖所示:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
它是前面的第4章節(jié)詳細設計方案圖的簡化版本。PCIe硬IP內核(PCIe HIP)將NIC連接到主機。兩個AXI stream接口將PCIe DMA接口模塊連接到PCIe硬IP內核。一個接口用于讀寫請求,一個接口用于讀取數(shù)據(jù)。然后,PCIe DMA接口模塊通過一組DMA接口多路復用器連接到描述符獲取模塊,完成寫入模塊,端口暫存RAM模塊以及RX和TX引擎。在朝向DMA接口的方向上,多路復用器組合了來自多個源的DMA傳輸命令。在相反的方向上,它們路由傳輸狀態(tài)響應。它們還管理分段存儲器接口以進行讀取和寫入。頂層多路復用器將描述符流量與分組數(shù)據(jù)流量結合在一起,為描述符流量提供更高的優(yōu)先級。接下來,一對多路復用器組合來自多個接口模塊的流量。最后,每個接口模塊內的一個附加多路復用器將來自多個端口實例的分組數(shù)據(jù)流量組合在一起。

發(fā)送引擎和接收引擎負責協(xié)調傳輸和接收數(shù)據(jù)包所需的操作。發(fā)送和接收引擎可以處理多個正在進行的數(shù)據(jù)包,以實現(xiàn)高吞吐量。如第4章節(jié)詳細設計方案圖所示,發(fā)送和接收引擎連接到發(fā)送和接收數(shù)據(jù)路徑中的幾個模塊,包括端口DMA模塊以及哈希和校驗和卸載模塊,以及描述符和完成處理邏輯以及時間戳接口模塊、以太網MAC模塊。

發(fā)送引擎負責協(xié)調數(shù)據(jù)包的傳輸操作。發(fā)送引擎處理來自傳輸調度程序的特定隊列的傳輸請求。使用PCIe DMA引擎進行低級處理后,數(shù)據(jù)包將通過傳輸校驗和模塊,MAC和PHY。一旦發(fā)送了數(shù)據(jù)包,發(fā)送引擎將從MAC接收PTP時間戳,建立完成記錄,并將其傳遞給完成寫入模塊。

與發(fā)送引擎類似,接收引擎負責協(xié)調數(shù)據(jù)包的接收操作。傳入的數(shù)據(jù)包通過PHY和MAC。在包括哈希和時間戳的底層處理之后,接收引擎將向PCIe DMA引擎發(fā)出一個或多個寫請求,以將數(shù)據(jù)包數(shù)據(jù)寫出到主機內存中。寫操作完成后,接收引擎將構建一個完成記錄,并將其傳遞給完成寫模塊。

描述符讀取和完成寫入模塊的操作類似于發(fā)送和接收引擎。這些模塊處理來自發(fā)送和接收引擎的描述符/完成讀/寫請求,向隊列管理器發(fā)出入隊/出隊請求,以獲取主機內存中的隊列元素地址,然后向PCIe DMA接口發(fā)出請求以傳輸數(shù)據(jù)。完成寫入模塊還負責通過將發(fā)送和接收完成隊列排隊在適當?shù)氖录犃兄胁懗鍪录涗泚硖幚硎录?/p>

分段內存接口

對于PCIe上的高性能DMA,本設計使用自定義分段存儲器接口。該接口被分成最大128位的段,并且整體寬度是PCIe硬IP內核的AXI流接口寬度的兩倍。例如,將PCIe Gen 3 x16與PCIe硬核中的512位AXI流接口一起使用的設計將使用1024位分段接口,該接口分成8個段,每個段128位。與使用單個AXI接口相比,該接口提供了改進的“阻抗匹配”,從而消除了DMA引擎中的對齊和互連邏輯中的仲裁,從而消除了背壓,從而提高了PCIe鏈路利用率。具體地說,該接口保證DMA接口可以在每個時鐘周期執(zhí)行全寬度,未對齊的讀取或寫入。此外,使用簡單的雙端口RAM(專用于在單個方向上移動的流量)消除了讀寫路徑之間的爭用。

除了使用三個接口(而不是五個)之外,每個網段的運行方式均與AXI lite類似。一個通道提供寫地址和數(shù)據(jù),一個通道提供讀地址,一個通道提供讀數(shù)據(jù)。與AXI不同,不支持突發(fā)和重新排序,從而簡化了接口邏輯?;ミB組件(多路復用器)負責維護操作的順序,即使在訪問多個RAM時也是如此。這些段通過單獨的流控制連接和互連排序邏輯的單獨實例彼此完全獨立地運行。另外,操作是基于單獨的選擇信號而不是通過地址解碼進行路由的。此功能消除了分配地址的需要,并允許使用可參數(shù)化的互連組件,這些組件以最少的配置適當?shù)芈酚刹僮鳌?/p>

字節(jié)地址被映射到分段的接口地址上,最低的地址位確定段中的字節(jié)通道,接下來的位選擇段,最高的位確定該段的字地址。例如,在一個1024位分段接口中,分成8個128位段,最低的4個地址位將確定段中的字節(jié)通道,接下來的3位將確定該段。其余位確定該段的地址總線。

100G-PHY 層

本設計使用的是QSFP,一個QSFP包含4路Line,每條Line可跑25G,4條Line線速率共計100G;PHY層就是有4路GTY組成,每路GTY配置為GTY-CAUI_4*協(xié)議,編解碼類型設置為Raw;內部數(shù)據(jù)位寬為80bit,以工程1為例,PHY層代碼位置如下:這里命名為100G-PHY 層是因為4路25G的GTY共計100G;
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
GTY 配置分別如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

100G-MAC 層

當4 Line線速率共計100G時,數(shù)據(jù)收發(fā)將變得不可控,一是參考時鐘很快,而是數(shù)據(jù)對齊變得很難,基于此,我們例化了Xilinx官方的 UltraScale+ 100G Ethernet Subsystem IP核,該IP可以處理100G的高速數(shù)據(jù),其內部十分復雜,用戶不必太過關心,只需知道其用戶接口時序和配置接口即可使用,雖如此,對齊使用依然是很難的,但我們已經寫好了與之對接的收發(fā)處理模塊;對于接收,需要在100G Ethernet 輸出數(shù)據(jù)口加上PTP硬件時鐘標記,以便于解碼和對齊;對于發(fā)送要對待發(fā)送的數(shù)據(jù)進行幀重組;以工程1為例,100G-MAC代碼位置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
UltraScale+ 100G Ethernet Subsystem 配置如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

Linux 下的驅動編譯、加載、測試

本設計只能在Linux環(huán)境下運行,提供驅動源碼和測試源碼,提供驅動編譯、加載、測試簡潔版教程,資料已經打包好,截圖如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

5、vivado工程1–詳解

開發(fā)板FPGA型號:Xilinx Virtex UltraScale+ XCVU3P–xcvu3p-ffvc1517-2-i;
開發(fā)環(huán)境:Vivado2022.2;
輸入/輸出:PCIE/SFP光口
應用:NIC-100G 網卡應用
工程代碼架構如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
綜合編譯完成后的FPGA資源消耗和功耗預估如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

6、vivado工程2–詳解

開發(fā)板FPGA型號:Xilinx Zynq UltraScale+ XCZU19EG–xczu19eg-ffvd1760-2-e;
開發(fā)環(huán)境:Vivado2022.2;
輸入/輸出:PCIE/QSFP光口
應用:NIC-100G 網卡應用
工程代碼架構如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
綜合編譯完成后的FPGA資源消耗和功耗預估如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

7、工程移植說明

vivado版本不一致處理

1:如果你的vivado版本與本工程vivado版本一致,則直接打開工程;
2:如果你的vivado版本低于本工程vivado版本,則需要打開工程后,點擊文件–>另存為;但此方法并不保險,最保險的方法是將你的vivado版本升級到本工程vivado的版本或者更高版本;
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
3:如果你的vivado版本高于本工程vivado版本,解決如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
打開工程后會發(fā)現(xiàn)IP都被鎖住了,如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
此時需要升級IP,操作如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA

FPGA型號不一致處理

如果你的FPGA型號與我的不一致,則需要更改FPGA型號,操作如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
更改FPGA型號后還需要升級IP,升級IP的方法前面已經講述了;

其他注意事項

1:由于每個板子的DDR不一定完全一樣,所以MIG IP需要根據(jù)你自己的原理圖進行配置,甚至可以直接刪掉我這里原工程的MIG并重新添加IP,重新配置;
2:根據(jù)你自己的原理圖修改引腳約束,在xdc文件中修改即可;
3:純FPGA移植到Zynq需要在工程中添加zynq軟核;

8、上板調試驗證

準備工作

需要準備以下物品:
1:FPGA開發(fā)板;
2:QSFP光口、光纖;
3:主機,Linux系統(tǒng),最好用服務器,普通臺式機性能太差;
連接如下,然后上電下載bit:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA
上板調試需要在Linux系統(tǒng)下進行,目前已經測試過了,但速率跑不到25G,在14G左右,關于上板測試方法,請參考前面的“Linux 下的驅動編譯、加載、測試”章節(jié);

9、福利:工程代碼的獲取

福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網盤鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網盤資料如下:
FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持,菜鳥FPGA以太網專題,菜鳥FPGA PCIE通信專題,FPGA GT 高速接口,fpga開發(fā),udp,網絡協(xié)議,NIC,網卡,RDMA文章來源地址http://www.zghlxwxcb.cn/news/detail-752429.html

到了這里,關于FPGA實現(xiàn) NIC 100G 網卡,UltraScale+ 100G Ethernet Subsystem驅動,提供工程源碼和技術支持的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • iperf3 測試100G網卡帶寬性能

    iperf3 測試100G網卡帶寬性能

    iperf3 作為iperf 系列網絡測試工具新一代工具,開發(fā)團隊重寫代碼使之有全新的實現(xiàn)方式,更少的代碼量,更加小巧,但這也導致了其與iperf工具前后不兼容,一些命令執(zhí)行具有差異化,而這些差異在大帶寬網卡性能測試時則更加明顯,現(xiàn)記錄整理以供大家參考。 iperf 帶寬性能

    2023年04月08日
    瀏覽(16)
  • FPGA實現(xiàn)10G萬兆網UDP通信 10G Ethernet Subsystem替代網絡PHY芯片 提供工程源碼和技術支持

    FPGA實現(xiàn)10G萬兆網UDP通信 10G Ethernet Subsystem替代網絡PHY芯片 提供工程源碼和技術支持

    目前網上的fpga實現(xiàn)udp基本生態(tài)如下: 1:verilog編寫的udp收發(fā)器,但不帶ping功能,這樣的代碼功能正常也能用,但不帶ping功能基本就是廢物,在實際項目中不會用這樣的代碼,試想,多機互聯(lián),出現(xiàn)了問題,你的網卡都不帶ping功能,連基本的問題排查機制都不具備,這樣的代

    2024年02月05日
    瀏覽(23)
  • FPGA基于AXI 1G/2.5G Ethernet Subsystem實現(xiàn)UDP通信DMA傳輸 提供工程源碼和技術支持

    FPGA基于AXI 1G/2.5G Ethernet Subsystem實現(xiàn)UDP通信DMA傳輸 提供工程源碼和技術支持

    目前網上的fpga實現(xiàn)udp基本生態(tài)如下: 1:verilog編寫的udp收發(fā)器,但不帶ping功能,這樣的代碼功能正常也能用,但不帶ping功能基本就是廢物,在實際項目中不會用這樣的代碼,試想,多機互聯(lián),出現(xiàn)了問題,你的網卡都不帶ping功能,連基本的問題排查機制都不具備,這樣的代

    2024年02月10日
    瀏覽(57)
  • FPGA實現(xiàn) RDMA NIC 10G UDP協(xié)議棧網卡,純verilog代碼編寫,提供工程源碼和技術支持

    FPGA實現(xiàn) RDMA NIC 10G UDP協(xié)議棧網卡,純verilog代碼編寫,提供工程源碼和技術支持

    FPGA實現(xiàn) NIC 10G 網卡,純verilog代碼編寫,提供3套工程源碼和技術支持 網絡接口控制器(NIC)是計算機與網絡進行交互的網關。NIC構成了軟件協(xié)議棧和網絡之間的橋梁,該橋梁的功能定義了網絡接口。網絡接口的功能以及這些功能的實現(xiàn)都在迅速發(fā)展。這些變化是由提高線速和

    2024年02月10日
    瀏覽(83)
  • xilinx rdma實現(xiàn)100G以太網開發(fā)筆記,支持標準ROCE V2協(xié)議,與PC大帶寬通信,支持麥樂斯全系列網卡

    xilinx rdma實現(xiàn)100G以太網開發(fā)筆記,支持標準ROCE V2協(xié)議,與PC大帶寬通信,支持麥樂斯全系列網卡

    背景 隨著現(xiàn)代存儲需求越來越快,對數(shù)據(jù)的傳輸要求也越來越高,萬兆網還未普及,100G以太網需求就已經出現(xiàn)了,實現(xiàn)這種方案主要還是通過FPGA或者ASIC的方式。 RDMA作為100G以太網解決方案的一個重要選擇,關于RDMA的概念可參考博客https://blog.csdn.net/bandaoyu/article/details/11285

    2024年02月12日
    瀏覽(25)
  • FPGA基于SFP光口實現(xiàn)10G萬兆網UDP通信 10G Ethernet Subsystem替代網絡PHY芯片 提供工程源碼和技術支持

    FPGA基于SFP光口實現(xiàn)10G萬兆網UDP通信 10G Ethernet Subsystem替代網絡PHY芯片 提供工程源碼和技術支持

    目前網上的fpga實現(xiàn)udp基本生態(tài)如下: 1:verilog編寫的udp收發(fā)器,但不帶ping功能,這樣的代碼功能正常也能用,但不帶ping功能基本就是廢物,在實際項目中不會用這樣的代碼,試想,多機互聯(lián),出現(xiàn)了問題,你的網卡都不帶ping功能,連基本的問題排查機制都不具備,這樣的代

    2024年02月01日
    瀏覽(18)
  • Xilinx Artix7-100T低端FPGA解碼MIPI視頻,基于MIPI CSI-2 RX Subsystem架構實現(xiàn),提供工程源碼和技術支持

    Xilinx Artix7-100T低端FPGA解碼MIPI視頻,基于MIPI CSI-2 RX Subsystem架構實現(xiàn),提供工程源碼和技術支持

    Xilinx Artix7-100T低端FPGA解碼MIPI視頻,基于MIPI CSI-2 RX Subsystem架構實現(xiàn),提供工程源碼和技術支持 FPGA圖像采集領域目前協(xié)議最復雜、技術難度最高的應該就是MIPI協(xié)議了,MIPI解碼難度之高,令無數(shù)英雄競折腰,以至于Xilinx官方不得不推出專用的IP核供開發(fā)者使用,不然太高端的操

    2024年02月05日
    瀏覽(18)
  • Python實現(xiàn)讀取超100G的數(shù)據(jù)文件

    前言 本文是該專欄的第42篇,后面會持續(xù)分享python的各種干貨知識,值得關注。 在項目工作中,難免會遇到需要你通過python去讀取100G甚至超過100G的數(shù)據(jù)文件。對于小數(shù)據(jù)的文件來說,相信很多同學都可以輕松解決。但對于大數(shù)據(jù)文件,類似讀取100G的數(shù)據(jù)文件甚至會對電腦的

    2024年01月19日
    瀏覽(20)
  • Zynq-7000系列FPGA使用 Video Processing Subsystem 實現(xiàn)圖像縮放,提供工程源碼和技術支持

    Zynq-7000系列FPGA使用 Video Processing Subsystem 實現(xiàn)圖像縮放,提供工程源碼和技術支持

    Zynq-7000系列FPGA使用 Video Processing Subsystem 實現(xiàn)圖像縮放,提供工程源碼和技術支持 沒玩過圖像縮放都不好意思說自己玩兒過FPGA,這是CSDN某大佬說過的一句話,鄙人深信不疑。。。 目前市面上主流的FPGA圖像縮放方案如下: 1:Xilinx的HLS方案,該方案簡單,易于實現(xiàn),但只能用

    2024年02月05日
    瀏覽(25)
  • FPGA純verilog實現(xiàn)10G UDP協(xié)議棧,XGMII接口UltraScale GTY驅動,提供工程源碼和技術支持

    FPGA純verilog實現(xiàn)10G UDP協(xié)議棧,XGMII接口UltraScale GTY驅動,提供工程源碼和技術支持

    目前網上的fpga實現(xiàn)udp基本生態(tài)如下: 1:verilog編寫的udp收發(fā)器,但中間的FIFO或者RAM等調用了IP,或者不帶ping功能,這樣的代碼功能正常也能用,但不帶ping功能基本就是廢物,在實際項目中不會用這樣的代碼,試想,多機互聯(lián),出現(xiàn)了問題,你的網卡都不帶ping功能,連基本的

    2024年02月14日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包