記事 ID: 000082815 コンテンツタイプ: トラブルシューティング 最終改訂日: 2018/04/10

JESD204B IP RTL ステート・マシン・コントロールのデザイン例の複数のリセットを実行する際、断続的なエラーアサーションを行うのはなぜですか?

環境

  • インテル® Quartus® II サブスクリプション・エディション
  • インテル® Quartus® Prime 開発ソフトウェア・スタンダード・エディション
  • JESD204B インテル® FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    クリティカルな問題

    詳細

    インテル® Arria® 10、Stratix® V、Arria® V、または Cyclone® V デバイスに実装された JESD204B IP RTL ステート・マシン・コントロール・デザイン例の複数リセットを実行すると、tx_err (0x60)、rx_err0 (0x60) から読み取ることができるエラーが原因で、割り込みピン (jesd204_tx_int、またはjesd204_rx_int) がアサートされます。 およびrx_err1 (0x64) レジスター

    解決方法

    インテル Arria 10 デバイスについては、代わりに Nios® II プロセッサーのデザイン例 を使用してください。

    Stratix V、Arria V、または Cyclone V デバイスの場合、RTL に対して以下の変更を行います。

    1. jesd204b_ed.sv ファイルでトップレベル・モジュール・jesd204b_edを変更します。

    アクティブなハイリセット・ワイヤーを定義します。

    ワイヤー tx_link_rst_sync;

    ワイヤー tx_frame_rst_sync;

    ワイヤー rx_link_rst_sync;

    ワイヤー rx_frame_rst_sync;

    ワイヤー global_rst_sync;

     

    以下のワイヤ割り当てでリセットの極性を変更します。

    トランシーバーの準備が整うまで、コアをリセットモードに保持する

    global_rst_n_sync = ~global_rst_syncを割り当てます。global_rst_n_sync割り当ての追加

    tx_avs_rst_nを割り当てる = avs_rst_n;

    rx_avs_rst_nを割り当てる = avs_rst_n;

    tx_frame_rst_n= ~tx_frame_rst_syncを割り当てます。

    rx_frame_rst_n = ~rx_frame_rst_syncを割り当てます。

    tx_link_rst_n = ~tx_link_rst_syncを割り当てます。

    rx_link_rst_n = ~rx_link_rst_syncを割り当てます。

     

    altera_reset_controllerは、アクティブな高リセット・シンクロナイザーです。正しい極性を反映して、リセット・シンクロナイザーのインスタンス化の入力と出力を変更します。

    //

    グローバル・リセット用リセット・シンクロナイザー (mgmt クロックドメイン)

    //

    altera_reset_controller #(

    .NUM_RESET_INPUTS (1)

    .OUTPUT_RESET_SYNC_EDGES (「デアサート」)

    .SYNC_DEPTH (2)

    ) u_avs_rst_sync (

    .reset_in0 (~global_rst_n)

    .clk (mgmt_clk)

    .reset_out (global_rst_sync)

    );

     

    バス信号であるwire_tx_readyおよびwire_rx_readyでビットごとの AND を実行します。

    //

     

    トランスポート・レイヤーのリセット用リセット・シンクロナイザー (フレーム・クロック・ドメイン)

    //

    altera_reset_controller #(

    .NUM_RESET_INPUTS (1)

    .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)

    );

     

    altera_reset_controller #(

    .NUM_RESET_INPUTS (1)

    .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)

    );

     

    //

    ベースコアリセット用リセット・シンクロナイザー (リンク・クロック・ドメイン)

    //

    altera_reset_controller #(

    .NUM_RESET_INPUTS (1)

    .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)

    );

       

    altera_reset_controller #(

    .NUM_RESET_INPUTS (1)

    .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. モジュールcontrol_unit (control_unit.sv) で、frame_rst、link_rst、avs_rst &xcvr_rstのリセット値を 変更 します。

    //

    ベースコア・トランシーバー・リセット用出力レジスター

    //

    always @ (clk またはネゲッジrst_n)

    開始

    (~rst_n) 始まる場合

    frame_rst

    link_rst

    avs_rst

    xcvr_rst

    end else begin

     

    この問題に対する計画的な修正はありません。

    関連製品

    本記事の適用対象: 7 製品

    インテル® Arria® 10 FPGA & SoC FPGA
    Stratix® V FPGA
    Arria® V FPGA & SoC FPGA
    Cyclone® V GX FPGA
    Cyclone® V GT FPGA
    Cyclone® V SX SoC FPGA
    Cyclone® V ST SoC FPGA

    このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。