Eタイル ハードIPユーザーガイド: イーサネット インテルFPGA IP向けEタイル ハードIPおよび EタイルCPRI PHYインテルFPGA IP

ID 683468
日付 5/17/2019
Public
ドキュメント目次

2.11.12. 1588 PTP Interface

イーサネット インテルFPGA IP向けEタイル ハードIP 1588 PTP Interfaceが10G/25Gデザインで使用可能なのは、100GE or 1 to 4 10GE/25GE with optional RS-FEC and 1588 PTPバリエーションの10G/25Gチャネルに対してEnable IEEE 1588 PTPをオンにした場合です。提供されている1588 Precision Time Protocol (PTP) タイムスタンプ情報の定義は、 IEEE 1588-2008 Precision Clock Synchronization Protocol for Networked Measurement and Control Systems Standardの通りです。

この信号がアクティブになるのは、選択したチャネルのコンフィグレーションで、MAC+PTP+PCSスタックを提供するようになっている場合にのみです。

すべてのインターフェイス信号は、TXまたはRXクロックでクロッキングされます。信号名は標準のAvalon-ST信号で、わずかな違いでバリエーションを示します。例えば次の通りです。

  • 100GEチャネルまたはシングルチャネル10GE/25GEの場合 : i_ptp_ins_ets
  • 選択した10GE/25GEチャネルの場合 : i_ptp_ins_ets[n-1:0]
表 39.  1-Step TX Timestamp Interfaceの信号

信号名

説明

i_ptp_ins_ets

i_ptp_ins_ets[n-1:0]

1

アサートされると、出力タイムスタンプをそれぞれのチャネルの現在のTXパケットに挿入します。

この信号をアサートする前に、次の点を考慮してください。

  • TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。
  • TXスキップCRC信号 (例 : i_tx_skip_crc ) がアサートされているときは使用しないでください。TXパケットのCRCは、出力タイムスタンプの書き込み後に再計算してください。
  • 滞留時間タイムスタンプ信号 (例 : i_ptp_ins_cf ) がアサートされているときは使用しないでください。滞留時間の更新と出力タイムスタンプの挿入は、同じパケットにはできません。
  • TXパケットのPTPタイムスタンプ・フィールドの位置 (例 : i_ptp_ts_offset ) を設定して、PTPヘッダーのタイムスタンプ・フィールドの先頭のバイト位置にします。
  • PTP 1ステップ操作の形式 (例 : i_ptp_ts_format ) を設定して、希望のタイムスタンプ形式にします。
  • 選択したタイムスタンプ形式で96bタイムスタンプが必要な場合は、TXパケットのPTP訂正フィールド (例 : i_ptp_ts_offset ) を設定して、PTP ヘッダーの訂正フィールドの開始位置のバイト位置にします。

i_ptp_ins_cf

i_ptp_ins_cf[n-1:0]

1

アサートされると、滞留時間タイムスタンプをそれぞれのチャネルの現在のTXパケットの訂正フィールドに挿入します。

この信号をアサートする前に、次の点を考慮してください。

  • TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。
  • TXスキップCRC信号 (例 : i_tx_skip_crc ) がアサートされているときは使用しないでください。TXパケットのCRCは、滞留時間の書き込み後に再計算してください。
  • 入力タイムスタンプ信号 (例 : i_ptp_ins_cf ) がアサートされているときは使用しないでください。滞留時間の更新と出力タイムスタンプの挿入は、同じパケットにはできません。
  • 現在のパケットのIngressタイムスタンプをコアに提供します (例 : i_ptp_tx_its をアサート)。これは、パケットがシステムに入ったときに行われ、滞留時間の計算ができるようにします。
  • TXパケット内のPTP訂正フィールドの位置 (例 : i_ptp_cf_offset ) を設定して、PTPヘッダー内の訂正フィールドの開始バイト位置にします。
    注: PTPパケットのシステム内での滞留が4ns以上の場合、訂正フィールドに表示される訂正フィールド内の不一致は、非常に大きな数になります。この状態の場合、PTPモジュールでは、パケット内の最後の2 LSBビットのみを使用して計算を実行します。
  • PTP 1ステップ操作の形式 (例 : i_ptp_ts_format ) を設定して、希望のタイムスタンプ形式にします。

