ニブル内でのネイティブ モードと非ネイティブ モードの I/O の混在

UltraScale アーキテクチャ SelectIO リソース ユーザー ガイド (UG571)

Document ID
UG571
Release Date
2023-08-31
Revision
1.15 日本語

RXTX_BITSLICE で説明したように、BITSLICE_CONTROL は、ニブル内の 1 つ以上のビット スライス (RX_BITSLICE/TX_BITSLICE または RXTX_BITSLICE) に接続され、ビット スライス I/O の位置は、専用制御バス接続によって決定されます。

ネイティブ モードのニブル内に、未使用の I/O ビット スライスがある場合、その他の I/O を任意の位置に配置 (混在) できます。I/O バッファーは通常の方法で接続されるため、デザインでは特別な接続は不要です。SelectIO コンポーネント プリミティブ (IFD/OFD、IDDR/ODDR、IDELAY/ODELAY、ISERDESE3/OSERDESE3) はすべてネイティブ モードのニブル内で混在させて利用できます。

1 つのバンク内で複数のニブルを使用するデザインでは、IDELAYCTRL と BITSLICE_CONTROL をリセットする際に注意が必要です。バンク内の BITSLICE_CONTROL 間に DLY_RDY の接続があるため、バンク内で使用されるすべての BITSLICE_CONTROL および IDELAYCTRL に対するリセットは同時にリリースする必要があります。たとえば、バンクに 2 つの異なるインターフェイスがある場合、キャリブレーションが確実に完了するように、両方のインターフェイスを 1 つのリセットで制御する必要があります。そうしなければ、これらインターフェイスのうちの一方に対して DLY_RDY がアサートされないことがあります。 TX_BITSLICE (ネイティブ) が既に含まれているニブル内に IDELAY/ODELAY (コンポーネント) を配置するには、IODELAY_GROUP 制約と配置制約を遅延エレメントに使用します。 IDELAYCTRL エレメントを、混在させたコンポーネント モードの IDELAYE3/ODELAYE3 インスタンスに関連付けないようにする必要があります。これは、ネイティブ モードの BITSLICE_CONTROL が、ニブル内で遅延キャリブレーションを実行するように既に設定されているためです。Vivado Design Suite を使用して混在した遅延を実装するには、BITSLICE_CONTROL インスタンスおよびニブル内で混在させるコンポーネント モードの各 IDELAYE3/ODELAYE3 プリミティブ インスタンスの両方に、IODELAY_GROUP 制約を配置します。次の構文を使用します。

set_property IODELAY_GROUP MIXED_DELAY_GROUP_NAME [get_cells BITSLICE_CONTROL_INST]

set_property IODELAY_GROUP MIXED_DELAY_GROUP_NAME [get_cells COMPONENT_MODE_DELAY_INST]

各ニブルは、同じニブル内の BITSLICE_CONTROL または IDELAYCTRL に対応する IODELAY_GROUP を必要とします。各ニブルには IDELAYCTRL または BITSLICE_CONTROL が 1 つしか含まれないため、1 つの IODELAY_GROUP からの IDELAY/ODELAY しか含むことができません。

BITSLICE_CONTROL に接続された REFCLK の周波数は、IDELAYE3/ODELAYE3 プリミティブのインスタンスの REFCLK_FREQUENCY 属性で指定します。DELAY_VALUE で設定した遅延が正しくキャリブレーションされるようにするには、ニブル内のすべての IDELAYE3/ODELAYE3 プリミティブが REFCLK の周波数と一致している必要があります。BITSLICE_CONTROL からの VTC_RDY 信号は、混在ニブル内のネイティブおよび非ネイティブのすべての遅延のキャリブレーションが完了したことを示します。

ネイティブ モードの遅延とコンポーネント モードの遅延が混在しない場合、BITSLICE_CONTROL に対して IODELAY_GROUP 制約を指定する必要はありません。

この図 に、混在モードのバイトの例を示します。

図 2-31: 混在モードのバイトの例

X-Ref Target - Figure 2-31

X16055-example-mixed-mode-byte.jpg

この図 に示した混在ニブルの XDC 制約の例を次に示します。

set_property IODELAY_GROUP UPPER_GROUP [get_cells UPPER_BITSLICE_CONTROL_INST]

set_property IODELAY_GROUP UPPER_GROUP [get_cells UPPER_RXBIT_0/IDELAYE3]

