NAXJP project
Nahitafu XILINX JTAG Programming tool
(C)Copyright 2001-2004 Nahitafu

Japanese

 
CONTENTS
maru入手はここから!
maruインストール方法
maruダウンロードケーブルの作り方
maruカスタマイズの方法
maru使い方
maruクイックスタート
maruご注意とライセンス
TIPS
maruJTAGって何
maruCPLDって何
maruバウンダリスキャンって何

NAXJP概要

 NAXJPを使うと、JTAGを使ってXILINXのCPLDやFPGA、コンフィグROMにプログラムできます。NAXJPはコマンドラインから使用するツールで、WindowsとLinux環境の下で同じように動作します。
 また、NAXJPをライブラリとしてご使用いただくと、貴社のソフトウェアにXILINX CPLD/FPGAプログラミング機能を迅速に追加することができます。

 NAXJPは、最先端の組み込み機器を日々開発されるプロフェッショナルなお客様のご要望にお答えし、サポートと信頼性の充実した製品版バージョンを新たにご用意しました。

 なお、GUI感覚の気軽なJTAG操作と、汎用のバウンダリスキャンは、新世代のJTAGソフトウェア「MITOUJTAG」でご提供いたしております。

NAXJP対応デバイス

XC9500 XC9500XL XC18V00 XCF00S SpartanII SpartanIIE

バージョン間の相違に関して

 NAXJP Version 1.0以降のバージョンは、技術サポートがございます。また、お客様のアプリケーションソフトウェアに組み込むためのAPI情報の開示も行います。

 0.8以前のバージョンは無償で配布していますが、サポートはございません。

旧バージョンの取り扱いについて

 旧バージョン(0.8以前)をすでにご利用の方は、今後もそのままご利用いただけます。

 ただし、NAXJPはいずれのバージョンもフリーソフトウェアではございません。許可無く再配布することはできません。ご利用条件をよくお読みの上、正しくご使用ください。

最新情報

  • 旧バージョン 0.8の配布を再開。
2005年4月25日

Version 1.0.0

  • サポートと信頼性のあるソフトウェア製品としてVersion 1.0をリリースいたしました
2005年4月22日

Version 0.8.0

  • MITOUJTAGの技術を応用し、Spartan2/2E,XC18,XCF,XC95,XC95XLの各デバイスに対応しました。
  • Bypassデバイスを容易に追加できるようになりました。 (devicedb.txtおよびdevindex.txt)
  • デバイスの自動検出が可能になりました。 -detectオプション
2004年8月22日

 img1.png

 
NAXJPの入手について

NAXJP0.8.0 (無償版)

 NAXJPの配布は終了しました。

 ご利用ありがとうございました。


インストール
Linux用
ビルドすることなく、アーカイブを展開するだけですぐにご使用になれます。
Windows用
ビルドすることなく、アーカイブを展開するだけですぐにご使用になれます。

Windows2000で使うときには、giveioを使用します。giveioをあらかじめインストールしておいてください。

 
I/Oポートのカスタマイズ
 初期設定では、ポートの設定は、XILINX Parallel IIIケーブルに適合するようになっています。
 他のダウンロードケーブルを使いたい場合には、-portオプションを指定してください。

 お客様のカスタムJTAGケーブルを使用する場合は、ports.txtというファイルを書き換えてください。

(例)naxjp -write xc95test.jed -port byteblaster.txt
(例)naxjp -write xc95test.jed -port ports.txt

ダウンロードケーブルの作り方
NAXJP SIMPLE CABLE XILINX Parallel III互換のケーブルが使用できます。

 また、CPLDとパソコンのパラレルポートを直結でも使用できます。直結ケーブルの作り方は 下の図を御覧下さい。ノイズが気になるときにはTCKとGNDに100pFのコンデンサを入れてください。

パラレルポートPin #JTAG
D12TDI
D23TCK
D34TMS
SLCT13TDO
GND25GND


