今天介紹兩個(only two)網絡相關的開源項目。
Alex的verilog-ethernet之前在介紹PCIe項目時有介紹過Alex的項目,當時重點介紹了PCIe。今天主要介紹他的ethernet項目。
?介紹用于1G、10G 和 25G 數據包處理(8 位和 64 位數據路徑)的以太網相關組件的集合。包括用于處理以太網幀以及 IP、UDP 和 ARP 的模塊以及用于構建完整 UDP/IP 堆棧的組件。包括用于1G和 10G/25G 的 MAC 模塊、一個 10G/25G PCS/PMA PHY 模塊和一個 10G/25G 組合 MAC/PCS/PMA 模塊。包括用于實現需要精確時間同步的系統的各種 PTP 相關組件。還包括使用cocotbext-eth 的完整 cocotb 測試平臺代碼。
組件說明:僅對于 IP 和 ARP 支持,請使用ip_complete(1G) 或ip_complete_64 (10G/25G)。
對于 UDP、IP 和 ARP 支持,請使用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 時鐘 ( ptp_clock)、ptp_clock_cdc用于跨時鐘域傳輸 PTP 時間的 PTP 時鐘 CDC 模塊 。以及用于從 PTP 時間精確生成任意頻率的可配置 PTP 周期輸出模塊。
其中cocotbext-xxx是仿真測試模型(cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.cocotb是一套基于python的用于構建仿真及測試用例的lib庫)。
已經驗證的板卡
基本市場上官方的板卡都有測試,從Xilinx S6到ZCU106,Intel Cyclone10到Stratix10 大小芯片都支持。
優秀的 Verilog/FPGA開源項目介紹(三)- 大廠的項目
其他說明README中也有模塊的說明:
以及相關接口的時序說明:
優秀的 Verilog/FPGA開源項目介紹(二)-RISC-V
測試平臺的使用也有詳細的說明。
業界第一個真正意義上開源100 Gbps NIC Corundum對于需求100G網卡的朋友,一定要看看這個開源項目,先放開源地址:
?
https://github.com/ucsdsysnet/corundum
?介紹Corundum 是一種基于 FPGA 的開源高性能 NIC。功能包括高性能數據路徑、10G/25G/100G 以太網、PCI express gen 3、定制的高性能、緊密集成的 PCIe DMA 引擎、1000+ 傳輸、接收、完成和事件隊列、分散/收集DMA、MSI 中斷、多個接口、每個接口多個端口、每個端口的傳輸調度,包括高精度 TDMA、流散列、RSS、校驗和卸載和本地 IEEE 1588 PTP 時間戳。包含一個與 Linux 網絡堆棧集成的 Linux 驅動程序。廣泛的仿真框架促進了開發和調試,該框架涵蓋了從一側的驅動程序和 PCI express 接口的仿真模型到另一側的以太網接口的整個系統。
Corundum 有幾個獨特的特征。首先,傳輸、接收、完成和事件隊列狀態高效地存儲在塊 RAM 或ultra RAM中,從而支持數以千計的可單獨控制的隊列。這些隊列與接口相關聯,每個接口可以有多個端口,每個端口都有自己獨立的調度程序。這實現了對數據包傳輸的極其細粒度的控制。結合 PTP 時間同步,這可以實現高精度 TDMA。
Corundum 還提供了一個用于實現自定義邏輯的應用程序部分。應用部分有一個用于控制的專用 PCIe BAR 和許多提供對核心數據路徑和 DMA 基礎設施的訪問的接口。
支持的板卡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)
說明這個項目很多都引用了上面《Alex的項目》,可以算是上一個項目的擴展。測試等文檔也很完全。框圖如下
責任編輯:haq
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603044 -
Verilog
+關注
關注
28文章
1351瀏覽量
110077 -
開源
+關注
關注
3文章
3323瀏覽量
42474
原文標題:優秀的 Verilog/FPGA開源項目介紹(四)- Ethernet
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論