Entity: axis_xgmii_tx_64
- File: axis_xgmii_tx_64.v
Diagram
Description
Language: Verilog 2001
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| DATA_WIDTH | 64 | ||
| KEEP_WIDTH | undefined | ||
| CTRL_WIDTH | undefined | ||
| ENABLE_PADDING | 1 | ||
| ENABLE_DIC | 1 | ||
| MIN_FRAME_LENGTH | 64 | ||
| PTP_PERIOD_NS | 4'h6 | ||
| PTP_PERIOD_FNS | 16'h6666 | ||
| PTP_TS_ENABLE | 0 | ||
| PTP_TS_WIDTH | 96 | ||
| PTP_TAG_ENABLE | PTP_TS_ENABLE | ||
| PTP_TAG_WIDTH | 16 | ||
| USER_WIDTH | + 1 |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk | input | wire | |
| rst | input | wire | |
| s_axis_tdata | input | wire [DATA_WIDTH-1:0] | * AXI input */ |
| s_axis_tkeep | input | wire [KEEP_WIDTH-1:0] | |
| s_axis_tvalid | input | wire | |
| s_axis_tready | output | wire | |
| s_axis_tlast | input | wire | |
| s_axis_tuser | input | wire [USER_WIDTH-1:0] | |
| xgmii_txd | output | wire [DATA_WIDTH-1:0] | * XGMII output */ |
| xgmii_txc | output | wire [CTRL_WIDTH-1:0] | |
| ptp_ts | input | wire [PTP_TS_WIDTH-1:0] | * PTP */ |
| m_axis_ptp_ts | output | wire [PTP_TS_WIDTH-1:0] | |
| m_axis_ptp_ts_tag | output | wire [PTP_TAG_WIDTH-1:0] | |
| m_axis_ptp_ts_valid | output | wire | |
| ifg_delay | input | wire [7:0] | * Configuration */ |
| start_packet | output | wire [1:0] | * Status */ |
| error_underflow | output | wire |
Signals
| Name | Type | Description |
|---|---|---|
| state_reg | reg [2:0] | |
| state_next | reg [2:0] | |
| reset_crc | reg | datapath control signals |
| update_crc | reg | |
| swap_lanes | reg | |
| unswap_lanes | reg | |
| lanes_swapped | reg | |
| swap_txd | reg [31:0] | |
| swap_txc | reg [3:0] | |
| s_axis_tdata_masked | reg [DATA_WIDTH-1:0] | |
| s_tdata_reg | reg [DATA_WIDTH-1:0] | |
| s_tdata_next | reg [DATA_WIDTH-1:0] | |
| s_tkeep_reg | reg [KEEP_WIDTH-1:0] | |
| s_tkeep_next | reg [KEEP_WIDTH-1:0] | |
| fcs_output_txd_0 | reg [DATA_WIDTH-1:0] | |
| fcs_output_txd_1 | reg [DATA_WIDTH-1:0] | |
| fcs_output_txc_0 | reg [CTRL_WIDTH-1:0] | |
| fcs_output_txc_1 | reg [CTRL_WIDTH-1:0] | |
| ifg_offset | reg [7:0] | |
| extra_cycle | reg | |
| frame_ptr_reg | reg [15:0] | |
| frame_ptr_next | reg [15:0] | |
| ifg_count_reg | reg [7:0] | |
| ifg_count_next | reg [7:0] | |
| deficit_idle_count_reg | reg [1:0] | |
| deficit_idle_count_next | reg [1:0] | |
| s_axis_tready_reg | reg | |
| s_axis_tready_next | reg | |
| m_axis_ptp_ts_reg | reg [PTP_TS_WIDTH-1:0] | |
| m_axis_ptp_ts_next | reg [PTP_TS_WIDTH-1:0] | |
| m_axis_ptp_ts_tag_reg | reg [PTP_TAG_WIDTH-1:0] | |
| m_axis_ptp_ts_tag_next | reg [PTP_TAG_WIDTH-1:0] | |
| m_axis_ptp_ts_valid_reg | reg | |
| m_axis_ptp_ts_valid_next | reg | |
| m_axis_ptp_ts_valid_int_reg | reg | |
| m_axis_ptp_ts_valid_int_next | reg | |
| crc_state | reg [31:0] | |
| crc_next0 | wire [31:0] | |
| crc_next1 | wire [31:0] | |
| crc_next2 | wire [31:0] | |
| crc_next3 | wire [31:0] | |
| crc_next4 | wire [31:0] | |
| crc_next5 | wire [31:0] | |
| crc_next6 | wire [31:0] | |
| crc_next7 | wire [31:0] | |
| xgmii_txd_reg | reg [DATA_WIDTH-1:0] | |
| xgmii_txd_next | reg [DATA_WIDTH-1:0] | |
| xgmii_txc_reg | reg [CTRL_WIDTH-1:0] | |
| xgmii_txc_next | reg [CTRL_WIDTH-1:0] | |
| start_packet_reg | reg | |
| start_packet_next | reg | |
| error_underflow_reg | reg | |
| error_underflow_next | reg | |
| j | integer | Mask input data |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| MIN_FL_NOCRC | MIN_FRAME_LENGTH-4 | ||
| MIN_FL_NOCRC_MS | MIN_FL_NOCRC & 16'hfff8 | ||
| MIN_FL_NOCRC_LS | MIN_FL_NOCRC & 16'h0007 | ||
| ETH_PRE | [7:0] | 8'h55 | |
| ETH_SFD | [7:0] | 8'hD5 | |
| XGMII_IDLE | [7:0] | 8'h07 | |
| XGMII_START | [7:0] | 8'hfb | |
| XGMII_TERM | [7:0] | 8'hfd | |
| XGMII_ERROR | [7:0] | 8'hfe | |
| STATE_IDLE | [2:0] | 3'd0 | |
| STATE_PAYLOAD | [2:0] | 3'd1 | |
| STATE_PAD | [2:0] | 3'd2 | |
| STATE_FCS_1 | [2:0] | 3'd3 | |
| STATE_FCS_2 | [2:0] | 3'd4 | |
| STATE_IFG | [2:0] | 3'd5 | |
| STATE_WAIT_END | [2:0] | 3'd6 |
Functions
- keep2count () return ([3:0])
Processes
- unnamed: ( @* )
Type: always
- unnamed: ( @* )
Type: always
Description
FCS cycle calculation
- unnamed: ( @* )
Type: always
- unnamed: ( @(posedge clk) )
Type: always
Instantiations
- eth_crc_8: lfsr
- eth_crc_16: lfsr
- eth_crc_24: lfsr
- eth_crc_32: lfsr
- eth_crc_40: lfsr
- eth_crc_48: lfsr
- eth_crc_56: lfsr
- eth_crc_64: lfsr