はじめに
FPGA(Field Programmable Gate Array)を使用する際、デバイスが正しくコンフィグレーションされているかを確認したい場面は少なくありません。そんなときに役立つのが、Quartus Programmer に含まれている 「Configuration Debugger」 です。
このツールを使えば、JTAG 経由で FPGA の構成状態を直接確認することができ、開発や検証の現場で非常に有用です。
Configuration Debugger では、電圧や温度などのセンサー情報も取得することが可能ですが、この記事では、コンフィグレーション・モードやステータスピンの状態など、コンフィグレーションに関する情報の取得方法に絞ってご紹介します。
注記: Configuration Debugger は Quartus® Prime Pro Edition version 21.3 以降で使用可能となります。21.3 未満のバージョンや Standard Edition では使用できない点にご留意ください。
ポイント: この記事では Agilex™ 3 を例として説明していますが、他の Agilex™ ファミリーや Stratix® 10 など、Secure Device Manager(SDM)を採用したデバイスファミリーで共通の手順となっています。SDM 非搭載のデバイスファミリーについては取得できるコンフィグレーション情報に若干の差異がありますが、Configuration Debugger の操作方法としては参考にしていただけます。
1. コンフィグレーション情報の取得手順
Quartus Programmer から Configuration Debugger を起動してコンフィグレーション情報を表示するまでの流れを紹介します。
1-1. Quartus Programmer を起動
Windows の場合はスタートメニューから、Linux の場合は Quartus のパスが通ったターミナルで "quartus_pgmw" を実行することで Quartus Programmer が起動します。
【図 1】 Quartus Programmer の起動
現状のコンフィグレーション状況を確認するため、Quartus Programmer 起動後にコンフィグレーションを実行してください。
参考: FPGA のコンフィグレーション手順については下記コンテンツをご参照ください。
Agilex 3 でやってみた ~ FPGA のコンフィグレーション
1-2. Configuration Debugger を起動
Quartus Programmer の Tools メニュー -> Configuration Debugger を選択すると、Configuration Debugger が起動します。
【図 2】 Configuration Debugger の起動
1-3. コンフィグレーション情報の取得
Configuration Debugger 画面上で以下の操作を実行します。
[Hardware Setup] ボタンをクリックして、デバッグに使用するハードウェア設定を選択します。
ハードウェア設定に複数のデバイスがある場合は、[Load Device] ボタンをクリックし、ドロップダウン・リストからデバイスを選択します。
[Device Info] タブをクリックして、デバイス情報を表示します。
[Read Device Info] ボタンをクリックして、選択したデバイスからデバイス情報を取得します。
【図 3】 コンフィグレーション情報の取得
2. コンフィグレーション状況の確認
ここでは、「1-3. コンフィグレーション情報の取得」 の手順で取得した情報の中でも特にデバッグに役立つ情報について説明します。
【図 4】 コンフィグレーション状況確認
【表 1】 Configuration Debugger 画面上の表示項目
No. |
カテゴリー | 項目 | 内容 |
|---|---|---|---|
1 |
Configuratin Status | State | デバイスのコンフィグレーション状態 ・ BOOTROM: Boot ROM 実行中 ・ CONFIG: コンフィグレーション中 ・ DEVICE CLEAN: デバイスクリーン中 ・ ERROR: コンフィグレーション・エラー発生 ・ IDLE: アイドル状態 ・ USER MODE: ユーザーロジック実行中 |
2 |
Pin Signals | MSEL | 電源 ON 時にデバイスによってラッチされる MSEL 値 ・ b000 - Avalon-ST (x32) ・ b101 - Avalon-ST (x16) ・ b110 - Avalon-ST (x8) ・ b001 - AS (Fast mode for CvP) ・ b011 - AS (Normal mode) ・ b111 - JTAG |
3 |
nSTATUS | ※ 下記の FPGA コンフィグレーション・フローを参照 | |
4 |
nCONFIG | ※ 下記の FPGA コンフィグレーション・フローを参照 | |
5 |
Soft Function Status | CONF_DONE | 緑色(HIGH)はすべてのコンフィグレーション・データが受信されたことを示す |
6 |
INIT_DONE | 緑色(HIGH)はコンフィグレーション完了後にデバイスがユーザーモードに入ったことを示す | |
7 |
Configuration Error | Error Message | エラーが発生したときに対応するエラーメッセージ |
8 |
Debug Suggestion | エラーを解決するために取るべき対応策 | |
9 |
Major Error Code | コンフィグレーション関連エラーに対する主なエラーコード | |
10 |
Major Error Type | Major Error Code に対応するエラーの種類 | |
11 |
Minor Error Code | コンフィグレーション関連エラーに対する副次的なエラーコード | |
12 |
Minor Error Type | Minor Error Code に対応するエラーの種類 | |
13 |
Error Location | ビットストリーム内でエラーが発生したおおよその位置 | |
14 |
Error Detail | エラーが発生した場所に関する詳細情報 |
参考: FPGA のコンフィグレーション・フローは以下の通りです。
Device Configuration User Guide Agilex™ 3 FPGAs and SoCs - 2.2. Configuration Flow Diagram
【図 5】 FPGA コンフィグレーション・フロー
(出典 : Device Configuration User Guide Agilex™ 3 FPGAs and SoCs)
おわりに
Configuration Debugger を使えば FPGA の構成状態を手軽に確認できるので、トラブルの早期発見や設計の見直しにも役立ちます。特に MSEL の設定や State の状態をチェックするだけでも、コンフィグレーションの成否を判断する大きなヒントになります。
この記事が Altera® FPGA を使った開発のご支援になれば幸いです。
「Agilex™ 3 でやってみた」シリーズ一覧はこちら