Diagram
Description
Bloque que se encarga de configurar el transmisor MAC
Generics
Generic name |
Type |
Value |
Description |
DATA_WIDTH |
|
8 |
Ancho de los datos en bits |
KEEP_ENABLE |
|
DATA_WIDTH>8 |
Habilita el uso de 'keep' si el ancho de datos es mayor que 8 |
KEEP_WIDTH |
|
DATA_WIDTH/8 |
Ancho de 'keep', calculado como el ancho de datos dividido por 8 |
ID_ENABLE |
|
0 |
Habilita el campo de identificación |
ID_WIDTH |
|
8 |
Ancho del campo de identificación |
DEST_ENABLE |
|
0 |
Habilita el campo de destino |
DEST_WIDTH |
|
8 |
Ancho del campo de destino |
USER_ENABLE |
|
1 |
Habilita el campo de usuario |
USER_WIDTH |
|
1 |
Ancho del campo de usuario |
MCF_PARAMS_SIZE |
|
18 |
Tamaño en bytes de los parámetros del marco de control MAC |
Ports
Port name |
Direction |
Type |
Description |
clk |
input |
wire |
Señal de reloj |
rst |
input |
wire |
Señal de reset |
s_axis_tdata |
input |
wire [DATA_WIDTH-1:0] |
Datos de entrada |
s_axis_tkeep |
input |
wire [KEEP_WIDTH-1:0] |
Señal 'keep' de entrada |
s_axis_tvalid |
input |
wire |
Señal de validez de datos de entrada |
s_axis_tready |
output |
wire |
Señal de preparado de datos de entrada |
s_axis_tlast |
input |
wire |
Indicador de último dato de entrada |
s_axis_tid |
input |
wire [ID_WIDTH-1:0] |
Identificador de transacción de entrada |
s_axis_tdest |
input |
wire [DEST_WIDTH-1:0] |
Destino de transacción de entrada |
s_axis_tuser |
input |
wire [USER_WIDTH-1:0] |
Usuario de transacción de entrada |
m_axis_tdata |
output |
wire [DATA_WIDTH-1:0] |
Datos de salida |
m_axis_tkeep |
output |
wire [KEEP_WIDTH-1:0] |
Señal 'keep' de salida |
m_axis_tvalid |
output |
wire |
Señal de validez de datos de salida |
m_axis_tready |
input |
wire |
Señal de preparado de datos de salida |
m_axis_tlast |
output |
wire |
Indicador de último dato de salida |
m_axis_tid |
output |
wire [ID_WIDTH-1:0] |
Identificador de transacción de salida |
m_axis_tdest |
output |
wire [DEST_WIDTH-1:0] |
Destino de transacción de salida |
m_axis_tuser |
output |
wire [USER_WIDTH-1:0] |
Usuario de transacción de salida |
mcf_valid |
input |
wire |
Validez del marco de control MAC |
mcf_ready |
output |
wire |
Listo para recibir marco de control MAC |
mcf_eth_dst |
input |
wire [47:0] |
Dirección de destino Ethernet del marco de control MAC |
mcf_eth_src |
input |
wire [47:0] |
Dirección de origen Ethernet del marco de control MAC |
mcf_eth_type |
input |
wire [15:0] |
Tipo Ethernet del marco de control MAC |
mcf_opcode |
input |
wire [15:0] |
Código de operación del marco de control MAC |
mcf_params |
input |
wire [MCF_PARAMS_SIZE*8-1:0] |
Parámetros del marco de control MAC |
mcf_id |
input |
wire [ID_WIDTH-1:0] |
Identificador del marco de control MAC |
mcf_dest |
input |
wire [DEST_WIDTH-1:0] |
Destino del marco de control MAC |
mcf_user |
input |
wire [USER_WIDTH-1:0] |
Usuario del marco de control MAC |
tx_pause_req |
input |
wire |
Solicitud de pausa de transmisión |
tx_pause_ack |
output |
wire |
Confirmación de pausa de transmisión |
stat_tx_mcf |
output |
wire |
Estado de transmisión del marco de control MAC |
Signals
Name |
Type |
Description |
send_data_reg = 1'b0 |
reg |
Registro para la señal de envío de datos |
send_data_next |
reg |
Registro para la señal de envío de datos |
send_mcf_reg = 1'b0 |
reg |
Registro para la señal de envío de marco de control MAC |
send_mcf_next |
reg |
Registro para la señal de envío de marco de control MAC |
ptr_reg = 0 |
reg [PTR_WIDTH-1:0] |
Registro para el puntero de control |
ptr_next |
reg [PTR_WIDTH-1:0] |
Registro para el puntero de control |
s_axis_tready_reg = 1'b0 |
reg |
Registro para la señal de listo de datos de entrada AXI stream |
s_axis_tready_next |
reg |
Registro para la señal de listo de datos de entrada AXI stream |
mcf_ready_reg = 1'b0 |
reg |
Registro para la señal de listo de marco de control MAC |
mcf_ready_next |
reg |
Registro para la señal de listo de marco de control MAC |
tx_pause_ack_reg = 1'b0 |
reg |
Registro para la confirmación de pausa de transmisión |
tx_pause_ack_next |
reg |
Registro para la confirmación de pausa de transmisión |
stat_tx_mcf_reg = 1'b0 |
reg |
Registro para el estado de transmisión del marco de control MAC |
stat_tx_mcf_next |
reg |
Registro para el estado de transmisión del marco de control MAC |
m_axis_tdata_int |
reg [DATA_WIDTH-1:0] |
Datos de salida internos del camino de datos |
m_axis_tkeep_int |
reg [KEEP_WIDTH-1:0] |
Señal 'keep' de salida interna del camino de datos |
m_axis_tvalid_int |
reg |
Señal de validez de datos de salida interna |
m_axis_tready_int_reg = 1'b0 |
reg |
Registro para la señal de preparado de datos de salida interna |
m_axis_tlast_int |
reg |
Indicador de último dato de salida interno |
m_axis_tid_int |
reg [ID_WIDTH-1:0] |
Identificador de transacción de salida interno |
m_axis_tdest_int |
reg [DEST_WIDTH-1:0] |
Destino de transacción de salida interno |
m_axis_tuser_int |
reg [USER_WIDTH-1:0] |
Usuario de transacción de salida interno |
m_axis_tready_int_early |
wire |
Señal anticipada de preparado de datos de salida interna |
k |
integer |
|
Constants
Name |
Type |
Value |
Description |
BYTE_LANES |
|
KEEP_ENABLE ? KEEP_WIDTH : 1 |
Número de carriles de bytes activos |
HDR_SIZE |
|
60 |
Tamaño del encabezado en bytes |
CYCLE_COUNT |
|
(HDR_SIZE+BYTE_LANES-1)/BYTE_LANES |
Número de ciclos necesarios para transmitir el encabezado |
PTR_WIDTH |
|
$ |
Ancho del puntero necesario para contar los ciclos de transmisión |
OFFSET |
|
HDR_SIZE % BYTE_LANES |
Desplazamiento necesario para alinear el encabezado con los límites de byte |