MACH445 JTAG書き込み [FPGA]
かなり前に調達していた1995製造のMACH445-15。

AMDのJTG資料により25PDSUBコネクタのピン対応が分かったので、何かの付録のJTAG基板のパターンをほとんどカットし、バッファには手持ちのVHC244をシール基板に載せて利用。




MACH445をQFP100Pのピッチ変換基板に載せ評価基板を作った。


MACH445は20年前のCPLDで、AMDで開発され、後にVantisに移管された。その後はLatticeに移った様だが、最近のツールには、さすがにMACH445の名前はみつからなかった。手持ちのMACHPRO 1.1で書き込んでみた。MACHXLでデザインファイルをコンパイルしてJEDファイル作る。MACHPROのために JEDファイル名を記述したCHNファイルを作成し、MACHPROを起動する。
MACHWRT.CHN

MACHWRT.BAT

MACHPRO 1.1を動かすためにパラレルポート付きDOSマシンが必要である。ちょうどTHINKPAD535が押入れの奥にあったので、10年ぶりくらいに通電してみた。時計は狂っていたが、DOS7.0が立ち上がった。

TP535でMACHXLは立ち上がるが、MACHXLソースのコンパイル中にエラーコード無しで停止していまう。現用のWindows7上にDOSBox0.74をインストールしてDOSエミュレータ上でMACHXLを使い、JEDファイルを作った。

エディタでJEDファイル名記述したCHNとMACHPROを記述したBATファイルを作って、SD(2G)-PCカードアダプタ経由で、TP535にコピーする。16GのSDカードはDOSで認識できなかった。

TP535のパラレルポートにケーブル経由で、JTAGアダプタと、MACH445評価基板を接続し、5V電源を接続する。

コマンドプロンプトからでも良いが、ファイルを探しにくいので、TP535で使っていたファイラー(MIEL)からMACHWRT.BATを実行する。


MACHPRO 1.1が起動され、書き込みとべりファイが10秒程度でできる。


終了レポートが出るので、正常終了を確認して、5VをoffにしてJTAGを切り離す。今回は8ビットカウンタ5個と、8ビットレジスタ6個を入れたが、先にI/Oピンが一杯になってしまった。
MACH445に入れたカウンタとレジスタの等価回路

クロックからのFFoutまでのデレーが6nsくらいなので、TTLのLS並みと思うが、消費電流が33MHz動作で、5V350mAとかなり多い。

8ビットカウンタの出力TC[0..6]

簡単に書き込みが出来たが、パラレルポートのあるPCがあまりない。20年前のCPLDであっても、用途を限れば使えそうであるが、消費電流が多く使いにくい。未使用品があと数個あるが、何ができるかな。
参考:回路図PDF、PDS,JED
----------------------------------------------------------------------------


AMDのJTG資料により25PDSUBコネクタのピン対応が分かったので、何かの付録のJTAG基板のパターンをほとんどカットし、バッファには手持ちのVHC244をシール基板に載せて利用。



MACH445をQFP100Pのピッチ変換基板に載せ評価基板を作った。


MACH445は20年前のCPLDで、AMDで開発され、後にVantisに移管された。その後はLatticeに移った様だが、最近のツールには、さすがにMACH445の名前はみつからなかった。手持ちのMACHPRO 1.1で書き込んでみた。MACHXLでデザインファイルをコンパイルしてJEDファイル作る。MACHPROのために JEDファイル名を記述したCHNファイルを作成し、MACHPROを起動する。
MACHWRT.CHN

MACHWRT.BAT

MACHPRO 1.1を動かすためにパラレルポート付きDOSマシンが必要である。ちょうどTHINKPAD535が押入れの奥にあったので、10年ぶりくらいに通電してみた。時計は狂っていたが、DOS7.0が立ち上がった。

TP535でMACHXLは立ち上がるが、MACHXLソースのコンパイル中にエラーコード無しで停止していまう。現用のWindows7上にDOSBox0.74をインストールしてDOSエミュレータ上でMACHXLを使い、JEDファイルを作った。

エディタでJEDファイル名記述したCHNとMACHPROを記述したBATファイルを作って、SD(2G)-PCカードアダプタ経由で、TP535にコピーする。16GのSDカードはDOSで認識できなかった。

TP535のパラレルポートにケーブル経由で、JTAGアダプタと、MACH445評価基板を接続し、5V電源を接続する。