i_ptp_zero_csum

i_ptp_zero_csum[n-1:0]

1

アサートされると、現在のTXパケット内で伝送されるUDPパケットのチェックサムをゼロで上書きします。

この信号をアサートする前に、次の点を考慮してください。

  • TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。
  • TXスキップCRC信号 (例 : i_tx_skip_crc ) がアサートされているときは使用しないでください。TXパケットのCRCの再計算は、滞留時間の書き込み後に行ってください。
  • 更新拡張バイトフィールド信号 (例 : i_ptp_update_eb) がアサートされているときは使用しないでください。 UDPチェックサムを0に設定したり、拡張フィールドを更新して同じパケットのチェックサムの変更をキャンセルすることはできません。
  • TXパケットのUDPチェックサム・フィールドの位置 (例 : i_ptp_ts_offset ) を設定して、TXパケット内のUDPチェックサムの開始バイト位置にします。

i_ptp_update_eb

i_ptp_update_eb[n-1:0]

1

アサートされると、現在のTXパケット内で伝送されるIPv6パケット内の拡張バイトフィールドを上書きします。使用する値は、UDPパケットへの変更によるチェックサムへの変更を取り消します。

この信号をアサートする前に、次の点を考慮してください。

  • TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。
  • TXスキップCRC信号 (例 : i_tx_skip_crc ) がアサートされているときは使用しないでください。TXパケットのCRCの再計算は、滞留時間の書き込み後に行ってください。
  • ゼロ信号を持つUDPチェックサム (例 : i_ptp_zero_csum) がアサートされているときは上書きしないでください。UDPチェックサムを0に設定することや、拡張フィールドを更新して同じパケットのチェックサムの変更をキャンセルすることはできません。
  • TXパケットの拡張バイトフィールドの先頭バイトの位置 (例 : i_ptp_eb_offset ) を設定して、TXパケット内のUDPチェックサムの開始バイト位置にします。

i_ptp_ts_format

i_ptp_ts_format[n-1:0]

1

アサートされると、それぞれのチャネルでPTP 1ステップ動作の形式を選択します。

  • 0 : IEEE 1588v2タイムスタンプおよび訂正フィールド形式を使用します。 (96ビット)
  • 1 : IEEE 1588v1タイムスタンプおよび訂正フィールド形式を使用します。 (64ビット)

egressタイムスタンプ信号 ( i_ptp_ins_ets ) または滞留時間タイムスタンプ信号 ( i_ptp_ins_cf )、およびTX valid信号とSOP信号がアサートされている場合にのみ有効です。

i_ptp_ts_offset

i_ptp_ts_offset[n-1:0]

16

アサートされると、現在のTXパケット内のPTPタイムスタンプ・フィールドの位置を示します。

この信号をアサートする前に、次の点を考慮してください。

  • TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。
  • これは、フレームの開始からのフィールドの先頭オクテットのオフセットです。ここで、フレームの先頭バイト (最初の宛先MACアドレスオクテット) は位置0です。
  • IEEE 1588v2 PTPタイムスタンプ・フィールドは10オクテット長 (80ビット) です。また、IEEE 1588v1タイムスタンプ・フィールドは8オクテット長 (64ビット) で、オフセットによって与えられる位置から始まります。IEEE 1588v2タイムスタンプは、実際には96ビット長であるため、タイムスタンプの下位16ビットの配置は、訂正フィールドの下位2オクテットにされます。
