63C09カード用のPAL・GALについて、備忘録メモ。
63C09のオリジナルカードには、4個のPALが使われている。PALとは、いくつかのTTL-ICを1個のパッケージにまとめることができる、プログラマブルのロジックICだ。Oh!FMの製作記事には、本来なら15個のTTLが必要なところ、4個のPALですんだ、という山西様の記載がある。
GALは、簡単に言えばPALの進化版で、電気的に初期化して再利用ができる、ほとんどのPALについて上位互換である、CMOSで低消費電力おまけに高速と、劣ったところがなく、わざわざGALでなくPALを選択する理由はない。
オリジナルカードには、PAL16L8Aが3個、PAL16R6Aが1個使われている。2種類という訳だが、その両方とも、同一のGALに置き換えることができるので、結果、GAL16V8 というGALが4個あれば済む。
オリジナル製作者の山西様、およびPALからGALへの置き換え時にプログラムを修正された関根様に話を伺ったところ、GALについては、当時のロジックのゲート遅延に合わせているため、「GAL16V8A-25」を選択しているとのことだった。そのため、型番末尾が -20、-15、-10 のような高速タイプでは、周辺回路とのタイミングが合わず動作しないことが確認できている、とのこと。
63C09レプリカ基板を使って2台目製作を試みていた時、速ければそのほうが良いのだろう、、と、GAL16V8B-7 を使用したことがあったが正常動作せず、その後、ヤフオク等でGAL16V8A-25を入手し、無事に動作した、という経緯がある。
なお、アクセススピードが同じ -25 のGALでも、世代が新しいと微妙な差異があってダメらしく、GAL16V8D-25 で試したことがあったがそれでも動作しなかった。
本家LatticeのGALでは、GAL16V8A-25 以外に動作するものを見つけられていない。(A世代ではなく、無印の GAL16V8-25 なら大丈夫なのかもしれない)
ただ、ダメモトで入手した、互換品であるAtmelの ATF16V8B-15PU は、-15 であっても動作することが確認できている(2026年1月現在、若松通商に在庫あり)。メーカーによっても若干の差異があるのかもしれない。
なおこのような、「動作する・動作しない」というのは、GALの実装位置によっても左右されるらしい、ということも追記しておく。レプリカ基板にパーツを実装した完成品は下の画像のものになるが、
4個のGALのうち、KA2P・KA4P、つまり63C09EP(MPU)に近いほうの2個が上記制限を受けやすいようだ。KA1P・KA3P 、つまりMPUから遠いほうの2個は、GALの速度や世代にかかわらず、(手持ちのものに限るが)どのようなGALを使用してもカードは正常に動作した。
つまり、KA2P・KA4Pの位置に「GAL16V8A-25」または「ATF16V8B-15PU」を使用すれば、KA1P・KA3Pの位置は「GAL16V8D-7」などを使用してもおそらく動作すると思われる。
ただこれは実験した結果が一応そのようであった、というだけのことであり、回路設計者(山西様)の意図した事ではないと思う。入手できるのであれば、4個とも GAL16V8A-25 等、問題のないGALにしておいたほうが無難だろう。(上記画像では ATF16V8B-15PU を使用している)