PLD
PLD(Programmable Logic Device)とは、内部の論理構成をユーザ自身が書き換え可能な半導体デバイスである。回路の大部分を固定された標準ロジックで構成するASICなどとは対照的に、PLDはシステム要件が変化しても柔軟に対応しやすい点が特筆される。代表的な例としてCPLD(Complex Programmable Logic Device)やFPGA(Field Programmable Gate Array)が知られており、小規模な制御回路から高速演算を要する用途までカバーできる多様性が魅力である。
概要と歴史
PLDの歴史は1960~70年代にさかのぼる。初期のデバイスはROMやPROM(Programmable Read-Only Memory)を利用して論理を実装する方式が主流であったが、その後AND-ORアレイ構造を組み合わせたPLA(Programmable Logic Array)が登場し、柔軟な論理設計を実現できるようになった。その後GAL(Generic Array Logic)やCPLDといった技術革新が進行し、今日では数百万の論理要素を搭載するFPGAへと発展した背景がある。
主な種類
PLDは大きく分けてCPLDとFPGAの2種類が知られている。CPLDは複数のマクロセルを内部に持ち、論理回路の規模は比較的小さいが、低消費電力で起動時間が短い利点を持つ。FPGAは大量のロジックブロックと可変配線資源を備え、多数の演算機能や高速インタフェースを実装できるため、高集積かつ高性能が要求される場面に適している。
内部構造と動作原理
CPLDは複数のAND-OR論理をまとめたマクロセル群を配線資源で結合し、プログラミングにより論理定義を行う構造である。FPGAはロジックエレメント(LE)と呼ばれる小規模な演算ブロックを数多く配置し、それらをSRAMスイッチやフューズで構成された配線ネットワークで結合する仕組みを採用する。これにより動作クロックや演算ユニットの設定が柔軟になる。
設計フロー
PLDの設計フローは、ハードウェア記述言語(HDL)による論理記述から始まる。次に合成ツールを用いて回路を論理ブロックに分解し、ターゲットデバイスに合わせた最適配置を行う。さらに配置配線ツールで論理ブロック間の物理的接続を決定し、タイミング解析を通じて性能や正確動作を検証する。最終的に生成されるビットストリームをPLDに書き込み、実機検証を行うことで完成する流れである。
用途とメリット
PLDは開発期間の短縮や設計リスクの低減に大きく寄与する。特に試作品段階や少量多品種の製品で活用されるケースが多く、必要に応じて機能を書き換えられるため、ソフトウェア的な感覚でハードウェアを更新できる点に強みがある。ハードウェアを修正するたびに新たなテープアウトが必要なASICとは異なり、PLDは一つのデバイスで多様な要求に対応可能となる。
進化の背景
PLDがここまで進化した背景には微細化技術の進展がある。FPGAなどは動作周波数の高速化や数多くのDSPブロック内蔵により、かつては専用LSIが必要だった信号処理を1チップでカバーできるようになった。さらに開発ツールの進歩やIPコアの充実も後押しし、AI推論の加速器やネットワーク制御など、高度な演算領域でもPLDが活躍の場を広げている。