
こんにちは。
マクニカで インテル® FPGA 製品の技術サポートをしている インテル・F・ハナコ です。
みなさんは、Quartus® Prime のコンパイル結果に満足しないとき、どうしていますか?
通常、オプションを追加したり、設定済みオプションの設定値を変更したりと改善を試みますよね。
果たして選択したそのオプションは、直面している問題改善に適したオプションでしょうか。
さらに、使用歴が浅いユーザーの場合はオプションのラインナップや設定画面所がわからないこともあります。
そんなときに便利な機能が Quartus Prime の アドバイザー機能 です!!
これは、デザインのコンパイル結果をベースに、設定済みのオプションやアサイン状態を自動で診断し、“こうしたいなら、このオプションをこの設定値にしたら良いよ~” とユーザーに最適なアドバイス (提案) をしてくれる補助機能です。
今回はこのアドバイザー機能をご紹介します。
アドバイザーの種類
現在、以下6つのアドバイザーが用意されています。
カテゴリ |
概要 |
Resource Optimization Advisor |
デザインのリソース使用数を減らすアドバイスをします。 |
Timing Optimization Advisor |
I/O タイミング、パフォーマンス(最大動作周波数)のクリティカル・パスを改善および向上させるアドバイスをします。 |
Power Optimization Advisor |
消費電力量を減らすアドバイスをします。 |
Incremental Compilation Advisor |
インクリメンタル・コンパイルを行うためフローやデザイン構成のアドバイスをします。 |
Compilation Time Advisor |
コンパイル時間を軽減するアドバイスをします。 |
Pin Advisor |
ピン・レイアウトを行う際のアドバイスをします。 |
表1. アドバイザーの種類
アドバイザーを起動する
Quartus Prime の Tool メニュー > Advisors から、希望する項目を選択してください。

アドバイザー機能では、オプションの概要説明や推奨される設定値の確認が行え、必要な設定画面も簡単に誘導される仕組みのため、Quartus Prime ヘビー・ユーザーでなくても、簡単にデザインを最適化することができます。
操作フロー
フローは以下の5ステップです。
コンパイル後にレポート結果を検証し、改善されていない場合にはアドバイザーを起動します。
各ステージにおいて該当する項目のオプション提案を試行し、再コンパイルを実行し、レポート結果を検証する、… と言う感じで繰り返します。

画面説明
アドバイザーの画面左には各種設定項目が表示され、画面右には左側で選択した項目の詳細(説明やオプション提案など)が表示されます。
ユーザーは、左枠に表示されたツリーから最適化させたい内容の項目を選択します。
Stage1、Stage2、… と複数ステージがある場合は、Stage 1 から最適化を実行し、コンパイル結果に満足しない場合は続いて Stage 2 を実行してコンパイル … と言うように順番に実施するのがゴールデン・ルールです。

左枠において各項目名の先頭に表示されるアイコンは、推奨されるオプション内容に設定されているかどうかを表しています。
アイコン |
概要 |
|
カテゴリ内に違反している項目があります |
|
カテゴリ内に違反している項目はありません |
|
推奨設定と一致していません |
|
一部推奨設定と一致していますが、それらの影響は最小限です |
|
推奨設定です |
|
推奨された変更が実行されたかどうか確かめることができません(インフォメーション) |
表2. アイコンの説明
左枠で項目を選択すると、右枠に該当する設定の詳細が表示されます。
項目 |
概要 |
Recommendation |
選択した項目の推奨設定。 |
Description |
設定項目の説明。 |
Summary |
推奨の設定に変更した際の影響に関する説明。 (+) メリット (-) デメリット (=) 影響しない |
Action |
オプションを推奨の設定に変更するための操作手順を説明。 Current Global Settings は現在の設定状況、(Recommended:)は推奨設定を表示。 推奨設定に変更する方法は以下の2通り。 ・ Correct the settings ボタンをクリックし、自動的に推奨設定へ変更する。 ・ ハイパーリンクされた項目をクリックし、該当オプションのダイアログ・ボックスをポップアップさせて、ユーザーが手動で変更する。 |
表3. アドバイザー画面 右側の概要
コンパイルについて
アドバイザーで変更した設定を適用させるには、その都度コンパイルを実施する必要があります。コンパイル実行の回数が増えれば、コンパイルに費やすトータル時間も増加します。
そのため必要に応じ、インクリメンタル・コンパイル や Rapid Recompile、Smart Compilation 機能と言ったコンパイル・メソッドを適用することで、効率化が図れます。
コンパイル・メソッド各種については、以下のコンテンツをご参考ください。
Quartus Prime にはコンパイル時間を短縮させる こんな方法があった
また、フル・コンパイル時に Assembler (プログラミング・ファイル生成のプロセス) を同時実行させない設定をしておくことも微量ですが有効です。
[FAQ] Quartus Prime のフル・コンパイルで、アセンブラをスキップさせることはできますか?

ハナコのつぶやき
アラートマークをすべて推奨アイコンにしようと 最初からあれもこれもと欲張って設定することは、必ずしも良い結果を導き出せるとは限りません。徐々に設定項目を増やす方が効率よくチューニングできますよ。
皆さんもコンパイル結果を改善したいときには、アドバイザー機能を是非活用してみてください!