ID articolo: 000076355 Tipo di contenuto: Risoluzione dei problemi Ultima recensione: 24/05/2017

Perché RapidIO I port_ok segnale di stato non si afferma dopo la ri-inizializzazione del collegamento?

Ambiente

  • Intel® Quartus® Prime Pro Edition
  • IP FPGA Intel® RapidIO (IDLE1 fino a 5,0 Gbaud)
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Problema critico

    Descrizione

    port_ok stato in bit-0, l'errore della porta 0 e il CSR di stato (0x158) possono rimanere a BASSO dopo la ri-inizializzazione del collegamento. La ri-inizializzazione del collegamento viene eseguita tramite l'attivazione di bit-23 PORT_DIS in Port 0 Control CSR (0x15C) o quando il partner di collegamento sta eseguendo il ripristino. Ciò potrebbe causare un errore fatale durante il normale funzionamento,

    Questo problema si verifica a causa dei seguenti motivi:

    • Il core RapidIO potrebbe non essere ripristinato prima che il ricetrasmettitore escono dal ripristino. Ciò fa sì che il core RapidIO inizi a funzionare mentre il ricetrasmettitore è ancora in fase di ripristino.
    • Il processo di ri-allineamento delle parole è limitato alla corsia 0 e si attiverà solo una volta durante la ri-inizializzazione del collegamento.

    Questo problema riguarda le seguenti varianti RapidIO I:

    • Arria® V/Cyclone® V con modalità x2.
    • Arria V/Cyclone V a velocità baud 5000 Mbaud.
    • Arria V con modalità x4 a velocità di trasmissione 3125 Mbaud.
    Soluzione

    Per garantire che il ricetrasmettitore non sia ripristinato e sia pronto per avviare eventuali operazioni prima del core RapidIO, qualificare il ripristino del core RapidIO con i segnali di stato pronti per il ricetrasmettitore nel modulo _riophy_reset:

    TX_SIDE

     

    sempre @(posge tx_clk o negedge reset_n)

    Iniziare

    se (!reset_n) iniziano

    tx_ready_s0 <= 1'b0;

    tx_ready_s1 <= 1'b0;

     

    fine altro iniziare

    tx_ready_s0 <= tx_ready;

    tx_ready_s1 <= tx_ready_s0;

     

    Fine

     

    Fine

     

    sempre @ (posge tx_clk o negedge reset_n) iniziano

    if(!reset_n)begin

    txreset_n_p2 <= 1'b0;

    txreset_n_p1 <= 1'b0;

    txreset_n <= 1'b0;

    fine altro iniziare

    se (!gxbpll_locked_tx_clk_d2 || !tx_ready_s1) iniziare

    txreset_n_p2 <= 1'b0;

    txreset_n_p1 <= 1'b0;

    txreset_n <= 1'b0;

    fine altro iniziare

    txreset_n_p2 <= 1'b1;

    txreset_n_p1 <= txreset_n_p2;

    txreset_n <= txreset_n_p1;

    Fine

    Fine

    Fine

     

    RX_SIDE

     

    sempre @(posge rx_clk o negedge reset_n)

    Iniziare

    se (!reset_n) iniziano

    rx_ready_s0 <= 1'b0;

    rx_ready_s1 <= 1'b0;

     

    fine altro iniziare

    rx_ready_s0 <= rx_ready;

    rx_ready_s1 <= rx_ready_s0;

     

    Fine

    Fine

     

    sempre @ (posge rx_clk o negedge reset_n) iniziano

    if(!reset_n)begin

    rxreset_n_p2 <= 1'b0;

    rxreset_n_p1 <= 1'b0;

    rxreset_n <= 1'b0;

    fine altro iniziare

    se (!rx_ready_s1) iniziano

    rxreset_n_p2<=1'b0;

    rxreset_n_p1<=1'b0;

    rxreset_n<=1'b0;

     

    fine altro iniziare

    rxreset_n_p2 <= 1'b1;

    rxreset_n_p1 <= rxreset_n_p2;

    rxreset_n <= rxreset_n_p1;

     

    Fine

    Fine

    Fine

     

    Per attivare manualmente il processo di ri-allineamento delle parole, eseguire i seguenti passaggi tramite l'interfaccia del ricetrasmettitore Avalon-MM phy_mgmt:

    (1) Asserisce phy_mgmt_write=1'b1 per specificare l'operazione di scrittura.

    (2) Scrivere i dati phy_mgmt_writedata=32'b0 nell'indirizzo phy_mgmt_address=9'h80 per la destinazione per la corsia 0.

    (3) Scrivere i dati phy_mgmt_writedata=32'b1 nell'indirizzo phy_mgmt_address=9'h85 per affermare rx_enapatternalign che attiverà l'operazione di allineamento delle parole per la corsia 0.

    (4) Scrivere i dati phy_mgmt_writedata=32'b0 nell'indirizzo phy_mgmt_address=9'h85 per svalutare rx_enapatternalign.

    Ripetere i passaggi sopra per tutte le altre corsie: corsia 1 (0x80=32'b1), corsia 2 (0x80=32'b2) e corsia 3 (0x80=32'b3).

    Prodotti correlati

    Questo articolo si applica a 2 prodotti

    FPGA e FPGA SoC Arria® V
    FPGA e FPGA SoC Cyclone® V

    Il contenuto di questa pagina è il risultato della combinazione tra la traduzione umana e quella automatica del contenuto originale in lingua inglese. Questo contenuto è fornito soltanto a titolo di informazione generale e non ha pretese di completezza o accuratezza. In presenza di contraddizioni tra la versione in lingua inglese di questa pagina e la sua traduzione, fa fede la versione inglese. Visualizza la versione in lingua inglese di questa pagina.