簡単な使い方
このモードでは、'write'や'erase'などのオプションをコマンドラインで指定します。
(例) naxjp -option filename1 [-option filename2] [-option filename3] ... [-option]
すべてのオプション
多くのオプションがありますが、いくつかは未完成です。
-detect                        デバイスの検出をおこないます
-auto     devicename:filename  消去、書きこみ、ベリファイを行います。
-write               filename  JEDECファイルをCPLDにプログラムします。
-read     devicename:filename  CPLDからJEDECファイルに読み出します。
-erase    devicename|filename  CPLDを消去します。
-verify              filename  JEDECファイルとCPLDをベリファイします。
-blank    devicename|filename  ブランクチェックします。
-bypass   devicename|filename  何もしません。
-getid    devicename|filename  デバイスIDを取得します。
-getsig   devicename|filename  ユーザーがセットしたUSERCODE(シグネチャ)を読み出します。
-svf      filename             JTAGを動作させる代わりにSVFファイルを作成します。
-port     filename             JTAGアクセス方法とIOポートをファイルで指定します。
-g1                            エラー無視(小)
-g2                            エラー無視(大)

クイックスタート
ここでは書きこみ消去ID取得読み出しベリファイなどの方法を説明します。
自動プログラム(-autoオプション)
1. 次の例では"main.jed"ファイルをCPLDに書きこみます。autoオプションで書き込むと、消去とベリファイを自動で行うので書きこみミスが低減できます。また、FPGA用のコンフィグROMでは強く推奨します。
 XC95108のようなデバイス名はJEDECファイル中に記述されているので、それを指定する必要はありません。XC18VシリーズやXCFシリーズをMCSファイルやBITファイルから書きこむ場合は、明示的にデバイス名を指定します。

 FPGAコンフィグレーションデータを書き込む際には、bitファイルを直接扱うことができますので、iMPACTを用いてMCSに変換する必要はありません。

(例)naxjp -auto main.jed
(例)naxjp -auto XC18V02:c:\vhdlwork\spa2\main.bit
Write to a device

2. もし、2つかそれ以上のデバイスがJTAGチェーンにつながっている場合、-writeオプションを2つかそれ以上使うことができます。次の例では、mainsubと名づけられたデバイスがJTAGチェーンでつながっていて、順番に書きこみをおこないます。
(例)naxjp -write main.jed -write sub.jed
次の例では、mainsubと名づけられたデバイスがJTAGチェーンでつながっていて、mainのみ書きこみをおこないます。
(例)naxjp -write main.jed -bypass sub.jed
書きこみ方法(-writeオプション)
1. 次の例では"main.jed"ファイルをCPLDに書きこみます。XC95108のようなデバイス名はJEDECファイル中に記述されているので、それを指定する必要はありません。XC18VシリーズやXCFシリーズをBITファイルやMCSファイルから書きこむ場合は、明示的にデバイス名を指定します。
(例)naxjp -write main.jed
(例)naxjp -write XC18V02:c:\vhdlwork\spa2\main.mcs
Write to a device

2. もし、2つかそれ以上のデバイスがJTAGチェーンにつながっている場合、-writeオプションを2つかそれ以上使うことができます。次の例では、mainsubと名づけられたデバイスがJTAGチェーンでつながっていて、順番に書きこみをおこないます。
(例)naxjp -write main.jed -write sub.jed
次の例では、mainsubと名づけられたデバイスがJTAGチェーンでつながっていて、mainのみ書きこみをおこないます。
(例)naxjp -write main.jed -bypass sub.jed
消去方法 (-erase オプション)
1. 次の例ではXC95108を消去します。
(例)naxjp -erase XC95108
2. デバイス名の変わりにJEDECファイル名を指定できます。この場合、デバイス名はJEDECファイルから自動的に取得されます。
(例)naxjp -erase main.jed
3. もし、2つかそれ以上のデバイスがJTAGチェーンでつながっている場合は、2つかそれ以上の-eraseオプションを使います。
(例)naxjp -erase xc95108 -bypass XC95144 -erase XC9572
もしこのようにすれば、XC95108とXC9572の両方が消去されます。

