記事 ID: 000075352 コンテンツタイプ: トラブルシューティング 最終改訂日: 2021/08/27

Arria 10 SerialLite 3 ストリーミング・デザインにセットアップ・タイミング違反が見えるのはなぜですか?

環境

  • インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
  • Serial Lite III ストリーミング・インテル® Arria® 10 FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    詳細

    インテル® Quartus® Prime 開発ソフトウェアのバージョン 16.1.2 以前®問題により、Arria® 10 SerialLite™ III コアは以下のようなタイプの「pld_10g_tx_pempty_regノード」と「アルテラ・スタンダード・シンクロナイザー・stdsync_txpempty|din_s1」間のパスでセットアップ・タイミング違反が発生する可能性があります。

    From Node: seriallite_iii_streaming:seriallite_iii_streaming_inst|seriallite_iii_streaming_seriallite_iii_a10_161_jvvqjaa:seriallite_iii_streaming|interlaken_native_wrapper_duplex_seriallite_iii_streaming_seriallite_iii_a10_161_zgsou7q:A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|seriallite_iii_streaming_seriallite_iii_a10_161_zgsou7q:DUPLEX_WRAPPER.interlaken_inst|seriallite_iii_streaming_altera_xcvr_native_a10_161_koe2tsa:native_ilk_wrapper|twentynm_xcvr_native:g_xcvr_native_insts[5].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm5es:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm5es:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs.inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg
    ノード: seriallite_iii_streaming:seriallite_iii_streaming_inst|seriallite_iii_streaming_seriallite_iii_a10_161_jvvqjaa:seriallite_iii_streaming|interlaken_native_wrapper_duplex_seriallite_iii_streaming_seriallite_iii_a10_161_zgsou7q:A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[5].stdsync_txpempty|din_s1
    起動クロック: seriallite_iii_streaming_inst|seriallite_iii_streaming|g_xcvr_native_insts[*]|tx_pma_clk
    ラッチクロック: seriallite_iii_streaming_inst|seriallite_iii_streaming|g_xcvr_native_insts[0]|tx_pma_clk

     

    解決方法

    この問題を回避するには、生成された ip .sdc ファイル(seriallite_iii_streaming*.sdc)を変更する必要があります。

    以下に示す元 の .sdc 拘束方法:

    set_max_skew -[get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] - [get_keepers {*$module_name*|interlaken_native_wrapper_duplex|stdsync_txpempty|din_s1}] -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.85

     

    set_net_delay - [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native:g_xcvr_native_insts[*].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4.inst_hssi_10g_txsi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] - [get_keepers {*$module_name*|interlaken_native_wrapper_duplex_A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[*].stdsync_txpempty|din_s1}] -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.85

     

    set_max_delay -from [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native:g_xcvr_native_insts[*].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs.inst_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] - [get_keepers {$module_name*|interlaken_native_wrapper_duplex_*:A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[*].stdsync_txpempty|din_s1}] 100

    set_min_delay - [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native:g_xcvr_native_insts[*].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4.inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] - [get_keepers {$module_name*|interlaken_native_wrapper_duplex_*]A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[*].stdsync_txpempty|din_s1}] -100

     

    以下の禁縷事項に置き換える必要があります。

     

    set inst_xcvr_list [get_entity_instances twentynm_xcvr_native]

     

    foreach each_xcvr_inst \$inst_xcvr_list {

    {{文字列が等しい"quartus_sta" \$::Time CustomizationInfo(nameof時utable)] } {

    set_max_skew -from [get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] - [get_keepers {*stdsync_txpempty|din_s1}] -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.85

    }

    set_net_delay - [get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] - [get_keepers {*stdsync_txpempty|din_s1}] -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.85

     

    set_max_delay -[get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] から [get_keepers {*stdsync_txpempty|din_s1}] 100

    set_min_delay -[get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] から [get_keepers {*stdsync_txpempty|din_s1}] -100

    }

     

    この問題は、Quartus® Prime ソフトウェアのバージョン 17.0 以降®修正されています。

     

    関連製品

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

    インテル® Arria® 10 FPGA & SoC FPGA
    インテル® プログラマブル・デバイス

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