FPGA/IC优质开源项目(四)Corundum-FPGA开源项目论坛-FPGA CPLD-ChipDebug

FPGA/IC优质开源项目(四)Corundum

 

1基本介绍

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 或超 RAM 中,从而支持数以千计的单独可控队列。这些队列与接口相关联,每个接口可以有多个端口,每个端口都有自己独立的调度程序。这可以对数据包传输进行极其精细的控制。再加上 PTP 时间同步,可实现高精度 TDMA。

Corundum 还提供了一个用于实现自定义逻辑的应用程序部分。应用部分有一个用于控制的专用 PCIe BAR 和许多提供对核心数据路径和 DMA 基础设施的访问的接口。

2源文件

cmac_pad.v                         : Pad frames to 64 bytes for CMAC TX
cpl_op_mux.v                       : Completion operation mux
cpl_queue_manager.v                : Completion queue manager
cpl_write.v                        : Completion write module
desc_fetch.v                       : Descriptor fetch module
desc_op_mux.v                      : Descriptor operation mux
event_mux.v                        : Event mux
event_queue.v                      : Event queue
mqnic_core.v                       : Core logic
mqnic_core_pcie.v                  : Core logic for PCIe
mqnic_core_pcie_us.v               : Core logic for PCIe (UltraScale)
mqnic_interface.v                  : Interface
mqnic_port.v                       : Port
mqnic_ptp.v                        : PTP subsystem
mqnic_ptp_clock.v                  : PTP clock wrapper
mqnic_ptp_perout.v                 : PTP period output wrapper
mqnic_tx_scheduler_block_rr.v      : Scheduler block (round-robin)
mqnic_tx_scheduler_block_rr_tdma.v : Scheduler block (round-robin TDMA)
queue_manager.v                    : Queue manager
rx_checksum.v                      : Receive checksum offload
rx_engine.v                        : Receive engine
rx_hash.v                          : Receive hashing module
stats_collect.v                    : Statistics collector
stats_counter.v                    : Statistics counter
stats_dma_if_pcie.v                : DMA interface statistics
stats_dma_latency.v                : DMA latency measurement
stats_pcie_if.v                    : PCIe interface statistics
stats_pcie_tlp.v                   : PCIe TLP statistics
tdma_ber_ch.v                      : TDMA BER channel
tdma_ber.v                         : TDMA BER
tdma_scheduler.v                   : TDMA scheduler
tx_checksum.v                      : Transmit checksum offload
tx_engine.v                        : Transmit engine
tx_scheduler_ctrl_tdma.v           : TDMA transmit scheduler controller
tx_scheduler_rr.v                  : Round robin transmit scheduler

3框图

Corundum框图

560deb9eb0210226

 

Corundum序列管理模块

197e0c011b210205

 

Corundum DMA控制模块

 

170a62ae4d210132

 

Corundum 调度程序块ad56c19340210142

 

4仓库地址

https://github.com/corundum/corundum

5总结

这个开源项目质量很高,网上也有不少测试的朋友.

请登录后发表评论

    没有回复内容