set_property IODELAY_GROUP LOWER_GROUP [get_cells LOWER_BITSLICE_CONTROL_INST]

set_property IODELAY_GROUP LOWER_GROUP [get_cells LOWER_RXBIT_0/IDELAYE3]

set_property IODELAY_GROUP LOWER_GROUP [get_cells LOWER_TXBIT_0/ODELAYE3]

set_property PACKAGE_PIN PAD12 [get_ports UPPER_RXBIT_0]

set_property PACKAGE_PIN PAD11 [get_ports UPPER_TXOUT_0_N]

set_property PACKAGE_PIN PAD10 [get_ports UPPER_TXOUT_0_P]

set_property PACKAGE_PIN PAD3 [get_ports LED_OUT]

set_property PACKAGE_PIN PAD2 [get_ports LOWER_RX_BIT_0]

set_property PACKAGE_PIN PAD1 [get_ports LOWER_TX_BIT_0]

この図 の例についての注意事項を説明します。

上位ニブル

° 下位ビット スライスの位置 0 には、1 つの入力差動ストローブ/クロックがあり、パッド 6 および 7 を使用しています。これは、ネイティブ プリミティブの RX_BITSLICE (DATA_AND_CLOCK) を使用してキャプチャされます。

° ビット スライスの位置 2 (RX_BITSLICE) および 4 (TX_BITSLICE) には、さらに 2 つのネイティブ モードのプリミティブ DATA ビット スライスがあり、それぞれ差動 I/O を使用しています。

° パッド 12 の上位ビット スライスの位置 6 には、内部ロジックを直接駆動する混在させた 1 つのコンポーネント プリミティブ IDELAYE3 があり、シングルエンド IBUF を使用しています。

° XDC 制約は、UPPER_GROUP という名前の IODELAY_GROUP を定義して、コンポーネント プリミティブ IDELAYE3 と、上位 BITSLICE_CONTROL インスタンスをグループ化します。

° 上位ニブル内の 7 つの I/O パッドは、すべて使用されています。

下位ニブル

° ネイティブ プリミティブの 2 つの TX_BITSLICE が、2 つの下位ビット スライスの位置 4 および 5 にあり、パッド 4 および 5 でシングルエンド OBUF を駆動します。

° 2 つの混在コンポーネント プリミティブの遅延が、下位ニブルにあります。1 つは、位置 1 で ISERDESE3 を駆動する IDELAYE3、もう 1 つは、位置 0 で ODELAYE3 を駆動する OSERDESE3 です。

° もう 1 つの非ネイティブ I/O が、下位ニブルにあります。信号 LED_OUT は、どの I/O ロジック エレメントも使用せずに、I/O を直接駆動します。これは、LOC 制約を使用して I/O を適切なパッケージ ピンに配置することによって実現されます。

° XDC 制約は、LOWER_GROUP という名前の IODELAY_GROUP を定義して、コンポーネント プリミティブの ODELAYE3 および IDELAYE3 と、下位 BITSLICE_CONTROL インスタンスをグループ化します。

° 下位ニブル内の 6 つの I/O パッドのうち、5 つが使用されています。別の I/O を未使用のパッド 2 に配置することも可能です。これは、対象の I/O が SelectIO バンクの組み合わせ規則に適合している場合に限り、XDC の例の LED_OUT で実行しているように適切な PACKAGE_PIN プロパティを適用することによって可能です。

° PLL を使用し、PLL_CLK 専用パスを用いて、上位 BITSLICE_CONTROL および下位 BITSLICE_CONTROL の両方にマスター クロックを供給します。このクロックは、混在コンポーネント モードの IDELAYE3/ODELAYE3 プリミティブ (およびネイティブ モードの遅延) に対して BISC の基準クロックとして使用されるため、このクロックの周波数を、REFCLK_FREQUENCY 属性でコンポーネント プリミティブの遅延インスタンスごとに設定する必要があります。コンポーネント プリミティブの IDELAYCTRL エレメントを、このバイト内のコンポーネント プリミティブの遅延インスタンスに関連付けないようにする必要があります。

° 2 つの BITSLICE_CONTROL からの VTC_RDY 信号は、2 つのニブルの BISC が完了したことを伝えます。これは、コンポーネント プリミティブの IDELAYCTRL RDY 信号が非混在コンポーネント プリミティブのニブルに関して伝えるのと同じ機能です。