0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

两个网络相关的开源项目详解

OpenFPGA 来源:OpenFPGA 作者:碎碎思 2021-10-27 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天介绍两个(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库)。

已经验证的板卡

0a6c9b14-364c-11ec-82a8-dac502259ad0.png

基本市场上官方的板卡都有测试,从Xilinx S6到ZCU106,Intel Cyclone10到Stratix10 大小芯片都支持。

优秀的 Verilog/FPGA开源项目介绍(三)- 大厂的项目

其他说明README中也有模块的说明:

0ad87b2c-364c-11ec-82a8-dac502259ad0.png

以及相关接口的时序说明:

优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V

0b38e4b2-364c-11ec-82a8-dac502259ad0.png

测试平台的使用也有详细的说明。

业界第一个真正意义上开源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
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630194
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114129
  • 开源
    +关注

    关注

    3

    文章

    4031

    浏览量

    45563

原文标题:优秀的 Verilog/FPGA开源项目介绍(四)- Ethernet

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙项目达成开源孵化目标顺利毕业

    11月21日,2025开放原子开发者大会在北京隆重启幕。作为本次大会的重磅环节和核心焦点之一,在大会开幕式上,开源鸿蒙项目达成开源孵化目标、顺利毕业,这是项目
    的头像 发表于 11-25 17:36 879次阅读

    开放原子开源基金会与11项目完成捐赠签约

    11月21日,在2025开放原子开发者大会开幕式上,开放原子开源基金会与11开源项目完成捐赠签约,涵盖人工智能、量子计算、机器人、操作系统、物联网等多个关键技术方向。此举既是基金会完
    的头像 发表于 11-25 17:26 586次阅读

    FreeRtos 能否同时使用两个 CPU?

    的情况下,CM0 更愿意专门用于管理外设。 - 是否有在 CM0 和 CM4 中同时运行代码的简单示例或教程? - FreeRtos 能否同时使用两个 CPU?
    发表于 11-11 08:28

    硬件SPI两个CS操作两个norflash,怎么互斥操作两个norflash?

    硬件SPI两个CS操作两个norflash,怎么互斥操作两个norflash,有一norflash被模拟成U盘,会在中断中操作spi。
    发表于 09-26 06:18

    基本半导体连获两个行业奖项

    近日,基本半导体凭借在碳化硅模块领域的突出表现,连获“国产SiC模块TOP企业奖”和“年度优秀功率器件产品奖”两个行业奖项。
    的头像 发表于 09-05 16:31 886次阅读

    开放原子开源基金会发布150余开源项目应用案例

    近日,在2025开放原子开源生态大会开幕式上,开放原子开源基金会发布了150余开源项目应用案例,涵盖中国南方电网、中国移动、京东集团、安贞
    的头像 发表于 07-28 17:10 979次阅读

    看到STM8L152用两个IO用两个或非门检测两个通断,是什么原理呢?

    图中两个按键开关是两个干簧管,为什么不直接对GND设计来检测这个干簧管通断呢? 这样设计的原理是什么?
    发表于 06-12 06:25

    开源项目!Open Echo:一开源的声纳项目

    “ 这是一还在迭代中的项目开源的回声测深仪/水深测量仪/声呐系统,适用于水文测绘及科研用途。基于Arduino平台开发并具备良好兼容性 ” Open Echo 概览 作为持续迭代的开源
    发表于 03-20 13:37

    Open Echo:一开源的声纳项目

    “  这是一还在迭代中的项目开源的回声测深仪/水深测量仪/声呐系统,适用于水文测绘及科研用途。基于Arduino平台开发并具备良好兼容性  ”   Open Echo 概览 作为持续迭代
    的头像 发表于 03-20 11:14 2014次阅读
    Open Echo:一<b class='flag-5'>个</b><b class='flag-5'>开源</b>的声纳<b class='flag-5'>项目</b>

    开源项目!教你如何制作一开源教育机械臂

    128x64实时反馈。 经过多次失败的测试和设计迭代,Pedro 2.0终于在2024年发布,具有改进的功能,经过彻底的测试和验证。 Pedro 2.0是一完全开源项目,旨在让每个人都可以访问
    发表于 03-10 11:22

    OpenAI CEO推特投票,探讨开源项目新方向

    的广泛关注。 投票的核心焦点在于OpenAI下一开源项目的方向选择。具体而言,网友们需要在两个选项之间做出抉择:一是开发一虽然规模较小,
    的头像 发表于 02-19 14:09 592次阅读

    两个不同频率晶振靠的近会怎样

    晶振的振荡本质上是一种机械振动(在压电晶体层面)。当两个晶振靠得很近时,它们的机械振动可能会相互影响。一晶振的振动可能会通过电路板或者外壳等介质传递给另一晶振,从而改变另一晶振的
    的头像 发表于 01-20 13:55 2017次阅读
    <b class='flag-5'>两个</b>不同频率晶振靠的近会怎样

    开放原子开源基金会与三开源项目举行捐赠签约仪式

    近日,在2024开放原子开发者大会暨首届开源技术学术大会开幕式上,开放原子开源基金会秘书长助理李博与openKylin、EasyAda、KWDB开源项目捐赠方代表共同签约。
    的头像 发表于 12-23 11:29 993次阅读

    利用两个元件实现 L 型网络阻抗匹配

    本文要点L型网络阻抗匹配是一简单的滤波器,由两个电抗元件组成。L型滤波器具有较宽的带宽,但在载波频率下响应速度缓慢。设计人员可以组合多个L型滤波器,实现更稳健的响应以及更高的品质因数。阻抗匹配
    的头像 发表于 12-20 18:57 2087次阅读
    利用<b class='flag-5'>两个</b>元件实现 L 型<b class='flag-5'>网络</b>阻抗匹配

    使用TPS546C23两个独立的单相评估模块

    电子发烧友网站提供《使用TPS546C23两个独立的单相评估模块.pdf》资料免费下载
    发表于 12-07 14:08 0次下载
    使用TPS546C23<b class='flag-5'>两个</b>独立的单相评估模块