現在地

GALとCPLD


テーマ:

カテゴリー:

GAL (Generic Array Logic)とCPLD (Complex Programmable Logic Device)も出てきました。

GAL16V8B
このLattice製のGAL16V8B-25LPは論理回路プログラムできるPLDのうちで、EEPROM構造(電気的に消去して再プログラム可能)の初期のものです。

GAL以前のPLDとしてはMMIのPALが有名ですが、以下のような理由で使おうと思ったことはありませんでした。

  1. ヒューズ式で一度書き込むと変更できないこと
  2. 書き込み方法が難しくライタの自作が困難なこと
  3. 品種が多く回路によって選ばなくてはならないこと
  4. 消費電流が多いこと

それがGALは上の欠点をほぼ解消しているので、試してみようと思って何個か買ったうちの1つです。結局ライタも製作せず、どこかで借りて試してみたはずですが、実際の製作には使用していません。

XC9536
これはXilinxのXC9536-15PC44C、CPLDと呼ばれるものの一つです。

先ほどのPALやGALがせいぜい74シリーズ等の汎用ロジック数個分を置き換えるのに対し、もっと規模の大きな回路にも対応可能です。このXC9536ではマクロセル(フリップフロップ1個を含む)が36個あります。ちなみにGAL16V8にフリップフロップは8個あるので大雑把にその4.5倍です。

XC9572
これはXC9572-15PC44Cです。型番から想像できる通りマクロセル72個と、XC9536の2倍の規模です。

XC95108
最後はXC95108-15PC84C、XC9536の3倍の規模のものとなります。パッケージも84ピンに増えています(XC9572にも84ピンPLCCのものは存在します)。

さらに上にはXC95144, XC95216, XC95288などといった大規模なものもありますが、残念ながらPLCCパッケージのものは存在しません。BGAはおろかQFPでもユニバーサル基板では扱いづらいので買っていません。

ところでこのXC9500シリーズ、写真のマーキングと型番の対応がややこしいですよね。このXC95108を例にすると、まず「XC95108」は1行目からでXC9500シリーズであることと108マクロセルであることを表します。「-」はデリミタなので自分で補います。「15」は4行目から、スピード(ピンからピンの遅延時間が15ns)を表します。「PC84」は2行目から、PLCC84ピンのパッケージを表します。最後の「C」は4行目から、動作温度範囲が0°C~70°Cのものであることを表します。Xilinx自身もわかりにくいと思っているのか、データシートに読み方が詳しく書かれていました。

XC9500シリーズは5V I/Oに対応した(古いCPUなどと組み合わせるのに適した)貴重なデバイスだったのですが、何年か前にとうとうディスコンになってしまいました。残っている後継のXC9500XLシリーズはI/Oが2.5Vか3.3Vになってしまい、Vccio(I/O電源), Vccint(コア電源)用に3.3Vの供給が必要です。I/Oピンは5Vトレラントなので入力ピンは5V回路に直結できますし、出力ピンも(相手が古いデバイスなら大抵TTLレベルで2.4VでHと認識されるので)直結でもOKな場合が多いでしょう。でもZ80 CPUのCLKみたいな例外もあるので、落とし穴に嵌らないよう注意が必要です。

参考文献・関連図書: 
GAL16V8B,GAL16V8Aデータシート, Lattice Semiconductor.
"XC9536 In-System Programmable CPLD", DS064 (v7.0), Xilinx.
"XC9572 In-System Programmable CPLD", DS065 (v5.0), Xilinx.

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。