クイズ

  • 問題1:FPGAのPは何の略?
  • 問題2:FFPGAのAはアルテラのAである。 ○か×か?

※答えはこのページの一番下にあります。

ウェブからダウンロード可能なFPGAの開発ツール

 後編ではFPGAの開発環境について理解を深めていただくために,アルテラが提供しているQuartus IIを例にとって,実際の作業手順を簡単に説明しよう。Quartus IIは,分かりやすいGUIを採用しているうえに,作業の多くが自動化されている。このため,FPGA設計に慣れていないエンジニアにも使いやすい開発環境の一つである。

 Quartus IIには,前編で述べたように,無償で提供される「Web Edition」と,FPGAの上位ファミリと高レベルな機能をサポートした「Subscription Edition」(年間約2,500米ドル)というふたつのバージョンがある。ここではWeb Editionを使ってみよう。

 Web Editionはアルテラのウェブからダウンロードできる。URLは https://www.altera.com/jp/download/dnl-index.jsp だ。2009年9月時点で「V9.0+サービスパック2」がリリースされている。サポートしているオペレーティングシステムはWindows XP(32ビット)またはWindows Vista(32ビット)のいずれかである。ダウンロードに際しては,最初にAltera.comにユーザー登録を行ってアカウントを作成するか,「Get One-Time Access」(ワンタイム・アクセス)として一度のみの登録を行う。他のダウンロードやサービスを利用するのであればアカウントを作成すると便利だろう。

図1.Quartus IIはアルテラの「ダウンロードセンター」というウェブページからダウンロードできる

図1.Quartus IIはアルテラの「ダウンロードセンター」というウェブページからダウンロードできる

 ダウンロード後にファイルをダブルクリックするとインストールウィザードが起動する。一般的なWindowsアプリケーションと同様にウィザードの指示に従ってインストールを進めていけばよい。なお,ダウンロードとインストールにはおよそ10GBのハードディスク容量が必要だ。

アイコンをワンクリックするだけでFPGAデザインが完了

 Quartus IIを使ったFPGAの開発は大きく3つのステップに分けられる(図2)。ここでは便宜的に「準備ステップ」,「実行ステップ」,「確認および動作ステップ」と表記してみよう。

図2.大きく3つのステップで構成されるQuartus IIを使ったFPGAの開発

図2.大きく3つのステップで構成されるQuartus IIを使ったFPGAの開発

(1) 準備ステップ

図3.準備ステップで使用するプロジェクト・ウィザード
図3.準備ステップで使用するプロジェクト・ウィザード

「準備ステップ」ではFPGAの開発に必要な各種の設定を行う。具体的には,プロジェクトの作成とデザイン名(トップレベルエンティティ名)の設定,使用するFPGAデバイスの指定,回路デザインの作成または設計済みデザインの読み込み,タイミング制約の指定などだ。

 これらのサブステップのほとんどは「プロジェクト・ウィザード」に従って入力を進めていくだけで済んでしまうので簡単だ。

 ここではチュートリアルとしてインストールされる「filtref」というデザインを使用してみよう。RTLでの設計が終了しているという前提で進めていく。詳しい操作内容は囲み記事を参照していただきたい。

《「準備ステップ」の手順の例》

Quartus IIを起動し,[File]メニュー→[New Project Wizard...]をクリックします。

New Project Wizardウィンドウが表示されますので,次の手順に従います。

[page 1 of 5](プロジェクトの作成)

1. "What is the working directory for this project?" 欄に " "C:\altera\90sp2\qdesigns\fir_filter" を指定します。

2. "What is the name of this project?" 欄に "filtref.bdf" を指定します(OSの設定によっては拡張子は表示されません)。

3. [Next>]をクリックします。

[page 2 of 5](デザイン関連ファイルの追加)

1. [Add All]をクリックします。

2. [Next>]をクリックします([Finish]をクリックしてもかまいません)。

[page 3 of 5](デバイスの指定)

1. [Device family]→[Family]が "Stratix II",[Target device]が "Auto device selected by the Fitter" になっていることを確認します(デフォルト)。

2. [Next>]をクリックします([Finish]をクリックしてもかまいません)。

[page 4 of 5](外部EDAツールの指定)

1. [Next>]をクリックします([Finish]をクリックしてもかまいません)。

[page 5 of 5](設定のサマリ)

1. 内容を確認して[Finish]をクリックします。

(2) 「実行ステップ」

「実行ステップ」はQuartus IIの中心的な機能で構成される。ASICの設計者にはおなじみの「論理合成(シンセシス)」や「配置配線」などの処理はこのステップに含まれる。なおアルテラでは実行ステップのことを「コンパイル」と呼んでいる。ソフトウェア開発でソースコードをオブジェクトに変換するコンパイル処理に似ているからだ。

 Quartus IIでは「実行ステップ」をアイコンのワンクリックで処理することができる。これを「フルコンパイル」と呼ぶ。フルコンパイル処理では,デザイン情報のチェックと論理合成を行う「アナリシス&シンセシス」,FPGAデバイスに論理と配線をマッピングする「フィッティング」(ASIC における「配置配線」),デバイスのプログラミングファイルを作成する「アセンブラ」,TimeQuest(タイムクエスト)というスタティック・タイミング解析ツールを使った「タイミング解析」が一括して処理される。

  サンプルとして指定した「filtref」というデザインはエラーなく作成されているため,フルコンパイルは問題なく終了するはずだ。

《「実行ステップ」の手順の例》

 次のいずれかを行います。

1. Quartus IIのツールバーにある▲(右向き)アイコンをクリックします。