コマンドプロンプトからでも良いが、ファイルを探しにくいので、TP535で使っていたファイラー(MIEL)からMACHWRT.BATを実行する。


MACHPRO 1.1が起動され、書き込みとべりファイが10秒程度でできる。

終了レポートが出るので、正常終了を確認して、5VをoffにしてJTAGを切り離す。今回は8ビットカウンタ5個と、8ビットレジスタ6個を入れたが、先にI/Oピンが一杯になってしまった。
MACH445に入れたカウンタとレジスタの等価回路

クロックからのFFoutまでのデレーが6nsくらいなので、TTLのLS並みと思うが、消費電流が33MHz動作で、5V350mAとかなり多い。

8ビットカウンタの出力TC[0..6]
簡単に書き込みが出来たが、パラレルポートのあるPCがあまりない。20年前のCPLDであっても、用途を限れば使えそうであるが、消費電流が多く使いにくい。未使用品があと数個あるが、何ができるかな。
参考:回路図PDF、PDS,JED
----------------------------------------------------------------------------

Xbox360 Xecuter Nand-X RGH Edition JTAG Kit v3
- 出版社/メーカー: Xbox360周辺機器
- メディア: Video Game
AMDのCPLD MACH445の開発ツール(DOS) [FPGA]
部品を整理していると、20年くらい前に調達していた1995年製造のMACH445-15が数個出てきた。評価の為変換基板に載せてみた。


MACH445はAMD製のJTAG書き込み可能な100ピンQFPのCPLDで、128マクロセルを持っている。今ではXilinxなどからより高速なCPLDが数百円で入手可能なので、時代の進化を感じる。MACHの開発ツールは、DOS上で動作するMACHXLがあった。今ではソフトのサポートは無いが、以下からダウンロードできる様である。400ページ近いソフトウエアガイドも付いている。PALASMの様な言語である。

Download MACHXL 2.1 Software
http://noel.feld.cvut.cz/hw/amd/mxl21sw_.html
自分は、昔使っていたThinkpad535にMACHXL2.1が入っていたので、Windows7で動作するのDOSエミュレータDOSBOX-0.74の上で使った。
Thinkpad535では設定がまずいのか、MACHXLコンパイルは途中で停止してしまったが、JTAG書き込みは出来た。JTAG書き込みの紹介は後日。
DOSBOXを以下からダウンロードしてインストールする。
http://www.dosbox.com/

ドライブC にDOSデレクトリを作っておく。
C:\DOS
C:\DOS以下にMACH関連ツールをコピー。
C:\DOS
\MACH
\MACHXL
\EXE
\USR
\EXSAMPLES
\DATAFILE
USR以下にデザインファイルのソースを置く。コンパイル後にレポートファイルが沢山できるので、デザインファイル毎にデレクトリを作っておいた方が管理が楽である。
MACHXLのソースはPALの論理記述に使ったPALASMに似た言語であるが、階層記述や、回路図記述が出来ないので、簡単な回路でないとかなりめんどう。
試行として、\EXAMPLESの中にカウンタの例COUNTER.PDSがあるので、CHIPをMACH445に変更。ファイル名も適当に変えておく。
DOSBOX-0.74 Optionsを起動してdosbox-0.74.conf に以下追加し、仮想ドライブCのマウントとPATHを設定する。
------------------------------------
mount c c:\dos
c:
SET MACHXL=C:\MACH\MACHXL\
path=z:\;c:\bat;c:\bin;c:\tools
PATH = %PATH%;C:\MACH\MACHXL\EXE
cd c:\MACH\MACHXL\USR
-----------------------------------
key配列が違うので、DOSboxを起動して、よく使う記号(+-\など)をkeymapperで設定する。完全には直らないが、読み替えて使う。ソースの修正は主にWindowsから行うので、あまり問題にはならない。コマンドプロンプトからMACHXLを起動。



デザインファイルのある場所をカレントデレクトリに設定

Retrieve・・でデザインファイルを指定(FILE.PDS)

RUN>Compilation、オプションを設定してf10押下

エラー無ければ10秒くらいで完了メッセージ。PINの指定によってはMACHFITRに20分くらいかかる事もあった。

レポートファイルの中に、ピンやFFの使用量が書かれている。

