はじめまして、化学科出身のエンジニア、 しわしわ です。
今年度の新人ブログは 「しわしわ」、「とぷぅ」、「もつ」、「スコ」 の四人で運営し、「FPGA」、「SoC」、「電源」 関係の記事を中心に書いていこうと思っております。
これから一年よろしくお願いいたします!

さっそくですが先日、アルテラ社が 「Stratix® 10 FPGA & SoC」 を発表いたしました。
最高レベルのシステム統合・最大集積度・業界最高速と謳われている製品です。

しかし、化学科出身の私は思いました。
そもそも 「FPGA や SoC って何?」

今回は、初心者の方にもイメージがしやすいような
基本的な FPGA のお話 です。
※ SoC については FPGA の利点/統合化 で説明

 1. FPGA とは
 2. FPGA の利点
 3. まとめ
 4. 用語の説明

1. FPGA とは

FPGA とは Field Programmable Gate Array の略で、
直訳すると、「現場で書き換え可能な論理回路の多数配列」 となります。
なぜ FPGA が開発されたかを説明するために最初に簡単にデジタル回路の歴史についてお話しします。

デジタル回路というのは、AND、OR、NOT という三種類の論理素子を組み合わせて形成されます。
デジタル回路が誕生した当時は AND、OR、NOT だけを組み合わせて構成されてきました。

図 1. AND、OR、NOT を用いたデジタル回路図

時代が進むにつれ、組み合わせる論理素子の数が数百、数千と膨大になり回路が巨大化していきました。

そこで登場したのが LSI (Large Scale Integration:大規模集積回路)というものです。
AND、OR、NOT を組み合わせてできる加算器などの演算回路、メモリなどの記憶回路が搭載されたデジタル回路です。

図 2. 演算回路、記憶回路を搭載した LSI

これにより、搭載できる論理素子の数が数千~数十万と劇的に増加しました。
しかし、設計上で問題が発生した場合、論理素子を再配線・再設計しなければいけないという問題が発生しました。

そこで開発されたのが FPGA です。
ブログの冒頭で FPGA の直訳は 「現場で書き換え可能な論理回路の多数配列」 と説明しましたが、
これをより、分かりやすく言い換えると
「設計者の手元で、何度でも自由に書き換え可能な論理回路」 となります。
 ※ 自由に書き換え可能な理由は過去記事 「FPGA って何?」 参照

FPGA は主に 「ロジックエレメント(LE)」、「メモリ・ブロック」、「乗算器」、「PLL」、「I/O エレメント」 から構成されており、それぞれの役割は下記 【4. 用語の説明】 に載せております。

図 3. FPGA の基本構成要素

また、デザイン入力・設計したソースコードを Quartus® II※1 という設計ツールを用いてコンパイル※2 し、FPGA にコンフィグレーション※3 することにより、組み合わせ回路や演算回路などの論理回路をユーザーが自由に作成・変更することが可能です。
これを用いることで数千~数十万の論理素子が搭載されたデジタル回路を簡単に扱うことが可能になりました。

図 4. Quartus® II を用いた FPGA の論理回路設計

※1. Quartus® II についての説明は 「Quartus® 開発ソフトウェア」 や過去記事 「Quartus® インストール」 参照
※ 2. コンパイル: ハードウェア言語によって設計されたソースコードを、 FPGA で動作できる回路に変換すること
※ 3. コンフィグレーション: FPGA に回路データを書き込むこと

2. FPGA の利点

■ 市場投入までの時間
・試作機で機能を検証しながら回路を修正でき、設計と検証を効率良くスムーズに進められるため、開発期間の短縮ができ、迅速に製品を市場に投入可能

■ 柔軟性
・何度でも自由に論理回路を書き換え可能なため、製品開発の最終段階においてもデザイン変更が可能である。
・電源起動時にコンフィグレーションを行うことで設計者の望む環境設定に簡単に変更することが可能
・再プログラミング可能であるため、同一のデバイスで機能のアップグレードが可能

■ 統合化
・電子回路の微細化及び高集積化に伴い、少ないデバイスでより多くの機能を搭載することができるようになり、システムの動作に必要な機能のすべてを単一のチップに搭載することが可能となってきている

※ ブログ冒頭で出てきた 「Stratix® 10 FPGA & SoC」 の Soc は System-on-a-Chip の略であり、システムの動作に必要な機能をすべて搭載したチップのことである。より詳しい SoC の説明は 「アルテラ SoC」、「インテルの SoC FPGA」 参照

■ 開発・製造における費用の削減
・設計ツールと FPGA が搭載された基板があれば設計が可能であり、開発費が安価

3. まとめ

  • FPGA は高い柔軟性と高集積化をもった高性能なデバイスであり、低コストで迅速に製品を市場に投入することが可能である。

4. 用語の説明

● 「ロジックエレメント(LE)」
   アルテラデバイスの論路素子の最小単位で FPGA の容量を示す 
   ※ 過去記事 「FPGA って何?」 参照

● 「乗算器」
   乗算を行うための回路。処理の高速化、回路の簡略化に貢献する FPGA の 「電卓」 のような部位

● 「メモリ・ブロック」
   データの保存をする領域。処理の高速化、回路の簡略化に貢献 
   ※ 過去記事 「FPGA 内蔵メモリ・ブロック」 参照

● 「PLL (フェーズ・ロック・ループ: phase lock loop)」
   回路を動かすのに必要なクロック信号を FPGA 全体に供給する回路。
   入力されたクロック周波数を整数倍もしくは整数で割った値に変え、出力することが可能
   ※ 過去記事 「PLL の分周 /逓倍(ていばい)」、 「バッファについて」 参照

● 「I/O エレメント (Input/Output エレメント)」 
   FPGA 内部と外部回路の入出力信号を受け渡す領域
   ※ 過去記事 「FPGA の I/O の機能」 参照