既述のとおり、TX_BITSLICE_TRI は TX_BITSLICE ですが、ユーザー データ入力とシリアル出力はありません。 RXTX_BITSLICE トランスミッター機能 を参照し、この TX_BITSLICE_TRI の機能を理解してください。
トライステートは、双方向データおよび/またはクロック/ストローブのアプリケーションで通常使用されます。TX_BITSLICE_TRI は、RXTX_BITSLICE/TX_BITSLICE 属性 TBYTE_CTL が TBYTE_IN に設定されている場合にのみ使用されます。この場合、BITSLICE_CONTROL、TX_BITSLICE_TRI、および 1 つ以上の TX_BITSLICE を組み合わせて使用し、一連のシリアル データ出力ストリームの専用ビットをトライステートにします。 この図 に、プリミティブがどのように相互接続されているかを示し、 この図 の波形は、シリアル データ ストリームのビットをトライステート制御するためにどのように信号を適用すべきかを示しています。
• TBYTE_CTL 属性を TBYTE_IN に設定した場合、BITSLICE_CONTROL プリミティブの TBYTE_IN[3:0] 入力はニブル内のすべての RXTX_BITSLICE をトライステート制御します。 この図 に示すように、TBYTE_IN[3:0] 入力はすべてのニブル出力トライステート機能を (TX_BITSLICE_TRI を介して) 制御します。TBYTEIN[3:0] 入力を使用することで、シリアル ストリームの各ビットをトライステートにできます。
• TBYTE_CTL 属性を T に設定した場合、TX_BITSLICE_TRI は不要で、TBYTE_IN[3:0] ピンを Low にディアサートできます ( この図 )。TBYTE_CTL 属性を T に設定した場合、RXTX_BITSLICE のトライステート機能はインターコネクト ロジックから制御されます。インターコネクト ロジックから RXTX_BITSLICE のトライステートを制御するということは、ブロック、ワード、またはフレーム トライステートとして動作するということです。 この図 に示すように、TBYTE_CTL を TBYTE_IN および T に設定した TX_BITSLICE をニブル内で混在させることができます。ニブルに TBYTE_IN と T が混在する場合、シリアライズされたデータがビット スライス全体で確実にアラインさるとは限りません。
この図 に、TX_BITSLICE_TRI および TX_BITSLICE の T_BYTE_IN[3:0] を使用してトライステート制御を接続する場合に必要な接続を示します。
この図 についての注意事項を説明します。
• 図を簡略化するため、レイテンシは表示していません。
• 開始時点では、BITSLICE_CONTROL の TBYTE_IN は 1111 で、出力バッファーはトライステートではありません。OBUFT の出力はすべて 1 です (11111111)。
• イベント 1 では、BITSLICE_CONTROL の TBYTE_IN は 1010 で、データ入力はすべて High です。これにより、シリアル データ ストリームの一部がトライステートになります。出力バッファー O ポートからのシリアル ストリームは 11ZZ11ZZ です。
• イベント 2 では、パラレル データ入力はすべて Low で、TBYTE_IN は 1111、つまりデータ ストリームはトライステートではありません。
• イベント 3 では、パラレル入力はすべて 0 であるものの、TBYTE_IN は 1101、つまりパラレル ワードの 4 番目と 5 番目のビットがトライステートです。D 入力は、すべてロジック Low です。出力データは 0000ZZ00 になります。