カスタム レシーバーの VREF レベルを調整するには、XPIO_VREF プリミティブを適用し、FABRIC_VREF_TUNE ポートを使用して特定の電圧レベルを割り当てます。XP I/O バンクにはオプションの VREF スキャン機能があり、入力バッファーの内部 VREF を微調整し、一部の I/O 規格の性能を最大化できます。次の図に示すように、これらの機能は IBUFE3 および IOBUFE3 の各プリミティブと XPIO_VREF プリミティブを用いて有効にします。VREF スキャンを使用するには、入力を調整および監視して最適な VREF しきい値を見つける制御ロジックをインターコネクト ロジック デザイン内に構築する必要があります。
次の図に示すように、XPIO_VREF プリミティブを使用した内部 VREF 調整機能により、同じバンク内の 6 つの連続する I/O (1 つのニブル グループ) の VREF が制御されます。VREF 仕様の異なる I/O 規格の入力は、同じバンク内に配置できません。調整された VREF 接続 (XPIO_VREF プリミティブの VREF 出力) は、ニブルの境界を通過できません。
FABRIC_VREF_TUNE には、次に示すように VCCO の割合としてのスケーリング係数 (10 ビット値) を入力します。
FABRIC_VREF_TUNE[9:0] = % VCCO * 1024 (LVSTL_11 および LVSTL06_12)
たとえば、LVSTL06_12 に最初の式を使用すると、VREF レベルは 150 mV (VCCO の 12.5%) です。これは、LVSTL06_12 は 1.2V の VCCO で電源供給され、FABRIC_VREF_TUNE 値に 0010000000
(または 128) を使用できるため、128 (または 0010000000
) = 0.125 * 1024 = 12.5% * 1.2V = 150 mV となります。
FABRIC_VREF_TUNE[9:0] = % VCCO * 512 (その他すべての IOSTANDARDS)
たとえば、SSTL12 の目標 VREF レベルは約 600 mV (VCCO の 50%) です。これは、FABRIC_VREF_TUNE 値 0100000000
(または 256) = 0.5 * 512 = 50% * 1.2V = 600 mV のように求められます。
XPIO_VREF プリミティブのインスタンシエート
XPIO_VREF プリミティブをインスタンシエートする場合は、インプリメンテーションの前に Vivado ツールで次のパラメーターを設定する必要があります。
set_param place.disableMultipleVREFCheck true
また、XPIO_VREF を正しい位置に配置するために XDC ファイルで次の制約を設定する必要があります。次の例で、XPIO_VREF インスタンスの LOC は、VREF が制御しているニブルに対して適切なサイトに LOC 制約を設定する必要があります (次の例では、a と b を制御されているニブルに隣接するデジタル ロケーション指示子で置き換えている)。
set_property LOC XPIO_VREF_XaYb [get_cells XPIO_VREF_inst]
属性 | 説明 |
---|---|
ISTANDARD | VREF_NIB を VREF_MC に設定した場合、NIBBLE 内で使用される IOSTANDARD。 |
VREF_NIB | VREF レベル制御のソースを記述。VREF_NIB、VREF_RIU、VREF MC のいずれかを選択できます。レベルのファブリック制御のために XPIO_VREF 属性をインスタンシエートする場合は、VREF_FABRIC を使用する必要があります。ニブルが ISTANDARD の規格で定義されたデフォルトの VREF レベルを使用している場合は、VREF_MC を使用できます。XPHY を使用しており、RIU アドレス 0x41 でアクセス可能な場合は、VREF_RIU を使用します。 |
ポート | 説明 |
---|---|
FABRIC_VREF_TUNE<9:0> | VREF の目標レベルを定義。 |
VREF | IBUFE3 または IOBUFE3 プリミティブの VREF ポートに接続されるポート。 |