重大問題
port_ok位 0 狀態,在連結重新初始化發生後,埠 0 錯誤與狀態 CSR (0x158) 可能維持在低位。連結重新初始化不是透過在埠 0 控制 CSR (0x15C) 中觸發位 23 PORT_DIS,或是在連結夥伴執行重設時完成。這可能會在正常操作期間造成嚴重錯誤,
由於下列原因,此問題會發生:
- 在收發器重設之前,RapidIO 核心可能已無法重設。這會導致快速物聯網核心在收發器仍在重設時開始運作。
- 重新對齊詞程式僅限於通道 0,且僅在連結重新初始化期間觸發一次。
此問題會影響下列 RapidIO I 變異:
- 使用 x2 模式Arria® V/Cyclone® V。
- Arria v/Cyclone V,mbaud 速率 5000 Mbaud。
- Arria V,採用 x4 模式,傳輸速率 3125 Mbaud。
若要確保收發器已過重設,並且準備在快速物聯網核心之前開始任何操作,請在模組中透過收發器 就緒狀態訊號,將 RapidIO 核心重設合格 _riophy_reset:
TX_SIDE
永遠 @(請tx_clk或否定reset_n)
開始
如果 (!reset_n) 開始
tx_ready_s0
tx_ready_s1
結束其他開始
tx_ready_s0
tx_ready_s1
結束
結束
永遠 @ (請tx_clk或壞死reset_n) 開始
如果 (!reset_n) 開始
txreset_n_p2
txreset_n_p1
txreset_n
結束其他開始
如果 (!gxbpll_locked_tx_clk_d2 ||!tx_ready_s1) 開始
txreset_n_p2
txreset_n_p1
txreset_n
結束其他開始
txreset_n_p2
txreset_n_p1
txreset_n
結束
結束
結束
RX_SIDE
永遠 @(rx_clk格或壞人reset_n)
開始
如果 (!reset_n) 開始
rx_ready_s0
rx_ready_s1
結束其他開始
rx_ready_s0
rx_ready_s1
結束
結束
永遠 @ (從 rx_clk 或 negedge reset_n) 開始
如果 (!reset_n) 開始
rxreset_n_p2
rxreset_n_p1
rxreset_n
結束其他開始
如果 (!rx_ready_s1) 開始
rxreset_n_p2
rxreset_n_p1
rxreset_n
結束其他開始
rxreset_n_p2
rxreset_n_p1
rxreset_n
結束
結束
結束
若要以手動方式觸發文字重新對齊程式,請透過 Avalon-MM phy_mgmt收發器介面執行下列步驟:
(1) 主張 phy_mgmt_write=1'b1 指定寫入操作。
(2) 將資料phy_mgmt_writedata=32'b0 寫入位址phy_mgmt_address=9'h80,針對通道 0。
(3) 將資料phy_mgmt_writedata=32'b1 寫入位址phy_mgmt_address=9'h85,以維護rx_enapatternalign,這將觸發通道 0 的文字對齊作業。
(4) 將資料phy_mgmt_writedata=32'b0 寫入位址phy_mgmt_address=9'h85 至 deassert rx_enapatternalign。
為所有其他通道重複上述步驟:通道 1 (0x80=32'b1)、通道 2 (0x80=32'b2),以及通道 3 (0x80=32'b3)。