オリジナルのコードはWindows用で1ファイルに長々と書いてあったので、バラしました。
FTDIのD2XXライブラリを利用してMac OS X El Capitanでビルドして試しています。
1バイトごとのBitBangで遅いのですが、そもそもGALの書き込みはあまり早くできないようです。
メンテされているATFBLASTではなくてManfred Winterhoffさんのオリジナルをベースにしています。これはGAL6001が必要だったためです。なんで消しちゃったのかな。。。
GAL6001は日米商事で以前8つ手に入れました。
開発環境はWindows 7にインストールしたispLever Classic 1.6なのだが、最初2.0をインストールしてライセンスキーをコピーしても有効にならず、1.6を試しても同じ状態でWindowsを再起動したら正常にライセンスキーが認識された。2.0でもいけたのかもしれないが、面倒なので1.6のままにしてある。
プロジェクトを作ってVerilog書いてみます。
Select DeviceでShow Obsolete DevicesをチェックするとGALが表示されるようになります。
module test(
input i1,
input i2,
output o1,
output o2
);
assign o1 = i1 & i2;
assign o2 = ~i1 & i2;
endmodule
JEDECファイル生成します。
ispLEVER Classic 1.6.00.07.29.12 Lattice Semiconductor Corp.
JEDEC file for: P22V10G V9.0
Created on: Tue Jun 09 19:56:58 2020
*
QP24* QF5892* QV0* F0*
X0*
NOTE DEVICE NAME: GAL22V10D-10LP*
NOTE Table of pin names and numbers*
NOTE PINS i1:1 i2:2 o1:14 o2:23*
L0044 11111111111111111111111111111111111111111111*
L0088 10110111111111111111111111111111111111111111*
L5368 11111111111111111111111111111111111111111111*
L5412 01110111111111111111111111111111111111111111*
L5808 11000000000000000011*
C15D6*
75A7
40年前に作ったロジックテスターで確認してみます。
i0:1 | i2:2 | o1:14 | o2:23 |
---|---|---|---|
1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
0 | 0 | 0 | 0 |
ちゃんと焼けてるようです。
inputとoutputがどのようにアサインされるかわかりません。JEDファイル見るしかないのかな。そんなわけないよな。
QiitaにVerilogの初心者向けの解説があり大変参考になります。
GAL6001も使えるようにしてみました。GAL22V10とP/V-が入れ替わっています。
PLCC 28pinのソケットのbottom viewはこうなってます。
ジャンクなので、何か焼いてあったので消しました。GALの書き込みは100回くらいまでのようです。
安物のPLCCのソケットはドライバーなどで抜き取っていると割れてしまうことがあるので、注意が必要です。
20V8の変換基板も作ってみました。