AR# 16318

|

Virtex-II Pro RocketIO - チャネル ボンディング属性 (CHAN_BOND_WAIT、CHAN_BOND_OFFSET、CHAN_BOND_LIMIT) とその操作について

説明

キーワード : Rocket, channel, bond, wait, limit, offset, IO, I/O, RocketI/O, チャネル, ボンド, 制限, オフセット

CHAN_BOND_WAIT、CHAN_BOND_OFFSET、 CHAN_BOND_LIMIT 属性はどのように設定しますか。また、これらの属性はチャネル ボンディングにどう影響しますか。

ソリューション

1. 推奨されるガイドライン

CHAN_BOND_WAIT = 8
CHAN_BOND_WAIT = CHAN_BOND_OFFSET
CHAN_BOND_LIMIT = 2*CHAN_BOND_WAIT

この値を変更する場合は、設定値がプロトコルで有効かをシミュレーションで必ず確認してください。チャネル ボンディングに影響を与える係数は、次のとおりです。

- マスタとスレーブの間で発生するチャネル ボンディング シーケンスの到着時間のスキュー (マスタとスレーブ間で時差が生じる場合)。チャネル間の差が大きいほど、CHAN_BOND_WAIT 値を大きくする必要があります。
- 連続するチャネル ボンディング シーケンスの到着時間。この時間差が短いほど CHAN_BOND_WAIT 値を小さし、スレーブがその次のシーケンスではなく本来のシーケンスに揃うようにします。

2. 許容されるチャネル スキュー

CHAN_BOND_WAIT - 3.5 バイト

- CHAN_BOND_WAIT が 8 バイトの場合、許容されるスキューは 4.5 バイト (1/3.125 Gbps * 4.5 バイト * 10 ビット/バイト = 14.4ns) です。

3. 連続するチャネル ボンディング シーケンス間の最低バイト数

CHAN_BOND_WAIT + 9

4. チャネル ボンディングが正常に実行されたことを示す指標

- すべてのレーンで CHBONDDONE が High
- スレーブ MGT で RXCLKCORCNT = 101* (RXCLKCORCNT=101 になってから 1 サイクル後にチャネルが揃う)

5. チャネル ボンディングが正常に実行されなかったことを示す指標

- CHBONDDONE が Low のまま
- スレーブ MGT で RXCLKCORCNT = 101*

スレーブの CHBONDI でチャネル ボンディング コマンドが受信されると、RXCLKCORCNT が 101 に設定されます。

チャネル ボンディング正常に実行されない原因

- スレーブ シーケンスがマスタ シーケンスよりも大幅に遅れる。この場合、CHBONDO がアサートされたときにスレーブでチャネル ボンディング シーケンスが検出されません。
- マスタ シーケンスがスレーブ シーケンスよりも大幅に遅れる。この場合、スレーブのチャネル ボンディング シーケンスが CHAN_BOND_LIMIT を超えてしまい、期限切れになります。
- 同期化またはアライメントに問題があり、スレーブ レシーバでチャネル結合シーケンスが認識できない。

6. チャネル ボンディング中の RXDATA の出力

- マスタ チャネルが通常の状態で動作します。
- CHBONDI がアサートの場合にスレーブ シーケンスがマスタ シーケンスよりも遅れると、スレーブは 2 ~ 3 バイトのデータをとばして CHAN_BOND_OFFSET の位置にジャンプします。
- CHBONDI がアサートされる前にマスタ シーケンスがスレーブ シーケンスよりも遅れた場合、スレーブで受信されたデータが正常に読み出されます。スレーブはオフセット ロケーションをとばして読み出します。CHBONDI がアサートされると、スレーブはオフセット ロケーションに戻ります。受信されたデータの一部が 2 度送られます。
AR# 16318
日付 12/15/2012
ステータス アーカイブ
種類 一般
People Also Viewed