Intel Stratix 10のクロッキングおよびPLLユーザーガイド
インテル Stratix 10 のクロッキングおよびPLLの概要
クロック・ネットワークの概要
インテル® Stratix 10® デバイスには、平衡遅延でファブリック全体に信号を配信するための専用リソースが含まれています。これらのリソースは、通常、クロック信号に使用されます。これらのリソースは、スキューの少ない他の信号にも使用できます。 インテル® Stratix 10® では、これらのリソースは、さまざまなサイズの低スキュークロックツリーの実装を可能にするプログラマブル・クロック・ルーティング・ネットワークとして実装されています。
PLLの概要
PLL(Phase-Locked Loop)は、デバイス・クロック管理、外部システムクロック管理、および高速I/Oインターフェイスのための堅牢なクロック管理と合成機能能を提供しています。
インテル® Stratix 10® デバイスファミリーは次コア・アプリケーションのPLLを有します。
- fPLL—フラクショナルPLLまたは整数PLLとして動作可能です。
- I/O PLL—整数PLLとしてのみ動作可能です。
fPLLは、HSSIバンクでトランシーバー・ブロックに隣接して配置されます。各トランシーバーは2つのfPLLを有します。それぞれのfPLLは、従来の整数モードで独立してコンフィグレーションすることができます。フラクショナル・モードでは、fPLLは三次デルタ・シグマ変調で動作可能です。トランシーバー用のトランスミッター(TX)クロックを生成するように、またはコアに単一のクロックを供給するように各トランスミッターを設定できます。
I/O PLLは、I/O バンクでハード・メモリー・コントローラーおよびLVDSシリアライザ / デシリアライザ(SERDES)・ブロックに隣接して配置されます。各I/O バンクは1 つのI/O PLLを有します。このI/O PLLは従来の整数モードで動作可能です。なお、各I/O PLLは9つのCカウンター出力を有します。
インテル® Stratix 10® デバイスは最大密度デバイスで最大48つのfPLLと42つのI/O PLLを備えています。
インテル Stratix 10 のクロッキングおよびPLLのアーキテクチャーと機能
クロック・ネットワークのアーキテクチャーと機能
クロック・ネットワーク・リソースの利点
各 インテル® Stratix 10® デバイスは、いくつかの均等なサイズのクロックセクターに分割されます。
クロック・ネットワーク階層
インテル® Stratix 10® クロック・ネットワークは、3つのレベルの階層に編成することができます。
クロックセクター
各クロックセクターには、プログラマブル・クロック・ネットワークがアクセスできる専用セクタークロック(SCLK)およびロウ・クロック・ネットワーク・リソースがあります。各クロックセクターは、プログラマブル・クロック・ネットワーク・リソースによって囲まれています。各側には、32の独立した双方向クロックワイヤを含むチャネルがあります。各コーナーには、これらのクロックワイヤ間をルーティングできるプログラマブル・クロック・スイッチ・マルチプレクサーのセットがあります。
垂直クロック・ワイヤ上の信号は、クロック・タップ・マルチプレクサーを介してそのセクターにその左または右に入ることができます。クロックタップマルチプレクサーはセクタークロックを駆動し、セクタークロックはクロックセクター内の各行に信号を分配します。各行には、セクター内のすべてのコア機能ブロック、PLL、およびI/Oインターフェイス、また隣接トランシーバーに接続する6つのロウ・クロック・リソースがあります。
プログラマブル・クロック配線
インテル® Quartus® Primeソフトウェアは自動的にクロックスイッチ、クロックタップ、SCLK、およびロークロック・マルチプレクサーをコンフィグレーションして、スキューバランスのクロックツリーを生成します。結果のルーティングパスは、クロックソースからの信号を1つ以上のクロックセクターのすべてのターゲット送り先に分配します。
インテル® Quartus® Primeソフトウェアは、次の図の例に示すように、単一のクロックセクターからデバイス全体にわたるさまざまなサイズの効率的なバランスのとれたクロックツリーを作成します。デフォルトでは、 インテル® Quartus® Primeソフトウェアは自動的にクロックツリーのサイズと位置を決定します。または、クロック領域の割り当てまたはロジックロック領域でクロックツリーのサイズと位置を直接制約することもできます。
クロック・ネットワークの総挿入遅延は、クロックツリーを実装するのに必要なクロックリソースの数に依存し、到達するクロックセクターの数および信号源からの最も遠いクロック宛先の距離と共に増加します。遅延が増加するにつれて、異なるクロック・ツリー・ブランチを使用するクロックセクターを横切る最悪の場合のスキューが増大し、最大性能に影響を与える可能性があります。超高速クロック信号の場合、駆動されるクロックセクターの数を減らしてクロックスキューを低減し、クロックソースと最も遠いデスティネーションとの間の距離を減少させることが有利であり、これによりクロックスキューおよびトータルクロック挿入遅延を減少します。
クロック・リソース
デバイス | 使用可能なリソース数 | クロック・リソースのソース |
---|---|---|
|
トランシーバー : 24 の差動 I/O:32のシングルエンドまたは16の差動 |
トランシーバー・ピン : REFCLK_GXB[L,R][1,4][C,D,E,F,G,H,I,J,K,L,M,N]_CH[B,T][p,n] I/O PLLーCLK_[2,3][A..L]_[0,1][p,n] |
|
トランシーバー : 48 の差動 I/O:32のシングルエンドまたは16の差動 |
|
|
トランシーバー : 32 の差動 I/O:60のシングルエンドまたは30の差動 |
|
MX 1100 |
トランシーバー : 16 の差動 I/O:36のシングルエンドまたは18の差動 |
|
|
トランシーバー : 32 の差動 I/O:56のシングルエンドまたは32の差動 |
|
|
トランシーバー : 32 の差動 I/O:52のシングルエンドまたは26の差動 |
|
|
トランシーバー : 32 の差動 I/O:64のシングルエンドまたは32の差動 |
|
|
トランシーバー : 32 の差動 I/O:96のシングルエンドまたは48の差動 |
|
|
トランシーバー : 53 の差動 I/O:36のシングルエンドまたは18の差動 |
|
|
トランシーバー : 24 の差動 I/O:96のシングルエンドまたは48の差動 |
デバイス | 使用可能なリソース数 | クロック・リソースのソース |
---|---|---|
すべての インテル® Stratix 10® デバイス | 各クロックセクターの境界で32つの双方向プログラマブル・クロック・ルーティング |
トランシーバー・バンク:
I/Oバンク :
|
クロック入力ピンの接続についての詳細は、 ピン接続ガイドラインを参照してください。
プログラマブル・クロック配線のソース
このセクションでは、プログラマブル・クロック・ルーティングを駆動できるソースについて説明します。
専用クロック入力ピン
専用クロック入力ピンのソースは以下のとおりです。
- fPLL—REFCLK_GXB[L,R][1,4][C,D,E,F,G,H,I,J,K,L,M,N]_CH[B,T][p,n](トランシーバー・カラムから)
- I/O PLL—CLK_[2,3][A..N]_[0,1][p,n](I/Oカラムから)
専用クロック入力ピンは、非同期クリア、プリセット、クロック・イネーブルのような高ファンアウト・コントロール信号や、GCLKまたはRCLKネットワークを介するプロトコル信号に使用することができます。
I/O PLLの専用クロック入力ピンは、差動クロックまたはシングル・エンド・クロックのいずれかになります。 fPLLの専用クロック入力ピンは差動クロックのみをサポートし、シングル・エンド・クロックはサポートしません。
グローバル・クロックまたはリージョナル・クロックにPLLをドライブするとPLL入力でより高いジッタが生じることがあり、この場合PLLはグローバル・クロックまたはリージョナル・クロックを完全に補正することができません。Intelは、PLLをドライブするにあたって最適なパフォーマンスを得るためには、専用クロック入力ピンを使用することを推奨します。
内部ロジック
デバイスの左右のエッジにあるクロック・スイッチ・マルチプレクサーとI/Oバンクの隣にあるクロック・スイッチ・マルチプレクサーを除いて、最大8つのコア信号を各クロック・スイッチ・マルチプレクサーに送ることができます。
DPAクロック出力
各DPAクロック出力はプログラマブル・クロック・ルーティングを駆動できます。
トランシーバー・クロック出力
PMAおよびPCS TXおよびRXクロック出力はプログラマブル・クロック・ルーティングを駆動できます。
PLL クロック出力
fPLLおよびI/O PLL クロック出力はプログラマブル・クロック配線をドライブすることができます。
クロック管理機能
次の図は、 インテル® Stratix 10® クロック制御機能(クロック・ゲーティングとクロック・ディバイダー)の概要を示しています。 I/O PLL出力からのクロックは動的にゲート制御することができます。これらのクロック信号は、他のクロックソースとともに、ペリフェラル分散型クロックマルチプレクサー(DCM)に送られます。 DCMペリフェラルでは、クロック信号は、ルート・クロック・ゲートによって直接ゲートされるか、ゲートによってゲートされるか、クロック・ディバイダーで分周されます。
インテル® Quartus® Primeソフトウェアは、クロック信号をプログラマブル・クロック・ルーティングにルーティングして、各クロックセクターに到達します。クロック信号は、SCLKゲートによって各セクターでゲートすることができます。クロックは、SCLKネットワークに続いてロウ・クロック・ネットワークに入り、最終的にコアのレジスターに到達します。 LABレジスターには、次の図に示すように、機能クロックイネーブル機能が組み込まれています。
クロック・ゲーティング
ルート・クロックのゲート
I/Oバンクとトランシーバー・バンクごとに1つのルート・クロック・ゲートがあります。このゲートはペリフェラルDCMの一部であり、クロックバッファの近くに配置されています。
インテル® Stratix 10® ルート・クロック・ゲートは、高い挿入遅延が許容される制限付きクロック・ゲーティングシナリオに対して意図されています。ルート・クロック・ゲートを使用する場合、クロックゲートのアサートと出力クロック信号の対応する変更の間に数クロックの遅延が予想されます。高周波数クロックの場合、セクター・クロック・ゲートを使用します。
セクター・クロックのゲート
デバイスの各セクターには32個のSCLKがあります。各SCLKには、クロックゲートとバイパス可能なクロック・ゲート・パスがあります。 SCLKゲートは、コアロジックからのクロックイネーブル入力によって制御されます。 インテル® Quartus® Primeソフトウェアはセクター内の32個のSCLKに最大8個の固有クロックイネーブル信号をルーティングできます。
出力クロック信号( outclk )にグリッチのないゲーティングを提供するために、Intelはネガティブラッチ付きのクロックゲートを使用することを推奨します。クロックゲートは、入力クロック信号(inclk)の次の立ち上がりエッジでイネーブル信号(clkena)をキャプチャします。 次のタイミング図は、inclkとclkenaに対するoutclkの関係を示しています。
セクター内のSCLKネットワークに入るクロック信号は、そのセクター内のコアロジックにしか到達できません。デザインでSCLKゲートをインスタンス化すると、 インテル® Quartus® PrimeソフトウェアはSCLKゲートを自動的に複製し、クロック信号がルーティングされるすべてのセクターにクロックゲートを作成します。
SCLKゲートは、高周波クロック用のサイクル固有のクロック・ゲーティングに適しています。 SCLKゲートへのイネーブル・パスのタイミングは、 インテル® Quartus® Primeソフトウェアにより分析されます。
I/O PLLクロック・ゲート
インテル® Stratix 10® I/O PLLのそれぞれの出力カウンターは動的にゲート制御できます。これは、ルート・クロック・ゲートが9個の出力カウンターのうちの1つだけをゲートすることができるため、ルート・クロック・ゲートの有用な代替手段を提供します。
ただし、I/O PLLクロック・ゲートはサイクル固有ではありません。 I/O PLLクロック・ゲートを使用する場合、クロック・ゲートのアサーションまたはデアサートとクロック信号の対応する変更との間に数クロック・サイクルの遅延が予想されます。イネーブル信号が出力クロックのクロックドメインに同期されなければならないため、遅延サイクルの数は非確定的です。これによりグリッチのないゲートが保証されます。
LABクロックのゲート
インテル® Stratix 10® LABレジスターにはクロック・ゲーティング機能が内蔵されています。 インテル® Stratix 10® クロック・ネットワーク図のクロック・ゲーティングおよびクロック・ディバイダーに示されているように、レジスター・クロック・イネーブル・メカニズムは強化されたデータフィードバックです。LABクロック・ゲートは、純粋に機能的なクロック・イネーブルであるため、関連する電力節減はありません。
その分析および合成段階は、 インテル® Quartus® Primeソフトウェアは、レジスター転送レベル(RTL)におけるクロック・ゲーティングの動作記述からLABクロックゲートを推論します。物理クロックゲートが必要な場合、明示的にインスタンス化する必要があります。
クロック・ディバイダー
I/Oバンクとトランシーバー・バンクごとに1つのクロック・ディバイダーがあります。クロック・ディバイダーは、ペリフェラルDCMブロックの一部であり、ルート・クロック・ゲートの近くに配置されています。クロック分割器の出力は、同じペリフェラルDCMブロック内のルート・クロック・ゲートによってゲート制御することはできません。ただし、この制限はSCLKゲートには適用されません。ペリフェラルDCMブロックのクロック・ディバイダー出力は、プログラマブル・クロック配線を経てSCLKゲートをドライブすることができます。
クロック・ディバイダーには次の3つの出力があります。
- 最初の出力 - 入力クロックを通過します。
- 2番目の出力 - 入力クロックを2分周します。
- 3番目の出力 - 入力クロックを4分周します。
これらの3つのクロックは、クロック・ディバイダーの出力でエッジ・アラインされています。
マニュアル・クロック・スイッチオーバー
インテル® Stratix 10® デバイスには、ダイナミック・クロック・スイッチオーバー用のハード・クロック・マルチプレクサー・ブロックがありません。したがって、ダイナミック・クロック・スイッチオーバー・ロジックは、コアのソフトロジックを使用して実装されます。ダイナミック・クロック・スイッチオーバーは、追加のソフト・ロジックを使用して、オプションでグリッチ・フリーにすることができます。
PLLのアーキテクチャーと機能
PLLの機能
機能 | フラクショナルPLL | I/O PLL |
---|---|---|
整数PLL | あり | あり |
フラクショナルPLL | あり | — |
C出力カウンター数 | 1 | 9 |
Mカウンター分周係数 |
整数モード : 8~127 フラクショナル・モード : 11~123 |
4~160 |
Nカウンター分周係数 | 1~32 | 1~110 |
Cカウンター分周係数 | 1~512 | 1~510 |
Lカウンター分周係数 | 1、 2、 4、および 8 | — |
専用外部クロック出力 | — | あり |
専用クロック入力ピン | あり | あり |
外部フィードバック入力ピン | — | あり |
スペクトラム拡散入力クロック・トラッキング2 | あり | あり |
ソース・シンクロナス補償 | — | あり |
直接補償 | あり | あり |
通常補償 | — | あり |
ゼロ遅延バッファ補償 | — | あり |
外部フィードバック補償 | — | あり |
LVDS補償 | — | あり |
電圧制御オシレーター(VCO)出力によるDPAクロックの駆動 | — | あり |
位相シフト分解能3 | 71.428 ps | 78.125 ps |
プログラマブル・デューティ・サイクル | 50%に固定されたデューティ・サイクル | 使用可 |
パワー・ダウン・タイマ | 使用可 | 使用可 |
PLLの使用率
fPLLは、トランシーバーのトランスミッターPLLとして使用したり、基準クロック周波数を合成するにあたって最適化されます。fPLLは以下のように使用することができます。
- トランシーバーの送信クロック
- ボード上の必要なオシレーター数の削減
I/O PLLは、メモリー・インターフェイスとLVDS SERDESで使用するにあたって最適化されます。I/O PLLは以下のように使用することができます。
- ボード上の必要なオシレータ数の削減
- 1つの基準クロック・ソースから複数のクロック周波数を合成することによるFPGAで使用されるクロック・ピンの削減
- 外部メモリー・インターフェイスおよび高速LVDSインターフェイスのデザインの簡素化
- I/O PLLはI/Oと密接に結合されているため、タイミング収束を容易にする
- クロック・ネットワーク遅延の補償
- ゼロ遅延バッファー
PLLのアーキテクチャ
PLL コントロール信号
リセット信号を使用して、PLL の演算と再同期を制御することができます。また、ロック信号を使用して、PLL のステータスを観察することができます。
リセット
I/O PLL用IPコアのリセット信号ポートはresetです。
リセット信号は各PLLへのリセットまたは再同期化入力です。これらの入力信号は、デバイスの入力ピンまたは内部ロジックによってドライブすることができます。
リセット信号がHigh に駆動されると、PLLカウンターがリセットし、PLL出力をクリアしてPLLのロックを解除します。また、VCOは通常設定に設定されます。リセット信号が再度Low で駆動されると、PLLは再びロックし、入力クロックソースに再同期します。
このリセット信号はPLLがロックを喪失する度にアサートし、PLLの入力と出力クロック間の適切な位相関係を保証する必要があります。ロック喪失状態後、 インテル® Quartus® PrimeのParameter Editorを使用してPLLを自動リセット(セルフ・リセット)に設定することができます。
次のいずれかの条件に該当する場合は、リセット信号を含める必要があります。。
- デザインでPLLリコンフィグレーションまたはクロック・スイッチオーバーがイネーブルされている場合
- ロック状態喪失後に、PLL入力クロックと出力クロック間の位相関係を維持する必要がある場合
次のいずれかの条件が発生した場合、入力クロックが安定し、仕様内で、I/O PLLをリセットしても、セルフ・リセット機能がイネーブルされていてもリセットしてください。
- FPGAがユーザー・モードに移行すると、I/O PLLへの入力クロックはトグルしないか不安定になる場合
- I/O PLLは、I/O PLLのリコンフィグレーション後に基準クロックにロックすることができない場合
ロック
以下に各PLLのIPコアのロック信号ポートを示します。
- fPLL—pll_locked
- I/O PLL―locked
ロック検出回路は、コアロジックへ信号を供給します。この信号はフィードバック・クロックが位相および周波数の両方で基準クロックにロックされたことを示します。
PLLがロックを失うと、PLLの出力が目的の周波数からドリフトし始めます。 PLLがロックを失ったら、ダウンストリーム・ロジックは非アクティブにしておく必要があります。
クロック・フィードバック・モード
クロック・フィードバック・モードは、クロック出力の立ち上がりエッジとPLL クロック入力の立ち上がりエッジを揃えるために、クロック・ネットワークの遅延を補償します。デザインのタイミング・クリティカル・クロック・パスを補償するにあたって、適切なタイプを選択します。
PLL補正は必ずしも必要ではありません。補償の必要性が特定されない限り、PLLは(補償のない)ダイレクトモードで設定する必要があります。ダイレクト・モードは最高のPLLジッタ性能を提供し、補償クロック・リソースの不要な消費を回避します。
デフォルトのクロック・フィードバック・モードは、直接補償モードになっています。
fPLLは直接補償モードのみをサポートします。
I/O PLLは次のクロック・フィードバック・モードをサポートします。
- 直接補償
- LVDS補償
- ソース・シンクロナス補償
- 通常補償
- ゼロ遅延バッファー(ZDB)補償
- 外部フィードバック(EFB)補償
通常およびソース同期補償モードは、ルーティングされたコアクロックの挿入遅延を補償します。 インテル® Stratix® 10デバイスでは、次の方法でコアクロック補償を実現できます。
- I/O PLLのMカウンターから専用のフィードバッククロックをルーティングして、補償されたCカウンターの出力クロック・ネットワークの挿入遅延をエミュレートすることができます。
- 補正されたCカウンターの出力クロックをI/O PLLに戻すことによって、専用のフィードバック・クロックを使用することができます。
Intelは、クロックリソースが最も効率的に使用されるため、非専用フィードバック・メカニズムを推奨します。デフォルトは、 Intel® FPGA IOPLL IPコアで通常モードまたはソース同期補正モードを選択したときの専用フィードバックです。
直接補償モード
直接補償モードでは、PLLはいかなるクロック・ネットワークに対しても補償を行いません。このモードでは、PFDへのクロック・フィードバックが通過する回路が減るため、ジッタ性能が向上します。PLLの内部クロック出力と外部クロック出力はいずれも、PLL クロック入力を基準にして位相シフトされます。
クロック補償モード
ソース同期モードの目的は、クロック(180°位相シフト)が反転されることを除いて、内部シリアライザ/デシリアライザ(SERDES)キャプチャ・レジスターのピンで見られる同じデータとクロックのタイミング関係を維持することです。このように、ソース同期モードは、次の2 つのパス間の遅延の違いを含めて、LVDSクロック・ネットワークの遅延を理想的に補正します。
- データ・ピンからSERDESキャプチャ・レジスター
- クロック入力ピンからSERDESキャプチャ・レジスター
さらに、出力カウンターは180°の位相シフトを提供する必要があります。
ソース・シンクロナス・モード
データとクロックが入力ピンに同時に到着する場合、どのIOE入力レジスターのクロック・ポートとデータ・ポートでも同じ位相関係が維持されます。同じI/O 規格を使用している限り、IOEのデータ信号とクロック信号には同様のバッファー遅延が発生します。ソース同期補正モードでは、1つの出力クロックしか補償できません。
Intelでは、ソース・シンクロナス・データ転送に対してソース・シンクロナス・モードを使用することが推奨されています。
ソース・シンクロナス・モードは、使用されるクロック・ネットワークの遅延と、以下の2 つのパスにおける遅延の差を補正します。
- データ・ピンからIOEレジスター入力
- クロック入力ピンからPLL PFD入力
インテル® Stratix 10® のPLLはソース・シンクロナス補償モードを使用するように設定されたときには、データバスなど複数のパッド-入力レジスター・パスを補償することができます。
クロック補償モード
ノーマル補償モードの内部クロックは、入力クロック・ピンに位相アラインメントされます。外部クロック出力ピンは、このモードで接続された場合、クロック入力ピンに相対した位相遅延を生じます。 インテル® Quartus® Prime タイミング解析は、この2本のピンに生じる位相差をレポートします。ノーマル・モードでは、GCLKまたはRCLKネットワークによって生じる遅延が完全に補正されます。通常の補償モードでは、1つの出力クロックのみを補償することができます。
ゼロ遅延バッファー・モード
ゼロ遅延バッファー(ZDB)モードでは、外部クロック出力ピンは、クロック入力ピンと位相調整されてデバイス全体のゼロ遅延が実現します。
このモードを使用する場合、入力ピンと出力ピンでのクロック・アライメントを保証するには、入力クロックと出力クロックに同じI/O 規格を使用しなければなりません。PLL クロック入力ピンまたは出力ピンに差動I/O 規格を使用することはできません。
ZDBモードでclkピンと外部クロック出力(CLKOUT)ピンを確実に位相調整するには、デザインの双方向I/O ピンをインスタンス化します。PLLのfboutポートとfbinポートを接続するフィードバック・パスとして使用する必要があります。双方向I/Oピンには、PLLのFBOUTとFBINポートを接続フィードバック経路として機能します。双方向I/O ピンには、常にシングルエンドI/O 規格を割り当てる必要があります。PLLはこの双方向I/O ピンを使用して、PLLのクロック出力ポートから外部クロック出力ピンまでの出力遅延を模倣し、これを補正します。
外部フィードバック・モード
EFBでは、Mカウンターの出力(fbout)が、PLLのfbin入力にフィードバックされ(ボード上でトレースを実行)、フィードバック・ループの一部になります。
兼用の外部クロック出力の1 つをfbin 入力ピンとしてEFBモードで使用します。外部フィードバック・モードでは、外部フィードバック入力ピン(fbin)は、クロック入力ピンと位相調整されます。これらのクロックと整合させることで、デバイス間のクロック遅延とスキューを強制的に減らすことができます。
このモードを使用する場合、入力クロック、フィードバック入力、および出力クロックに同じI/O 規格を使用する必要があります。
クロックの逓倍と分周
インテル® Stratix 10® PLL出力周波数は、次のスケールファクターによって入力基準クロックソースに関連します。
- M/(N × C) (I/O PLLの場合)
- M/(N × C × 2) (fPLLコア・アプリケーションの場合)
入力クロックは、プレスケール・ファクターNで除算され、 Mフィードバック係数が乗算されます。制御ループは、 f in ×( M / N )に一致するようにVCOを駆動します。 インテル® Quartus® Primeソフトウェアは、I/O PLLおよびfPLLのために インテル® FPGA IPコアに入力される入力周波数、乗算および除算値に応じて、適切なスケール係数を自動的に選択します。
プリスケール・カウンターのNと逓倍カウンターのM
各PLLは、プリスケール・カウンターNと逓倍カウンターMをそれぞれ1つずつ有します。これら2つのカウンターの目的は周波数分周を計算することであるため、MカウンターとNカウンターはデューティ・サイクル・コントロールを使用しません。
ポスト・スケール・カウンター(C)
各出力ポートは、独自のポスト・スケール・カウンター、Cを有します。周波数の異なる複数のCカウンター出力では、VCOは周波数規格に適合する出力周波数の最小公倍数に設定されます。たとえば、1 つのI/O PLLから要求される出力周波数が55 MHzと100 MHzである場合、Quartus IIソフトウェアはVCO周波数を1.1 GHzに設定します(VCOの周波数範囲内での55 MHzと100 MHzの最小公倍数)。その後、ポストスケール・カウンターのCは各出力ポートのVCO周波数を分周します。
ポスト・スケール・カウンター(L)
fPLLは、追加のポスト・スケール・カウンターであるLを有します。Lカウンターは、 M/(N × L)スケーリング係数を使用して、クロックソースからの周波数を合成します。Lカウンターは差動クロック・ペア(0℃と180℃)を生成し、HSSIクロック・ネットワークをドライブします。
デルタ・シグマ変調器
デルタ・シグマ・モジュレータ(DSM)は、fPLLがフラクショナル・モードで動作することができるよう、M逓倍カウンターと併せて使用されます。DSMは、サイクル間ベースでMカウンター係数をダイナミックに変更します。異なるMカウンター係数によって「平均的な」M係数を非整数にすることができます。
フラクショナル・モード
フラクショナル・モードでは、Mカウンターの値はMフィードバック係数とフラクショナル値の合計に等しくなります。フラクショナル値は K/2 X に等しく、Kは0と(2 X – 1)の間の整数です。また、 X = 32です。
整数モード
整数モードのfPLL動作では、Mは整数値であり、DSMはディセーブルされます。
I/O PLLは整数モードでのみ動作可能です。
プログラマブル位相シフト
プログラマブル位相シフト機能は、fPLLとI/O PLLが固定位相オフセットで出力クロックを生成することを可能にします。
PLLのVCO周波数は、位相シフトの精度を決定します。位相シフトの最小の増分はVCO周期の1/8(I/O PLL)または1/4(フラクショナルPLL)です。たとえば、I/O PLLが1000 MHzのVCO周波数で動作する場合、125 psの位相シフト・ステップが可能です。
インテル® Quartus® Primeソフトウェアは、IP コアに入力されるユーザー指定の位相シフト値に合わせてVCO周波数を自動的に調整します。
プログラマブル・デューティー・サイクル
プログラマブル・デューティー・サイクル機能は、I/O PLL が可変デューティー・サイクルでクロック出力を生成することを可能にします。この機能は、I/O PLL ポスト・スケール・カウンターのCでのみサポートされます。fPLL はプログラマブル・デューティー・サイクル機能をサポートせず、50% に固定されたデューティー・サイクルのみ有します。
I/O PLL のCカウンター値は、デューティー・サイクルの精度を決定します。精度はポスト・スケール・カウンター値で除算した 50% です。例えば、C0カウンターが 10 の場合、5%~90% のデューティー・サイクル・オプションには 5% のステップが可能です。また、I/O PLL が外部フィードバック・モードの場合、fbinピンをドライブするカウンターのデューティー・サイクルを 50% に設定します。
インテル® Quartus® Primeソフトウェアは、IP コアに入力されるユーザーが必要とするデューティー・サイクルに合わせて VCO 周波数を自動的に調整します。
プログラマブル・デューティー・サイクルをプログラマブル位相シフトと組み合わせることで、オーバーラップのない正確なクロックを生成できます。
PLLのカスケード接続
インテル® Stratix® 10デバイスは、PLL-to-PLLのカスケードをサポートしています。 最大2つまでのカスケード接続が可能です。PLLのカスケードは、単一のPLLよりも多くの出力クロック周波数を合成します。
デザインでPLLをカスケード接続する場合、ソース(アップストリーム)PLLの設定は狭帯域幅、そしてデスティネーション(ダウンストリーム)PLLの設定は広帯域幅でなければいけません。カスケード実行中は、ソースPLLの出力はデスティネーションPLLのリファレンス・クロック(入力)として機能します。カスケード接続されたPLLの帯域幅の設定は、カスケード接続前とは別の設定にする必要があります。カスケード接続されたPLLの帯域幅の設定に変更がないと、カスケード接続されたPLLが特定の周波数で位相ノイズを増幅すること場合があります。
インテル® Stratix® 10デバイスは、次のPLL間のカスケード・モードをサポートしています。
- I/O-PLL間のカスケード接続―アップストリームのI/O PLL およびダウンストリームのI/O PLLは同じI/O カラム内に配置されている必要があります。
- コア・クロック・ファブリックによるI/O-PLL-to-I/O-PLLカスケードにはアップストリームおよびダウンストリームI/O PLLの位置に制限はありません。
クロック・スイッチオーバー
クロック・スイッチオーバー機能により、PLLは2 つの基準入力クロックを切り換えることができます。この機能はクロック冗長性のために、あるいは前のクロックが停止した場合に冗長クロックがオンになるシステムであるデュアル・クロックドメイン・アプリケーションに使用します。クロックがそれ以上トグルしないとき、またはユーザーのコントロール信号extswitchに応じて、デザインは自動的にクロック・スイッチオーバーを実行することができます。
I/O PLLは次のクロック・フィードバック・モードをサポートします。
- 自動スイッチオーバー—クロック・センス回路が現在の基準クロックをモニタします。現在の基準クロックがトグルを停止した場合、基準クロックは自動的にinclk0またはinclk1クロックに切り替わります。
- マニュアル・クロック・スイッチオーバー―クロック・スイッチオーバーはextswitch信号を使用して制御します。extswitch信号がロジックHighからロジックLowに変化し、切り替えられているinclkの3クロック・サイクル以上Highの状態が続く場合、PLLへの基準クロックはinclk0からinclk1へ、またその逆へ切り替わります。
- マニュアル・オーバライドの自動スイッチオーバー―このモードは自動スイッチオーバーとマニュアル・クロック・スイッチオーバーを組み合わせたものです。clkswitch信号がLow になると、自動クロック・スイッチオーバー機能をオーバーライドします。extswitch信号がLowである限り、それ以上のスイッチオーバー動作はブロックされます。
自動スイッチオーバー
インテル® Stratix® 10のPLLは、完全にコンフィグレーション可能なクロック・スイッチオーバー機能をサポートします。
現在の基準クロックが存在しない場合、クロック・センス・ブロックは自動的にPLLリファレンスのバックアップ・クロックに切り換わります。デザイン内のPLLのinclk1ポートに接続することで、クロック・ソースをバックアップ・クロックとして選択することができます。
クロック・スイッチオーバー回路は、PLLから3 つのステータス信号(clkbad0、clkbad1、およびactiveclock)を送信し、カスタム・スイッチオーバー回路をロジックアレイに実装します。
自動スイッチオーバー・モードでは、clkbad0信号とclkbad1信号は2つのクロック入力のステータスを示します。これらの信号がアサートされると、クロック・センス・ブロックは対応するクロック入力によるトグルの停止を検出します。inclk0とinclk1の間の周波数の差が20%を超える場合、これら2つの信号は無効です。
activeclock信号は、2つのクロック入力(inclk0またはinclk1)のどちらがPLLの基準クロックとして選択されているかを示します。 2つのクロック入力の周波数の差が20%を超える場合、activeclock信号が唯一有効なステータス信号です。
PLLへの現在の基準クロックがトグルを停止した際、inclk0とinclk1を自動的に切り換える場合にスイッチオーバー回路を使用します。inclk0クロックとinclk1クロックのいずれかに障害が生じ、他方が使用可能な場合、これらのクロックを何回でも切り換えることができます。
たとえば、リファレンス・クロックと同じ周波数の冗長クロックが必要なアプリケーションでは、スイッチオーバー・ステート・マシンはマルチプレクサー選択入力を制御する信号(clksw)を生成します。この場合、 inclk1がPLLのリファレンス・クロックになります。
自動クロック・スイッチオーバー・モードを使用する場合、次の要件を満たしている必要があります。
- FPGAがコンフィグレーションされる際、両方のクロック入力が実行していなければなりません。
- 2つのクロック入力の周期の差が20%未満でなければなりません。
- 入力クロックは、入力ジッター仕様およびI/O標準仕様を満たしていなければなりません。
入力クロックのグリッチは、入力クロック間の周波数の20%以上の差として見られます。
現在のクロック入力がトグルを停止し、他のクロックもトグルしていない場合、スイッチオーバーは開始されず、clkbad[0..1]信号は無効です。両方のクロック入力の周波数が異なり、周期の差が20%以内である場合、クロック・センス・ブロックがクロックのトグル停止を検出します。ただし、PLLはスイッチオーバーが完了した後にロックを喪失し、再ロックの時間を必要とすることがあります。
マニュアル・オーバライドの自動スイッチオーバー
マニュアル・オーバーライドの自動スイッチオーバー・モードでは、ユーザー制御またはシステム制御の切り換え条件にextswitch信号を使用することができます。このモードは、同じ周波数での切り換え、または異なる周波数の入力間での切り換えに使用可能です。
たとえば、inclk0が66 MHzでinclk1が200 MHzである場合、extswitch信号を使用してスイッチオーバーを制御する必要があります。自動クロック・センス回路は周波数の差が100%を超える(2×)クロック入力(inclk0およびinclk1)周波数をモニタすることはできません。
この機能は、クロックソースがバックプレーン上の複数のカードからきていて、システムが動作周波数の切り換えをコントロールする必要がある場合に便利です。
バックアップ・クロック周波数を選択し、VCOが推奨動作周波数範囲で動作するように、M、N、C、L、およびKの各カウンターを設定します。 インテル® Quartus® Primeソフトウェアは、inclk0周波数とinclk1周波数の組み合わせがこの要件に適合しない場合、ユーザーに通知します。
マニュアル・スイッチオーバーの自動オーバーライド・モードでは、activeclock信号はextswitch 信号のトランザクション後にを反転します。マニュアル切り換えの間、両方のクロックが機能しているため、clkbad信号がHighになることはありません。また、スイッチオーバー回路はネガティブ・エッジ・センシティブであるので、extswitch信号の立ち上りエッジは回路をinclk1からinclk0に再度切り替えることはありません。extswitch信号が再びLowになると、このプロセスを繰り返します。
extswitch信号と自動スイッチは、切り換えられているクロックが使用可能な場合にのみ機能します。クロックが使用できない場合、ステート・マシンはクロックが使用可能になるまで待機します。
マニュアル・クロック・スイッチオーバー
マニュアル・クロック・スイッチオーバー・モードでは、extswitch信号は、inclk0またはinclk1のどちらがPLLの入力クロックとして選択されるかを制御します。デフォルトではinclk0が選択されています。
クロック・スイッチオーバー・イベントは、extswitch信号がロジックHighからロジックLow に遷移し、inclkが切り替えられている間に3inclkサイクル以上High の状態が保持されるときに開始されます。
別のスイッチオーバー・イベントを実行するには、extswitch信号を再びHigh に戻す必要があります。別のスイッチオーバー・イベントが必要ない場合、最初の切り換えの後extswitch信号をロジックLow の状態のままにしておくことができます。
inclk0とinclk1の周波数が異なり、常時動作している場合、extswitchの最小High時間は、inclk0とinclk1の周波数が近い方のクロック・サイクルで3サイクル以上なければなりません。
I/O PLLの インテル® FPGA IPコアでスイッチオーバー遅延を指定することでクロック・スイッチオーバー・アクションに遅延を加えることができます。スイッチオーバー遅延を指定する際extswitch信号はinclkがクロック・スイッチオーバーを初期化するために指定された遅延の数を加えるようスイッチされている間最低3inclkサイクル間High で保持する必要があります。
PLLリコンフィグレーションおよびダイナミック位相シフト
fPLLとI/O PLLは、以下の機能でPLLリコンフィグレーションとダイナミック位相シフトをサポートします。
- PLLリコンフィグレーション―M、N、およびCカウンターをリコンフィグレーションします。フラクショナル設定をリコンフィグレーションすることができます(fPLL向け)。
- ダイナミック位相シフト—正または負の位相シフトを実行します。その都度、複数の位相ステップをシフトすることができます。なお、1位相ステップはVCO期間の1/8(I/O PLL)またはフルVCO期間(フラクショナルPLL)に等しくなります。
PLLキャリブレーション
I/O PLLには、プロセス、電圧、温度(PVT)のばらつきを補正するための較正が必要なアナログブロックとデジタルブロックの両方が含まれます。 インテル® Stratix 10® はI/Oマネージャーを使用してキャリブレーション・ルーチンを実行します。
以下の2点について考慮する必要があります。
- パワーアップ・キャリブレーションはデバイス起動時に自動的に開始し、デバイスのコンフィグレーション中に実行します。
- ユーザー・キャリブレーション—ユーザー・キャリブレーションはI/O PLLのダイナミック・リコンフィグレーションまたは基準クロック周波数の変更を実行する場合、ユーザーのリキャリブレーションを実行する必要があります。必要な較正シーケンスをイネーブルする必要があります。
キャリブレーション・プロセスを正常に完了するには、 OSC_CLK_1クロックとI/O PLLをドライブするすべての基準クロックが安定していて、FPGAコンフィグレーションの開始時にフリーランニングでなければなりません。クロック・スイッチオーバーがイネーブルの場合、キャリブレーションのために両方の基準クロックが存在する必要があります。ユーザーモードでは、コンフィグレーション中にI/O PLLが基準クロックを検出しないと、キャリブレーションの試行が定期的に継続されます。キャリブレーションが完了すると、I/O PLLは自動的にロックされます。
パワーアップ・キャリブレーション
デバイスの電源投入後、I/Oマネージャーは自動的にキャリブレーション・プロセッサーロセスを開始します。このプロセスは、デバイス・プログラミング中も継続されます。
ユーザー・キャリブレーション
I/O PLLは、デバイスの電源投入後、以下のいずれかの条件でリキャリブレーションする必要があります。
- MまたはNのカウンター設定を変更するダイナミックI/O PLLリコンフィグレーションが実行されます。
- I/O PLLへの基準クロック周波数の変更。
プライマリ基準クロックとは異なる周波数のセカンダリ基準クロックへのクロック・スイッチオーバーを使用する場合、リキャリブレーションは必要ありません。 I/O PLLは、パワーアップ・キャリブレーション後の両方の基準クロックのキャリブレーション設定を格納します。
I/O PLLのリキャリブレーションを実行するには、 Intel® FPGA IOPLL Reconfig IPコアを使用してリキャリブレーション・モードをイネーブルします。
インテル Stratix 10 のクロッキングおよびPLLデザイン検討事項
ガイドライン:クロック・スイッチオーバー
インテル® Stratix® 10のI/O PLLでクロック・スイッチオーバーを実装する場合、以下の手順を実行します。
- 自動クロック・スイッチオーバーを使用するには、inclk0およびinclk1の周波数が他方の20%以内でなければなりません。この要件に適合しない場合、clkbad0信号とclkbad1信号は正しく機能しません。
- マニュアル・クロック・スイッチオーバーを使用する場合、inclk0とinclk1の差が100%(2×)を超えていても問題はありません。ただし、2つのクロック・ソースの周波数差、位相差、あるいはその両方によって、PLLがロックを失うことがあります。PLLをリセットして、入力クロックと出力クロックが適切な位相関係を保持していることを確認します。
- マニュアル・クロック・スイッチ・オーバー・イベントを開始するためにextwitch信号がHighになるとき、inclk0とinclk1の両方を実行している必要があります。この要件を満たせない場合、クロック・スイッチオーバーが正しく機能しません。
- クロック・スイッチオーバー機能と小さい周波数ドリフトを必要とするアプリケーションでは、狭帯域幅PLLを使用する必要があります。狭帯域幅PLLは、基準入力クロックの変動に対する反応が広帯域幅PLLよりも遅くなります。また、スイッチオーバーが起こる際、狭帯域幅PLLが出力にクロック停止を伝える速度は広帯域幅PLLよりも遅くなります。なお、狭帯域幅PLLではロック時間も長くなることに注意してください。
- スイッチオーバーが起こると、PLLが新しいクロックにロックするための有限の再同期期間が生じることがあります。PLLが再ロックするにあたって必要な時間は、PLLのコンフィグレーションによって異なります。
- PLLへの入力クロックとPLLからの出力クロックの位相関係は、デザインにおいて重要です。クロック・スイッチオーバーを実行した後、少なくとも10 nsの間リセット信号をアサートします。ロックされた信号がHigh になり、安定するのを待ってからPLLからの出力クロックを再度イネーブルします。
- 現在のクロックが失われるとVCO周波数は徐々に低下し、バックアップ・クロックにロックするとVCOは上昇します。次の図はこの状況を図示しています。
fPLL IPコアの制約
fPLL IPコアを実装するには、次の制約に従わなければなりません。
- プロジェクトのトップレベルSDCファイルで、fPLL基準クロックにcreate_clock制約を使用する必要があります。
- トランシーバー・クロックを参照するSDCデザイン制約は、トランシーバーNative PHY SDCファイルの制約の後にリストされる必要があります。
- コア使用のためにfPLL出力クロックを使用する場合、fPLL出力クロックは基準クロックと位相関係がありません。ただし、クロック・ディバイダーのfPLL出力クロックはまだ同相です。
ガイドライン:PLLのリセット
- Mカウンター、 Nカウンター、またはループフィルターの設定を変更すると、I/O PLLが失われてロックが回復することがあります。基準クロックと出力クロック間の適切な位相関係を維持するために、リコンフィグレーションが完了した後、I/O PLLをリセットするareset信号をアサートします。 Intelは、Mカウンター、 Nカウンター、またはループ・フィルターの設定をリコンフィグレーションした後は、必ずI/O PLLをリセットすることを推奨します。
- Cカウンターの設定を変更するときは、Cカウンター間の期待の位相関係を失う可能性があります。予想される位相関係を復元するために、リコンフィグレーションが完了した後にareset信号をアサートします。アプリケーションに位相関係が重要でない場合、リセットは不要です。
- I/O PLLをリセットしても、カウンターまたはループフィルターの設定は変更されません。ただし、I/O PLLをリセットすると、実行されたダイナミック位相シフト動作が元に戻されます。 I/O PLLがリセットされた後、 Cカウンターの位相シフトはもともとプログラムされた設定に戻ります。
ガイドライン:コンフィグレーションの制約
I/O PLLコンフィグレーションは、次の制約に従わなければなりません。
- 位相周波数検出器(PFD)とVCOのそれぞれは、動作の有効周波数範囲を持っています。
- ループフィルターの設定は、 Mカウンター値とユーザーが選択した帯域幅モードに適している必要があります。
これらのコンフィグレーション制約のいずれかに違反すると、I/O PLLがロックに失敗したり、ジッタ性能が低下することがあります。
ガイドライン:タイミング・クロージャー
- PLLのカウンターとループフィルター設定をリコンフィグレーションすると、そのI/O PLLの出力周波数とクロックの不確実性が変化します。ダイナミック位相シフトは出力クロック位相にのみ影響します。
- インテル® Quartus® Primeソフトウェアのタイミング解析には、初期PLL設定のみのタイミング解析を実行します。ダイナミック・リコンフィグレーションまたはダイナミック・フェーズ・シフトの後にデザインがタイミングを閉じることを確認する必要があります。
- Intel I/O PLL設定を使用してクロックの変動を判断するために、それぞれのコンフィグレーション設定でI/O PLLデザインをコンパイルすることを推奨します。
ガイドライン:I/O PLLのリコンフィグレーション
- 基準クロック周波数が変更された場合、 Intel® FPGA IOPLL IPコアを使用してI/O PLLをリキャリブレーションする必要があります。
- I/O PLLリコンフィグレーション・インターフェイスは、フリーランニングのmgmt_clk信号をサポートします。 I/O PLLダイナミック位相シフト・インターフェイスは、フリー・ランニングscanclk信号をサポートします。これらのインターフェイスにより、 mgmt_clkおよびscanclk信号の開始と停止を正確に制御する必要がなくなります。
- I/O PLLは Intel® FPGA IOPLL Reconfig IPコアを使用して.mifストリーミング・モードでのみリコンフィグレーションできます。
- ゼロ以外の位相シフト設定でI/O PLLをリコンフィグレーションする場合は注意が必要です。 MカウンターまたはNカウンターの設定を変更しても相対的な位相シフト(パーセント単位で)は変更されませんが、絶対位相シフト(ピコ秒単位で)が変更されます。 Cカウンターの設定を変更しても、絶対位相シフトは変更されませんが、相対位相シフトは変更されます。
インテル Stratix 10 のクロッキングおよびPLL実装ガイド
Stratix® 10 クロック制御 IP コア
Stratix® 10 クロック制御 IPコアは、 インテル® Stratix 10® デバイスでのクロック・ネットワークへの入力、クロックの多重化、クロック・ゲーティング、クロック分周などのクロック制御機能を提供します。
Intel FPGA IOPLL IP コア
Intel® FPGA IOPLL IPコアを使用すると、 インテル® Stratix 10® I/O PLLの設定を構成できます。
Intel® FPGA IOPLL IPコアは以下の機能をサポートしています。
- ダイレクト、外部フィードバック、ノーマル、ソース同期、ゼロ遅延バッファ、LVDSモードの6種類のクロック・フィードバック・モードをサポートしています。
- インテル® Stratix 10® デバイスのために最大9つのクロック出力信号を生成します。
- 2つのリファレンス入力クロックを切り替えます。
- 隣接するPLL( adjpllin )入力をサポートし、PLLカスケード・モードでアップストリームPLLと接続します。
- メモリー初期化ファイル( .mif )を生成し、PLLのダイナミック・リコンフィグレーションを可能にします。
- PLLダイナミック位相シフトをサポートしています。
.mifファイルの生成
Intel® FPGA IOPLL IPコアのパラメーター・エディターを使用して、.mifファイルを生成することができます。
新しい.mifファイルの生成
単一のI/O PLLコンフィグレーションを含む新しい.mifファイルを生成するには、次の手順を実行します。
- Dynamic Reconfigurationタブで、 PLLのDynamic Reconfigurationをイネーブルするを選択します。
- MIF Generation Optionsでは 、Generate New MIF Fileを選択します 。
- Path of New MIF fileには、ファイル名を指定します。
- Name of Current Configurationには、I/O PLLの現在のコンフィグレーションの名前を指定します。
- Create MIF Fileをクリックします。
既存の.mifファイルへのコンフィグレーションの追加
既存の.mifファイルに新しいコンフィグレーションを追加することができます。 .mifファイルにさらにコンフィグレーションを格納するには、次の手順を実行します。
- Dynamic Reconfigurationタブで、Enable dynamic reconfiguration of PLLを選択します。
- MIF Generation Optionsには、Add Configuration to Existing MIF Fileを選択します。
- Path of New MIF fileには、ファイル名を指定します。
- Name of Current Configuration名には、I/O PLLの新しいコンフィグレーションの名前を指定します。
- Append to MIF Fileをクリックします 。
Intel FPGA IOPLL IPコアによるPLLダイナミック位相シフトの実装
Intel® FPGA IOPLL IPコアを使用して、ダイナミック位相シフトポートを介して直接位相シフトを実行します。
I/O PLLダイナミック位相シフト
I/O PLLのダイナミック位相シフト動作を Intel® FPGA IOPLL IPコアを使用するには、次の手順を実行します。
- updn 、cntsel [4..0]、およびnum_phase_shift [2..0]ポートの値を設定します。
- 少なくとも2つのscanclkサイクルの間でphase_enポートをアサートします。
各phase_enパルスは、1つのダイナミック位相シフト動作を示します。 phase_done出力は、ダイナミック位相シフトが進行中であることを示すためにLowになります。 phase_done信号がLowからHighに変化した後にのみ、 phase_en信号をアサートできます。
updn、cntsel[4..0]、およびnum_phase_shift[2..0]ポートはscanclkに同期しています。
phase_done信号がHighからLowにき遷移すると、phase_done信号はscanclk信号の立ち上がりエッジに同期しています。LowからHighへの遷移はscanclk信号と非同期です。
VCOおよびscanclkの周波数に応じて、phasedoneのLow時間は1scanclkサイクルよりも長くなるか、または短くなることがあります。
デザイン例
アルテラのQuartus IIソフトウェア・バージョン17.1以降—Quartus IIの最小要件を満たすWindowsまたはLinuxコンピュータにソフトウェアがインストールされている必要があります。
デザイン例2:ALTPLLメガファンクションによるダイナミック位相シフト
このデザイン例では、 Intel® FPGA IOPLL Reconfig IPコアを使用せずに「デザイン例3: Intel® FPGA IOPLL Reconfig Ipコアを使用した動的位相シフト」と同じデザインを使用しています。このデザイン例では、 Intel® FPGA IOPLL IPコアを介した直接I/O PLLの動的位相シフトの実装を示しています。
このデザイン例でテストを実行するには、次の手順を実行します。
- iopll-dynamic-phase-shift.qarファイルをダウンロードして復元します。
- デザイン例のデバイスとピンの割り当てをハードウェアに合わせて変更します。
- デザイン例をリコンパイルします。リコンパイル後にデザイン例にタイミング違反がないことを確認してください。
- AN.stpファイルを開き、top.sofでデバイスをプログラムします。
- reset_SM信号にハイ・パルスをアサートして、I/O PLLのダイナミック位相シフト・リコンフィグレーション動作を開始します。
Intel FPGA IOPLL Reconfig IP コア
I/O PLLのフェーズロック・ループ(PLL)リコンフィグレーションおよびダイナミック・フェーズ・シフトを実装するために インテル® Stratix® 10デバイスを使用することができます。
インテル® Stratix® 10 I/O PLLは、デバイスがユーザー・モードのときにダイナミック・リコンフィグレーションをサポートします。ダイナミック・リコンフィグレーション機能を使用すると、I/O PLL設定をリアルタイムでリコンフィグレーションできます。 PLLカウンターの分割設定とPLL帯域幅設定(ループ・フィルター設定とチャージ・ポンプ設定)は、 Avalon® メモリーマップされた( Avalon® -MM)インターフェイス Intel® FPGA IOPLL Reconfig FPGA全体をリコンフィグレーションする必要はありません。 インテル® Stratix® 10 I/O PLLは、分周カウンター( N 、 M 、 Cカウンター)と電圧制御発振器(VCO)を使用して、所望の位相および周波数出力を合成します。
以下のPLLを使用することができます。
- メモリー初期化ファイル( .mif )ストリーミング・リコンフィグレーション
- オンチップROMに保存された事前定義済みの設定を使用して、I/O PLLのリコンフィグレーションを可能にします。多くのユニークなPLLコンフィグレーションを1つのROMに格納できます。
- .mifファイルは自動的に生成されます。 Intel® FPGA IOPLL IPコア。 .mifストリーミングリコンフィグレーション中に生成された.mifファイルを使用すると、新しいコンフィグレーションの合法性が保証されます。
- Intelこのリコンフィグレーション方法を使用することを推奨します。
-
.mifを使用したI/O
PLL
- リキャリブレーションリコンフィグレーションを行わずにI/O PLLのリキャリブレーションを実行します。
- 基準クロック周波数が変更された場合、リキャリブレーションをトリガします。
- I/O PLLクロック・ゲーティング
- I/O PLLの出力クロック0から出力クロック7にI/O PLLのゲートとアンゲート。
Intel® FPGA IOPLL Reconfig IPコアを使用してダイナミック位相シフトを実行できます。
Intel FPGA IOPLL Reconfig IPコアのI/O PLLリコンフィグレーションの実装
Intel® FPGA IOPLL Reconfig IPコアの Avalon® -MMインターフェイスを使用して、I/O PLL用のPLLリコンフィギュレーション回路をイネーブルにすることができます。
Intel FPGA IOPLLおよび Intel FPGA IOPLL Reconfig IPコア間の接続
Intel FPGA IOPLLおよび Intel FPGA IOPLL Reconfig IPコアの接続
デザインで Intel® FPGA IOPLLおよび Intel® FPGA IOPLL Reconfig IPコアを接続するには、次の手順を実行します。
- Intel® FPGA IOPLL Reconfig IPコアのreconfig_to_pll[29..0]バスを Intel® FPGA IOPLL IPコアのreconfig_to_pll[29..0]バスに接続します。
- Intel® FPGA IOPLL Reconfig IPコアのreconfig_from_pll[10..0]バスを Intel® FPGA IOPLL IPコアのreconfig_from_pll[10..0]バスに接続します。
- mgmt_clkポートを有効なクロックソースに接続します。
- mgmt_resetポート、 mgmt_waitrequestポート、 mgmt_readポート、 mgmt_writeポート、 mgmt_readdata [7..0]バス、 mgmt_writedata [7..0]バス、 mgmt_address [9..0]バスをユーザー制御ロジックに接続して、リードとライト動作を実行します。
Intel FPGA IOPLL Reconfig IPコアのリコンフィグレーション・モード
Intel® FPGA IOPLL Reconfig IPコアには4つの機能リコンフィグレーション・モードがあります。リコンフィグレーション動作モードは、 mgmt_address [9:8]ビットの設定に基づいています。
リコンフィグレーション・モード | mgmt_address[9:8] 4 |
---|---|
.mifストリーミング・リコンフィグレーション | 2 00 |
クロック・ゲーティング・リコンフィグレーション | 2 10 |
ダイナミック位相シフト | 2 11 |
Mカウンター、 Nカウンター、帯域幅設定、またはチャージポンプ電流を変更するI/O PLLでダイナミック・リコンフィグレーションを実行した後、I/O PLLをリキャリブレーションする必要があります。 .mifストリーミング・リコンフィグレーションの場合、リキャリブレーションは自動的に行われます。クロック・ゲーティングとダイナミック位相シフトのリコンフィグレーションでは、リキャリブレーションは不要です。
.mifストリーミング・リコンフィグレーション
.mifストリーミングを使用すると、I/O PLLを動的にリコンフィグレーションできます。 Intel® FPGA IOPLL Reconfig IPコアは、内蔵RAMに保存された定義済みの設定を使用しています。最大32個のI/O PLLコンフィグレーションで、 Intel® FPGA IOPLL IPコアパラメーター・エディターからこれらの事前定義されたコンフィグレーションを含む.mifファイルを生成する必要があります。
シミュレーションを実行するには、以下のステップに従います。
- mgmt_address [9:8] = 2'b00を設定して.mifストリーミング・モードを選択します。そして、.mifファイルの目的の設定のインデックスにmgmt_writedata [4:0]を設定します。
- I/O PLLで.mifストリーミング・リコンフィグレーションを開始するには、 mgmt_write信号を1つのmgmt_clkサイクルでアサートします。 mgmt_waitrequestは、 Intel® FPGA IOPLL Reconfig .mifストリーミングが進行中に Intel® FPGA IOPLL Reconfig IPコによってアサ―トされます。
- リコンフィグレーションが完了すると、 mgmt_waitrequest信号がディアサートされます。
- Intel® FPGA IOPLL Reconfigパラメーター・エディターで、I/O PLLのAssert waitrequest until IOPLL has lockedオプションを選択してロックします。それ以外の場合、I/O PLLがロックされるのを待って、I/O PLLのリコンフィグレーションが完了したことを確認できます。
.mifを使用したリキャリブレーション
.mifを使用したリキャリブレーションでは、I/O PLLをリキャリブレーションできますが、I/O PLLをリコンフィグレーションすることはできません。 Intel® FPGA IOPLL Reconfig IPコアのRecalibration Modeをイネーブルします 。リキャリブレーションを選択すると、 リキャリブレーション動作のために自動的にrecalibration.mifファイルが生成されます。
.mifを使用してI/O PLLリキャリブレーションを実行するには、次の手順を実行します。
- .mifモードを選択するために、mgmt_address [9:8] = 2'b00を設定します。そして、mgmt_writedata [4:0] = 2'b00に設定します。
- I/O PLLで.mifを使用してリキャリブレーションを開始するには、 mgmt_write信号を1つのmgmt_clkサイクルでアサートします。リキャリブレーション中に mgmt_waitrequestは Intel® FPGA IOPLL Reconfig IPコアによってアサ―トされます。
- リキャリブレーションが完了すると、 mgmt_waitrequest信号がデアサートされます。
クロック・ゲーティングのリコンフィグレーション
これは、I/O PLL出力クロックのそれぞれに対応する1バイトを Intel® FPGA IOPLL Reconfig IPコアに書き込むことで簡単に実行できます。
シミュレーションを実行するには、以下のステップに従います。
- クロック・ゲーティング・モードを選択するにはmgmt_address [9:8]を2'b10に設定します。そして、ゲーティングする出力クロックを示すようにmgmt_writedata [7:0]を設定します。
- I/O PLLでクロック・ゲーティングのリコンフィグレーションを開始するには、 mgmt_write信号を1つのmgmt_clkサイクルでアサートします。
- ゲーティングの変更は、 mgmt_waitrequestのアサートがディアサ―トされた後、複数のクロックサイクルで有効にならないことがあります。
ダイナミック位相シフト波形
ダイナミック位相シフトのリコンフィグレーションは、シフトの数、位相シフトの方向およびシフトされるべき出力クロックを決定することができます。
Intel® FPGA IOPLL Reconfig IPコアを使用するダイナミック位相シフトのリコンフィグレーションを実行するには、次の手順を実行します。
- ダイナミック位相シフト・リコンフィグレーション・モードを選択するには、 mgmt_address [9:8]を2'b11に設定します。
- 所望の位相シフト数、位相シフトの方向、およびシフトさせるべき所望のカウンターを示すためにmgmt_writedata [7:0]を設定します。
- I/O PLLでクロック・ゲーティングのリコンフィグレーションを開始するには、 mgmt_write信号を1つのmgmt_clkサイクルでアサートします。この信号は、I/O PLLのphase_en信号と等価です。
- ダイナミック位相シフトが完了した後、 mgmt_waitrequest信号はアディアサ―トされます。
デザイン例
Quartus IIソフトウェア・バージョン17.1以降—Quartus IIの最小要件を満たすWindowsまたはLinuxコンピュータにソフトウェアがインストールされている必要があります。
デザイン例1:.mifを使用したストリーミングのリコンフィグレーション Intel FPGA IOPLL Reconfig IPコア
このデザイン例では、1SG280LU3F50E2VGS1デバイスを使用して、 Intel® FPGA IOPLL Reconfig IPコアを使用した.mifストリーミングによるI/O PLLリコンフィギュレーションの実装を示しています。 このデザイン例は、 Intel® FPGA IOPLL IPコア、 Intel® FPGA IOPLL Reconfig IPコア、およびIn-System Sources and Probes IPコアで構成されています。
Intel® FPGA IOPLL Reconfig IPコアは、ステートマシンに接続して、I/O PLL .mifストリーミングリコンフィグレーション動作を実行します。 reset_SM入力のハイ・パルスは、 In-System Sources and Probes IPコアがI/O PLLのリコンフィグレーション動作をトリガします。 I/O PLLのリコンフィグレーション処理が完了すると、I/O PLLは中帯域幅で次のコンフィグレーションで動作します。
- 100MHz(カウンターC0出力での位相シフトは0psである)
- 100MHz(カウンターC1出力での位相シフトは0psである)
このデザイン例でテストを実行するには、次の手順を実行します。
- iopll-reconfig-mif-streaming.qarファイルをダウンロードして復元します。
- デザイン例のデバイスとピンの割り当てをハードウェアに合わせて変更してください。
- デザイン例をリコンパイルします。リコンパイル後にデザイン例にタイミング違反がないことを確認します。
- AN.stpファイルを開き、top.sofでデバイスをプログラムします。
- reset_SM信号にハイ・パルスをアサートして、I/O PLL リコンフィグレーション動作を開始します。
デザイン例2:クロック・ゲーティングのリコンフィグレーション Intel FPGA IOPLL Reconfig IPコア
このデザイン例では、1SG280LU3F50E2VGS1デバイスを使用して、 Intel® FPGA IOPLL Reconfig IPコアを使用したI / O PLLクロック・ゲーティング・リコンフィギュレーションのインプリメンテーションを示しています。 この設計例は、 Intel® FPGA IOPLL IPコア、 Intel® FPGA IOPLL Reconfig IPコア、およびIn-System Sources and Probes IPコアで構成されています。
I/O PLLは、それぞれ200MHzの8つの出力クロックを合成します。入力基準クロックは50MHzです。
Intel® FPGA IOPLL Reconfig IPコアは、ステートマシンに接続してI/O PLLクロック出力ゲーティングを実行します。 reset_SM入力のハイ・パルスは、 In-System Sources and Probes IPコアがI/O PLLのリコンフィグレーション動作をトリガします。 I/O PLLリコンフィグレーション動作が完了した後、outclk0は非ゲートで、outclk1 がゲートされます。
このデザイン例でテストを実行するには、次の手順を実行します。
- iopll-reconfig-clock-gating.qarファイルをダウンロードして復元します。
- デザイン例のデバイスとピンの割り当てをハードウェアに合わせて変更してください。
- デザイン例をリコンパイルします。リコンパイル後にデザイン例にタイミング違反がないことを確認してください。
- AN.stpファイルを開き、top.sofでデバイスをプログラムします。
- reset_SM信号にハイ・パルスをアサートして、I/O PLLクロック・ゲーティング・リコンフィグレーション動作を開始します。
デザイン例3:ALTPLLメガファンクションによるダイナミック位相シフト
このデザイン例では、1SG280LU3F50E2VGS1デバイスを使用して、 Intel® FPGA IOPLL Reconfigを使用するI/O PLLのダイナミック位相シフト・リコンフィグレーションの実装を実証しています。 このデザイン例は、 Intel® FPGA IOPLL IPコア、 Intel® FPGA IOPLL Reconfig IPコア、およびIn-System Sources and Probes IPコアで構成されています。。
I/O PLLは、200MHzの2つの出力クロックを合成し、カウンターC0出力で0ps位相シフト、中帯域幅でカウンターC1出力を合成します。入力基準クロックは50MHzです。
Intel® FPGA IOPLL Reconfig IPコアは、ステートマシンに接続して、I/O PLLのダイナミック位相シフト動作を実行します。 reset_SM入力のハイ・パルスは、 In-System Sources and Probes IPコアは、I/O PLLのダイナミック位相シフト動作をトリガします。 I/O PLLのダイナミック位相シフト動作が完了した後、カウンターC1は、1つの正位相シフトステップの間に89ps位相シフトされます。
このデザイン例でテストを実行するには、次の手順を実行します。
- iopll-reconfig-dynamic-phase-shift.qarファイルをダウンロードして復元します。
- デザイン例のデバイスとピンの割り当てをハードウェアに合わせて変更してください。
- デザイン例をリコンパイルします。リコンパイル後にデザイン例にタイミング違反がないことを確認してください。
- AN.stpファイルを開き、top.sofでデバイスをプログラムします。
- reset_SM信号にハイ・パルスをアサートして、I/O PLLのダイナミック位相シフト・リコンフィグレーション動作を開始します。
Stratix® 10 クロック制御 IP コアのリファレンス
Stratix® 10 クロック制御パラメーター
パラメーター | 値 | 説明 |
---|---|---|
Number of Clock Inputs | 1、2、または4 |
クロック・コントロール・ブロックの入力クロックソース数を指定します。最大4 つのクロック入力を指定することができます。 インテル® Stratix 10® デバイスのクロック多重化は、コア内のソフトロジックを使用して実装されています。 |
Ensure glitch free clock switchover | OnまたはOff |
複数のクロック入力を使用する際、グリッチのないスイッチオーバーを実装するには、このオプションをオンにします。他のソースに切り替える前に、現在選択されているクロックが実行していることを確認する必要があります。 選択されているクロックが実行していない場合、グリッチのないスイッチオーバーの実装は新しいクロックソースに切り替えることができません。 デフォルトでは、clkselectポートは00で設定されています。読み込まれるには、クロックはclkselectポートの値にinclk0xを適用する必要があります。 この機能は、将来のリリースで使用可能になります。 |
Clock Enable | OnまたはOff | イネーブル信号でクロック出力をゲートする場合、このオプションをオンにします。このオプションは、クロック分割を使用するオプションをディセーブルします。 |
Clock Enable Type | Root LevelまたはDistributed Sector Level | ペリフェラル部にあるクロックゲートまたはセクター内にあるゲートを選択します。クロックゲートの詳細については、クロック・ゲーティングのセクションを参照してください。 |
Enable Register Mode | Negative LatchまたはNone | イネーブル信号をラッチするかどうかを指定します。 |
Clock Divider | OnまたはOff | クロック分割ブロックをペリフェラルで使用する場合、このオプションをオンにします。 |
Clock Divider Output Ports | Divide 1x、Divide 1x and 2x、または Divide 1x, 2x and 4x | クロックを通過させるか、クロックを2で割るか、クロックを4で割るかの組み合わせを指定します。 |
Stratix® 10 クロック制御ポートおよび信号
ポート名 | 変更内容 |
---|---|
inclk | クロック・ネットワークへの入力信号。 |
inclk0x、inclk1x、 inclk2x、inclk3x | Number of Clock Inputsパラメーターで選択した値に基づいてクロック・ネットワークに信号を入力します。 |
clkselect[] |
クロック・バッファーによって駆動されるクロック・ネットワークをドライブするために、クロックソースを動的に選択する入力です。 入力ポート[1 DOWNTO 0]幅です。 以下のリストは、clkselect[]値の信号選択を示しています。
|
outclk | Clock Dividerオプションが選択されていない場合のStratix® 10 クロック制御 IPコアの出力。 |
ena | クロック・ゲート・ブロックのクロックイネーブル。この信号はアクティブHighです。 |
clock_div1x、clock_div2x、 clock_div4x |
Clock
Dividerオプションが選択されていない場合のStratix® 10 クロック制御 IPコアの出力。公開されるポートの正確な組み合わせは、 Clock Divider Output Portsパラメーターに指定された値に依存します。
|
Intel FPGA IOPLL IP コアの参考資料
Intel FPGA IOPLLパラメーター
Intel® FPGA IOPLL IPコアのパラメーター・エディターは、IPカタログのPLLカテゴリに表示されます。
Intel FPGA IOPLL パラメーター : PLLのタブ
パラメーター | 選択可能な値 | 変更内容 |
---|---|---|
Device Family | インテル® Stratix 10® | 選択するデバイスファミリーを指定します。 |
Component | — | ターゲット・デバイスファミリーを指定します。 |
Speed Grade | — | ターゲットデバイスのスピードグレードを指定します。 |
PLL Mode | 整数-N PLL | Intel® FPGA IOPLL IPコアに使用されるモードを指定します。唯一の正当な選択肢はInteger-N PLLです。 |
Reference Clock Frequency | — | 入力クロックの入力周波数refclkをMHzで指定します。デフォルト値は100.0 MHzです。最小値と最大値は、選択したデバイスによって異なります。 |
My reference clock frequency might change | 「オンにする」/「オフにする」 | 実行時に基準クロックの周波数が変わることが予想される場合、このオプションを選択します。 |
Enable Locked Output Port | 「オンにする」/「オフにする」 | オンにすると、 lockedポートがイネーブルされます。 |
Enable physical output clock parameters | 「オンにする」/「オフにする」 | 所望の出力クロック周波数を指定する代わりに、物理PLLカウンターのパラメーターを入力するようにします。 |
Operation Mode | direct、external feedback、normal、 source synchronous、zero delay buffer、またはlvds |
PLLの動作を指定します。デフォルトの動作はDirectモードです。
|
Number of clocks | 1-9 | PLLデザインで各デバイスに必要な出力クロックの数を指定します。要求された出力周波数、位相シフト、およびデューティサイクルの設定は、選択されたクロック数に基づいて表示されます。 |
Multiply factor (M-Counter) 5 | 4-160 | 逓倍係数を指定します(M-カウンター)。 |
Divide factor (N-Counter) 5 | 1-110 | 分周係数を指定します(M-カウンター)。 |
Specify VCO Frequency | 「オンにする」/「オフにする」 | VCO周波数を指定された値に制限することができます。これは、LVDS外部モードのPLLを作成する場合、または特定のダイナミック位相シフトステップサイズが必要な場合に便利です。 |
VCO Frequency 6 | — |
|
Give clock global name | 「オンにする」/「オフにする」 | 出力クロック名の名前を変更できます。 |
Clock Name | — | Synopsis Design Constraints(SDC)のユーザークロック名。 |
Divide factor (C-Counter) 5 | 1-510 | 出力クロック( C-カウンター)の分周係数を指定します。 |
Desired Frequency | — | 対応する出力クロックポートの出力クロック周波数outclk []をMHzで指定します。デフォルト値は100.0 MHzです。最小値と最大値は、使用するデバイスによって異なります。 PLLは最初の小数点第6位の数字のみを読み込みます。 |
Actual Frequency | — | 達成可能な周波数のリストから実際の出力クロック周波数を選択できます。デフォルト値は、達成可能な最も近い周波数から目的の周波数までです。 |
Phase Shift units | ps またはdegrees | 対応する出力クロックポートの位相シフトユニットoutclk []をピコ秒(ps)または度で指定します。 |
Desired Phase Shift | — | 位相シフトに要求される値を指定します。デフォルト値は0 psです。 |
Actual Phase Shift | — | 達成可能な位相シフト値のリストから実際の位相シフトを選択できます。デフォルト値は、目的とする位相シフトに最も近い達成可能な位相シフトです。 |
Desired Duty Cycle | 0.0-100.0 | デューティサイクルに要求される値を指定します。デフォルト値は50.0%です。 |
Actual Duty Cycle | — | 達成可能なデューティ・サイクル値のリストから実際のデューティ・サイクルを選択できます。デフォルト値は、達成可能なデューティ・サイクルを目標デューティ・サイクルに最も近づけるものです。 |
Intel FPGA IOPLL パラメーター : 設定のタブ
パラメーター | 選択可能な値 | 変更内容 |
---|---|---|
PLL Bandwidth Preset | Low、Medium、または High | PLL帯域幅のプリセット設定を指定します。デフォルトの選択はLowです。 |
Lock Threshold Setting | Low Lock Time、Medium Lock Time、またはHigh Lock Time |
この設定は、ロック検出時のI/O PLLの感度を決定します。これは、ロックに要する時間と、 lockedが最初にアサートされたときのoutclk周波数の精度との間のトレードオフです。 I/O PLLを素早くロックする必要のあるアプリケーションでは、 Low Lock Timeが最適のオプションです。 推定されたロック時間は30 µs + a × refclk_periodであす。ここで、aはそれぞれLow Lock Time、Medium Lock Time、およびHigh Lock Timeについて100、2048、および4095です。 |
PLL Auto Reset | 「オンにする」/「オフにする」 | 自動的にロックが失われるとPLLが自動的にリセットされます。 |
Create a second input clk ‘refclk1’ | 「オンにする」/「オフにする」 | オンにすると、元のリファレンスクロックで切り替えることができるバックアップクロックがPLLに付属します。 |
Second Reference Clock Frequency 7 | — | 2番目の入力クロック信号の周波数を選択します。デフォルト値は100.0 MHzです。最小値と最大値は、使用するデバイスによって異なります。 |
Create an 'activeclock' output to indicate the input clock being used 7 | 「オンにする」/「オフにする」 | これをオンにすると、 activeclk出力が作成されます。 activeclk出力は、PLLが使用している入力クロックを示します。出力信号Lowはrefclkを示し、出力信号Highはrefclk1を示します 。 |
Create a 'clkbad' output for each input clock 7 | 「オンにする」/「オフにする」 | オンにすると、入力クロックごとに2つのclkbad出力が作成されます。出力信号がLowの場合はクロックが動作していることを示し、出力信号がHighの場合はクロックが動作していないことを示します。 |
Switchover Mode 7 | Automatic Switchover、 Manual Switchover、または Automatic Switchover with Manual Override |
デザイン・アプリケーションのスイッチオーバー・モードを指定します。 IPでは、3つのスイッチオーバー・モードがサポートされています。
|
Switchover Delay 7 | 0-7 | 特定の量のサイクル遅延をスイッチオーバー・プロセスに追加します。 |
Access to PLL LVDS_CLK/LOADEN output port | Disabled、Enable LVDS_CLK/LOADEN 0、またはEnable LVDS_CLK/LOADEN 0 & 1 | PLL
lvds_clkまたはloaden出力ポートをイネーブルするために、Enable
LVDS_CLK/LOADEN 0またはEnable LVDS_CLK/LOADEN o & 1を選択します。 PLLがLVDS SERDESブロックに外部PLLを供給する場合にこのパラメーターをイネーブルします。 lvds_clk [0,1]およびloaden [0,1]ポートには、LVDSポートでIOPLL outclkポートを使用するとoutclk [0..3]が使用され、 outclk4はcoreclkポートで使用できます。 |
Enable access to the PLL DPA output port | 「オンにする」/「オフにする」 | オンにすると、PLL DPA出力ポートがイネーブルされます。 |
Enable access to PLL external clock output port | 「オンにする」/「オフにする」 | PLL外部クロック出力ポートをイネーブルします。 |
Specifies which outclk to be used as extclk_out[0] source | C0 – C8 | extclk_out [0]ソースとして使用されるoutclkポートを指定します。 |
Specifies which outclk to be used as extclk_out[1] source | C0 – C8 | extclk_out [1] sourceとして使用されるoutclkポートを指定します。 |
Intel FPGA IOPLL パラメーター : カスケードのタブ
パラメーター | 選択可能な値 | 変更内容 |
---|---|---|
Create a ‘cascade out’ signal to connect with a downstream PLL | 「オンにする」/「オフにする」 | これをオンにすると、このPLLがソースであり、宛先(ダウンストリーム)PLLに接続されていることを示すcascade_outポートが作成されます。 |
Specifies which outclk to be used as cascading source | 0-8 | カスケード・ソースを指定します。 |
Create an adjpllin or cclk signal to connect with an upstream PLL | 「オンにする」/「オフにする」 | これをオンにすると、このPLLが宛先であり、ソース(アップストリーム)PLLに接続されていることを示す入力ポートが作成されます。 |
Intel FPGA IOPLLパラメーター : ダイナミック・リコンフィグレーションタブのタブ
パラメーター | 選択可能な値 | 変更内容 |
---|---|---|
Enable dynamic reconfiguration of PLL | 「オンにする」/「オフにする」 | Intel® FPGA IOPLL Reconfig IPコアと連携してこのPLLのダイナミック・リコンフィグレーションをイネーブルするにはオンにします。 |
Enable access to dynamic phase shift ports | 「オンにする」/「オフにする」 | PLLを使用してダイナミック位相シフト・インターフェイスをイネーブルするにはオンにします。 |
MIF Generation Option 8 | Generate New MIF File、 Add Configuration to Existing MIF File、 またはCreate MIF File during IP Generation |
Create MIF FileをクリックしてI/O PLLの現在の構成を含む新しい.mifファイルを作成するか、Append to MIF Fileをクリックして既存の.mifファイルにこの構成を追加します。 .mifファイルは、IP生成中に生成されるように選択することもできます。 生成された.mifファイルには、現在のPLLプロファイルと、そのPLLを定義するフィジカル・パラメーター(M、N、C、K、帯域幅、およびチャージポンプなど)の集合が含まれています。ダイナミック・リコンフィグレーション中にこの.mifファイルを使用して、I/O PLLを現在の設定にリコンフィグレーションできます。 |
Path to New/Existing MIF file 8 | — | 作成する新しい.mifファイルの場所とファイル名、または追加する既存の.mifファイルを入力します。 |
Name of Current Configuration 8 | — |
追加する既存の.mifファイルのファイル名を入力します。 |
Intel FPGA IOPLL パラメーター : 高度なパラメーターのタブ
パラメーター | 選択可能な値 | 変更内容 |
---|---|---|
Advanced Parameters | — | 入力に基づいて実装される物理PLL設定のテーブルを表示します。 |
Intel FPGA IOPLLポートおよび信号
ポート名 | タイプ | 条件 | 説明 |
---|---|---|---|
refclk | 入力 | 要 | I/O PLLをドライブする基準クロック・ソース。 |
rst | 入力 | 要 | 出力クロック用の非同期リセットポート。このポートをハイにドライブすると、すべての出力クロックが0にリセットされます。 |
fbclk | 入力 | オプション |
PLLの外部フィードバック入力ポート。 Intel® FPGA IOPLL IPコアは、I/O PLLが外部フィードバック・モードまたはゼロ遅延バッファモードで動作しているときにこのポートを作成します。フィードバックループを完了するには、ボードレベル接続でfbclkポートとI/O PLLの外部クロック出力ポートを接続する必要があります。 |
fboutclk | 出力 | オプション |
模擬回路を介してfbclkポートに給電するポート。 fboutclkポートは、I/O PLLが外部フィードバック・モードの場合にのみ使用できます。 |
zdbfbclk | 双方向 | オプション |
ミミック回路に接続する双方向ポート。このポートは、I/O PLLの正帰還専用出力ピンに配置された双方向ピンに接続する必要があります。 zdbfbclkポートは、I/O PLLがゼロ遅延バッファ・モードになっている場合にのみ使用できます。 |
locked | 出力 | オプション | Intel® FPGA IOPLL IPコアは、PLLがロックを取得すると、このポートをHighに駆動します。 I/O PLLがロックされている間は、ポートはHighのままです。 I/O PLLは、基準クロックとフィードバッククロックの位相と周波数が同じか、またはロック回路の許容範囲内にあるときに、ロックされたポートをアサートします。 2つのクロック信号の差がロック回路許容値を超えると、I/O PLLはロックを失います。 |
refclk1 | 入力 | オプション | クロック・スイッチオーバー機能のためにI/O PLLをドライブする第2の基準クロックソース。 |
extswitch | 入力 | オプション | アクティブLow信号。手動でクロックを切り替えるには、 extswitch信号を最低3クロックサイクルでLow(1'b0)にアサートします。 |
activeclk | 出力 | オプション | I/O PLLがどの基準クロックソースを使用しているかを示す出力信号。 |
clkbad[] | 出力 | オプション | 基準クロックソースのステータスが良いか悪いかを示す出力信号。 |
cascade_out | 出力 | オプション | ダウンストリームI/O PLLに供給される出力信号。 |
adjpllin | 入力 | オプション | アップストリームI/O PLLから供給される入力信号。 |
outclk | 出力 | オプション | I/O PLLからの出力クロック。 |
Intel FPGA IOPLL IPコアのダイナミック位相シフトポート
ポート | 入力/出力 | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scanclk | 入力 | Intel® FPGA IOPLL IPコアのダイナミック位相シフト動作を駆動するダイナミック位相シフトクロック。このポートは、有効なクロックソースに接続する必要があります。最大入力クロック周波数は100MHzです。 | ||||||||||||||||||||||
phase_en | 入力 | アクティブHigh信号。ダイナミック位相シフト動作を開始するためにアサートします。 phase_enは、 phase_doneがアサ―トされた後にのみ4クロックにアサートされます。 | ||||||||||||||||||||||
updn | 入力 | ダイナミック位相シフトの方向を決定します。 updn = 0のとき、位相シフトは負方向になります。 updn = 1のとき、位相シフトは正方向になります。 | ||||||||||||||||||||||
cntsel[4..0] | 入力 |
ダイナミック位相シフト動作を実行するために選択するカウンターを決定します。
|
||||||||||||||||||||||
num_phase_shift[2..0] | 入力 | ダイナミック位相シフト動作ごとの位相シフト数を決定します。 1回の動作につき最大7回の位相シフトが可能です。各位相シフト・ステップは、I/O PLL VCO周期の1/8に等しくなります。 num_phase_shiftは、DPSモードでは決して0に設定してはなりません。 | ||||||||||||||||||||||
phase_done | 出力 | Intel® FPGA IOPLL IPコアは、ダイナミック位相シフト動作が完了した後、1つのscanclkサイクルの間このポートをHighに駆動します。 |
Intel FPGA IOPLL Reconfig IP コアのリファレンス
Intel FPGA IOPLL Reconfig IPコアの Avalon -Mのインターフェイス・ポート
ポート | 入力/出力 | 説明 |
---|---|---|
mgmt_clk | 入力 | Intel® FPGA IOPLL Reconfig IPコアをドライブするナミック・リコンフィグレーション・クロック。このポートは、有効なクロックソースに接続する必要があります。最大入力クロック周波数は100MHzです。このクロックは、独立したクロックソースにすることができます。 |
mgmt_reset | 入力 | アクティブHigh信号。 Intel® FPGA IOPLL Reconfig IPコアのすべてのデータをクリアする同期リセット入力。 |
mgmt_waitrequest | 出力 | このポートは、PLLリコンフィグレーション・プロセスが開始されたときに高くなり、PLLリコンフィグレーション中には高いままになります。 PLLのリコンフィグレーション処理が完了すると、このポートはLowになります。 |
mgmt_write | 入力 | アクティブHigh信号。書き込み動作を示すためにアサートします。 |
mgmt_read | 入力 | アクティブHigh信号。読み込み動作を示すためにアサートします。 |
mgmt_writedata[7:0] | 入力 | mgmt_write信号がアサートされると、このポートにデータを書き込みます。 |
mgmt_readdata[7:0] | 出力 | mgmt_read信号がアサートされると、このポートからデータを読み込みます。 |
mgmt_address[9..0] | 入力 | リードたはライト動作のためのデータバスのアドレスを指定します。 |
reconfig_from_pll[10..0] | 入力 | Intel® FPGA IOPLL IPコアのreconfig_from_pll [10..0]バスに接続するバス。 |
reconfig_to_pll[29..0] | 出力 | Intel® FPGA IOPLL IPコアのreconfig_to_pll [29..0]バスに接続するバス。 |
アドレスバスとデータバスの設定
リコンフィグレーション動作中は、アドレスバスとデータバスのすべての未使用ビットに "0"の値をアサインします。
クロック・ゲーティングのリコンフィグレーションのための出力クロックと対応するデータビットの設定
出力クロック | データバスのビット設定(バイナリ) | |
---|---|---|
C0 | data[0] |
Gated = 1'b0 Ungated = 1'b1 |
C1 | data[1] | |
C2 | data[2] | |
C3 | data[3] | |
C4 | data[4] | |
C5 | data[5] | |
C6 | data[6] | |
C7 | data[7] |
Intel FPGA IOPLL Reconfig IPコアのダイナミック位相シフトのためのデータバス設定
ライト・データ・バス設定 | 変更内容 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data[2:0] | ダイナミック位相シフト動作ごとの位相シフト数を決定します。 1回の動作につき最大7回の位相シフトが可能です。各位相シフト・ステップは、I/O PLL VCO周期の1/8に等しくなります。 | ||||||||||||||||||||||
data[3] | ダイナミック位相シフトの方向を決定します。 データ[3] = 0のとき、位相シフトは負方向になります。 データ[3] = 1のとき、位相シフトは正方向になります。 | ||||||||||||||||||||||
data[7:4] |
ダイナミック位相シフト動作を実行するために選択するカウンターを決定します。
|
インテル Stratix 10 のクロッキングおよびPLLユーザーガイド改訂履歴
日付 | バージョン | 変更内容 |
---|---|---|
2017年12月 | 2017.12.07 |
|
2017年5月 | 2017.05.26 |
|
2016年10月 | 2016.10.31 | 初版。 |