今天介紹兩個(gè)(only two)網(wǎng)絡(luò)相關(guān)的開源項(xiàng)目。
Alex的verilog-ethernet之前在介紹PCIe項(xiàng)目時(shí)有介紹過Alex的項(xiàng)目,當(dāng)時(shí)重點(diǎn)介紹了PCIe。今天主要介紹他的ethernet項(xiàng)目。
?介紹用于1G、10G 和 25G 數(shù)據(jù)包處理(8 位和 64 位數(shù)據(jù)路徑)的以太網(wǎng)相關(guān)組件的集合。包括用于處理以太網(wǎng)幀以及 IP、UDP 和 ARP 的模塊以及用于構(gòu)建完整 UDP/IP 堆棧的組件。包括用于1G和 10G/25G 的 MAC 模塊、一個(gè) 10G/25G PCS/PMA PHY 模塊和一個(gè) 10G/25G 組合 MAC/PCS/PMA 模塊。包括用于實(shí)現(xiàn)需要精確時(shí)間同步的系統(tǒng)的各種 PTP 相關(guān)組件。還包括使用cocotbext-eth 的完整 cocotb 測(cè)試平臺(tái)代碼。
組件說明:僅對(duì)于 IP 和 ARP 支持,請(qǐng)使用ip_complete(1G) 或ip_complete_64 (10G/25G)。
對(duì)于 UDP、IP 和 ARP 支持,請(qǐng)使用udp_complete(1G) 或udp_complete_64 (10G/25G)。
1G和 10G/25G MAC 模塊頂層文件eth_mac_*,具有各種接口和帶/不帶 FIFO。10G/25G PCS/PMA PHY 模塊頂層文件是 eth_phy_10g. 10G/25G MAC/PCS/PMA組合模塊頂層文件是 eth_mac_phy_10g.
PTP 組件包括可配置的 PTP 時(shí)鐘 ( ptp_clock)、ptp_clock_cdc用于跨時(shí)鐘域傳輸 PTP 時(shí)間的 PTP 時(shí)鐘 CDC 模塊 。以及用于從 PTP 時(shí)間精確生成任意頻率的可配置 PTP 周期輸出模塊。
其中cocotbext-xxx是仿真測(cè)試模型(cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.cocotb是一套基于python的用于構(gòu)建仿真及測(cè)試用例的lib庫)。
已經(jīng)驗(yàn)證的板卡
基本市場(chǎng)上官方的板卡都有測(cè)試,從Xilinx S6到ZCU106,Intel Cyclone10到Stratix10 大小芯片都支持。
優(yōu)秀的 Verilog/FPGA開源項(xiàng)目介紹(三)- 大廠的項(xiàng)目
其他說明README中也有模塊的說明:
以及相關(guān)接口的時(shí)序說明:
優(yōu)秀的 Verilog/FPGA開源項(xiàng)目介紹(二)-RISC-V
測(cè)試平臺(tái)的使用也有詳細(xì)的說明。
業(yè)界第一個(gè)真正意義上開源100 Gbps NIC Corundum對(duì)于需求100G網(wǎng)卡的朋友,一定要看看這個(gè)開源項(xiàng)目,先放開源地址:
?
https://github.com/ucsdsysnet/corundum
?介紹Corundum 是一種基于 FPGA 的開源高性能 NIC。功能包括高性能數(shù)據(jù)路徑、10G/25G/100G 以太網(wǎng)、PCI express gen 3、定制的高性能、緊密集成的 PCIe DMA 引擎、1000+ 傳輸、接收、完成和事件隊(duì)列、分散/收集DMA、MSI 中斷、多個(gè)接口、每個(gè)接口多個(gè)端口、每個(gè)端口的傳輸調(diào)度,包括高精度 TDMA、流散列、RSS、校驗(yàn)和卸載和本地 IEEE 1588 PTP 時(shí)間戳。包含一個(gè)與 Linux 網(wǎng)絡(luò)堆棧集成的 Linux 驅(qū)動(dòng)程序。廣泛的仿真框架促進(jìn)了開發(fā)和調(diào)試,該框架涵蓋了從一側(cè)的驅(qū)動(dòng)程序和 PCI express 接口的仿真模型到另一側(cè)的以太網(wǎng)接口的整個(gè)系統(tǒng)。
Corundum 有幾個(gè)獨(dú)特的特征。首先,傳輸、接收、完成和事件隊(duì)列狀態(tài)高效地存儲(chǔ)在塊 RAM 或ultra RAM中,從而支持?jǐn)?shù)以千計(jì)的可單獨(dú)控制的隊(duì)列。這些隊(duì)列與接口相關(guān)聯(lián),每個(gè)接口可以有多個(gè)端口,每個(gè)端口都有自己獨(dú)立的調(diào)度程序。這實(shí)現(xiàn)了對(duì)數(shù)據(jù)包傳輸?shù)臉O其細(xì)粒度的控制。結(jié)合 PTP 時(shí)間同步,這可以實(shí)現(xiàn)高精度 TDMA。
Corundum 還提供了一個(gè)用于實(shí)現(xiàn)自定義邏輯的應(yīng)用程序部分。應(yīng)用部分有一個(gè)用于控制的專用 PCIe BAR 和許多提供對(duì)核心數(shù)據(jù)路徑和 DMA 基礎(chǔ)設(shè)施的訪問的接口。
支持的板卡Alpha Data ADM-PCIE-9V3 (Xilinx Virtex UltraScale+ XCVU3P)
Exablaze ExaNIC X10/Cisco Nexus K35-S (Xilinx Kintex UltraScale XCKU035)
Exablaze ExaNIC X25/Cisco Nexus K3P-S (Xilinx Kintex UltraScale+ XCKU3P)
Silicom fb2CG@KU15P (Xilinx Kintex UltraScale+ XCKU15P)
NetFPGA SUME (Xilinx Virtex 7 XC7V690T)
Xilinx Alveo U50 (Xilinx Virtex UltraScale+ XCU50)
Xilinx Alveo U200 (Xilinx Virtex UltraScale+ XCU200)
Xilinx Alveo U250 (Xilinx Virtex UltraScale+ XCU250)
Xilinx Alveo U280 (Xilinx Virtex UltraScale+ XCU280)
Xilinx VCU108 (Xilinx Virtex UltraScale XCVU095)
Xilinx VCU118 (Xilinx Virtex UltraScale+ XCVU9P)
Xilinx VCU1525 (Xilinx Virtex UltraScale+ XCVU9P)
Xilinx ZCU106 (Xilinx Zynq UltraScale+ XCZU7EV)
說明這個(gè)項(xiàng)目很多都引用了上面《Alex的項(xiàng)目》,可以算是上一個(gè)項(xiàng)目的擴(kuò)展。測(cè)試等文檔也很完全。框圖如下
責(zé)任編輯:haq
-
FPGA
+關(guān)注
關(guān)注
1643文章
21957瀏覽量
614057 -
Verilog
+關(guān)注
關(guān)注
28文章
1366瀏覽量
111812 -
開源
+關(guān)注
關(guān)注
3文章
3587瀏覽量
43473
原文標(biāo)題:優(yōu)秀的 Verilog/FPGA開源項(xiàng)目介紹(四)- Ethernet
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Open Echo:一個(gè)開源的聲納項(xiàng)目

開源項(xiàng)目!教你如何制作一個(gè)開源教育機(jī)械臂
OpenAI CEO推特投票,探討開源項(xiàng)目新方向
利用兩個(gè)元件實(shí)現(xiàn) L 型網(wǎng)絡(luò)阻抗匹配

兩個(gè)開關(guān)電源可以并聯(lián)使用嗎
單相電機(jī)兩個(gè)繞組都在定子上嗎
ad如何設(shè)置兩個(gè)元器件的距離
功放機(jī)AB兩個(gè)聲道輸出怎么接
LMK05318具有兩個(gè)頻域的超低抖動(dòng)網(wǎng)絡(luò)同步器時(shí)鐘數(shù)據(jù)表

評(píng)論