集積効率のよい結果を引き出すには?FPGA開発テクニック、チューニングの心得(2)(1/2 ページ)

Advisor機能「Resource Optimization Advisor」で、ロジック・エレメントをどこまで減らすことができるのか? 実際に検証する。

» 2007年09月25日 00時00分 公開
[島田順二(アルティマ),@IT MONOist]

 前回は、アルテラの開発ツール「Quartus® II」に含まれるAdvisor機能「Compilation Time Advisor」を使い“コンパイル時間を早める”テクニックを紹介しました。

 今回は「集積効率のよい結果を引き出すには?」というテーマで、Advisor機能「Resource Optimization Advisor」を使ったチューニング方法を解説します。

集積効率のよい結果とは?

 そもそも“集積効率のよい結果”とは、どのような状態を指すのでしょうか?

 今回は、アルテラのFPGA Cyclone® IIIを題材に解説していきます。このCyclone IIIには、ロジック・アレイ、M9Kメモリ・ブロック、18×18bits・マルチプライヤなどさまざまな機能があります(図1)

図1 Cyclone IIIのフロア・プラン

 筆者の経験からいうと、デザイン上で意図した回路がこれらの機能を確実に使用し、FPGAの性能を最大限に引き出すためには、“ロジック・エレメントの使用率を80%程度に抑えること”が重要になります。

 それでは、FPGAデバイス(ここでは、Cyclone III)の機能がどのように使用されているのか、実際にコンパイルしてその結果を確認してみましょう(注)

:コンパイル方法については前回を参考にしてください。

編注:本連載では、アルテラの開発ツールQuartus IIを使用したチューニングのポイントについて解説します。

コンパイル結果の確認

 コンパイル結果は、Quartus IIのメニュー[Processing]−[Compilation Report]で確認できます(図2)

図2 コンパイル結果を[Compilation Report]メニューで確認

 画面上に表示された[Compilation Report]には、以下のような情報が記載されています(図3)

  1. 論理合成後のデバイス内部リソースの使用状況
  2. 配置配線後のデバイス内部リソースの使用状況
  3. プログラミングファイルの生成状況
  4. タイミング解析情報

図3 [Compilation Report]の概要

 今回は、この中の「配置配線後のデバイス内部リソースの使用状況」を中心に解説していきます。

 まず、配置配線後の使用状況を確認するため“Fitter”を展開(+マークをクリック)してください(図4)

図4 Fitterの項目一覧

 以降で、それぞれの項目について確認します。

1.配置配線結果のサマリ

 このセクションは配置配線のサマリなので、結果全体を理解するためにも必ず目を通してください。

 図4“Summary”をクリックすると、図5の画面が表示されます。

図5 “Summary”の内容

 図5の主な項目は以下のとおりです。

a. Top-level Entity Name:コンパイルしているデザインの名前
b. Device:コンパイルしているデバイスの型番

 まずは、a、bの内容について間違いがないかを確認してください。

c. Total logic elements:ロジック・エレメントの使用数と使用率。「/(スラッシュ)」の前が今回のデザインで使用したロジック・エレメント、後ろがデバイスの持っているロジック・エレメントの数

d. Total memory bits:メモリの使用数と使用率。bit数で表示

e. Embedded Multiplier 9-bits elements:エンベデッド・マルチプライヤの数。9×9bitsに換算した個数を表示

 このSummaryのセクションでは、コンパイル結果の概要を把握しましょう。その中でも特に“ロジック・エレメントの使用率”を確認するとよいでしょう。図5を見ると、全体的にロジック・エレメントの使用率が高いデザインであるといえます。

2.入出力ピンの使用状況

 このセクションでは、デザインで使用しているピンの使用状況を確認できます。

- “Input Pins/Output Pins”:すべての入力ピン/出力ピンの「ピン配置番号」「I/O BANKの番号」「ファン・アウトの数」「I/O Registerの使用有無」「I/O規格の内容」などの情報を表示

- “I/O BANK Usage”:すべてのBANKで使用しているピン数と供給電圧を表示

- “All Package Pins”:入出力ピンだけでなく、電源ピンやグラウンド・ピン、コンフィグレーション・ピンや各種専用ピンまで、すべてを一覧で表記。基板の配線図を作成する場合は、この一覧を参考にするとよい(図6)

図6 “All Package Pins”の内容 (画像をクリックすると拡大します)

3.デザイン・ブロックごとのリソース使用状況

 このセクションでは、どのデザイン・ブロックがどのようにデバイス内リソースを使用しているかを確認できます(図7)

- “Resource Utilization by Entity”:ロジック・エレメントの個数以外にも、組み合わせ論理だけ(LUT-only LCs)の使用なのか、レジスタだけ(Register-only LCs)の使用なのかも個数で表示され確認できる

図7 “Resource Utilization by Entity”の内容 (画像をクリックすると拡大します)

4.コントロール信号・グローバル信号の使用状況

 このセクションでは、コントロール信号・グローバル信号の使用状況を確認できます。

- “Control Signals”:デザイン上で宣言しているコントロール用信号の使用状況を確認できる。クロックやクロック・イネーブル、クリア信号が意図したとおりになっているかの確認、ファン・アウト数の確認も可能(図8)

- “Global & Other Fast Signals”:デバイスが持っているグローバル配線の使用状況を確認できる

- “Non-Global High Fan-Out Signals”:グローバル配線を使用していない配線をファン・アウト数が多い順に一覧表示。グローバル配線を使用していない場合、到達遅延が一定ではないため、動作周波数が速いと動作にばらつきが出てしまう可能性がある。ファン・アウトの多い信号には注意が必要

図8 “Control Signals”の内容 (画像をクリックすると拡大します)

5.メモリ・ブロック/DSPブロックの使用状況

 このセクションでは、メモリ・ブロック/DSPブロックの使用状況を確認できます。

- “RAM Summary”:デバイスに内蔵しているメモリ・ブロックの使用状況を確認できる。現在のFPGAではROMはもちろん、シングル・クロックのRAMやデュアル・クロックのRAMも構成可能

- “DSP Block Usage Summary”:マルチプライヤ・ブロックの使用状況を確認できる。また、どのようなマルチプライヤを使用しているのかを確認できるので、デザインの記述どおりに構成されているかどうかを確認する必要がある(図9)

- “DSP Block Details”:デザインで使用しているマルチプライヤの詳細を確認できる

図9 “DSP Block Usage Summary”の内容

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.