複数のバンクを使用するインターフェイスのブリングアップ

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

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

1 つのインターフェイスが複数のバンクにまたがる場合、インターフェイスを正しく起動させるには各バンクのクロッキングおよびブリングアップ シーケンスを変更する必要があります。High Speed SelectIO Wizard を使用する場合、これをバンクごとに実行し、カスタマイズ画面で [Enable Ports to Connect Multiple Interfaces] をオンにします。 この図 に、1 つのインターフェイスが 2 つのバンクにまたがる場合を示します。アプリケーション クロック (APP_CLK) を使用してデータを TX_BITSLICE に読み込みます。 この図 に示すように、TX_BITSLICE は送信クロックに PLL からの専用クロッキングを使用します。この専用の PLL クロックを使用することで、TX_BITSLICE のパフォーマンスが最適化されます。RX_BITSLICE に対しては、APP_CLK は FIFO からデータを読み出すための FIFO_RD_CLK として与えられます。

図 2-62: TX_BITSLICE のアプリケーション クロック

X-Ref Target - Figure 2-62

X19014-tx_bitslice-application-clock.jpg

High Speed SelectIO Wizard ではアプリケーション クロックに CLKOUT0/CLKOUT1 を使用できますが、これは 1 つのバンクを使用する場合に限られます。

複数バンクにまたがるインターフェイス ( この図 ) の場合、1 つのクロック ソースを使用して各 High Speed SelectIO Wizard コアの APP_CLK を駆動します。したがって CLKOUT0/CLKOUT1 は接続しないでください。

図 2-63: 複数バンクのクロッキング

X-Ref Target - Figure 2-63

X19015-multiple-interfaces-in-shared-bank.jpg

High Speed SelectIO Wizard ではリセット ステート マシンに RIU_CLK を使用します。複数バンクにまたがるインターフェイスをアラインするには、すべてのバンクを同時にリセットする必要があります。各 PLL からの LOCKED 出力を RIU_CLK ドメインに同期させ、すべての論理積 (AND) をとります。これらの変更により、ステート マシンが同時に開始できるようになります。

各バンクには RST_SEQ_DONE ステータス信号があります。すべてのバンクが利用可能になったかどうかを判定するには、すべてのインターフェイスからの RST_SEQ_DONE の論理積 (AND) をとり、インターフェイス Ready (INTF_RDY) 信号を 1 つ生成します。INTF_RDY は APP_CLK に同期させ、TX_BITSLICE を使用したデザインの TBYTE_IN[3:0] はこの INTF_RDY で制御します。High Speed SelectIO Wizard を使用する場合、tri_tbyte#[3:0] 入力を INTF_RDY 信号に接続します。RX_BITSLICE をターゲットにしたデザインでは、FIFO_RD_EN は、すべてのインターフェイスが利用可能になり INTF_RDY が High になった後でのみ使用するようにします。

注記: クロックを受信するビット スライスから最も離れた使用ビット スライスの反転 FIFO_EMPTY 信号を利用します。結果、使用ビット スライスのすべての入力に対して FIFO_WRCLK_OUT がフリップフロップを介して生成されます。「最も離れた」とは、クロック バックボーンの端にあるビット スライスを指します。詳細は、 ネイティブ プリミティブ FIFO の機能 の説明を参照してください。

High Speed SelectIO Wizard を使用する場合、INTF_RDY は内部で APP_CLK に同期します。

次に複数バンクの場合の要件をまとめます。

複数バンクの場合のクロッキングの変更点

° PLL 間のスキューを最小限に抑えるため、各 High Speed SelectIO Wizard コアの PLL は同じ MMCM クロック ソースから駆動する必要があります。つまり、3 つのバンクを使用する場合は MMCM を中央の I/O バンクに配置します。異なる PLL に対するクロック スキューを最小限に抑えることは、MMCM に対する入力クロック配線を制御することよりも重要です。

° 複数バンクのクロッキングの場合、各コアに対するアプリケーション クロック (APP_CLK) を変更して MMCM クロックを使用する必要があります。

リセット ステート マシン

° PLL とリセット ステート マシンはすべて同時にリセットする必要があります。

° すべてのバンクからの LOCKED 出力を 1 つにまとめ、RIU クロック ドメインに同期する必要があります。LOCKED 信号はリセット ステート マシンへの入力で、RIU クロック ドメインによって駆動されるため、1 つにまとめた複数バンクの LOCKED 信号も RIU クロック ドメインに属する必要があります。

° アプリケーションは、すべてのバンクからの RST_SEQ_DONE を待機してから有効にする必要があります (INTF_RDY)。この信号はアプリケーション クロック ドメインに同期させ、送信アプリケーションでは TBYTE_IN[3:0]、受信アプリケーションでは FIFO_RD_EN をこの信号で制御します。