Eタイル・トランシーバーPHYユーザーガイド

ID 683723
日付 12/09/2021
Public
ドキュメント目次

3.1.10.3. 高速PAM4モードの未使用のトランシーバー・チャネル

PAM4高データレートモードの場合、未使用のトランシーバー・チャネルを保持するオプションが、プラットフォーム・デザイナーIP GUIにあります。これは、PAM4の高データレート専用です。上述の2つの例には適用されません。

Eタイル・トランシーバーに備えられている高速PAM4シリアル伝送モードにより、28.9ギガビット/秒を超える実効ボーレートが可能になります。トランシーバー・チャネルは、高速PAM4シリアル伝送モードで使用する場合、FPGAコアとインターフェイスして、データの送受信をパラレルドメインで行う必要があります。このときのデータレートは、この高速シリアル伝送モードをサポートできるパラレル・データレートです。

パラレルドメインのデータの転送は、EMIBを介してFPGAコアとトランシーバー・タイル間で行われます。これは高速パラレル・データバスです。このデータバスの幅は、FPGAコアとトランシーバー・タイル間の物理接続の数によって制限されます。したがって、FPGAコアからトランシーバー・タイルへのデータ伝送速度は、データバスの幅とその伝送速度によっても制限されます。高速 (28.9ギガビット/秒を超える) シリアルデータ伝送の場合、EMIBのシングル・パラレル・データ・チャネルによるパラレルデータの転送スピードは十分速いものではなく、必要なシリアルデータ伝送速度を維持できません。

高速PAM4シリアルデータ伝送のこの制約を克服するため、2つの隣接するEMIBチャネルを使用して、1つの高速PAM4シリアル・データ・チャネルとFPGAコアの間でパラレルデータを転送します。2つのチャネルの最初のチャネルをマスターチャネルと呼びます。2番目のチャネルをスレーブチャネルと呼びます。高速PAM4チャネルのシリアルデータ接続は、マスターチャネルに関連付けられている接続です。この場合、スレーブチャネルのシリアルデータ接続は使われません。

このような未使用のチャネルについては、未使用のトランシーバー・チャネルを保持するための選択肢がネイティブPHY IP GUIに設けられています。GUIの選択肢は、次の図のとおりです。
図 59. 未使用のトランシーバー・チャネルをPAM4高データレートモードで保持する

スレーブチャネルを保護するには、リファレンス・クロックとそれに対応する周波数をIP GUIで選択します。リファレンス・クロック周波数は、125から500MHzの間にしてください。リファレンス・クロック周波数を選択したら、これらのチャネルのリファレンス・クロックをQSFファイルで指定してください。

一般的なQSF割り当て:

set_location_assignment <CLK_PIN_NAME> -to <REFCLK_PORT_NAME>
set_instance_assignment -name HSSI_PARAMETER "refclk_divider_use_as_bti_clock=true" -to <REFCLK_PORT_NAME>
set_instance_assignment -name HSSI_PARAMETER "refclk_divider_input_freq=<frequency in Hz>" -to <REFCLK_PORT_NAME>

次の例では、refclk1ct という名前は、リファレンス・クロックのトップレベル・デザインで使われます。これをミッションモードのチャネルに使用します。QSF割り当てでは、他の2つのリファレンス・クロック (refclk_preserve_ch1refclk_preserve_ch2) は、(ピンの配置によって指定された) 別々のタイル上にあります。これを使用してチャネル保護を保持します。

この場合では、refclk_preserve_ch1 は、refclk1ct と同じタイル内にあり、高データレートPAM4デザインでスレーブチャネルを保護するためのリファレンス・クロックとして使われます。

refclk_preserve_ch2 は別のタイル上にあり、ロジック・ネットリストでインスタンス化されていないタイル内の未使用チャネルのリファレンス・クロックとして使われます。

2つのスレーブPAM4チャネルを保持する例 (上図のGUI):

set_location_assignment PIN_AB43 -to refclk1ct 
set_location_assignment PIN_AA40 -to refclk_preserve_ch1 // refclk_preserve_ch1 is used to protect the slave channels
set_instance_assignment -name HSSI_PARAMETER "refclk_divider_use_as_bti_clock=TRUE" -to refclk_preserve_ch1
set_instance_assignment -name HSSI_PARAMETER "refclk_divider_input_freq=1250000000" -to refclk_preserve_ch1