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

Arria 10 デバイスの fPLL が、フラクショナル 「precision k」モードの場合にアンロック対応状態を報告するのはなぜですか?

環境

  • インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
  • fPLL インテル® Arria® 10 Cyclone® 10 FPGA
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    詳細

    Arria® 10 デバイスのフラクショナル PLL (fPLL) ハードロック検出回路の問題により、fPLL はフラクショナル「precision k」モードを使用する際にアンロック状態を報告する場合があります。

     

    fPLL がフラクショナル・モードの場合、フィードバック・カウンター値は M および K (pll_dsm_fractional_division) の関数です。式は「M (整数) K/2^32」です。 K の法的な値は 1 ~ 2^32-1 です。

     

    「K ファクター」は、「pll_dsm_fractional_division/2^32」と定義されます。

     

    K ファクターが 0.1 未満または 0.9 より大きい場合、fPLL ハードロック検出回路は不安定になります。

    K ファクターが 0.1 ~ 0.9 の場合、fPLL ハードロック検出回路は信頼性があります。

     

    以下の例では、Arria 10 fPLL ロック検出回路が信頼できない場合について説明します。

     

    refclk (周波数) = 100MHz

    N カウンター = 1

    M カウンター = 40

    K カウンター (pll_dsm_fractional_division) = 2147483648

    L カウンター = 4

     

    PLL 出力 (周波数) = ( refclk (周波数) / N) * ( ( M ( K / 2^32) ) / L )

     

    この場合、

     

    PLL 出力 (周波数) = 100 * ( ( 40 ( 2147483648 / 2^32) ) / 4 )

    = 100 * ( ( 40 0.5 ) / 4)

    = 100 * ( 40.5 / 4 )

    = 100 * 10.125

    = 1012.5MHz

     

    小数部の値は 0.5 (2147483648 / 2^32、K = 2147483648) であり、0.1 から 0.9 の間であるため、ロック信号は信頼できます。

    解決方法

    フラクショナル値が 0.1 未満または 0.9 より大きい場合、fPLL ロック信号は不安定になります。この場合、次のソフト IP ロック検出ロジックをインスタンス化できます。

     

    この soft_lockppm_det.zip ファイルをダウンロードする

     

    soft_lckppm_det.v ファイルは暗号化されていますが、合成、シミュレーション、ハードウェア・テストに使用できます。

     

    ソフトロック検出回路ファイルのポートリストと説明は以下の通りです。

    ポート名

    入力 / 出力

    説明

    ref_clk

    入力

    fpll の基準クロック入力

    clk_low

    入力

    fpll からのクロック低、常にトグル、周波数は出力 reg pll_locked

    dead_ref_clk

    出力

    リファレンス clk が十分な速度で切り替わらないのでデッドと見なされていることを示します。デフォルトのしきい値は、モジュール・パラメーター・PPM_THRESHOLD_FOR_DEAD_CLKで定義されます。

    calibration_done

    入力

    fpll からのcal_done。セカンダリー・リセットと見なすことができます

    config_en

    入力

    コンフィグレーション・ポート・イネーブル

    config_clk

    入力

    コンフィグレーション・ポート・クロック

    config_data

    入力

    コンフィグレーション・ポート・データ。config_enが高い場合、データはconfig_clkの立ち上がりエッジでサンプリングされ、ロックおよびデッドクロック状態のしきい値を格納する内部レジスターにシフトされます。レジスター幅は、モジュール・パラメーター・CLK_LOW_CNT_WIDTHで定義されます。したがって、すべてのデータをシフトする必要がある合計サイクルは 2 CLK_LOW_CNT_WIDTH サイクルです。 シフト操作は、ロック状態のレジスターの LSB から開始します。2* CLK_LOW_CNT_WIDTHサイクルを繰り返すと、config_dataの値はdead_lock状態のレジスターの MSB になります。

    リセット

    入力

    fpll からのリセット

    関連製品

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

    インテル® Arria® 10 FPGA & SoC FPGA

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