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 からのリセット |