mirror of
https://github.com/corundum/corundum.git
synced 2025-01-30 08:32:52 +08:00
Update readme
This commit is contained in:
parent
ea7ccd182e
commit
851eb2f25e
95
README.md
95
README.md
@ -10,13 +10,93 @@ Corundum is an open source, high performance FPGA based NIC.
|
|||||||
|
|
||||||
### Modules
|
### Modules
|
||||||
|
|
||||||
### Common signals
|
#### cpl_queue_manager module
|
||||||
|
|
||||||
### Common parameters
|
Completion queue manager module. Stores device to host queue state in block
|
||||||
|
RAM or ultra RAM.
|
||||||
|
|
||||||
|
#### event_mux module
|
||||||
|
|
||||||
|
Event mux module. Enables multiple event sources to feed the same event queue.
|
||||||
|
|
||||||
|
#### event_queue module
|
||||||
|
|
||||||
|
Event queue module. Responsible for writing event queue entries into host
|
||||||
|
memory.
|
||||||
|
|
||||||
|
#### interface module
|
||||||
|
|
||||||
|
Interface module. Contains the event queues, interface queues, and ports.
|
||||||
|
|
||||||
|
#### port module
|
||||||
|
|
||||||
|
Port module. Contains the transmit and receive engines
|
||||||
|
|
||||||
|
#### queue_manager module
|
||||||
|
|
||||||
|
Queue manager module. Stores host to device queue state in block RAM or ultra
|
||||||
|
RAM.
|
||||||
|
|
||||||
|
#### rx_checksum module
|
||||||
|
|
||||||
|
Receive checksum computation module. Computes 16 bit checksum of Ethernet
|
||||||
|
frame payload to aid in IP checksum offloading.
|
||||||
|
|
||||||
|
#### rx_engine module
|
||||||
|
|
||||||
|
Receive engine. Manages receive descriptor dequeue and fetch via DMA, packet
|
||||||
|
reception, data writeback via DMA, and completion enqueue and writeback via
|
||||||
|
DMA. Handles PTP timestamps for inclusion in completion records.
|
||||||
|
|
||||||
|
#### tdma_ber_ch module
|
||||||
|
|
||||||
|
TDMA bit error ratio test channel module. Controls PRBS logic in Ethernet PHY
|
||||||
|
and accumulates bit errors. Can be configured to bin error counts by TDMA
|
||||||
|
timeslot.
|
||||||
|
|
||||||
|
#### tdma_ber module
|
||||||
|
|
||||||
|
TDMA bit error ratio test module. Wrapper for a tdma_scheduler and multiple
|
||||||
|
instances of tdma_ber_ch.
|
||||||
|
|
||||||
|
#### tdma_scheduler module
|
||||||
|
|
||||||
|
TDMA scheduler module. Generates TDMA timeslot index and timing signals from
|
||||||
|
PTP time.
|
||||||
|
|
||||||
|
#### tx_engine module
|
||||||
|
|
||||||
|
Transmit engine. Manages receive descriptor dequeue and fetch via DMA, packet
|
||||||
|
data fetch via DMA, packet transmission, and completion enqueue and writeback
|
||||||
|
via DMA. Handles PTP timestamps for inclusion in completion records.
|
||||||
|
|
||||||
|
#### tx_scheduler_rr module
|
||||||
|
|
||||||
|
Round-robin transmit scheduler. Determines which queues from which to send
|
||||||
|
packets.
|
||||||
|
|
||||||
|
#### tx_scheduler_tdma_rr module
|
||||||
|
|
||||||
|
Round-robin TDMA transmit scheduler. Determines which queues from which to
|
||||||
|
send packets. Contains a tdma_scheduler instance to control configuration
|
||||||
|
based on PTP time.
|
||||||
|
|
||||||
### Source Files
|
### Source Files
|
||||||
|
|
||||||
arbiter.v : Parametrizable arbiter
|
cpl_queue_manager.v : Completion queue manager
|
||||||
|
event_mux.v : Event mux
|
||||||
|
event_queue.v : Event queue
|
||||||
|
interface.v : Interface
|
||||||
|
port.v : Port
|
||||||
|
queue_manager.v : Queue manager
|
||||||
|
rx_checksum.v : Receive checksum offload
|
||||||
|
rx_engine.v : Receive engine
|
||||||
|
tdma_ber_ch.v : TDMA BER channel
|
||||||
|
tdma_ber.v : TDMA BER
|
||||||
|
tdma_scheduler.v : TDMA scheduler
|
||||||
|
tx_engine.v : Transmit engine
|
||||||
|
tx_scheduler_rr.v : Round robin transmit scheduler
|
||||||
|
tx_scheduler_tdma_rr.v : Round robin TDMA transmit scheduler
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
@ -27,6 +107,15 @@ individual test scripts can be run with python directly.
|
|||||||
|
|
||||||
### Testbench Files
|
### Testbench Files
|
||||||
|
|
||||||
|
tb/axi.py : MyHDL AXI4 master and memory BFM
|
||||||
|
tb/axil.py : MyHDL AXI4 lite master and memory BFM
|
||||||
tb/axis_ep.py : MyHDL AXI Stream endpoints
|
tb/axis_ep.py : MyHDL AXI Stream endpoints
|
||||||
|
tb/eth_ep.py : MyHDL Ethernet frame endpoints
|
||||||
|
tb/ip_ep.py : MyHDL IP frame endpoints
|
||||||
|
tb/mqnic.py : MyHDL mqnic driver model
|
||||||
tb/pcie.py : MyHDL PCI Express BFM
|
tb/pcie.py : MyHDL PCI Express BFM
|
||||||
tb/pcie_us.py : MyHDL Xilinx Ultrascale PCIe core model
|
tb/pcie_us.py : MyHDL Xilinx Ultrascale PCIe core model
|
||||||
|
tb/pcie_usp.py : MyHDL Xilinx Ultrascale Plus PCIe core model
|
||||||
|
tb/ptp.py : MyHDL PTP clock model
|
||||||
|
tb/udp_ep.py : MyHDL UDP frame endpoints
|
||||||
|
tb/xgmii_ep.py : MyHDL XGMII endpoints
|
||||||
|
Loading…
x
Reference in New Issue
Block a user