PLA(Programmable Logic Array)とは何か:構造・設計・現代的意義を徹底解説
PLAとは — 用語の整理と本稿の対象
PLAという略称は文脈によって複数の意味を持ちます。代表的には以下の2つがよく使われます。
- Programmable Logic Array(プログラマブル・ロジック・アレイ) — デジタル論理回路を実装する古典的なPLD(Programmable Logic Device)。本稿の主な対象。
- Perceptron Learning Algorithm(パーセプトロン学習アルゴリズム) — 機械学習の学習手法(別項目として簡単に触れる)。
ここでは主にハードウェアとしてのProgrammable Logic Array(以下PLA)を深掘りし、その構造、設計方法、他のプログラマブルデバイスとの違い、現代での位置づけまでを技術的に解説します。
PLAの基本構造と動作原理
PLAは論理関数を「和-of-積(Sum of Products, SOP)」形式で実現するためのハードウェア構造です。基本的に二つの論理面から構成されます。
- ANDプレーン(積項生成):入力信号およびその否定(補数)を用いて多数の積(product term)を生成する。
- ORプレーン(和合成):ANDプレーンで作られた積項を組み合わせて出力論理(和)を生成する。
入力ラインはANDプレーンにブロードキャストされ、各交差点(接続ポイント)でその入力またはその否定が選択的に接続されることで積項が形成されます。ANDプレーンの出力(複数の積項)はORプレーンに入って、出力ごとに必要な積項を選び和を取ります。
物理実装のバリエーション
- マスクプログラマブル:製造時に配線/接点を固定する方式(高密度だが変更不可)。
- プログラマブルヒューズ/ボンディング:出荷前にヒューズを切るなどして設定する方式。
- EPROM/EEPROMやフラッシュベース:書き換え可能な形式で、再プログラミングが可能。
PLAの世代にはPAL(Programmable Array Logic)やGAL(Generic Array Logic)といった派生があり、PALは固定ORプレーンと可変ANDプレーンという設計で、PLAより配線が単純で高速化を図れる代わり柔軟性が減る、という特徴があります。
設計と合成の考え方(SOPへの変換、最小化)
PLAに実装するためにはまず設計したい論理をSOP形に変換します。典型的手順:
- 真理値表あるいはブール式から必要な積項(minterm/implicant)を列挙。
- カルノー図やクワイン・マクラスキー法、あるいは論理最小化ツールで積項数を削減(共通項抽出、合併)。
- 残った積項をANDプレーンにマッピングし、出力ごとのOR組合せを定義。
例:入力A,B,Cに対し出力F = A·B + A'·C の場合、ANDプレーンで2つの積項を生成し、ORプレーンで和を取るだけで実現できます。
性能指標と制約
- 積項数の上限:デバイスごとにANDセル(product term)数が限られる。多数の関数や高い論理密度は向かない。
- 遅延:ANDプレーン→ORプレーンの2段論理の遅延が発生。ファンイン(入力数)増大で遅延が増す。
- 消費電力:固定配線方式は低消費電力だが、大規模な積項や高い切替頻度では増加。
- 可搬性・再構成性:EPROM/フラッシュ型は再プログラム可能だが、マスク型は不可。
PLAと他のプログラマブルデバイスの比較
設計者はPLAを選ぶ際、PAL/GAL、CPLD、FPGAと比較検討します。
- PAL/GAL:PALは固定OR/可変ANDの単純構造で高速。GALは再プログラマブルなPAL互換。小規模な制御ロジックに適する。
- CPLD:複数のPLDブロック(したがって複数のAND/ORネットワーク)を内部相互接続しており、PLDより大きなロジックを比較的低遅延で実現できる。
- FPGA:ルックアップテーブル(LUT)ベースで任意の論理を高密度に実装可能。クロック回路、高速IO、埋め込みRAM/DSPを統合できるため複雑なデザイン向け。
要するに、PLAは小規模でSOP形式が自然に表現できる回路にはシンプルかつ効率的ですが、現代の大規模・高性能用途ではFPGA/CPLDに置き換えられることが多いです。
実際の設計上の注意点とテクニック
- 積項の共有:複数の出力で同じ積項が使える場合、ANDプレーンで共通に生成してORプレーンで分岐させると積項数を節約できる。
- 入力の否定利用:PLAは通常入力の補数線を用意しているため、補数を内部で生成する必要が無いことが多く、論理を簡潔化できる。
- タイミング解析:AND→ORという固定段数の遅延があるため、クロック制約のある回路ではタイミング閉塞を確認すること。
- 信頼性:プログラマブル部分の耐書換性やヒューズの寿命、電源サイクルでの状態保持などを確認する。
歴史的背景と現代での位置づけ
PLAやPALは1970〜1990年代にかけてディスクリートロジックの代替として普及しました。簡単な制御ロジックやアドレスデコーダ、ステートマシンなどに広く使われましたが、FPGAの性能向上・低価格化と共に多くの用途ではFPGAやCPLDに置き換えられています。
しかし小規模で低コスト、低消費電力、あるいはレガシー製品の維持などの理由で今でも特定用途では有効です。また、教育分野では論理合成の基本概念を学ぶ教材として有用です。
「PLA」のもう一つの意味 — Perceptron Learning Algorithm(簡易紹介)
補足として機械学習分野でのPLA(Perceptron Learning Algorithm)は、線形識別器であるパーセプトロンの学習ルールを指します。線形分離可能なデータに対して重みベクトルを反復更新して分類境界を学習します。これはハードウェアのPLAとは全く別の分野ですが、名称が同じため文脈に注意が必要です。
まとめ(設計者へのアドバイス)
PLAはSOP表現を直接ハードウェアに落とし込める直観的なデバイスで、小規模・低コストの論理実装に向いています。設計時は積項数制約、遅延、再プログラマビリティの有無を確認し、必要に応じてPAL/GAL、CPLD、FPGAとのトレードオフを行ってください。現代のプロジェクトではFPGAに注目が集まりますが、PLAは学習用やレガシー置換、小規模組込み回路では依然価値がある選択肢です。
参考文献
- Programmable logic array — Wikipedia
- Programmable Array Logic (PAL) — Wikipedia
- Field-programmable_gate_array (FPGA) — Wikipedia
- PLA構造と例(大学講義ノート)
- Perceptron (Perceptron Learning Algorithm) — Wikipedia


