- 発行日 2024年3月25日
- 最終変更日 2025年3月10日
- 1 分
CPLDとは?機能やFPGAとの違いを分かりやすく解説!
CPLDとはプログラムの書き換えが可能なデジタルICです。ユーザーが設計した回路パターンをプログラミングによって実装できます。今回の記事ではCPLDの概要と特徴、FPGAとの違いを解説し、実際にCPLDの開発方法について説明します。

CPLDとは?
この章ではCPLDについて解説します。
CPLDはPLDの一種です。まずはPLD(Programable Logic Device)について解説します。
PLDとはプログラマブル・ロジック・デバイスの略で、ユーザーが論理回路をプログラミングによって実装できるデバイスのことです。
一般的に、デジタル回路は基板上に回路パターンを形成して実装しますが、それだと一度作ってしまった回路を修正することはできません。
一方でPLDは回路パターンをプログラミングによって実装するため、修正が容易でコストパフォーマンスにも優れているデバイスです。
ただし、PLDは回路を直接基板に焼き付ける半導体デバイスと比べると高価であるため、試作品をPLDで作成し、大量生産が必要な際には、直接回路を焼き付けるデバイスを採用するといった使い方をされます。
CPLDはPLDの中でも複雑な構造を持つ
CPLD(Complex Programable Logic Device)もPLDと同様にユーザーによって論理回路をプログラム可能なデバイスのことです。
前述の通り、CPLDはPLDの一種ですが、PLDは簡易的な論理回路、CPLDはより複雑な回路を実装できるものとして認識されています。
CPLDの特徴
この章ではCPLDの特徴を3つ解説します。
プログラム可能な論理回路デバイス
CPLDを用いる最も大きなメリットはプログラム可能な論理回路デバイスであるということです。
回路を基板に焼き付けてしまうと修正が容易でなく、仕様変更する場合にはまた一から制作する必要があります。
設計を頻繁に変更する必要がある論理回路や、試作として複数の条件振りをして振る舞いを確かめたい場合などに便利なデバイスとなっています。
プログラムは内部のメモリで保持されているため、都度転送する必要がなく、再利用性にも富んでいます。
ユーザーの手元で設計と実装が可能
プログラミングによって論理回路を実装できるため、デバイスを作るための大規模な製造設備は必要ありません。
通常はハードウェア記述言語(HDL)と呼ばれるプログラミング言語を用いて回路パターンをデザインします。コンピュータ上で任意の回路を設計し、CPLDが認識できる形式に変換されます。
変換後のデータをCPLDに転送することで複雑な論理回路でも簡単に実装することが可能です。
比較的小型で手軽なデバイス
CPLDは実際にはとても小型なデバイスです。高い集積度を誇っているため、小型でも論理ブロックやメモリ、入出力回路を保持しています。
小型であることは開発を容易にするだけでなく、組み込みシステムなどの物理的な制約が多いシーンでも活躍できます。
ただし、CPLDの具体的なサイズに関しては製品に依るため、ニーズに合ったものを選択することが重要です。
FPGAとの違い
CPLDと似た機能を持つ論理デバイスとしてFPGAがあります。FPGAもPLDの一種ですが、CPLDとは仕様に違いがありますので解説します。
回路の複雑さ
CPLDに実装できる論理ゲートは数千ほどであるのに対して、FPGAは数万ゲート以上を実装できます。
回路規模が複雑になり、大量の論理ゲートを組み合わせることが必要な場合にはFPGAを利用することも視野に入ります。
プログラミング方式
一般的に、FPGAは揮発性メモリ(電源が切れると内容も失われてしまうメモリ)をプログラムの保存に利用するのに対して、CPLDは不揮発性メモリ(電源が切れても内容が保持されるメモリ)を利用して実装します。
FPGAは電源が切れるたびに内容が失われてしまうので、外部の記憶媒体から再度転送が必要になります。しかし、CPLDは電源が切れても内部で保持されているため、プログラムを再転送する必要はありません。
ただし、FPGAの中に不揮発性メモリを利用しているものもあります。
設計サイクル
FPGAの方がCPLDよりも複雑な回路を実装できる一方で、その分、回路の設計や実装、検証に時間がかかるため設計サイクルが長いと言われています。
とはいえ、一概にFPGAだから設計サイクルが長いと結論付けることはできない点に注意してください。
価格
一般的な傾向として、FPGAの方がCPLDに比べて複雑な回路を実装でき、高度な機能を備えたものも多いことから高価であると言われています。
設計したい回路が小規模であれば、安価なCPLDを用いる方が高いコストパフォーマンスで開発できます。
CPLDでの開発方法
①回路デザインの目的を明確にする
まずは回路が達成したい目的を明確にすることから始めましょう。
CPLDは回路の再構成が可能なデバイスではありますが、回路デザインの目的が明確でない場合、プログラムを抜本的に修正しなければならない可能性もあるため、手戻りが発生してしまいます。
②ツールの選定と設計
CPLDに回路を実装するためのツール(ハードウェア記述言語)はいくつか種類があります。
例えば、VDHLやVerilogなどです。
ニーズに合ったツールを選択し、回路を設計/実装しましょう。
③デバッグ
回路の実装が完了したら、回路が意図した動作を行ってくれるかを検証するためにデバッグをします。
プログラムがエラーなく動作したとしても、意図した動きをしないケースもありますのでデバッグは回路設計において重要です。
④設定の変更と再プログラミング
回路の不具合や仕様の変更が発生した場合には再プログラミングを行います。
一般的にCPLDでの開発は上記のサイクルを繰り返すことで完了します。
まとめ
この記事ではCPLDについて解説しました。
CPLDはプログラムの書き換えが可能なデジタルICのことです。論理回路をプログラムによって実装できるので柔軟に開発ができます。
CPLDを用いることで急な設計変更にも柔軟に対応できるため、製品開発の主流となっています。