mirror of
https://github.com/corundum/corundum.git
synced 2025-01-16 08:12:53 +08:00
Update readme
This commit is contained in:
parent
afbec29b52
commit
3e0c23f24f
39
README.md
39
README.md
@ -4,7 +4,33 @@ GitHub repository: https://github.com/ucsdsysnet/corundum
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
Corundum is an open source, high performance FPGA based NIC.
|
Corundum is an open-source, high-performance FPGA-based NIC. Features include
|
||||||
|
a high performance datapath (256 bit AXI), 10G Ethernet, PCI express gen 3, a
|
||||||
|
custom, high performance, tightly-integrated PCIe DMA engine, many (1000+)
|
||||||
|
transmit, receive, completion, and event queues, MSI interrupts, multiple
|
||||||
|
interfaces, multiple ports per interface, per-port transmit scheduling
|
||||||
|
including high precision TDMA, checksum offloading, and native IEEE 1588 PTP
|
||||||
|
timestamping. A Linux driver is included that integrates with the Linux
|
||||||
|
networking stack. Development and debugging is facilitated by an extensive
|
||||||
|
simulation framwork that covers the entire system from a simulation model of
|
||||||
|
the driver and PCI express interface on one side to the Ethernet interfaces on
|
||||||
|
the other side.
|
||||||
|
|
||||||
|
Corundum has several unique architectural features. First, transmit, receive,
|
||||||
|
completion, and event queue states are stored efficiently in block RAM or
|
||||||
|
ultra RAM, enabling support for thousands of individually-controllable
|
||||||
|
queues. These queues are associated with interfaces, and each interface can
|
||||||
|
have multiple ports, each with its own independent scheduler. This enables
|
||||||
|
extremely fine-grained control over packet transmission. Coupled with PTP time
|
||||||
|
syncronization, this enables high precision TDMA.
|
||||||
|
|
||||||
|
Corundum currently supports Xilinx Ultrascale and Ultrascale Plus series
|
||||||
|
devices. Desgins are included for the following FPGA boards:
|
||||||
|
|
||||||
|
* Alpha Data ADM-PCIE-9V3 (Xilinx Virtex Ultrascale Plus XCVU3P)
|
||||||
|
* Exablaze ExaNIC X10 (Xilinx Kintex Ultrascale XCKU035)
|
||||||
|
* Xilinx VCU108 (Xilinx Virtex Ultrascale XCVU095)
|
||||||
|
* Xilinx VCU118 (Xilinx Virtex Ultrascale Plus XCVU9P)
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
@ -119,3 +145,14 @@ individual test scripts can be run with python directly.
|
|||||||
tb/ptp.py : MyHDL PTP clock model
|
tb/ptp.py : MyHDL PTP clock model
|
||||||
tb/udp_ep.py : MyHDL UDP frame endpoints
|
tb/udp_ep.py : MyHDL UDP frame endpoints
|
||||||
tb/xgmii_ep.py : MyHDL XGMII endpoints
|
tb/xgmii_ep.py : MyHDL XGMII endpoints
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
Corundum internally uses the following libraries:
|
||||||
|
|
||||||
|
* https://github.com/alexforencich/verilog-axi
|
||||||
|
* https://github.com/alexforencich/verilog-axis
|
||||||
|
* https://github.com/alexforencich/verilog-ethernet
|
||||||
|
* https://github.com/alexforencich/verilog-pcie
|
||||||
|
* https://github.com/solemnwarning/timespec
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user