JEDファイルが出来ている事を確認して、JEDファイル名を入れた書き込み用CHNファイルと書き込みプログラム起動BATを作成
MACHWRT.CHN
---------------------------------------------
; 08/29/2015: MACH445 counter
'COUNTER' MACH445 P 6 CNT6PIN.JED / -o Z -f MACHWRT.OUT;
---------------------------------------------
MACHWRT.BAT
----------------------------------------------
machpro -i MACHWRT.CHN -z 3
----------------------------------------------
書き込みの流れ

machproのオペレーション

JEDを作る毎にCHNを書き換えるのが面倒になったので、JEDを指定してCHNとBATを作るツールを作った。JEDCHN.EXE

使い方:
JEDCHN.ZIPを適当なフォルダに解凍して出来たファイルJEDCHN.EXEをダブルクリック。画面上でJEDを指定すると、JEDのあるフォルダにコマンドに応じたCHNとBATができる。JEDCHNのアンインストールはファイル削除。レジストリは使っていない。
MACH445の書き込みはパラレルポートが必要なので、Thinkpad535の出番。
Thinkpad535のパラレルポートに書き込み器を接続。
JED,CHN,BATをSD-PCカードアダプタ経由で、ThinkPad535に移行し、BATを起動。書き込みは、簡単に終わった。 こちらの紹介は後日。
JEDCHN.ZIP(Windows)
----------------------------------------------------------------------------------------




MACH445はAMD製のJTAG書き込み可能な100ピンQFPのCPLDで、128マクロセルを持っている。今ではXilinxなどからより高速なCPLDが数百円で入手可能なので、時代の進化を感じる。MACHの開発ツールは、DOS上で動作するMACHXLがあった。今ではソフトのサポートは無いが、以下からダウンロードできる様である。400ページ近いソフトウエアガイドも付いている。PALASMの様な言語である。

Download MACHXL 2.1 Software
http://noel.feld.cvut.cz/hw/amd/mxl21sw_.html
自分は、昔使っていたThinkpad535にMACHXL2.1が入っていたので、Windows7で動作するのDOSエミュレータDOSBOX-0.74の上で使った。
Thinkpad535では設定がまずいのか、MACHXLコンパイルは途中で停止してしまったが、JTAG書き込みは出来た。JTAG書き込みの紹介は後日。
DOSBOXを以下からダウンロードしてインストールする。
http://www.dosbox.com/

ドライブC にDOSデレクトリを作っておく。
C:\DOS
C:\DOS以下にMACH関連ツールをコピー。
C:\DOS
\MACH
\MACHXL
\EXE
\USR
\EXSAMPLES
\DATAFILE
USR以下にデザインファイルのソースを置く。コンパイル後にレポートファイルが沢山できるので、デザインファイル毎にデレクトリを作っておいた方が管理が楽である。
MACHXLのソースはPALの論理記述に使ったPALASMに似た言語であるが、階層記述や、回路図記述が出来ないので、簡単な回路でないとかなりめんどう。
試行として、\EXAMPLESの中にカウンタの例COUNTER.PDSがあるので、CHIPをMACH445に変更。ファイル名も適当に変えておく。
DOSBOX-0.74 Optionsを起動してdosbox-0.74.conf に以下追加し、仮想ドライブCのマウントとPATHを設定する。
------------------------------------
mount c c:\dos
c:
SET MACHXL=C:\MACH\MACHXL\
path=z:\;c:\bat;c:\bin;c:\tools
PATH = %PATH%;C:\MACH\MACHXL\EXE
cd c:\MACH\MACHXL\USR
-----------------------------------
key配列が違うので、DOSboxを起動して、よく使う記号(+-\など)をkeymapperで設定する。完全には直らないが、読み替えて使う。ソースの修正は主にWindowsから行うので、あまり問題にはならない。コマンドプロンプトからMACHXLを起動。



デザインファイルのある場所をカレントデレクトリに設定

Retrieve・・でデザインファイルを指定(FILE.PDS)

RUN>Compilation、オプションを設定してf10押下

エラー無ければ10秒くらいで完了メッセージ。PINの指定によってはMACHFITRに20分くらいかかる事もあった。

レポートファイルの中に、ピンやFFの使用量が書かれている。