注意:
オフセットをTXパケット内の位置に設定してください。そうしないと、PTP挿入操作が失敗します。PTPフィールドの重複もしないでください。

i_ptp_cf_offset

i_ptp_cf_offset[n-1:0]

16

アサートされると、現在のTXパケット内のPTP訂正フィールドの位置を示します。

この信号をアサートする前に、次の点を考慮してください。

  • TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。
  • これは、フレームの開始からのフィールドの先頭オクテットのオフセットです。ここで、フレームの先頭バイト (最初の宛先MACアドレスオクテット) は位置0です。
  • PTP訂正フィールドは8オクテット長で、オフセットで指定された位置から始まります。96ビット・タイムスタンプを使用している場合は、MACによってタイムスタンプの下位16ビットが、訂正フィールドの下位2オクテットに配置されます。
注意:
オフセットをTXパケット内の位置に設定してください。そうしないと、PTP挿入操作が失敗します。PTPフィールドの重複もしないでください。

i_ptp_csum_offset

i_ptp_csum_offset[n-1:0]

16

アサートされると、現在のTXパケット内のUDPチェックサム・フィールドの先頭バイトの位置を示します。

この信号をアサートする前に、次の点を考慮してください。

  • チェックサムがUDPパケット (例 : i_ptp_zero_csum ) 内で上書きされ、TX Valid信号、TX SOP信号がアサートされた場合にのみ有効です。
  • これは、フレームの開始からのフィールドの先頭オクテットのオフセットです。ここで、フレームの先頭バイト (最初の宛先MACアドレスオクテット) は位置0です。
注意:
オフセットをTXパケット内の位置に設定してください。そうしないと、PTP挿入操作が失敗します。PTPフィールドの重複もしないでください。

i_ptp_eb_offset

i_ptp_eb_offset[n-1:0]

16

アサートされると、現在のTXパケット内の拡張バイトフィールドの先頭バイトの位置を示します。

この信号をアサートする前に、次の点を考慮してください。

  • 拡張バイトがIPv6パケット (例 : i_ptp_update_eb ) 内で上書きされ、TX Valid信号、TX SOP信号がアサートされた場合にのみ有効です。
  • これは、フレームの開始からのフィールドの先頭オクテットのオフセットです。ここで、フレームの先頭バイト (最初の宛先MACアドレスオクテット) は位置0です。
注意:
オフセットをTXパケット内の位置に設定してください。そうしないと、PTP挿入操作が失敗します。PTPフィールドの重複もしないでください。

i_ptp_tx_its

i_ptp_tx_its[n-1:0]

96

アサートされると、滞留時間の計算が必要なTXパケットのIngressタイムスタンプを示します (例 : i_ptp_ins_cf = 1) 。

このタイムスタンプは、パケットがシステムに到着した時刻です。TX MACでは、この時間をパケットがシステムから出て滞留時間を生成する時間と比較します。PTPの1ステップ操作 (例 : i_ptp_ts_format ) は、使用するタイムスタンプ形式を決定します。

TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。

表 40.  2 ステップTX Timestamp Interfaceの信号2 ステップTX Timestampを使用して、パケットが送信されるときに2 ステップTX Timestampを要求します。

信号名

説明

i_ptp_ts_req

i_ptp_ts_req[n-1:0]

1

現在のTXパケット用の2ステップ・タイムスタンプ信号を要求します。

アサートされると、現在のパケットのTXタイムスタンプを生成します。

TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。

i_ptp_fp

i_sl_ptp_fp[n-1:0]

8

現在のTXパケットのフィンガープリント信号。

8ビットのフィンガープリントを送信中のTXパケットに割り当てます。これにより、TXパケットに関連付けられている2ステップまたは1ステップのPTPタイムスタンプを識別できます。タイムスタンプは、同じフィンガープリントで返されます。
  • 0..31以上の範囲のフィンガープリントを使用して、処理中の2つのTXパケットに対して同じフィンガープリントが割り当てられる可能性を避けてください。
  • egressタイムスタンプが必要ないパケットには、デコードしやすいnullフィンガープリントを選択してください。たとえば、0..31の範囲を使用する場合は、32をnullフィンガープリントにします。

