はい。PLL インテル FPGA IPでデューティー・サイクル値を 50% 以外に設定すると、出力クロック周波数に問題が発生する可能性があります。これは、Quartus® II ソフトウェア・バージョン 13.0sp1 以前を使用している場合に発生することがあります。
この問題は、 C カウンター Hi Divide パラメーターと C カウンター低除算 パラメーターが PLL インテル FPGA IPによって正しく計算されていない場合に発生します。コンパイルレポート => フィッター => リソースセクション => PLL 使用サマリー は、実際の出力クロック周波数を表示します。レポートされる出力クロック周波数が正しくない場合、 C カウンター Hi Divide または C カウンター Low Divide パラメーターは正しくない。
C カウンターは、電圧制御オシレーター (VCO) 周波数を目的の出力周波数に分割するために使用されます。C-Counter Hi Divide パラメーターと C カウンター低除算パラメーターの合計は、VCO フリークエンシーの結果として得られる分周値です。
例えば、VCO が 840MHz で動作していて、希望の出力クロックが 105MHz の場合、合計除算値 8 が必要です。デューティー・サイクルが 50% の場合、高カウントと低カウントは、各パラメーターの除算値が 4 の C カウンター Hi 除算パラメーターと C カウンター低除算パラメーターの間で均等に割る必要があります。その他のデューティー・サイクル値を作成するには、必要に応じて C-Counter Hi Divide および C-Counter Low Divide パラメーターを調整できます。必要な出力クロック周波数を生成するには、これらのパラメーターの合計が総除算値と等しいことを確認する必要があります。
合計除算値が奇数の値の場合、50%のデューティサイクルが必要な場合は、Cカウンター Odd Divide Enable パラメータをオンにする必要があります。例えば、VCO が 840MHz で動作していて、希望する出力クロック周波数が 120MHz の場合、合計除算値 7 が必要です。この場合、C カウンター Hi Divide パラメータは 4 となり、C-Counter Low Divide パラメータは 3 となり、C-Counter Odd Divide Enable パラメータを True に設定します。50% 以外のデューティー・サイクルが必要な場合は、必要に応じて C カウンター Hi Divide パラメーターと C カウンター Low Divide パラメーターを調整する必要があります。必要な出力クロック周波数を生成するには、これらのパラメーターの合計が総除算値と等しいことを確認する必要があります。
デザインでこの問題を解決するには、<PLL インスタンス名>_0002.v ファイルを開き、影響を受ける出力クロックの C-Counter Hi Divide および C-Counter Low Divide パラメーターを見つけます。必要に応じてこれらのパラメーターを調整して、正しい出力クロック周波数と必要なデューティー・サイクルを作成します。
上記の例を参照して、VCO が 840MHz で動作していて、希望する出力クロック周波数が 105MHz でデューティー・サイクルが 12.5% の場合、以下のパラメーターが必要になります。
- C カウンター Hi Divide = 1
- C カウンター Low Divide = 7
- C カウンターの奇数除算イネーブル = フォルス
PLL インテル FPGA IP計算の問題により、120MHz の出力クロック周波数に対して以下のパラメーターを設定します。
- C カウンター Hi Divide = 1
- C カウンター Low Divide = 6
- C カウンター Odd Divide イネーブル = True
この例のパラメーターを修正するには、C-Counter Low Divide パラメーターを 7 に設定し、<PLL インスタンス名>_0002.v ファイルで C カウンター Odd Divide Enable パラメーターを False に設定する必要があります。