Fタイル・ダイナミック・リコンフィグレーションのデザイン例ユーザーガイド

ID 710582
日付 4/03/2023
Public
ドキュメント目次

3.1.2. PMA/FEC Direct PHY Multirateハードウェア・デザイン例

図 11. PMA/FEC Direct PHY Multirateハードウェア・デザイン例のブロック図: 50G-1ベースバリアント
図 12. PMA/FEC Direct PHY Multirateハードウェア・デザイン例のブロック図: 400G-8ベースバリアント

ハードウェア・デザイン例でのISSPモジュールでは、DUT IPリセット信号、dr_mode 選択を制御し、ステータス信号を表示します。ハードウェア・テスト・スクリプトは、値を読み出して駆動するためにISSPへのサービスを開放します。JTAGホストは、 Avalon® メモリーマップド・インターフェイスにアクセスするためにインスタンス化されます。

ハードウェア・デザイン例では、src/parameter.tcl ファイルに記述されているユーザーの選択に基づいてダイナミック・リコンフィグレーション移行プロセスを実行し、DUT IPステータスをチェックします。デフォルトのダイナミック・リコンフィグレーション・シーケンスがありますが、ユーザーはいつでも src/parameter.tcl ファイル内の DR_TRANSITION 配列変数を変更できます。

DR_TRANSITION: 目的のDRシーケンス配列。この配列変数のサイズによって、実行されるダイナミック・リコンフィグレーションの数が決まります。

  • 例えば、50G-1 Base Variantのダイナミック・リコンフィグレーション・シーケンスである1x50G > 1x25G > 1x50G KPFEC > 1x24.33024G > 1x50Gを実現する場合、変数の変更は次のようになります。
    set DR_TRANSITION(0) "1x25G"
    set DR_TRANSITION(1) "1x50G KPFEC"
    set DR_TRANSITION(2) "1x24.33024G"
    set DR_TRANSITION(3) "1x50G
  • 400G-8 Base Variantのダイナミック・リコンフィグレーション・シーケンスである1x400G-8 > 2x100G-4 > 2x200G-4 > 1x400G-8Gを実現したい場合、変数の変更は次のようになります。
    The variables changes are:
    set DR_TRANSITION(0) "2x100G_4"
    set DR_TRANSITION(1) "2x200G_4"
    set DR_TRANSITION(2) "1x400G_8」

デザイン例のハードウェア・フロー

ハードウェア・テスト・デザインの <design_example_dir>/hardware_test_design/ ディレクトリーには、ダイナミック・リコンフィグレーション・ハードウェア・テスト用の .tcl スクリプトを含む hwtest サブディレクトリーが含まれています。以下に示す手順に従って、ハードウェアでデザイン例をテストします。
図 13. PMA/FEC Direct PHY Multirateハードウェア・デザイン例のハードウェア・フロー

PMA/FEC Direct Multirate PHY Design Exampleはデフォルトで、loopback_modeパラメーターを 0 に設定して、外部ループバック・テストを実行します。ハードウェア・テストを実行する前に、それぞれのデザイン例の QSF ピンアウト割り当てに従って、QSFP-DDループバック・モジュールを接続します。

ハードウェアで内部ループバック・テストを実行するには、<design_example_dir>/hardware_test_design/hwtest/src にある parameter.tcl ファイルで、loopback_modeパラメーターを 1 に変更します。Fタイル・ダイナミック・リコンフィグレーションのデザイン例をコンパイルし、 Intel® Agilex™ 7デバイス上でコンフィグレーションした後、システムコンソールを使用してIPコアとそのPHY IPコアレジスターをプログラミングできます。

このタスクについて

システムコンソールを起動してハードウェア・デザイン例をテストするには、次の手順に従います。

  1. ハードウェア・デザイン例を Intel® Agilex™ 7デバイスにコンフィグレーションした後、インテルQuartus Prime開発ソフトウェア・プロ・エディションで、Tools > System Debugging Tools > System Consoleをクリックします。
  2. Tcl Consoleペインで cd hwtest と入力して、ディレクトリーを <design_example_dir>/hardware_test_design/hwtest に変更します。
  3. source main_script.tcl と入力してJTAGマスターへの接続を開き、テストを開始します。
  4. 結果を解析します。実行が成功すると、システムコンソールにTest Passedと表示されます。
