8B/10B コーディングは DC バランスを保つための手法です。つまり、送信された 1 と 0 の割合を長期間にわたって正確に 50% にする必要があります。このため、エンコーダーは送信された -1 と 0 の数の差を常に計算し、送信した各キャラクターの最後で +1 または -1 の差を算出します。この差をランニング ディスパリティと呼びます。
ディスパリティを使用して制御情報を送信するプロトコルに対応するために、ランニング ディスパリティは 8B/10B エンコーダーで生成されるだけでなく、次の表に示すように CH*_TXCTRL1 と CH*_TXCTRL0 で直接制御することも可能です。たとえば、反転したディスパリティと共に送信されたアイドル キャラクターを使用し、クロック コレクションを開始する場合もあります。
CH*_TXCTRL0 | CH*_TXCTRL1 | 出力されるディスパリティ値 |
---|---|---|
0 | 0 | 8B/10B エンコーダーで計算されます。 |
1 | 0 | TXDATA のエンコード時に、ランニング ディスパリティを反転します。 |
0 | 1 | CH*_TXDATA のエンコード時に、強制的に負のランニング ディスパリティを送信します。 |
1 | 1 | CH*_TXDATA のエンコード時に、強制的に正のランニング ディスパリティを送信します。 |