2011年1月21日金曜日

bitファイルからPicoBlazeの命令用BRAMブロックのみを入れ替える方法

PicoBlazeと共に頒布されているDATA2MEM_assistanceをよく見たら
KCPSM3アセンブラが吐き出すMEMファイルを使って,
BITファイル中のPicoBlazeの命令BRAMブロックのみを
更新する方法が記載されていたので,自分自身も忘れないようここに紹介する.

まず次のフォルダにパスを通しておく.
C:\Xilinx\12.4\ISE_DS\ISE\bin\nt
このフォルダに,PicoBlazeの開発ツールの下記フォルダにある
bp_bmm.exeを上記フォルダにでもコピーしておく.
KCPSM3\DATA2MEM_assistance

ここでPicoBlazeのアセンブリファイルをprogram.psmとし
ISE Navigatorのプロジェクト名がsampleだとすると
次のコマンドを実行する
kcpsm3 program.psm
pb_bmm program.bmm sample.ncd
data2mem -bm program.bmm -bd program.mem -bt sample.bit -o b new_sample.bit

出来上がったnew_sample.bitをFPGAにアップロードすればよい.
data2memを実行途中でPicoBlazeの命令を収めたメモリブロックを選択する
プロンプトが表示される.1つしか無いなら迷わず1を押してリターン.
複数ある場合は,確認する必要がある.

ひとまず,これでPicoBlazeのマシン語を修正したときに
論理合成とインプリメントの時間待たされずにすむので大助かり.
出来上がったBITファイルをJTAGケーブルでダウンロードすれば
新しいプログラムの実行を確認できる.