フレキシビリティとスケーラビリティで「攻めの設計」を

ソフトウエアをプログラミングする感覚で回路を自由に構成することができるFPGA(Field Programmable Gate Array)は,固定化され変更できないというハードウエアのイメージを完全に覆してしまった。高いフレキシビリティを備えるFPGAは,通信機能や画像処理機能といった複雑なロジックを必要とするデジタル機器に,いまやなくてはならない存在になりつつある。連載の第3回目となる今回は,こうしたFPGAがもたらすメリットを二つの着眼点から説明する。前半ではシステムを設計(または製品を開発)するうえでのメリット。後半では,コストを削減するうえでのメリットについて述べる。

 FPGAの特徴を一言で表現すると「フレキシビリティ」であり,回路を自由に書き換えることができることだ。フレキシビリティはさまざまなメリットを機器メーカーにもたらす。まず,一般にうたわれているFPGAのメリットを列挙してみよう。

  • 実機検証が容易になり設計やデバッグ時間を短縮できるため,製品の開発期間を短くできる。
  • 開発の最終段階はもとより,製品出荷後でさえも回路(製品仕様)を変更できる
  • 必要に応じて回路を変更できるため,最新プロトコルやアルゴリズムに素早く対応できる
  • 設計資産の再利用の容易性(高いポータビリティ)や,開発ツールの統合化および設計自動化が進んでおり、開発工数を削減できる
  • (上記の結果により)開発のトータルコストを削減できる。
  •  これらの利点により,製品の付加価値向上や,市場における商品の競争力強化に寄与することが,容易に分かるのではないだろうか。だが,より具体的にFPGAのメリットに理解するために,まず「設計」というポイントに絞り事例をまじえて説明する。

    「攻めの設計」への転換を可能にするFPGA

     さて,デジタル家電やネットワーク機器,あるいは産業機器や医療機器の設計を担当している現場は,厳しい競争にさらされていることはご承知のとおりだ。こうした現場が直面している課題をざっと挙げてみると次のようになるだろう。

    • 多様なユーザーニーズに対応するために,幅広い製品ラインアップを揃えたり,顧客ごとにカスタマイズしたりする必要がある。このため,いずれの場合においても,複数の製品を同時並行で開発しなければならない。
    • 通信プロトコル,画像圧縮,コンテンツ保護などにおいて続々と新しい技術が登場している。標準規格の更新もしばしば発生する。すでに出荷した製品も含めて,こうした動きに合わせて,設計を変更しなければならない。
    • キャリア(通信事業者)やサービスプロバイダの新たなサービスに応じて,すでに出荷した製品も含めて,機能強化を逐次図らなければならない。
    • 競合他社に機能や性能で先行されそうになったときは,速やかに追従・競合する必要がある。
    • グローバルな製品展開をしている場合は,仕向け地にごとに最適な製品を開発して展開しなければならない。
    • 収益性の向上を目的として,製品の原価(直材費)だけではなく,製品ライフサイクルの視点でコストの抑制を図らなければならない。

     このような課題に対して機器メーカーは,社内体制の見直しや過去の設計データの活用など,さまざまな工夫を重ねて開発の効率化を図っているのが実際のところだろう。しかし,市場の動向や新たな技術の登場に振り回されながら個々の製品を受け身的に開発する「守り」の姿勢では,いずれ限界が訪れる。従来の製品開発の進め方やシステム・アーキテクチャを抜本的に変えていく必要があるのではないだろうか。では,「守りの設計」から「攻めの設計」に転換するには,どうすれば良いのだろうか。その答えのひとつが,ハードウエアに「フレキシブリティ」を与えることだ。回路設計の自由度が高ければ,効率よく製品展開を進めて製品ラインアップの拡充を図れる。顧客の要求に応じたカスタマイズにも対応しやすくなる。製品出荷の直前に規格が変更されたり,新たな機能を追加する必要に迫られたりしても,速やかに対応することが可能だ。

     つまりフレキシビリティをもたらすFPGAを採用することで,現在の機器開発が直面する課題の多くが解決し,「守りの設計」を「攻めの設計」へと転じることができるわけだ。

    並行開発を加速するスケーラブルなアーキテクチャ

     設計上の大きな利点をもたらす,もう一つのFPGAの大きな特徴は「スケーラビリティ」だ。具体的な例を,画像処理機能とディスプレイを備えた産業用機器あるいは医療機器を想定して説明してみよう。

     このような機器は納入先に応じて細かいカスタマイズを施すことが多い。例えば,顧客ごとにディスプレイのサイズやユーザー・インタフェースなどの仕様が異なる。機能についても同様だ。その結果,こうした製品では,出荷数量はそれほど多くはないものの,仕様のバリエーションがどうしても多くなる。

     こうした製品の主要部をASICで実現すると,どうなるだろう。個別にASICを開発したならば,それぞれの生産数量が小さいのでASICの価格がかなり高価になる。現実的な選択とは言えない。あらゆる機能を一つのASICに集約して,すべての機種で共通利用する方法もある。一見効率的に思えるが,ローエンド製品にもフルスペックのASICを搭載することになるので,部品コストの点では,どうしても無駄が生じる。しかも,回路を固定されているASICでは,急な仕様変更や,出荷後に顧客の要求に応じて回路を変更するといったことに対応するのは不可能だという問題は解決できない。

     FPGAを利用すれば,図1のように,ディスプレイ制御,画像処理エンジン,メモリインタフェースなどの論理ブロックごとにプログラマブルできるため,機種ごとに回路情報をコンフィギュレーションしてやることで,製品企画に合わせて設計を最適化できる。

     特に最近のFPGAは,同じピン数のパッケージで様々な回路規模の品種が用意されている。このため,基板の設計は全機種共通にしたまま,それぞれに品種に合わせて最適なLSIを搭載することが可能だ。つまり,高いスケーラビリティを備えたハードウエア・プラットフォームを利用して,極めて効率的に製品展開を進めることができるわけだ。

     回路規模に応じてFPGAの品種を選択すればコストの最適化も図れるはずだ(図2)。具体的なFPGA製品としてアルテラ社のCyclone IIIシリーズを例に挙げてみよう。たとえばJPEG処理のみを必要とするローエンド製品にはLE(logic element)数が4万の「EP3C40」を,さらに複雑な回路を使うH.264処理を必要とするミドルレンジ製品には同5万5000の「EP3C55」を,3チャネルのH.264処理を必要とするようなハイエンド製品には同8万の「EP3C80」を用いればよい。

     このような例は、他の産業機器アプリケーションにも、また通信機器、医療機器、測定機器、デジタル家電など他の分野においても応用できるであろう。

    図1.デジタルテレビのコントローラにFPGAを適用した例

    図1.デジタルテレビのコントローラにFPGAを適用した例

    図2.最適な品種を採用することでスケーラブルな製品展開が可能

    図2.最適な品種を採用することでスケーラブルな製品展開が可能

    出荷後の不具合や新たなサービスにも柔軟に対応が可能

     実は,これらのメリットよりも設計者にとって有り難いのは,製品出荷後でも回路の変更が可能なことではないだろうか。フィーチャー・リッチとなり,しかも複数の要素が複雑に絡み合う最近の機器は,メーカーの想定を超えて使われるケースが少なからずある。さまざまなユースケースを想定してテストを繰り返していても,ユーザーが目論見どおりの操作をしてくれずに,思わぬ不具合が製品出荷後に発見される可能性が捨てきれない。このため設計を完了したものの,しばらくの間,よく眠れない日々を過ごしている設計者は少なくないだろう。

     このような「万が一の不具合」に対応するにもFPGAは有効だ。多くのデジタル機器が通信回線に接続されているため,アップデート機能を搭載することで回路のコンフィギュレーション情報を書き換えて,問題の対策を施すことができる。中には,不良の発生を想定して,FPGAを利用した対策用の予備回路を搭載する製品も実際にあるようだ。

     これらの例は「守りの設計」と言えるが、「守り」が必ずしもマイナスなイメージになるということではないだろう。エンジニアたちの時間をどのように効果的に使うかは「攻め」に転じるために重要なことになるだろう。さらに、こうした特徴は既存ユーザーに対するアフターケアの向上に役立つと考えることもできる。通信やデジタル放送,あるいはコンテンツ保護などの分野では,新しい規格やサービスが頻繁に登場する。FPGAを使用したデジタル機器であれば,回路のコンフィギュレーション情報をアップデートすることで,工場から出荷した後でも新たなサービスに対応するといったことが実現できる可能性がある。こうして製品が陳腐化するのを防止すれば,消費者は喜ぶだろう。メーカーの企業イメージ向上にも結びつくのではないだろうか。

     以上,FPGAの設計上のメリットを述べてきた。後半ではコストの立場から見たFPGAのメリットについても言及しておこう。