インテルは、マルチ PLL ダイナミック・リコンフィグレーション機能を使用する際に、Stratix® IV デバイスの機能シミュレーションおよびハードウェアにおける問題を特定しました。このマルチ PLL 機能により、トランシーバー・ブロックの外側にある追加のトランスミッター PLL を聞き取るためにトランシーバー・チャネルをリコンフィグレーションできます。
機能シミュレーションでこの機能を使用すると、トランシーバー・ブロック内のトランスミッター PLL からトランシーバー・ブロックの外側にあるトランスミッター PLL (CMU/ATX) に切り替えると 、tx_clkout 周波数が不正になる場合があります。ハードウェアでは、Quartus® II ソフトウェアは期待通りに複数インスタンス間でトランスミッター PLL をマージしません。
この問題の詳細については、次の例で説明します。次の要件を備えたデザインを検討してください。
- OTU1 データレート (2.666 Gbps) で動作する 1 つのチャネル (図に示す A)
- OTU1、ファイバー・チャネル 4G (4.25G)、SONET OC48 (2.488 Gbps) を切り替えることができる 1 つのチャネル (図の B)
- 上記の 2 つのチャネルを 2 つの異なるトランシーバー・ブロックに配置する必要があると仮定します。
このデザインを実装するには、以下のように 2 つの ALTGX インスタンスをインスタンス化し、マルチ PLL リコンフィグレーション機能 (オプション - 「CMU/ATX PLL を追加使用」) を使用する必要があります。ALTGX Megawizard の [リコンフィグレーション設定] 画面で™)
- ALTGX インスタンス 1: チャネル A、メイン PLL を PLL2 として 2666 Mbps で実行。
- ALTGX インスタンス 2: チャネル B、メイン PLL を PLL0 (0 は PLL の論理参照インデックス) を 4250 Mbpsで実行 、PLL として PLL を 2488.32 Mbps で実行、PLL 2 を2666 Mbps で実行
両方の ALTGX インスタンスで、同数の入力基準クロックを維持します。これは、以下のステップ 3 で説明されているように、2 つのインスタンス間で PLL2 を共有する必要があります。
このデザイン構成では、図 1 に示すように、これを実現するために必要な PLL は 3 つだけです。
図 1.Multi PLL リコンフィグレーションのデザインシナリオ例
機能シミュレーションの問題:
機能シミュレーションでは、「TX PLL select によるチャネル・リコンフィグレーション」モードを使用して PLL 0から PLL 2 に切り替えると、tx_clkout周波数が不正であることがわかります。以下は回避策です。
CMU PLL が「外部トランシーバー・ブロック PLL」の場合:
- 「外部トランシーバー・ブロック PLL」(PLL2)で TX PLL リコンフィグレーションを実行し、次に
- 目的のチャネル (チャネル B) で [Channel and TX PLL Select] を実行して、この「外部トランシーバー・ブロック PLL」に切り替えます。
ATX PLL が「外部トランシーバー・ブロック PLL」の場合:
- ATX PLL ではリコンフィグレーションはサポートされていません。
- ATX PLL (PLL2)をメイン PLL (チャネルがリッスンするデフォルトの PLL) にしてから
- トランシーバー・ブロック内の CMU PLL (PLL0)に切り替えて戻します。
ハードウェアの問題
QII ソフトウェアは、不正な 2 つのインスタンス間で PLL2 をマージしません。
両方の ALTGX インスタンスの PLL 2 を1 つの物理トランスミッター PLL 位置にマージするには、次の手順を実行します。
1) アサインメント・エディターで GXB TX PLL リコンフィグレーション・グループ 設定を作成し、両方のインスタンスのtx_dataoutに同じ値 (例: 0 または 1、2 など) を割り当てます。
2) トランシーバー・ブロックの外側のチャネルにクロックを供給する TX PLL の位置を手動で割り当てます。この例では PLL2 です。以下の手順は、手動による場所の割り当て方法を示しています。
- コンパイルレポートのフィッター ・オプションのリソースセクションからGXB トランスミッター PLLを選択します。デザインに使用されているすべての PLL のトランスミッター PLL ノード情報を確認できます。
- PLL 2 では、同じノードに対して2つの位置割り当てを確認できます (例:tx_pll_edge0)
- 図 2 に示すように 、tx_pll_edge0 に 2 つの場所のいずれかを使用し、課題エディターで手動で割り当てます。
図 2.トランスミッター PLL の手動割り当て
x、y 座標に関連する PLL の物理的な位置については、AN578: STRATIX IV GX および GT デバイスにおける CMU PLL および ATX PLL の手動配置 を参照してください。
3) ラッパー・ファイルを変更して、ALTGX インスタンス の「txplledge.inclk<>」 パラメーターを同じにします。
この例の場合、インスタンス 2 ラッパーファイルには次のパラメーターが表示されます。
tx_pll_edge0.inclk0_input_period = 9412
tx_pll_edge0.inclk1_input_period = 6430
tx_pll_edge0.inclk2_input_period = 6002
インスタンス 1 ラッパー・ファイルには、次のパラメーターが表示されます。
tx_pll_edge0.inclk0_input_period = 0、
tx_pll_edge0.inclk1_input_period = 0、
tx_pll_edge0.inclk2_input_period = 6002
入力基準クロック・パラメーター(INCLK INPUT PERIOD)に不一致がある場合、QII ソフトウェアは両方のインスタンスの PLL2をマージできません。
したがって、PLL の最大数を持ち、インスタンス 1 のラッパーに含める instance2 の tx_pll_edge<>. パラメーターを指定します。以下は、instance1 で必要な変更です。
tx_pll_edge0.inclk0_input_period = 9412
tx_pll_edge0.inclk1_input_period = 6430
tx_pll_edge0.inclk2_input_period = 6002
3) デザインをコンパイルし、コンパイルレポートのフィッター ・オプションのリソースセクションからGXB トランスミッター PLLを観察します。
これで、2 つのインスタンスのトランスミッター PLL が単一の物理的な位置にマージされていることがわかります (例:HSSIPLL_X119_Y10_N135)