注: 現在のプロファイルで内部シリアル・ループバック (ILB) がイネーブルになっている場合は、FGT属性アクセス方式を使用してこれをディスエーブルした後に、次のターゲット・プロファイルへのダイナミック・リコンフィグレーションを実行する必要があります。これに従わない場合、ダイナミック・リコンフィグレーション後にQuartus Hard IPが異常に動作する可能性があります。

PMA/FEC Direct PHY Multirateハードウェア・デザイン例の出力例を以下に示します。

50G-1 Base VariantのPMA/FEC Direct PHY Multirateハードウェア・デザイン例の出力例は、次のとおりです。
% cd hwtest

$source main_script.tcl
Info: Number of Channels = 1
Info: JTAG Port ID       = 2
Info: Power Up Variant   = 1x50G
INFO: Start of ftile_dphy_dr_test_dynamic

INFO: Basic DPHY DR test

	INFO: Set Reconfig Reset
	INFO: write_value is 0x1
	INFO: Release Reconfig Reset
	INFO: write_value is 0x0
	INFO: Set DR mode...
	INFO: DR mode is 0x0

...........

*******
*******

	INFO: Channel 0: Set TX Reset
	INFO: write_value is 0x4
	INFO: Channel 0: Set RX Reset
	INFO: write_value is 0x6
	INFO: get_reset_ack_status  -----
	INFO: Channel 0 : Checking tx reset ack status...
		INFO: tx_reset_ack_status_0 = 0x3
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
		INFO: rx_reset_ack_status_0 = 0x3
	INFO: RX fully in reset state 
	INFO: Start DR selection-----
		INFO: DR transition is 1x50G -----
	INFO: Channel: 0 Configuring ED to PMA_DIR 1x50G ....
	INFO: Wait for DR Ready....
	INFO: configuring DR Profile 1x50G....
	INFO: Trigger DR interrupt
	INFO: Wait for DR interrupt Ack....
	INFO: DR Request acknowledged
	INFO: Wait for DR Config to be done....
	INFO: DONE Reconfigure to 1x50G.
	INFO: Set DR mode...
	INFO: DR mode is 0x0
	INFO: Channel 0: Release TX Reset
	INFO: write_value is 0x2
	INFO: Channel 0: Release RX Reset
	INFO: write_value is 0x0
	INFO: Channel 0 : Run test...
	INFO: Read out probe data: 0x7dc
	INFO: Data locked with no error

*******
*******


Info: End of ftile_dphy_dr_test 

Info: Test <ftile_dphy_dr_test> Passed
400G-8 Base VariantのPMA/FEC Direct PHY Multirateハードウェア・デザイン例の出力例は、次のとおりです。
% cd hwtest

$source main_script.tcl
Info: Number of Channels = 1
Info: JTAG Port ID       = 2
Info: Power Up Variant   = 1x400G_8
INFO: Start of ftile_dphy_dr_test

INFO: Basic DPHY DR test

	INFO: Set Reconfig Reset
	INFO: write_value is 0x1
	INFO: Release Reconfig Reset
	INFO: write_value is 0x0
	INFO: Set DR mode...
	INFO: DR mode is 0x0
	INFO: Channel 0: Set TX Reset
	INFO: write_value is 0x4
	INFO: Channel 0: Set RX Reset
	INFO: write_value is 0x6
	INFO: check_reset_ack_n_status for current_dr_profile : 400G -----
	INFO: Channel 0 : Checking tx reset ack status...
	INFO: tx_reset_ack_status_0 = 0x5
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
	INFO: rx_reset_ack_status_0 = 0x5
	INFO: RX fully in reset state

