Identyfikator artykułu: 000076355 Typ materiałów: Rozwiązywanie problemów Ostatnia zmiana: 24-05-2017

Dlaczego sygnał statusu port_ok RapidIO może nie potwierdzać się po ponownej inicjalizacji łącza?

Środowisko

  • Intel® Quartus® Prime Pro Edition
  • Układ FPGA Intel® IP RapidiO (IDLE1 do 5,0 GBd)
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Problem krytyczny

    Opis

    status port_ok w bit-0, błąd portu 0 i csr stanu (0x158) może pozostać na niskim poziomie po ponownej inicjalizacji połączenia. Ponowna inicjalizacja połączenia odbywa się poprzez uruchomienie bit-23 PORT_DIS w CSR sterowania Port 0 (0x15C) lub gdy partner łącza wykonuje resetowanie. Może to spowodować krytyczny błąd podczas normalnej pracy,

    Ten problem występuje z następujących powodów:

    • Rdzeń RapidIO może się zresetować przed resetowaniem urządzenia nadawczo-odbiorczego. Powoduje to, że rdzeń RapidIO może rozpocząć działanie, gdy urządzenie nadawczo-odbiorcze jest nadal resetowane.
    • Proces ponownego wyrównania słowa jest ograniczony do linii 0 i uruchomi się tylko raz podczas ponownego inicjalizacji połączenia.

    Ten problem dotyczy następujących wariantów RapidIO I:

    • Arria® V/Cyclone® V z trybem x2.
    • Arria V/Cyclone V przy prędkości transmisji 5000 Mb/s.
    • Arria V z trybem x4 z prędkością transmisji 3125 Mb/s.
    Rozwiazanie

    Aby urządzenie nadawczo-odbiorcze nie było resetowane i gotowe do rozpoczęcia wszelkich operacji przed rdzeniem RapidIO, zakwalifikuj resetowanie rdzenia RapidIO za pomocą sygnałów stanu nadajnika-odbiornika w module _riophy_reset:

    TX_SIDE

     

    always @(posedge tx_clk lub reset_n)

    Rozpocząć

    jeśli (!reset_n) rozpocznie się

    tx_ready_s0 <= 1'b0;

    tx_ready_s1 <= 1'b0;

     

    koniec jeszcze się zaczyna

    tx_ready_s0 < = tx_ready;

    tx_ready_s1 < = tx_ready_s0;

     

    Końcu

     

    Końcu

     

    zawsze @ (pozować tx_clk lub reset_n)

    jeśli(!reset_n)rozpocznij

    txreset_n_p2 <= 1'b0;

    txreset_n_p1 <= 1'b0;

    txreset_n <= 1'b0;

    koniec jeszcze się zaczyna

    jeśli (!gxbpll_locked_tx_clk_d2 || !tx_ready_s1)

    txreset_n_p2 <= 1'b0;

    txreset_n_p1 <= 1'b0;

    txreset_n <= 1'b0;

    koniec jeszcze się zaczyna

    txreset_n_p2 <= 1'b1;

    txreset_n_p1 < = txreset_n_p2;

    txreset_n < = txreset_n_p1;

    Końcu

    Końcu

    Końcu

     

    RX_SIDE

     

    always @(posedge rx_clk lub reset_n)

    Rozpocząć

    jeśli (!reset_n) rozpocznie się

    rx_ready_s0 <= 1'b0;

    rx_ready_s1 <= 1'b0;

     

    koniec jeszcze się zaczyna

    rx_ready_s0 < = rx_ready;

    rx_ready_s1 < = rx_ready_s0;

     

    Końcu

    Końcu

     

    zawsze @ (pozować rx_clk lub reset_n)

    jeśli(!reset_n)rozpocznij

    rxreset_n_p2 <= 1'b0;

    rxreset_n_p1 <= 1'b0;

    rxreset_n <= 1'b0;

    koniec jeszcze się zaczyna

    jeśli (!rx_ready_s1) rozpocznie się

    rxreset_n_p2<=1'b0;

    rxreset_n_p1<=1'b0;

    rxreset_n<=1'b0;

     

    koniec jeszcze się zaczyna

    rxreset_n_p2 <= 1'b1;

    rxreset_n_p1 < = rxreset_n_p2;

    rxreset_n < = rxreset_n_p1;

     

    Końcu

    Końcu

    Końcu

     

    Aby ręcznie uruchomić proces ponownego wyrównania wyrazu, wykonaj następujące kroki za pomocą interfejsu nadajnika-odbiornika Avalon-MM phy_mgmt:

    (1) Zapewnienie phy_mgmt_write=1'b1 w celu określenia operacji zapisu.

    (2) Zapis danych phy_mgmt_writedata=32'b0 na adres phy_mgmt_address=9'h80 do celu dla linii 0.

    (3) Zapis danych phy_mgmt_writedata=32'b1 na adres phy_mgmt_address=9'h85, aby potwierdzić rx_enapatternalign, co uruchomi operację wyrównania słowa dla linii 0.

    (4) Zapis danych phy_mgmt_writedata=32'b0 na adres phy_mgmt_address=9'h85, aby odprowadzić rx_enapatternalign.

    Powtórz powyższe kroki dla wszystkich innych linii: pasm 1 (0x80 = 32'b1), linii 2 (0x80 = 32'b2) i linii 3 (0x80 = 32'b3).

    Podobne produkty

    Ten artykuł dotyczy 2 prod.

    FPGA Arria® V i SoC
    FPGA Cyclone® V i SoC

    Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.