JEDファイルが出来ている事を確認して、JEDファイル名を入れた書き込み用CHNファイルと書き込みプログラム起動BATを作成
MACHWRT.CHN
---------------------------------------------
; 08/29/2015: MACH445 counter
'COUNTER' MACH445 P 6 CNT6PIN.JED / -o Z -f MACHWRT.OUT;
---------------------------------------------
MACHWRT.BAT
----------------------------------------------
machpro -i MACHWRT.CHN -z 3
----------------------------------------------
書き込みの流れ

machproのオペレーション

JEDを作る毎にCHNを書き換えるのが面倒になったので、JEDを指定してCHNとBATを作るツールを作った。JEDCHN.EXE
使い方:
JEDCHN.ZIPを適当なフォルダに解凍して出来たファイルJEDCHN.EXEをダブルクリック。画面上でJEDを指定すると、JEDのあるフォルダにコマンドに応じたCHNとBATができる。JEDCHNのアンインストールはファイル削除。レジストリは使っていない。
MACH445の書き込みはパラレルポートが必要なので、Thinkpad535の出番。
Thinkpad535のパラレルポートに書き込み器を接続。
JED,CHN,BATをSD-PCカードアダプタ経由で、ThinkPad535に移行し、BATを起動。書き込みは、簡単に終わった。 こちらの紹介は後日。
JEDCHN.ZIP(Windows)
----------------------------------------------------------------------------------------

FPGA ボードで学ぶ組込みシステム開発入門 ~Altera編~
- 作者: 小林 優
- 出版社/メーカー: 技術評論社
- 発売日: 2011/09/22
- メディア: 大型本

ロジック回路設計はじめの一歩―徹底図解 VHDLによるPLD/FPGA活用のための (トランジスタ技術SPECIAL for フレッシャーズ)
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2009/01
- メディア: 単行本
今日のジャンク:XC9572 [FPGA]
今日のジャンク
部品取りした後の基板をもらった。LSI LOGICのコントローラの様だ。コイルが割れているので、大きな力が加わったようだ。それでも使えそうな部品が残っている。

XC9572TQG100:XilinxのCPLD
TA550
DS276:RS232Cドライバ
JS28F320:32MビットFlash
しばらく使っていなかったSMD取り外しキットを使ってXC9572を取り外した。XC9572は、かなり熱くなったので、心配したが、JTAGkey_cloneから簡単なデータの書き込みはできた。このクラスのCPLDは数百円で入手できるので、取り外して再利用することは、価格的には割に合わないことは分かっているが、面白い部品が乗っている基板を見るとわくわくしてしまう。
このまま廃棄するのは、可哀想。何に使おうか。 とりあえず、外したICを、変換基板に乗せて動作確認ができた。
基板:XC9572が実装されている

SMD取り外しキット


JTAG:

Initialize

Blank chk:何か入っている。

read:読んでみた。

program

ISE9.1
部品取りした後の基板をもらった。LSI LOGICのコントローラの様だ。コイルが割れているので、大きな力が加わったようだ。それでも使えそうな部品が残っている。

XC9572TQG100:XilinxのCPLD
TA550
DS276:RS232Cドライバ
JS28F320:32MビットFlash
しばらく使っていなかったSMD取り外しキットを使ってXC9572を取り外した。XC9572は、かなり熱くなったので、心配したが、JTAGkey_cloneから簡単なデータの書き込みはできた。このクラスのCPLDは数百円で入手できるので、取り外して再利用することは、価格的には割に合わないことは分かっているが、面白い部品が乗っている基板を見るとわくわくしてしまう。
このまま廃棄するのは、可哀想。何に使おうか。 とりあえず、外したICを、変換基板に乗せて動作確認ができた。
基板:XC9572が実装されている

SMD取り外しキット


JTAG:

Initialize
Blank chk:何か入っている。
read:読んでみた。
program
ISE9.1
JTAGkey cloneもどき(FT2232D) [FPGA]
JTAGkey cloneもどき(FT2232D)
XilinxのCPLDをいじって見たくなったが、すでにパラレルポートが使えるPCが無く、USB経由でできるものを探した。AmontecからJTAGKeyが出ており、そのcloneの製作例もあった。なぜか大昔に調達したFT2232D、変換基板はあったが、6Mhzの水晶とレベル変換ICが無い。12MHzの水晶はあったので、分周して6MHzにする。レベル変換は74VHC244があったのでこれで代用。自分のtarget電圧は2.5Vと3.3Vに限定するので、何とかなりそう。部品を秋月のユニバーサルに乗せて、半田付け終了。回路図には無いが、CMOSの未使用入力ピンはGNDに接続してある。秋月からFT2232Dの実装されたモジュールが最近では1450円であるので、部品調達、組み立て手間を考えると購入した方が安いかもしれない。自分は昔購入したストック品消費のため、部品を組み立てた。
できたらレベル変換は74LVC2G125や、74LVC2T45にしたかったが、少量では送料の方が
高価なため、入手できなかった。 実験基板に実装した為、余計な部品が乗っている。


