ID del artículo: 000082815 Tipo de contenido: Resolución de problemas Última revisión: 17/01/2023

¿Por qué se observa una concepción de error intermitente cuando se realizan restablecimientos múltiples del ejemplo de diseño de control de la máquina de estado DE RTL ip JESD204B?

Entorno

  • Edición de suscripción de Intel® Quartus® II
  • Intel® Quartus® Prime Standard Edition
  • JESD204B Intel® FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Problema crítico

    Descripción

    Al realizar varios restablecimientos del ejemplo de diseño de control del equipo de estado de RTL de la PI de JESD204B implementado en Intel® Arria® 10, Stratix® V, Arria® V o Cyclone® dispositivos V, es posible que observe la afirmación de pines de interrupción (jesd204_tx_int o jesd204_rx_int) debido a errores, que se pueden leer en el tx_err (0x60),rx_err0 (0x60), y rx_err1 (0x64) registros.

    Resolución

    Para Intel Arria 10 dispositivos, utilice en cambio el ejemplo de diseño del procesador Nios® II.

    Para los dispositivos Stratix V, Arria V o Cyclone V, realice las siguientes modificaciones en el RTL:

    1. Modifique la jesd204b_ed de módulos de nivel superior en el archivo jesd204b_ed.sv.

    Define los cables activos de restablecimiento alto:

    cable tx_link_rst_sync;

    cable tx_frame_rst_sync;

    cable rx_link_rst_sync;

    cable rx_frame_rst_sync;

    global_rst_sync por cable;

     

    Modifique la polaridad del reinicio en las siguientes asignaciones de cables:

    Mantenga el núcleo en modo de reinicio hasta que el transceptor esté listo

    asigne global_rst_n_sync = ~global_rst_sync; Agregar asignación global_rst_n_sync

    assign tx_avs_rst_n = avs_rst_n;

    assign rx_avs_rst_n = avs_rst_n;

    asignar tx_frame_rst_n = ~tx_frame_rst_sync;

    asignar rx_frame_rst_n = ~rx_frame_rst_sync;

    asigne tx_link_rst_n = ~tx_link_rst_sync;

    asignar rx_link_rst_n = ~rx_link_rst_sync;

     

    altera_reset_controller es un sincronizador activo de restablecimiento alto. Modifique la entrada y salida de la creación de instancias del sincronizador de restablecimiento en consecuencia para reflejar la polaridad correcta:

    //

    Sincronizadores de reinicio para el restablecimiento global (dominio de reloj mgmt)

    //

    n.º de altera_reset_controller

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("des OUTPUT_RESET_SYNC_EDGES"),

    . SYNC_DEPTH (2)

    ) u_avs_rst_sync (

    .reset_in0 (~global_rst_n),

    .clk (mgmt_clk),

    .reset_out (global_rst_sync)

    );

     

    Realice de forma orientado a bits en wire_tx_ready y wire_rx_ready, que son las señales de bus.

    //

     

    Sincronizadores de reinicio para el restablecimiento de la capa de transporte (dominio de reloj de fotogramas)

    //

    n.º de altera_reset_controller

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("des OUTPUT_RESET_SYNC_EDGES"),

    . SYNC_DEPTH (2)

    ) u_tx_frame_rst_sync (

    .reset_in0 (~(wire_frame_rst_n &wire_tx_ready)),

    .clk (frame_clk),

    .reset_out (tx_frame_rst_n_sync)

    );

     

    n.º de altera_reset_controller

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("des OUTPUT_RESET_SYNC_EDGES"),

    . SYNC_DEPTH (2)

    ) u_rx_frame_rst_sync (

    .reset_in0 (~(wire_frame_rst_n &wire_rx_ready)),

    .clk (frame_clk),

    .reset_out (rx_frame_rst_n_sync)

    );

     

    //

    Sincronizadores de reinicio para el restablecimiento del núcleo base (dominio de reloj de enlace)

    //

    n.º de altera_reset_controller

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("des OUTPUT_RESET_SYNC_EDGES"),

    . SYNC_DEPTH (2)

    ) u_tx_link_rst_sync (

    .reset_in0 (~(wire_link_rst_n &wire_tx_ready)),

    .clk (link_clk),

    .reset_out (tx_link_rst_n_sync)

    );

       

    n.º de altera_reset_controller

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("des OUTPUT_RESET_SYNC_EDGES"),

    . SYNC_DEPTH (2)

    ) u_rx_link_rst_sync (

    .reset_in0 (~(wire_link_rst_n &wire_rx_ready)),

    .clk (link_clk),

    .reset_out (rx_link_rst_n_sync)

    );

     

    ----------------------------------------

     

    2. En el módulo control_unit (control_unit.sv), cambie el valor de restablecimiento de frame_rst, link_rst, avs_rst y xcvr_rst.

    //

    Registro de salida para restablecimientos de transceptores de núcleo base

    //

    always @ (100 000 000 100 0 rst_n 00 500 000 000 100 000 000

    Comenzar

    si (~rst_n) comience

    frame_rst

    link_rst

    avs_rst

    xcvr_rst

    fin de lo demás comenzar

     

    No hay ninguna corrección planeada para este problema.

    Productos relacionados

    Este artículo se aplica a 7 productos

    FPGA de SoC y FPGA Intel® Arria® 10
    FPGA Stratix® V
    FPGA de SoC y FPGA Arria® V
    FPGA Cyclone® V GX
    FPGA Cyclone® V GT
    FPGA de sistema integrado en chip Cyclone® V SX
    FPGA de sistema integrado en chip Cyclone® V ST

    El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.