2. [Processing]メニュー→[Start Compilation]をクリックします。

3. 画面左下のTaskウィンドウの最上位にある[Compile Design]をダブルクリックします。

図4.アイコンボタンをクリックするだけでフルコンパイル処理が完了

図4.アイコンボタンをクリックするだけでフルコンパイル処理が完了

(3) 「確認および動作ステップ」

 「確認および動作ステップ」は,実行ステップで出力されるレポートの確認,配置配線後の詳細なタイミングシミュレーション,そして実際のFPGAデバイスに回路情報をプログラミングするステップだ。

 配置配線後の詳細なタイミングシミュレーションは、主にデバイス外部とのインタフェースやデバイス内部で非同期回路がある場合に行うと考えればよいだろう。実際の設計現場では、RTL記述による設計の時点でデバイスの機能検証のためのシミュレーションを実施し終了させる。

 今回のデモではレポートの確認がメインになるだろう。画面中央に表示される "Compilation Report" ツリーを適宜クリックすると,関連する処理結果がレポートとして表示される。

図5.フルコンパイルが終わったらレポートツリーを開いてデザインを確認できる

図5.フルコンパイルが終わったらレポートツリーを開いてデザインを確認できる

《FPGAへのプログラミング》

 デバイスのプログラミングにはFPGAを搭載したボードとケーブルが必要です。評価ボードはアルテラやサードパーティから提供されています。USBケーブルは「USB-Blaster」の品名でアルテラから供給しています(価格は300米ドル)。また、アルテラの大部分の開発ボードとアルテラのパートナーから販売されている一部のボードでは、「USB-Blaster」同等の回路をボード上に搭載しているものがあります。この場合は一般のUSBケーブルでPCとボードを接続するだけでプログラミングが可能です。なお今回のデモではデバイスの自動選択を指定しましたが(「準備ステップ」の[page 3 of 5]),実際のFPGAにプログラミングする場合は,ボード上に実装されたデバイスを指定するとともに,説明では省略した詳細なピン設定を行う必要があります。

図.USB経由でFPGAにプログラミングできる「USB-Blaster」ケーブル

図.USB経由でFPGAにプログラミングできる「USB-Blaster」ケーブル

FPGA設計やツールに関するさまざまなリソースを提供

 以上,Quartus IIの大きな3ステップの流れを駆け足で説明した。比較的簡単にFPGAの開発を試してみることができることがお分かりいただけたのではないだろうか。

 今回はQuartus IIの操作をGUIベースで説明したが,ASICなどのEDAツールに慣れたエンジニアのニーズに応えるために,スクリプトベースでの処理にも対応している点も特筆しておきたい。そのほか,ASICやFPGAの設計経験を積んだ「パワーユーザー」にも満足いただけるような工夫も随所に盛り込んである。しかもWeb Editionであれば費用をかけずに開発環境を構築できる。実機ボードがあればすぐに実機テストができてしまう点もFPGAならではの魅力だろう。

 なお,本稿では細かい操作方法やパラメータの設定方法などは省略したが,アルテラのWebサイト内でも「Quartus II 開発ソフトウェアの基本デザイン・フロー」のページで基本デザイン・フローに沿って補足説明と資料の入手先を学ぶことができる。 (http://www.altera.co.jp/support/software/quartus2/design_flow/des-index.html

アルテラWebサイトではさらに多くのチュートリアルを提供している。たとえば,デモビデオの

「Quartus IIオンラインデモ:簡単!デザイン実装」(http://www.altera.co.jp/education/demonstrations/simple-design/demo.html),

「初めてのコンパイル」(http://www.altera.co.jp/education/demonstrations/my-first-compile/demo.html),

「TimeQuestタイミング・アナライザ」(http://www.altera.co.jp/education/demonstrations/timequest/timequest-demo.html

などを参照していただくことで,より深い理解が進むだろう。

そのほか,「アルテラ・テクニカル・トレーニング」のカリキュラムとしてQuarus IIのトレーニング・コースを随時提供している。
 (http://www.altera.co.jp/education/training/tra-index.html)

 FPGAの開発がどんなものかをご理解いただくうえでも,こういったリソースをぜひご活用いただければ幸いである。

《備考》

 オンラインビデオ「初めてのコンパイル」では,旧バージョンのQuartus II V8.0を使用しているため,「準備ステップ」に該当するプロジェクト・ウィザードでの操作が本記事の説明とは若干異なっています。

[page 1 of 5](プロジェクトの作成)

ワークディレクトリのパスが異なっています。

[page 2 of 5](デザイン関連ファイルの追加)

タイミング制約ファイル(filtref.sdc)を追加しています。

[page 3 of 5](デバイスの指定)

Cyclone IIIファミリからEP3C5E144C8を指定しています。

以上の違いがあることをご承知おきください。

  • 解答1:FPGAのPはProgrammableの頭文字のPです。その「プログラマブル」の名の通り、FPGAは、「後からでも回路の書き換えが可能」である点が大きな利点になっています。詳しくはアルテラの「FPGA入門」をご覧ください。
  • 解答2:1983 年に世界で初めて書き換え可能なロジック・デバイス (PLD : Programmable Logic Device) を開発して以来、アルテラはプログラマブル・ロジックにおけるイノベーションをリードし続けていますので、FPGA の A はアルテラの A だとお思いの方もいらっしゃるかもしれません。しかし、FPGA は、Field Programmable Gate Array の頭文字をとったものです。よって、A は 「Array」 の略になります。アルテラについて詳しくは「アルテラについて」をご覧ください。