第6回[最終回] FPGA/CPLDからのフラッシュ ROMの書き換え

第 6 回[最終回] FPGA/CPLD からのフラッシュ ROM の書き換え
細渕 憲行
連載第 3 回では,バウンダリ・スキャン機能を使って CPU の外部バスに接続したフラッシュ ROM を JTAG 経由で
書き換える方法について解説した.ここでは外部バスのピン配置が決まっていない,CPLD や FPGA に接続されたフ
ラッシュ ROM を書き換える方法について解説する.
(編集部)
ことにします.このFPGA評価ボードには,一つのCPLD
(XC95288XL)と二つのFPGA(XC3S1500とXC3S400)が搭
1.UrJTAG の初期設定
載されており,フラッシュ ROM(Am29DL640G)は,CPLD
今回は連載第 3 回(2010 年 11 月号,pp.150-155)で紹介し
からもFPGA(XC3S1500)からもアクセスが可能です.
た JTAG 操 作 ツ ー ル UrJTAG を 使 っ て,FPGA や CPLD
BLANCA のフラッシュ ROM 周辺の構成を図 1 に示し
に接続されたフラッシュ ROM を書き換えます.連載第 3
ま す.CPLD は シ ス テ ム 制 御 用 で, 標 準 状 態 で は XC3S
回で紹介した CPU に接続するフラッシュ ROM のときと
1500 側からのフラッシュ ROM へのアクセスを仲介する動
は異なり,FPGA などのプログラマブル・デバイスは,任
作となっています.よって,CPLD のバウンダリ・スキャ
意のピンにフラッシュ ROM の信号を自由に割り当てられ
ンを操作すれば 8 ビット幅でフラッシュ ROM へ,CPLD
ます.UrJTAG はこの対応を定義することにより,簡易的
を標準動作状態にさせて FPGA のバウンダリ・スキャン
な非同期バスを実現できます.今回はこの機能を使い,
を 操 作 す れ ば 8 ビ ッ ト ま た は 16 ビ ッ ト 幅 で フ ラ ッ シ ュ
FPGA 評価ボードに搭載されているフラッシュ ROM を書
ROM へアクセス可能です.
き換えてみます.
以上のように,複数のデバイスから 8 ビット幅または 16
なお,UrJTAG のインストールとフラッシュ ROM の基
ビット幅でアクセスできるので,今回のテストにはうって
本手順については,連載第 3 回の内容を参照してください.
つけのボードといえます.
● FPGA 評価ボード
● BSDL ファイルの登録
FPGA評価ボードとしては,本誌でおなじみの組み込
ま ず BLANCA と マ ル チ JTAG ア ダ プ タ を 接 続 し,
みシステム開発評価キット(通称BLANCA)を取り上げる
UrJTAG から JTAG チェーンを見てみましょう.UrJTAG
をインストールしただけの状態で,detect コマンドでデバ
フラッシュROM
ROM_nBYTE
BYTE
ROM_nCE
ROM_nOE
FPGA
XC3S1500
ROM_nWE
ROM_A23∼1
ROM_D7∼0
ROM_D15∼8
CE
システム
制御用
CPLD
XC95288XL
JTAG チェーン上に三つのデバイスが存在します.その
うちの二つは XC3S400 と XC3S1500 として認識されてい
OE
ますが,残り一つの米国 Xilinx 社のデバイス XC95288XL
WE
が認識できていません.UrJTAG のデータ・ベースに存在
A22∼1
していないためです.BSDL(Boundary Scan Description
D7∼0
Language)ファイルを使ってこのデバイスを認識できる
D15∼8
Am29DL640
図 1 システム開発評価キット(通称 BLANCA)フラッシュ ROM 周辺の
構成
174 KEYWORD
イスを検出した結果を図 2 に示します.
ようにします.
UrJTAG に BSDL ファイルを読ませるため,サーチ・パ
スを設定します.デフォルトではサーチ・パスが設定され
てません.コマンドは次のようになります.
FPGA,CPLD,JTAG,バウンダリ・スキャン,BSDL,XC95288XL,XC3S400,
XC3S1500,Am29DL640G
Apr. 2011