目的はcblsrvを使ってiMPACTからコンフィグすること。
組み立て完成後、FTDI社のMProを使ってEEPROMに設定を書き込む。結局ねむいさんのところに設定ファイルとドライバがあったので利用させてもらった。

cblsrvhはcblsrv-0.1_ft2232_r4804を使った。
毎回入力は面倒なので、1行バッジファイルを作ってcblsrv.exeのあるデイレクトリに入れショートカットをデイスクトップに置く。
---------------
cblsrv.exe -c amontec -p 50000
iMPACTを起動し、Cable Setup,Initialize Cainまではうまくいくが、その後はすべて
のコマンドでエラーとなる。DeviceIDが先頭ビットを除いてall'1'になっている。
ISE9.1からISE13.1に切り替えてもだめで、しばらくあきらめていたが、デバイスドライバの設定で、VCPにチェックをいれてOKになった。ばんざい。VCPでは無いはずだが、ふしぎ。 それでもISE13.1では使えない。


確認環境
Xp sp3
ISE9.1
cblsrv:r4804
device:XC9572XL

参考
ねむいさん EEPROM:http://nemuisan.blog.bai.ne.jp/?eid=155027
fenrirさん:http://fenrir.naruoka.org/archives/000644.html
製作 :http://www.koka-in.org/~kensyu/handicraft/diary/20080926.html
XilinxのCPLDをいじって見たくなったが、すでにパラレルポートが使えるPCが無く、USB経由でできるものを探した。AmontecからJTAGKeyが出ており、そのcloneの製作例もあった。なぜか大昔に調達したFT2232D、変換基板はあったが、6Mhzの水晶とレベル変換ICが無い。12MHzの水晶はあったので、分周して6MHzにする。レベル変換は74VHC244があったのでこれで代用。自分のtarget電圧は2.5Vと3.3Vに限定するので、何とかなりそう。部品を秋月のユニバーサルに乗せて、半田付け終了。回路図には無いが、CMOSの未使用入力ピンはGNDに接続してある。秋月からFT2232Dの実装されたモジュールが最近では1450円であるので、部品調達、組み立て手間を考えると購入した方が安いかもしれない。自分は昔購入したストック品消費のため、部品を組み立てた。
できたらレベル変換は74LVC2G125や、74LVC2T45にしたかったが、少量では送料の方が
高価なため、入手できなかった。 実験基板に実装した為、余計な部品が乗っている。


目的はcblsrvを使ってiMPACTからコンフィグすること。
組み立て完成後、FTDI社のMProを使ってEEPROMに設定を書き込む。結局ねむいさんのところに設定ファイルとドライバがあったので利用させてもらった。
cblsrvhはcblsrv-0.1_ft2232_r4804を使った。
毎回入力は面倒なので、1行バッジファイルを作ってcblsrv.exeのあるデイレクトリに入れショートカットをデイスクトップに置く。
---------------
cblsrv.exe -c amontec -p 50000
iMPACTを起動し、Cable Setup,Initialize Cainまではうまくいくが、その後はすべて
のコマンドでエラーとなる。DeviceIDが先頭ビットを除いてall'1'になっている。
ISE9.1からISE13.1に切り替えてもだめで、しばらくあきらめていたが、デバイスドライバの設定で、VCPにチェックをいれてOKになった。ばんざい。VCPでは無いはずだが、ふしぎ。 それでもISE13.1では使えない。
確認環境
Xp sp3
ISE9.1
cblsrv:r4804
device:XC9572XL

参考
ねむいさん EEPROM:http://nemuisan.blog.bai.ne.jp/?eid=155027
fenrirさん:http://fenrir.naruoka.org/archives/000644.html
製作 :http://www.koka-in.org/~kensyu/handicraft/diary/20080926.html