FPGAとは・・・
自由自在に中身のデジタル回路を書き換えられる汎用ICのチップ・・・だと思う。
内部の回路が書き換えられるってどんなだ?
デジタル回路は、AND,OR,NOTとフリップフロップが基本だが、
それらの機能を合わせ持った最小単位のモノを
たくさんならべて、接続を自由に変化させることができる
構造にしている・・・のだそうな。
FPGAってのは規模が大きいものだが、
CPLDとは、それよりも、かなり小規模なタイプのもの。
基本原理が違うものらしい。 たぶん。
FPGA&CPLDを作っているベンダ
Xilinx の FPGA, CPLD
昔、Xilinx の CPLD は、XC9500とかCool Runner II とかがあった。
しかし、Xilinx では CPLD は、もはや作ってないので、
これらは過去のもの。(一方、FPGAの開発は続いている。)
FPGAやCPLDに書き込みを行うには JTAG という業界標準のケーブルが必要。
USB接続タイプの JTAG ケーブル、Platform Cable USB II というものがある。
JTAGケーブルで、PC と FPGA, CPLD を接続し回路データを書き込む。
JTAG仕様であればケーブル自体は自作することも可能。
だが、PCから書き込むためには、ISE や Vivado という開発ツールを使う必要がある。
ISE は古いツールで、Vivado は新しいツールである。
Vivado では過去の CPLD などが対応していない。
FPGAは、Spartan7とか、Artix, Kintex, Virtex などのファミリがある。
FPGAに回路データを書き込むことを、コンフィギュレーションと呼ぶ。
FPGAは構造上、電源を切ると回路データが消えてしまうRAMのような構造をしているので
毎回コンフィギュレーションが必要になる。
JTAGで書き込む以外にも、外部マイコン等からFPGAに書き込むインターフェースや、
ROMチップから読み出す方法もある。