○CPLDとFPGA
●PLD(プログラマブルロジックデバイス)とは
PLDはユーザーが設計した任意のロジック回路を1個のLSI上に実現できるデバイスである。

従来の回路 PLD
PLDには小規模なSPLD、大規模なCPLD(Complex Programmable Logic Device )とFPGA(Field Programmable Gate Array)などの種類があり、いずれも大規模な回路(数千〜数百万ゲート)を簡単に実現することが出来る素子である。CPLDとFPGAの簡単な内部構造を図1、2に示す。
図1、2に示す黒丸や矢印がプログラム可能な部分である。図からわかるように、CPLDよりFPGAのほうが設計の自由度が高い。
しかし、設計の自由度が高い分ユーザーの能力によって、同じ機能を果たす回路でも速度が変わる。CPLDはFPGAに比べて設計の自由度が低いので、誰が作っても速度はほとんど変わらない。
CPLD/FPGAはHDLでプログラムされます。HDL(Hardware Descrption Language)とはプログラミング言語の一種でハードウェア記述言語である。HDLはテキスト記述によりロジック回路の接続関係を表現することが出来る。HDLにはいくつかの種類がある。

図1 CPLD 図2 FPGA
表1 マイコンとPLDの比較
. | マイコン | PLD |
動作速度 |  |
I/O |  |
内蔵機能 |  |
記述言語 |  |
並列処理 | 苦手。時分割で疑似的に実行 | 得意。全回路が並列動作 |
乗算・除算 | 普通に実行できる。 | 苦手。専用モジュールで実現 |
多量のデータの記録 | 普通に実行できる。 | 苦手。専用モジュールで実現 |
高速な応答 |  |
異常時 |  |