-
Notifications
You must be signed in to change notification settings - Fork 0
Bloques PCS
- Módulo completo
- eth_phy_10g_rx
- xgmii_baser_dec_64
- eth_phy_10g_rx_if
- eth_phy_10g_rx_frame_sync
- eth_phy_10g_rx_ber_mon
- eth_phy_10g_rx_watchdog
- lfsr
- eth_phy_10g_tx
- xgmii_baser_enc_64
- eth_phy_10g_tx_if
Corresponden al ancho de buses.
- data_width
- ctrl_width
- hdr_width
Controlan si se realiza una inversión de bits.
- bit_reverse
Controla si se deshabilita el scrambler.
- scrambler_disable
Habilita la generación y verificación de secuencias pseudoaleatorias.
- prbs31_enable
Controlan la profundidad del pipeline.
- tx_serdes_pipeline
- rx_serdes_pipeline
Controlan el desplazamiento de bits.
- bitslip_high_cycles
- bitslip_low_cycles
Contador de 125 microsegundos.
- count_125us
Inputs
- tx_clk
- tx_rst
- rx_clk
- rx_rst
- xgmii_txd
- xgmii_txc
- cfg_tx_prbs31_enable
- cfg_rx_prbs31_enable
- serdes_rx_data
- serdes_rx_hdr
Outputs
- xgmii_rxd
- xgmii_rxc
- serdes_tx_data
- serdes_tx_hdr
- serdes_rx_bitslip
- serdes_rx_reset_req
- tx_bad_block
- rx_error_count
- rx_bad_block
- rx_sequence_error
- rx_block_lock
- rx_high_ber
- rx_status
Corresponden al ancho de buses.
- data_width
- ctrl_width
- hdr_width
Controla si se realiza una inversión de bits.
- bit_reverse
Controla si se deshabilita el scrambler.
- scrambler_disable
Habilita la generación y verificación de secuencias pseudoaleatorias.
- prbs31_enable
Controlan la profundidad del pipeline.
- rx_serdes_pipeline
Controlan el desplazamiento de bits.
- bitslip_high_cycles
- bitslip_low_cycles
Contador de 125 microsegundos.
- count_125us
Inputs
- clk
- rst
- cfg_rx_prbs31_enable
- serdes_rx_data
- serdes_rx_hdr
Outputs
- xgmii_rxd
- xgmii_rxc
- serdes_rx_bitslip
- serdes_rx_reset_req
- rx_error_count
- rx_bad_block
- rx_sequence_error
- rx_block_lock
- rx_high_ber
- rx_status
Corresponden al ancho de buses.
- data_width
- ctrl_width
- hdr_width
Inputs
- clk
- rst
- encoded_rx_data
- encoded_rx_hdr
Outputs
- xgmii_rxd
- xgmii_rxc
- rx_bad_block
- rx_sequence_error
- Decodifica los datos y los convierte en datos XGMII estándar y señales de control.
- Detecta bloques incorrectos o mal formados con detección de errores.
- Maneja la sincronización de datos y control.
-
Corresponden al ancho de buses:
- data_width
- hdr_width
-
Controla si se realiza una inversión de bits:
- bit_reverse
-
Controla si se deshabilita el scrambler:
- scrambler_disable
-
Habilita la generación y verificación de secuencias pseudoaleatorias:
- prbs31_enable
-
Controlan la profundidad del pipeline:
- rx_serdes_pipeline
-
Controlan el desplazamiento de bits:
- bitslip_high_cycles
- bitslip_low_cycles
-
Contador de 125 microsegundos:
- count_125us
Inputs
- clk
- rst
- cfg_rx_prbs31_enable
- serdes_rx_data
- serdes_rx_hdr
- rx_bad_block
- rx_sequence_error
Outputs
- encoded_rx_data
- encoded_rx_hdr
- serdes_rx_bitslip
- serdes_rx_reset_req
- rx_error_count
- rx_block_lock
- rx_high_ber
- rx_status
- lfsr (scrambler y prbs31)
- eth_phy_10g_rx_frame_sync
- eth_phy_10g_rx_ber_mon
- eth_phy_10g_rx_watchdog
- Garantiza que los parámetros del ancho del bus sean correctos.
- Implementa un generador para manejar la inversión de bits y la profundidad del pipeline.
- Utiliza registros para almacenar el estado del scrambler, los datos descifrados, y el estado del PRBS.
- Implementa módulos de desencriptación, monitoreo de errores y control para garantizar la integridad de los datos.
Corresponden al ancho de buses.
- hdr_width
Controlan el desplazamiento de bits.
- bitslip_high_cycles
- bitslip_low_cycles
Inputs
- clk
- rst
- serdes_rx_hdr
Outputs
- serdes_rx_bitslip
- rx_block_lock
Sincroniza y detecta bloques de datos en un enlace, controlando el bitslip según sea necesario.
Corresponden al ancho de buses.
- hdr_width
Contador de 125 microsegundos.
- count_125us
Inputs
- clk
- rst
- serdes_rx_hdr
Outputs
- rx_high_ber
- Monitorea la tasa de error de bit y activa una señal si esta es alta (supera un umbral previamente definido).
Corresponden al ancho de buses.
- hdr_width
Contador de 125 microsegundos.
- count_125us
Inputs
- clk
- rst
- serdes_rx_hdr
- rx_bad_block
- rx_sequence_error
- rx_block_lock
- rx_high_ber
Outputs
- serdes_rx_reset_req
- rx_status
- Determina el estado del receptor, errores de bloques y secuencia, y solicita reset en caso de ser necesario.
Corresponden al ancho de buses.
- lfsr_width
- data_with
Configura el LSFR.
- lfsr_poly
- lfsr_config
- lfsr_feed_forward
Realiza inversión de bits.
- reverse
- style
Inputs
- data_in
- state_in
Outputs
- data_out
- state_out
- Dependiendo de su configuración, aplica scrambler, reverse y/o prbs31.
Corresponden al ancho de buses.
- data_width
- ctrl_width
- hdr_width
Controla si se realiza una inversión de bits.
- bit_reverse
Controla si se deshabilita el scrambler.
- scrambler_disable
Habilita la generación y verificación de secuencias pseudoaleatorias.
- prbs31_enable
Controlan la profundidad del pipeline.
- tx_serdes_pipeline
Inputs
- clk
- rst
- xgmii_txd
- xgmii_txc
- cfg_tx_prbs31_enable
Outputs
- serdes_tx_data
- serdes_tx_hdr
- tx_bad_block
Corresponden al ancho de buses.
- data_width
- ctrl_width
- hdr_width
Inputs
- clk
- rst
- xgmii_txd
- xgmii_txc
Outputs
- encoded_tx_data
- encoded_tx_hdr
- tx_bad_lock
- Mapea los datos de XGMII a bloques específicos de 10G.
- Detecta bloques y señala bloques de transmisión inválidos.
- Utiliza registros para almacenar los datos codificados y los encabezados de salida.
-
Corresponden al ancho de buses:
- data_width
- hdr_width
-
Controla si se realiza una inversión de bits:
- bit_reverse
-
Controla si se deshabilita el scrambler:
- scrambler_disable
-
Habilita la generación y verificación de secuencias pseudoaleatorias:
- prbs31_enable
-
Controlan la profundidad del pipeline:
- tx_serdes_pipeline
Inputs
- clk
- rst
- encoded_tx_data
- encoded_tx_hdr
- cfg_tx_prbs31_enable
Outputs
- serdes_tx_data
- serdes_tx_hdr
- lfsr (scrambler y prbs31)
- Declara reg y wires para el estado del mezclador de bits.
- Instancia un generador de secuencias que se actualiza en cada flanco positivo del reloj.
- Si prbs31_enable está activada y la señal de control correspondiente también, se utilizan los datos generados para la transmisión.
- El estado del mezclador se actualiza en cada flanco positivo del reloj y si la opción scrambler_disable está desactivada los datos codificados se mezclan antes de la transmisión.
- La salida puede ser opcionalmente invertida bit a bit dependiendo de la configuración de bit_reverse.
- Si serdes_pipeline es mayor que cero se crea un pipeline opcional.