はじめに
本記事は、「はじめてのトランシーバーAgilex™ 5 / Agilex™ 3 編」 の基礎編 1 となり、トランシーバーを含むデザインを作成するところまでを解説しています。デザイン作成には、Quartus® Prime Pro Edition の Platform Designer を使用しています。Platform Designer の詳細については、以下をご参照ください。
Quartus® Prime Pro Edition User Guide: Platform Designer
また、本記事で作成するデザインのサンプルファイルを末尾に添付しています。
1. 作成デザイン概要
1-1. 作成デザイン概要
作成するデザインは、下図の "xcvr_sample.qsys" の部分で、Platform Designer で作成します。
1-2. 作成デザインのブロック構成
作成するデザインのブロック構成は以下になります。最低限必要な構成となります。
- Transceiver (GTS PMA/FEC Direct PHY IP)
- Reset Sequencer IP
- Reset Release IP
PHY の設定によっては、System PLL というブロックが必要になりますが、今回は使用しない構成とします。 System PLL を使用する構成は今後の記事で紹介する予定です。
各ブロックの内容は以下になります。
| ブロック名 | 内容 | ユーザーガイド |
| Transceiver (GTS PMA/FEC Direct PHY) | PHY ブロックです。パラレル⇔シリアル変換をおこないます。 | GTS Transceiver PHY User Guide: Agilex™ 5 FPGAs and SoCs |
| Reset Sequencer | トランシーバーのリセット処理をおこないます。各サイドに一つ実装します。 |
GTS Transceiver PHY User Guide: Agilex™ 5 FPGAs and SoCs -5. Implementing the GTS Reset Sequencer Intel FPGA IP |
| Reset Release | FPGAロジックがユーザーモードになったことを通知します。 |
Device Configuration User Guide: Agilex™ 5 FPGAs and SoCs -4. Including the Reset Release IP in Your Design |
1-3. 作業環境について
Tool は以下を使用します。
- Quartus® Prime Pro Edition v25.1
なお、作成したデザインについて、今後の記事で実機確認もおこないますが、その際は下記の開発キットを使用します。
2. デザイン作成
2-1. プロジェクト作成
Quartus® Prime Pro Edition を起動後、最初におこなう作業は、Quartus® Prime Pro Edition のプロジェクトの作成です。プロジェクト名称は xcvr_sample_top とします。デバイスは "A5ED065BB32AE6SR0" を選択します。
File -> New Project Wizard から、以下のように入力してください。
2-2. プラットフォーム・デザイナー起動
次に、Platform Designer を起動し、新規システムを作成します。起動は、Tools -> Platform Designer または 下のショートカットで実行できます。
作成するシステムの名称は xcvr_sample.qsys とします。
新規作成の場合は以下のように Clock Bridge Intel FPGA IP (以下 Clock Bridge) および Reset Bridge Intel FPGA IP (以下 Reset Bridge) が実装されています。
2-3. クロック、リセットの設定
今回のデザインはクロックを 4 系統、リセット入力を 1 系統の構成ですので、 Clock Bridge を 4 個実装する必要があります。 IP カタログから Clock Bridge を選択して追加する方法もありますが、すでに一つ実装されているので、ここでは Duplicate で複製する方法でおこないます。
Clock Bridge を 選択して右クリックし、Duplicate を選択します。これを 3 回繰り返します。
Duplicate の際、以下の画面が表示されますが、今回のデザインでは各クロックの設定が異なるため、IP Variant file もそれぞれ設定しますので、[はい] を選択します。
実施後、下図の左側の状態になっているかと思います。ここでそれぞれのモジュールの名称を変更します。名称を変更するモジュールを選択して、右クリック -> Rename を選択すると変更できます。今回は下図の右側のような名称にします。
モジュール名の変更に合わせて、それぞれのモジュールの設定ファイル(拡張子 .ip) の名称を変更します。変更するモジュールを選択して右クリック-> Rename IP Variant File を選択し、新しいファイル名を入力します。今回は以下のように設定します。
参考:Platform Designer の各ペインは、タブをダブルクリックすることで全面表示にできます。また再度ダブルクリックすることで元の画面に戻ります
参考:レイアウト表示がおかしくなってしまった場合、View -> Reset to System Layout を選択することで初期レイアウトに戻ります
参考:ファイルの途中途中で随時 save することをお勧めします。
次に、外部ピンの設定をします。 Export 欄に以下のように設定してください。 clk_100m、clk_156m は外部からの入力のため in_clk に、tx_clkout、rx_clkout は外部への出力のため out_clk に記入します。
2-4. トランシーバーの設定
IP カタログの フィルター欄に direct と入力し、GTS PMA/FEC Direct PHY Intel FPGA IP 選択します。
2-4-1. Common Datapath Options
ここでは Common Datapath Options の設定をします。
今回はトランシーバー 1chで Duplex、PMA data rate は 17031.25 Mbps としますので、以下のように設定してください。
2-4-2. TX Datapath Options タブ
次に TX Datapath の設定をします。以下のように設定してください。
2-4-3. RX Datapath Options タブ
ここでは RX Datapath の設定をします。以下のように設定してください。
2-4-4. FEC Options タブ
FEC は使用しませんので以下のようにします。
2-4-5. PCS Options タブ
PCS も使用しませんので以下のようにします。
2-4-6. Avalon Memory-Mapped Interface タブ
後ほど GTS Direct PHY のデバッグ機能を使用しますので、以下のように設定します。
2-4-7. Example Design タブ
Example Design は生成しませんので、デフォルト設定のままとします。
2-4-8. Analog Parameters タブ
デフォルト設定のままとします。
2-4-9. メッセージ表示の確認
パラメーター設定後、Parameterization Messages に Error, Warning が無いことを確認してください。 Error、 Warning が発生している場合は表示メッセージに内容が記載されるので、内容を確認し、必要に応じて修正してください。
確認後、Finish ボタンを押します。これにより、Platform Designer に GTS Direct PHY が実装されます。
2-5. リセット・シーケンサーの設定
IP カタログから、"GTS Reset Sequencer Intel FPGA IP" を選択します。下図のように設定し、Finish をクリックします。これにより、Platform Designer に GTS Reset Sequencer IP が実装されます。
2-6. リセット・リリースの設定
IP カタログから、"Agilex Reset Release IP" を選択します。下図のように設定し、Finish をクリックします。これにより、Platform Designer に GTS Reset Release IP が実装されます。
2-7. 各モジュールの名称と IP Variant File name の変更
各モジュールの rename と IP variant File name の変更をおこないます。今回は下図のように変更します。
2-8. クロックの周波数設定
各 Clock Bridge モジュールの周波数を設定します。設定値は以下になります。
| モジュール名 | 周波数 |
| clk_100m | 100 MHz |
| clk_156m | 156.25 MHz |
| tx_clkout | 266.113281 MHz |
| rx_clkout | 266.113281 MHz |
パラメーターの変更は、モジュールを選択して右クリック-> Edit Parameters で設定できます。各モジュールの Explicit clock rate に上表の周波数を入力してください。 100 MHz は、"100M" と入力することができます。
なお、tx_clkout、rx_clkout の周波数 (266.113281 MHz) は、GTS Direct PHY IP の tx_clkout、rx_clkout 周波数で、それぞれ Tx Datapath Options タブ、Rx DataPath Options タブに表示されます。下図は tx_clkout の周波数表示です。
2-9. クロックの接続
まずクロックとリセットを接続します。画面の中央下側の Current Filter のプルダウンメニューから Clock and Reset Interfaces を選択してください。これにより、クロックとリセットのみ表示されるようになります。
クロックとリセットを下図のように接続します。
2-10. 各モジュールの接続
続いて他の信号を接続します。 Current Filter を "All Interfaces" に設定してください。これによりすべての信号が表示されるようになります。
今回接続するブロック間の信号は、GTS Direct PHY と Reset Sequencer 間の4本のみです。
未接続のポートは、下図のように Export してください。 Export の欄をダブルクリックするとデフォルトの名称が表示されます。一部 Export していないインターフェースもありますが、今回は使用しないので問題ありません。 reset_release も忘れずに Export してください。
ここで、メッセージ・ウィンドウに、 warning で "System Information doesn't match requirements of IP" と表示されている場合は、Sync させる必要があります。
いくつか方法はありますが、今回は、File メニュー -> Refresh and Reload All Components を選択することとします。 "Save?" には "はい" を選択し、"completed successfully" が表示されたら "Close" をクリックしてください。
以下の ように warning が出ますが、今回は無視していただいて大丈夫です。
Platform Designer は開いたままで、Generate はまだ実行しない状態とします。
3. HDL 生成
3-1. 登録ファイルの確認
Platform Designer は開いたままで、Quartus® Prime Pro Edition の画面を表示します。
IP Variant File name を変更した場合、変更前のファイルがプロジェクトに登録されたままとなっている場合がありますので、これを削除します。残したままにするとエラーになります。
Project -> Add/Remove Files in Project... を開き、? マークのついたものを remove してください。すべてを削除したのちに、Apply をクリックしてください。その後 OK をクリックして閉じてください。
3-2. HDL 生成
Generate HDL を実行し、 Synthesis 用デザインおよび Simulation 用デザインを生成します。 HDL は今回は Verilog を選択します。シミュレーターは環境に応じて選択してください(以下では Questa を使用)。
エラー無く Generate が完了したことを確認し、Close をクリックします。
3-3. テストベンチ生成
Generate Testbench System を実行し、 テストベンチを生成します。 Create testbench Platform Designer system は、"Simple BFMs for clocks and resets" を選択します。
こちらもエラー無く Generate が完了したことを確認し、Close をクリックします。
3-4. 生成結果
3-2、3-3 の実行により、下図のようにフォルダーが生成されます。
おわりに
本記事は、以上となります。
続いて論理シミュレーション、実機動作確認について、ぜひ以下の記事から実施してみてください。
トランシーバーのパラメータの内容の説明は作成中ですので、少々お待ちください。
おすすめ記事/資料はこちら
添付ファイル
本記事で生成したファイルのサンプルです。