Erase 3 device
ベリファイ方法 (-verify オプション)
1. 次の例では、NAXJPはデバイスとファイルmain.jedの内容を比較します。デバイス名はJEDECファイル中に書かれているので、普通は指定する必要はありません。
(例)naxjp -verify main.jed
2. もし、2つかそれ以上のデバイスがJTAGチェーンでつながっている場合、2つかそれ以上の-verifyオプションを使うことができます。次の例では、JTAGチェーンでつながっているmainsubという名前のデザインがあり、それぞれを順番にベリファイします。
(例)naxjp -verify main.jed -verify sub.jed
次の例では、JTAGチェーンでつながっているmainsubという名前のデザインがあり、mainだけをベリファイします。
(例)naxjp -verify main.jed -bypass sub.jed
読み出し方法 (-read オプション)
1. 次の例では、NAXJPはデバイスの内容をファイル"read.jed"にJEDECファイルフォーマットで読み出します。 リードバック操作では、デバイス名を明確に指定しなければなりません。
(例)naxjp -read XC95108:read.jed
2. もし、JTAGチェーンに2つかそれ以上のデバイスがつながっている場合、2つかそれ以上の-readオプションを使うことができます。
次の例では、JTAGチェーンでつながった2つのデバイスを、"main"と"sub"という2つのファイルに読み出します。それらは順番に読み出されます。
(例)naxjp -read XC95108:main.jed -read XC95144:sub.jed
もし同じ名前のファイルがすでに存在する場合、NAXJPは上書きするかどうかを尋ねてきます。
ブランクチェック方法(-blank オプション)
1. 次の例では、NAXJPはデバイスがブランク(空の状態)かどうかをチェックします。
(例)naxjp -blank XC95108
2. デバイス名のかわりにJEDECファイル名を指定することもできます。この場合、デバイス名はJEDECファイルの中から取得されます。
(例)naxjp -blank main.jed
3. もし2つかそれ以上のデバイスがJTAGチェーンにつながっている場合、2つかそれ以上の-blank オプションを指定することができます。
(例)naxjp -blank xc95108 -bypass XC95144 -blank XC9572
このようにすると、XC95108とXC9572が順番にブランクチェックされます。
ID取得の方法(-getid オプション)
1. 次の例では、NAXJPはデバイスからデバイスIDを取得します。JEDECファイル名で指定すると、ファイルに記述されたデバイスと実際のデバイスが一致するかを確かめることができます。
(例)naxjp -getid xc95108
naxjp -getid test144.jed
naxjp -getid XC18V02:c:\testwork\test.mcs
naxjp -getid test144.jed -bypass XC95108 -getid XC9572
USERCODE取得の方法(-getsig オプション)
1. 次の例では、NAXJPはユーザーコード(シグネチャ)をデバイスから取得します。JEDECファイル名で指定すると、ファイルに記述されたシグネチャと実際のデバイスのシグネチャが一致するかを確かめることができます。
(例)naxjp -getsig xc95108
naxjp -getsig test144.jed
naxjp -getsig test144.jed -bypass XC95108 -getsig XC9572
SVFファイルの出力方法(-svf オプション)
このオプションを使うと、NAXJPは実際のJTAG動作をおこなうかわりにSVFファイルを出力します。
1. 次の例では、XC95108を消去するためのSVFファイルを出力します。生成されたSVFファイルの名前はers108.svfになります。
(例)naxjp -erase XC95108 -svf ers108.svf
2. 次の例では、JEDECファイルを書きこむSVFファイルを生成します。生成されたSVFファイル名はmain.svfです。
(例)naxjp -write main.jed -svf main.svf
I/Oポートの修正(-port オプション)
1. このオプションを使うと、プリンタポートの割り当てをファイル中で指定したとおりに変更できます。
(例)naxjp -write main.jed -port ports.txt

