UltraScale デバイスの場合、データとトライステート用の出力 DDR レジスタをインプリメントするために、OLOGIC ブロック内にレジスタがあります。HD I/O でデータパスとトライステート パスの両方を使用する場合、データパスとトライステート制御パスの両方にも出力 DDR レジスタを使用する (または使用しない) 必要があります。たとえば、データパスで出力 DDR レジスタを使用するデザインでは、トライステート制御パスでも出力 DDR レジスタを使用する必要があります。
この機能は、ODDRE1 プリミティブをインスタンシエートして使用します。ODDRE1 を使用中、DDR マルチプレクサー処理は自動的に実行されます。マルチプレクサーを手動で制御する必要はありません。この制御はクロックで実行されます。
ODDRE1 プリミティブにはクロック入力が 1 つしかありません。ローカル反転バージョンの入力クロックが、立ち下がりエッジ データに供給されます。
ODDRE1 プリミティブは、SAME_EDGE モードのみサポートします。このモードを使用すると、ODDRE1 クロックの立ち上がりエッジで、ODDRE1 プリミティブの両方のデータ入力を同時に取得できるようになるため、CLB やクロック リソースを節約して性能を向上させることができます。また、このモードはトライステート制御でもサポートされています。 この図 に出力 DDR のタイミング図を示します。 この図 に ODDRE1 プリミティブのブロック図を示します。HD バンク内の ODDRE1 ブロックは XP バンクとは異なり、SR ピンがレジスタの遅延なしで直ちにディアサートされます。シミュレーションと比較して、HD バンク内の ODDRE1 は 3 クロック サイクル早くリセットから回復します。 表: ODDRE1 のポート には ODDRE1 のポートを示し、 表: ODDRE1 の属性 には ODDRE1 の属性を示します。
出力レジスタが強制的に IOB リソースを使用するようにするには、XDC ファイルで次のような構文を使用します。データの場合:
set_property IOB TRUE [get_cell <cell_name>]
トライステートの場合:
set_property IOB_TRI_REG value [get_cells <cell_name>]