TX valid信号およびTX SOP信号がアサートされている場合にのみ有効です。

o_ptp_ets_valid

o_sl_ptp_ets_valid[n-1:0]

1

2ステップのegressタイムスタンプvalid信号。

アサートされると、フィンガープリントとegressタイムスタンプ信号によって、このサイクルで有効な出力が提示されます。

o_ptp_ets

o_sl_ptp_ets[n-1:0]

96

2ステップまたは1ステップのegressタイムスタンプ信号。

アサートされると、TXパケット用のegressタイムスタンプを提示します。このパケットは、 o_ptp_ets_fp から得たフィンガープリントを使用して送信されたものです。

この信号をアサートする前に、次の点を考慮してください。

  • egressタイムスタンプvalid ( o_ptp_ets_valid ) 信号がアサートされた場合にのみ有効です。
  • タイムスタンプは1588v2形式 (96b) です。
  • タイムスタンプの対象となるパケットは、フィンガープリントがegressタイムスタンプを持つフィンガープリントと一致するものです。
  • すべてのタイムスタンプで参照するTime-of-Dayのコピーは、i_ptp_tod ポートを介してIPコアに提供されたものです。

o_ptp_ets_fp

o_sl_ptp_ets_fp[n-1:0]

8

アサートされると、現在の2ステップまたは1ステップのegressタイムスタンプのフィンガープリントを表示します。フィンガープリントを使用して、タイムスタンプがどのTXパケットに属しているのかを判断できます。

egressタイムスタンプvalid ( o_ptp_ets_valid ) 信号がアサートされた場合にのみ有効です。

表 41.  共有Time-of-Dayインターフェイスの信号共有Time-of-Dayインターフェイスにより、コアではすべてのタイムスタンプの参照をローカルの時刻に対して行います。すべての10G/25Gおよび100Gチャネルでこのポートを共有しています。

信号名

説明

i_ptp_tod

96

ローカルクロックによるTime-of-Day。

アサートされると、このバスでは、現在時刻を (ローカルクロックに従って) イーサネット・コアに提示します。コア内のすべてのチャネルでこのTODポートを共有します。

タイムスタンプは1588v2形式 (96b) です。
  • ビット [95:48] : 秒 (48ビット) 。
  • ビット [47:16] : ナノ秒 (32ビット) このフィールドは10億でオーバーフローします。
  • ビット [15:0] : ナノ秒の小数部 (16ビット) 。このフィールドは純小数です。0xFFFFでオーバーフローします。
表 42.  RX Timestamp Interfaceの信号RX Timestamp Interfaceを使用すると、パケットの到着時に各チャネルでRXタイムスタンプの提供ができます。

信号名

説明

o_ptp_rx_its

i_sl_ptp_rx_its[n-1:0]

96

Ingress RXタイムスタンプ信号。

各チャネルの着信RXパケットのIngressタイムスタンプを表示します。

RX valid信号およびRX SOP信号がアサートされている場合にのみ有効です。

タイムスタンプは1588v2形式 (96b) です。

表 43.  PTP Status Interfaceの信号PTP Status Interfaceでは、PTP機能を使用しているアプリケーションに、PTPタイムスタンプ・ロジックの使用時期を知らせます。

信号名

説明

o_tx_ptp_ready

o_sl_tx_ptp_ready[n-1:0]

1

TX PTP ready信号。

アサートされると、コアでは各チャネルでTX PTP機能を要求する準備が整います。

o_rx_ptp_ready

o_sl_rx_ptp_ready[n-1:0]

1

RX PTP ready信号。

アサートされると、RX PTPロジックが各チャネルで使用できる状態にあることを示します。