Corundum Ethernet Core for K26
The Corundum Ethernet Core is used by the Corundum Network Stack. This Ethernet Core is specific to the K26 FPGA board and encompasses the Ethernet physical layer and other auxiliary structures such as SPI and I2C that are required by the Corundum system. The configurations are based on Corundum NIC reference designs that were adapted to suit the ADI workflow.
Files
Name |
Description |
---|---|
Verilog source for the Ethernet Core top module for the K26-based AD-GMSL2ETH-SL evaluation kit. |
|
TCL script to generate the Vivado IP-integrator project. |
Configuration Parameters
Name |
Description |
Default Value |
Choices/Range |
---|---|---|---|
IF_COUNT |
Interface count. |
1 |
|
PORTS_PER_IF |
Ports per interface. |
1 |
|
SCHED_PER_IF |
Sched Per If. |
1 |
|
PORT_MASK |
Port mask. |
0 |
|
PORT_COUNT |
Port Count. |
1 |
|
TDMA_BER_ENABLE |
Tdma Ber Enable. |
0 |
|
PTP_PEROUT_COUNT |
Ptp Perout Count. |
1 |
|
PTP_TS_ENABLE |
PTP Timestamp Enable. |
1 |
|
PTP_TS_FMT_TOD |
PTP_TS_FMT_TOD. |
1 |
|
PTP_TS_WIDTH |
Ptp Ts Width. |
64 |
|
TX_TAG_WIDTH |
Tx Tag Width. |
16 |
|
PFC_ENABLE |
PFC_ENABLE. |
1 |
|
LFC_ENABLE |
Lfc Enable. |
1 |
|
ENABLE_PADDING |
ENABLE_PADDING. |
1 |
|
ENABLE_DIC |
ENABLE_DIC. |
1 |
|
MIN_FRAME_LENGTH |
MIN_FRAME_LENGTH. |
64 |
|
XGMII_DATA_WIDTH |
Xgmii Data Width. |
64 |
|
XGMII_CTRL_WIDTH |
Xgmii Ctrl Width. |
8 |
|
AXIS_DATA_WIDTH |
Axis Data Width. |
64 |
|
AXIS_KEEP_WIDTH |
Axis Keep Width. |
8 |
|
AXIS_TX_USER_WIDTH |
Axis Tx User Width. |
17 |
|
AXIS_RX_USER_WIDTH |
Axis Rx User Width. |
1 |
|
AXIL_CTRL_DATA_WIDTH |
Axil Ctrl Data Width. |
32 |
|
AXIL_CTRL_ADDR_WIDTH |
Axil Ctrl Addr Width. |
24 |
|
AXIL_CTRL_STRB_WIDTH |
Axil Ctrl Strb Width. |
4 |
|
AXIL_IF_CTRL_ADDR_WIDTH |
Axil If Ctrl Addr Width. |
24 |
|
AXIL_CSR_ENABLE |
AXI4 Lite CSR enable. |
0 |
|
AXIL_CSR_ADDR_WIDTH |
Axil Csr Addr Width. |
19 |
|
STAT_ENABLE |
Stat Enable. |
0 |
|
STAT_DMA_ENABLE |
Stat Dma Enable. |
1 |
|
STAT_AXI_ENABLE |
Stat Axi Enable. |
1 |
|
STAT_INC_WIDTH |
Stat Inc Width. |
24 |
|
STAT_ID_WIDTH |
Stat Id Width. |
12 |
Interface
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
axis_eth_tx_tdata |
TDATA |
in [63:0] |
|
axis_eth_tx_tkeep |
TKEEP |
in [7:0] |
|
axis_eth_tx_tvalid |
TVALID |
in [0:0] |
|
axis_eth_tx_tready |
TREADY |
out [0:0] |
|
axis_eth_tx_tlast |
TLAST |
in [0:0] |
|
axis_eth_tx_tuser |
TUSER |
in [16:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
axis_eth_rx_tdata |
TDATA |
out [63:0] |
|
axis_eth_rx_tkeep |
TKEEP |
out [7:0] |
|
axis_eth_rx_tvalid |
TVALID |
out [0:0] |
|
axis_eth_rx_tready |
TREADY |
in [0:0] |
|
axis_eth_rx_tlast |
TLAST |
out [0:0] |
|
axis_eth_rx_tuser |
TUSER |
out [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
ctrl_reg_wr_addr |
ctrl_reg_wr_addr |
in [18:0] |
|
ctrl_reg_wr_data |
ctrl_reg_wr_data |
in [31:0] |
|
ctrl_reg_wr_strb |
ctrl_reg_wr_strb |
in [3:0] |
|
ctrl_reg_wr_en |
ctrl_reg_wr_en |
in |
|
ctrl_reg_wr_wait |
ctrl_reg_wr_wait |
out |
|
ctrl_reg_wr_ack |
ctrl_reg_wr_ack |
out |
|
ctrl_reg_rd_addr |
ctrl_reg_rd_addr |
in [18:0] |
|
ctrl_reg_rd_data |
ctrl_reg_rd_data |
out [31:0] |
|
ctrl_reg_rd_en |
ctrl_reg_rd_en |
in |
|
ctrl_reg_rd_wait |
ctrl_reg_rd_wait |
out |
|
ctrl_reg_rd_ack |
ctrl_reg_rd_ack |
out |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_tx_enable |
tx_enable |
in [0:0] |
|
eth_tx_status |
tx_status |
out [0:0] |
|
eth_tx_lfc_en |
tx_lfc_en |
in [0:0] |
|
eth_tx_lfc_req |
tx_lfc_req |
in [0:0] |
|
eth_tx_pfc_en |
tx_pfc_en |
in [7:0] |
|
eth_tx_pfc_req |
tx_pfc_req |
in [7:0] |
|
eth_tx_fc_quanta_clk_en |
tx_fc_quanta_clk_en |
out [7:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_rx_enable |
rx_enable |
in [0:0] |
|
eth_rx_status |
rx_status |
out [0:0] |
|
eth_rx_lfc_en |
rx_lfc_en |
in [0:0] |
|
eth_rx_lfc_req |
rx_lfc_req |
out [0:0] |
|
eth_rx_lfc_ack |
rx_lfc_ack |
in [0:0] |
|
eth_rx_pfc_en |
rx_pfc_en |
in [7:0] |
|
eth_rx_pfc_req |
rx_pfc_req |
out [7:0] |
|
eth_rx_pfc_ack |
rx_pfc_ack |
in [7:0] |
|
eth_rx_fc_quanta_clk_en |
rx_fc_quanta_clk_en |
out [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
axis_eth_tx_ptp_ts |
ts |
out [63:0] |
|
axis_eth_tx_ptp_ts_tag |
tag |
out [15:0] |
|
axis_eth_tx_ptp_ts_valid |
valid |
out [0:0] |
|
axis_eth_tx_ptp_ts_ready |
ready |
in [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
clk |
CLK |
in |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
rst |
RST |
in |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
ptp_clk |
CLK |
out |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
ptp_sample_clk |
CLK |
out |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_tx_clk |
CLK |
out [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_rx_clk |
CLK |
out [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
ptp_rst |
RST |
out |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_tx_rst |
RST |
out [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_rx_rst |
RST |
out [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_tx_clk |
ptp_clk |
out [0:0] |
|
eth_tx_rst |
ptp_rst |
out [0:0] |
|
eth_tx_ptp_ts |
ptp_ts |
in [63:0] |
|
eth_tx_ptp_ts_step |
ptp_ts_step |
in [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
eth_rx_clk |
ptp_clk |
out [0:0] |
|
eth_rx_rst |
ptp_rst |
out [0:0] |
|
eth_rx_ptp_ts |
ptp_ts |
in [63:0] |
|
eth_rx_ptp_ts_step |
ptp_ts_step |
in [0:0] |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
s_axis_stat_tdata |
TDATA |
out [23:0] |
|
s_axis_stat_tid |
TID |
out [11:0] |
|
s_axis_stat_tvalid |
TVALID |
out |
|
s_axis_stat_tready |
TREADY |
in |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
sfp_rx_p |
rx_p |
in |
|
sfp_rx_n |
rx_n |
in |
|
sfp_tx_p |
tx_p |
out |
|
sfp_tx_n |
tx_n |
out |
|
sfp_mgt_refclk_p |
mgt_refclk_p |
in |
|
sfp_mgt_refclk_n |
mgt_refclk_n |
in |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
scl_i |
SCL_I |
in |
|
scl_o |
SCL_O |
out |
|
scl_t |
SCL_T |
out |
|
sda_i |
SDA_I |
in |
|
sda_o |
SDA_O |
out |
|
sda_t |
SDA_T |
out |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
s_axil_csr_awaddr |
AWADDR |
in [18:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_awprot |
AWPROT |
in [2:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_awvalid |
AWVALID |
in |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_awready |
AWREADY |
out |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_wdata |
WDATA |
in [31:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_wstrb |
WSTRB |
in [3:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_wvalid |
WVALID |
in |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_wready |
WREADY |
out |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_bresp |
BRESP |
out [1:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_bvalid |
BVALID |
out |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_bready |
BREADY |
in |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_araddr |
ARADDR |
in [18:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_arprot |
ARPROT |
in [2:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_arvalid |
ARVALID |
in |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_arready |
ARREADY |
out |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_rdata |
RDATA |
out [31:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_rresp |
RRESP |
out [1:0] |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_rvalid |
RVALID |
out |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
s_axil_csr_rready |
RREADY |
in |
PARAM_VALUE.AXIL_CSR_ENABLE = 1 |
Physical Port |
Logical Port |
Direction |
Dependency |
---|---|---|---|
ptp_td_sd |
ptp_td_sd |
in |
|
ptp_pps |
ptp_pps |
in |
|
ptp_pps_str |
ptp_pps_str |
in |
|
ptp_sync_locked |
ptp_sync_locked |
in |
|
ptp_sync_ts_rel |
ptp_sync_ts_rel |
in [63:0] |
|
ptp_sync_ts_rel_step |
ptp_sync_ts_rel_step |
in |
|
ptp_sync_ts_tod |
ptp_sync_ts_tod |
in [96:0] |
|
ptp_sync_ts_tod_step |
ptp_sync_ts_tod_step |
in |
|
ptp_sync_pps |
ptp_sync_pps |
in |
|
ptp_sync_pps_str |
ptp_sync_pps_str |
in |
|
ptp_perout_locked |
ptp_perout_locked |
in [0:0] |
|
ptp_perout_error |
ptp_perout_error |
in [0:0] |
|
ptp_perout_pulse |
ptp_perout_pulse |
in [0:0] |
Physical Port |
Direction |
Dependency |
Description |
---|---|---|---|
led |
out [1:0] |
||
sfp_led |
out [1:0] |
||
sfp_tx_disable |
out |
||
sfp_tx_fault |
in |
||
sfp_rx_los |
in |
||
sfp_mod_abs |
in |
References
HDL IP core at library/corundum/ethernet_core