Modulo que convierte interfaz XGMII a AXI.
Verifica el estado en el que se encuentra. En caso de que sea IDLE, verifica si está el receptor habilitado (rx_enable), y si se está en el inicio de paquete, si es así, define el estado siguiente como PAYLOAD.
Cuando el estado es PAYLOAD, transfiere los datos XGMII a AXI, además, desactiva a flag de tlast, y verifica los errores de framing; en caso de que se presenten, activa la flag de bad_frame y bad_fcs, reinicia el CRC y coloca el siguiente estado como IDLE; en caso de que no se presenten y este activa la flag de caracter de finalización, verifica la validez del CRC. Si este es válido define el próximo estado como LAST, en caso de que no lo sea, define el próximo estado como IDLE. Si no está presente el bit de finalización, el siguiente estado es PAYLOAD.
Cuando el estado es LAST, verifica la validez del CRC, si este no es válido, activa las flags de bad_frame y bad_fcs, si es válido, verifica si el siguiente dato corresponde al inicio de un paquete, en cuyo caso, define el estado siguiente como PAYLOAD, y en caso contrario lo define como IDLE.
Por otra parte, verifica si hay o no un intercambio de carriles y en base a eso busca el caracter de finalización, cuando lo encuentra, coloca el bit como uno.
Además, realiza una búsqueda del carácter de inicio, cuando lo encuentra señala si deben o no invertirse los lanes, y activa la flag de caracter de inicio encontrado.
Generics
Generic name
Type
Value
Description
DATA_WIDTH
64
Parametro que define el tamaño de los datos
KEEP_WIDTH
(DATA_WIDTH/8)
Cantidad de bytes de datos que deben ser validos
CTRL_WIDTH
(DATA_WIDTH/8)
Cantidad de bits de control
PTP_TS_ENABLE
0
Flag para habilitar protocolo PTP
PTP_TS_FMT_TOD
1
Flag para cambiar el formato de la marca de tiempo según "Time of day"
PTP_TS_WIDTH
PTP_TS_FMT_TOD ? 96 : 64
Parametro del ancho de la marca del tiempo
USER_WIDTH
(PTP_TS_ENABLE ? PTP_TS_WIDTH : 0) + 1
Parametro que define el ancho de los datos de usuario
Description
Gestiona estados como la espera de inicio de paquetes, la lectura de la carga útil del paquete, y la verificación y manejo de errores, incluido el CRC
unnamed: ( @(posedge clk) )
Type: always
Description
Realiza la asignación de datos según las diferentes condiciones de intercambio de lanes y marcas de tiempo PTP