Clocking Wizard コアには、クロッキング プリミティブ (MMCM/XPLL/DPLL) を動的にリコンフィギュレーションするための AXI4-Lite インターフェイスがあります。ダイナミック リコンフィギュレーションを有効にすると、このインターフェイスが有効になります。AXI4-Lite インターフェイスを使用する場合、このコアは混在言語の RTL を生成します。
AXI4-Lite の信号の詳細は、「レジスタ空間」のセクションに記載しています。クロック コンフィギュレーション レジスタの詳細は、レジスタ空間 の表を参照してください。
Clocking Wizard コアはコンフィギュレーション ステート マシンを使用して 2 つの固定されたステートのコンフィギュレーションから拡張し、逓倍、分周、位相、デューティ サイクルの有効な値を任意にプログラムできるようにしています。このステート マシンで、ステート 1 は Clocking Wizard インターフェイス経由でコンフィギュレーションされるデフォルト ステートに対応します。ステート 2 は、レジスタ空間 の表に示したクロック コンフィギュレーション レジスタにロードされるユーザーコンフィギュレーションに対応します。デフォルトで有効なコンフィギュレーションが保存されるように、ステート 2 の値もステート 1 の値で初期化されます。クロックを再プログラムすると常に、すべてのダイナミック リコンフィギュレーション レジスタが更新されます。
ダイナミック リコンフィギュレーションは、次の手順で実行します。
- ダイナミック リコンフィギュレーションを有効にして Clocking Wizard IP を生成します。
- 同じ入力クロックでもう 1 つの Clocking Wizard を開き、必要な機能を指定します。
- 次に、 Vivado® IDE の [Output Clocks] タブで出力クロックの機能を変更し、ダイナミック リコンフィギュレーションを実行できるようにします。
- IP を生成します。
- <component_name>_drp_address_map という名前のファイルが IP ソース エリアに生成されます。このファイルには、リコンフィギュレーション時に AXI インターフェイスに書き込むアドレスとデータが含まれます。
- ファイルに含まれるすべてのレジスタへの書き込み後、レジスタ マップで説明したようにアドレス
0x014
に0x03
を書き込み、リコンフィギュレーションを開始します。
次のセクションでは、この機能の例について説明します。
AXI4-Lite を使用したダイナミック リコンフィギュレーションの例
Clocking Wizard では、入力および出力クロック周波数のデフォルト値は 100MHz です。
- リコンフィギュレーションにより、出力クロックの周波数を 50MHz、位相シフトを 90° に変更します。
- 次のようなファイルがソース エリアに生成されます。
- このファイルには、書き込みが必要なすべての AXI レジスタのアドレスとデータが指定されています。このテーブルの内容ですべての AXI レジスタを設定します。
- アドレス C_BASEADDR + 0x014 に
0x00000003
を書き込み、LOAD および SEN ビットをセットします。 - locked 信号がアサートされるのを待ちます。
clkout1
出力ポートで周波数が切り替わるのを確認します。
- Versal® デバイスでは DRP インターフェイスはサポートされず、APB3 インターフェイスは内部で使用されます。DRP/APB3 ポートの詳細は、 『Versal ACAP クロッキング リソース アーキテクチャ マニュアル』 (AM003)を参照してください。
- 1 つのクロック出力をリコンフィギュレーションする場合でも、リコンフィギュレーション実行時にはその他すべてのアクティブなクロック出力がリセットされます。