INFO: Internal Serial Loopback not enabled 

	INFO: Channel 0: Release TX Reset
	INFO: write_value is 0x2
	INFO: Channel 0: Release RX Reset
	INFO: write_value is 0x0
	Run default test. Release resets. Running test for 10s
	INFO: Channel 0 : Run test...
	INFO: Read out probe data: 0x6b70
	INFO: Channel 0: Set TX Reset
	INFO: write_value is 0x4
	INFO: Channel 0: Set RX Reset
	INFO: write_value is 0x6
	INFO: check_reset_ack_n_status for current_dr_profile : 400G -----
	INFO: Channel 0 : Checking tx reset ack 0 status...
		INFO: tx_reset_ack_status_0 = 0x5
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
		INFO: rx_reset_ack_status_0 = 0x5
	INFO: RX fully in reset state 
	INFO: Start DR selection-----
		INFO: DR transition is 2x200G_4 -----
	INFO: Channel: 0 Configuring ED to PMA_DIR 2x200G_4 ....
	INFO: Wait for DR Ready....
	INFO: configuring DR Profile 2x200G_4....
	INFO: Trigger DR interrupt
	INFO: Wait for DR interrupt Ack....
	INFO: DR Request acknowledged
	INFO: Wait for DR Config to be done....
	INFO: DONE Reconfigure to 2x200G_4.
	INFO: Set DR mode...
	INFO: DR mode is 0x1
	INFO: Channel 0: Release TX Reset
	INFO: write_value is 0x2
	INFO: Channel 0: Release RX Reset
	INFO: write_value is 0x0
	INFO: Channel 0 : Run test...
	INFO: Read out probe data: 0x7f70
	INFO: Data locked with no error
	INFO: Test Pass!

*******
*******

	INFO: Channel 0: Set TX Reset
	INFO: write_value is 0x4
	INFO: Channel 0: Set RX Reset
	INFO: write_value is 0x6
	INFO: check_reset_ack_n_status for current_dr_profile : 200G -----
	INFO: Channel 0 : Checking tx reset ack 0 status...
		INFO: tx_reset_ack_status_0 = 0xf
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking tx reset ack 1 status...
		INFO: tx_reset_ack_status_1 = 0xf
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
		INFO: rx_reset_ack_status_0 = 0xf
	INFO: RX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
		INFO: rx_reset_ack_status_1 = 0xf
	INFO: RX fully in reset state 
	INFO: Start DR selection-----
		INFO: DR transition is 2x100G_4 -----
	INFO: Channel: 0 Configuring ED to PMA_DIR 2x100G_4 ....
	INFO: Wait for DR Ready....
	INFO: configuring DR Profile 2x100G_4....
	INFO: Trigger DR interrupt
	INFO: Wait for DR interrupt Ack....
	INFO: DR Request acknowledged
	INFO: Wait for DR Config to be done....
	INFO: DONE Reconfigure to 2x100G_4.
	INFO: Set DR mode...
	INFO: DR mode is 0x2
	INFO: Channel 0: Release TX Reset
	INFO: write_value is 0x2
	INFO: Channel 0: Release RX Reset
	INFO: write_value is 0x0
	INFO: Channel 0 : Run test...
	INFO: Read out probe data: 0x7f70
	INFO: Data locked with no error
	INFO: Test Pass!

*******
*******

	INFO: Channel 0: Set TX Reset
	INFO: write_value is 0x4
	INFO: Channel 0: Set RX Reset
	INFO: write_value is 0x6
	INFO: check_reset_ack_n_status for current_dr_profile : 100G -----
	INFO: Channel 0 : Checking tx reset ack 0 status...
		INFO: tx_reset_ack_status_0 = 0xf
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking tx reset ack 1 status...
		INFO: tx_reset_ack_status_1 = 0xf
	INFO: TX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
		INFO: rx_reset_ack_status_0 = 0xf
	INFO: RX fully in reset state 
	INFO: Channel 0 : Checking rx reset ack status...
		INFO: rx_reset_ack_status_1 = 0xf
	INFO: RX fully in reset state 
	INFO: Start DR selection-----
		INFO: DR transition is 1x400G_8 -----
	INFO: Channel: 0 Configuring ED to PMA_DIR 1x400G_8 ....
	INFO: Wait for DR Ready....
	INFO: configuring DR Profile 1x400G_8....
	INFO: Trigger DR interrupt
	INFO: Wait for DR interrupt Ack....
	INFO: DR Request acknowledged
	INFO: Wait for DR Config to be done....
	INFO: DONE Reconfigure to 1x400G_8.
	INFO: Set DR mode...
	INFO: DR mode is 0x0
	INFO: Channel 0: Release TX Reset
	INFO: write_value is 0x2
	INFO: Channel 0: Release RX Reset
	INFO: write_value is 0x0
	INFO: Channel 0 : Run test...
	INFO: Read out probe data: 0x6b70
	INFO: Data locked with no error
	INFO: Test Pass!

*******
*******

Info: End of ftile_dphy_dr_test 

Info: Test <ftile_dphy_dr_test> Passed