愛伊米

優秀的 VerilogFPGA開源專案介紹(四)- Ethernet

今天介紹兩個(only two)網路相關的開源專案。

優秀的 VerilogFPGA開源專案介紹(四)- Ethernet

Alex的verilog-ethernet

之前在介紹PCIe專案時有介紹過Alex的專案,當時重點介紹了PCIe。今天主要介紹他的ethernet專案。

專案地址:

https://github。com/alexforencich/verilog-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 週期輸出模組。

優秀的 VerilogFPGA開源專案介紹(四)- Ethernet

其中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 大小晶片都支援。

其他說明

README中也有模組的說明:

優秀的 VerilogFPGA開源專案介紹(四)- Ethernet

優秀的 VerilogFPGA開源專案介紹(四)- Ethernet

測試平臺的使用也有詳細的說明。

業界第一個真正意義上開源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 基礎設施的訪問的介面。

支援的板卡

說明

這個專案很多都引用了上面《Alex的專案》,可以算是上一個專案的擴充套件。測試等文件也很完全。框圖如下

優秀的 VerilogFPGA開源專案介紹(四)- Ethernet

例項使用

西安電子科技大學的潘老師也在《網路交換FPGA》公眾號中詳細介紹+使用例項這個開源的專案,具體文章請大家移步到下面連結:

本文為OpenFPGA作者原創,未經本人授權禁止轉載!

NOW

學習Xilinx FPGA最好的資料其實就是官方手冊,下表總結了部分手冊的主要介紹內容,關注我,持續更新中……