ご注意
  • 本ソフトウェアはフリーソフトウェアではございません。よくご確認し、正しくご使用ください。
  • 旧バージョン(Version0.8以前)の技術サポートはいたしかねます。
  • 本ソフトウェアは、旧バージョンも含めて再配布すること、あるいは再配布可能な状態におくことはできません。
  • このソフトウェアの使用方法と仕様は予告なしに変更されることがあります。
  • 書き込み中や消去中にエラーが発生した場合、デバイスにダメージを与える可能性がありますので、お客様の責任の範囲内でご使用ください。
ご使用条件(End User License Agreement)

NAXJPは、誰でも商用・非商用を問わず自由に使用することができます。ただし、軍事目的の使用はできません。

 NAXJPは、下記の条件の下で使用することができます。

1.使用権

 本ソフトウェアは、内藤竜治の所有する著作物です。
 内藤竜治は、本ソフトウェアをダウンロードしていただいたお客様に対して非独占的な使用権を許諾します。

2.利用の制限

 本ソフトウェアのご使用に関して、お客様は下記の行為を行うことはできません。

  1. 本ソフトウェアを複製、結合、再配布もしくは送信すること、または再配布可能な状態におくこと。
  2. 本ソフトウェアを逆コンパイル、逆アセンブル、解析もしくは翻案すること。
  3. 本ソフトウェアを再使用許諾、賃貸もしくは貸与すること。
  4. 本ライセンス条項を改変すること。
  5. 軍事目的、あるいは軍事目的の機器を製造または製造の支援をするために利用すること。

3.保証の不提供

 内藤竜治は、本ソフトウェアを、第三者の権利の不侵害の保証、商品性の保証、特定目的適合性の保証および法律上の瑕疵担保責任を含むすべての明示もしくは黙示の保証責任を負わないものとします。

4.免責事項

 本ソフトウェアは、教育や試作などFPGAの動作検証目的などを想定して作られております。この装置を使用した結果は一切保証できません。この装置を利用して書き込んだ不揮発性メモリは、データーの消失や異常な動作をする可能性が否めないので、絶対に次のような装置には使用しないでください。もし使用して、いかなる結果が起ころうとも、内藤竜治およびナヒテックおよび設計者・製造者やデバイスメーカーは一切責任を負いません。

  1. 人命に関わる機器
  2. 医療機器
  3. 誤動作により、人体や財産に影響を及ぼす可能性のある機器
  4. 誤動作により、火災の発生を起こさせる可能性のある機器
  5. 航空・宇宙機器
  6. 原子力関連機器
  7. 電動工具
  8. その他、デバイスの誤動作やデータの消失によって、何らかの損害を被る場合や何らかの問題が生じる装置
お問い合わせ
ご意見・ご質問は右のアドレスまでお願いします nahitafu@nifty.com

Tips
CPLDとは何
CPLDは論理回路デバイスです。あなたの設計した複雑な回路をCPLDに書きこむことができます。CPLDはたくさんの単純なゲートやプリント基板上の配線を取り去ります。設計が変更された場合にも、多くの場合は、それはCPLDの中だけで済みます。そのため、半田ごてを一切使わずにダイナミックに回路を変更することができます。
JTAGとは何か
JTAGとは標準の名前です。JTAGはシリアルデータ転送を使います。ほとんどの最近のデジタルロジックICはJTAGをサポートしています。それぞれのデバイスを5本の線で互いに接続することができます。そしてJTAGを使ってin-system-programやバウンダリスキャンをおこなうことができます。
バウンダリスキャンとは何か
バウンダリスキャンとはロジックデバイスがおこなっている動作にかかわりなく、ピンの状態を読んだりセットしたりすることができる機能です。ほとんどの最近のICはこの機能をサポートしています。