For Good FPGA Design

マイコンとFPGAの違いは?

本日はマイコンとFPGAの違いについてざっくりと説明していきます。

どちらも黒くて四角い半導体デバイスで、機械などを制御するために使われています。ですので、結局何が違うの?というかんじですが、実は全然違います。

目次

結論

  • マイコンは沢山の命令の系列(ソフトウェア)を順番に実行する機械である。
  • FPGAは沢山の論理ゲートを組み合わせることで処理を実現するハードウェアである。

マイコンとは

まず、マイコンはマイクロコントローラー(Microcontroller)の略です。中核となるのはCPUです。CPUは図1のように、メモリに格納された命令を順番に実行します。順番に書かれた命令の系列は、プログラムとかソフトウェアといいます。

マイコンは、沢山の命令の系列(ソフトウェア)を順番に実行することで、何らかの処理を実現しています。

図1 マイコンの中身

FPGAとは

次に、FPGAです。FPGAはField Programable Gate Arrayの略です。これは図2のような構造をしています。図中の破線で囲ったブロックを論理ブロックといいます。論理ブロック内のLUTFlip-Flop(フリップフロップ)については下記の記事で解説していますが、今は論理ゲートだと思ってください。

関連記事

FPGAでは、論理ブロックをどのような論理ゲートにするかをユーザーがプログラムできます。例えば、

$$y=a \oplus b$$

$$c=a \cdot b$$

※\(\cdot\)はANDゲート、\(\oplus\)はXORゲート

とプログラミングすれば、\(y\)が和、\(c\)がキャリーの1bitの加算器が出来上がります。

FPGAは論理ブロックが数千個から数百万個入っているため、上記のようなゲートを沢山組み合わせることで、何らかの処理を実現します。

図2 FPGAの中身

各論理ブロックはすべて同時に動作します。FPGAは”ハードウェア”だからです。これは図3に示す2つの豆電球と同じです。同図の回路は明らかにハードウェアですし、2つ同時に動くのは容易に想像できると思います。豆電球の回路を数式で表すと、電池がそれぞれ入力\(a, b\)、光を出力\(x, y\)とすれば、

$$x=a$$

$$y=b$$

となりますね。入力=出力というロジックです。

FPGAも、各論理ブロックに入力が入れば電気信号が一瞬で伝わって、それぞれ出力が出てくるハードウェアです。

図3 2つの豆電球回路

まとめ

以上をまとめると、

  • マイコンは沢山の命令の系列(ソフトウェア)を順番に実行する機械である。
  • FPGAは沢山の論理ゲートを組み合わせることで処理を実現するハードウェアである。
アバター画像
この記事を書いた人
ジーノ。大手電機メーカーで、基板設計の全般と、FPGAの設計に従事した経験を活かし、FPGAについて情報発信中。
RTL設計、シミュレーション、タイミング・クロージャ、FPGAまわりのハードウェア開発まで、幅広く取り扱っております。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA