• 公開日:2019年11月13日
  • | 更新日:2024年03月14日
FPGA マイコン

これで分かる!!プロセッサとFPGAとASICの違い

現在、製品の開発が多様化しており、基板の中心にあるのはマイコンやプロセッサだけでなく、FPGAやASICなど用途によって様々です。

今回は、プロセッサ、FPGA、ASICなどでいずれかの開発に携わったことがあるけど、他との違いが分からない、使い分け方が分からない・・・という方に向けてプロセッサとFPGAとASICのそれぞれの違いについて簡単に説明したいと思います。

プロセッサとは?

プロセッサの構成は大きくCPUとメモリとペリフェラルから構成されます。

CPUは、メモリから命令を読み出し、データの演算や、移動、コピーを行います。
ペリフェラルではGPIOやADC、SPI、USBなど、あらかじめ、ハードウェア(IP)が用意されています。それらにはレジスタというメモリ領域が用意されており、この値を変更し、内部回路を切り替えて、CPUによって制御されます。

CPUは命令を1つずつしか処理を行わないため、CPUが動作する元となるクロック信号を高速化させたり、CPUを複数コアにすることで、性能の向上を図ります。

プロセッサ内部構造図1.プロセッサ構造概略図

プロセッサの動作はすべてユーザーが作成したプログラムによって動作するため、プログラムの作りこみ内容、そして搭載されているペリフェラルによって様々な処理を行うことができます。

FPGAとは?

FPGAは、Field Programmable Gate Array の略で直訳すると、「現場で書き換え可能な論理回路の多数配列」となるのですが、プロセッサがソフトウェアで動作させることに対し、ハードウェアで動作します。

FPGAは無数の論理回路の多数配列で構成されており、ユーザーはハードウェア言語というものを使って論理回路を設計します。

FPGA構造概略図

図2.FPGA構造概略図

FPGA内にも書き換え可能なメモリが含まれているため、回路を自由に書き換えながら動作させることができます。ハードウェア自体を変更できるため、非常に柔軟性があるといえます。CPUについても論理回路によって構成することができるため、ソフトウェア制御と混合することも可能です。

ASICとは?

ASICは、ユーザーに合わせてカスタマイズされた集積回路のICを指します。

FPGAと同様ハードウェア言語を用いて開発されますが、プログラマブルではないため変更が効きません。また、多くの開発費と開発期間を要します。

ASIC構造概略図

図3.ASIC構造概略図

しかし上記をクリアすればメリットは多く、ユーザーに合わせて必要最低限の回路で構成するため、非常に高い性能が得られたり、部品コストを抑えることができます。

使用する様々な回路機能を集積するため、実装面積も抑えることができます。

それぞれの特徴まとめ

それでは、それぞれの特徴をもとに一般的な違いを下記の表にまとめてみました。

開発期間 開発費 部品コスト 性能 柔軟性 部品サイズ
プロセッサ
FPGA
ASIC

表1.特徴一覧表

開発期間・開発費

開発期間については、ASICはカスタムで集積回路の設計が必要になるため、多くの開発期間と開発費を要します。
プロセッサやFPGAは柔軟にプログラムを変更することで、知識があれば比較的スムーズに開発を行うことができます。

部品コスト

ASICはユーザーが必要とする最低限の回路で構成するため、部品コストを抑えることができます。それに対しFPGAは柔軟性が高い分、部品コストは高い傾向があります。

性能

性能としてはハードウェアで動作するFPGAやASICは命令によって逐次動作するプロセッサに比べる高い傾向にあります。
中でもASICはユーザー向けにカスタマイズをして遅延を最小限に抑えることができるため、最高レベルの性能を引き出すことができます。

柔軟性

ハードウェア言語で何度でもハードウェアを変更することができ、CPUまで構成することができるFPGAは非常に柔軟性が高いといえると思います。それに比べてASICは一度作ってしまうと変更することが難しいデバイスとなります。

部品サイズ

FPGAは柔軟性が高く、ハードウェアの変更ができる分、処理が多くなってくると論理回路規模も大きくなり、サイズも大きくなる傾向にあります。(周辺回路を取り込むことで基板全体のサイズを小さくすることはできます)

マルチプレーヤーなデバイスも存在!?

それぞれのデバイスによってメリット、デメリットが見えてきたことにより、どのような場面で活躍するのかも見えてくると思います。
ただし、それぞれのデバイスでの苦手なところや弱点を補うために、最近では様々な工夫が凝らされています。

FPGA

FPGAはデジタル回路を構成して開発をするため、FPGAの基本構造だけではアナログ信号を使用するA/DコンバータやD/Aコンバータ等は構成することができませんし、ARMなどの汎用CPUで動作する商用OS等も載せることができません。
そこで最近はARMコアやA/Dコンバータなども内蔵したSOCタイプも出てきています。

プロセッサ

汎用的に使用できるペリフェラルが搭載されており、様々な分野で使用できますが、独自のシリアル通信やネットワークなどは対応できないことが多く、その場合はたいてい、専用ASICやFPGAを使用します。しかしながら、最近のプロセッサでは小型のFPGAのようなプログラマブルロジックや、ソフトウェアで通信等の細かいハードウェアの制御ができるコアを内蔵したプロセッサも出てきています。

まとめ

いかがでしたでしょうか?
それぞれのデバイスの強みを生かし、貴社にとって最適なアプリケーションを開発していただけますと幸いです。

Texas Instruments社の製品をお探しの方は、メーカーページもぜひご覧ください。

Texas Instruments社
メーカーページはこちら