由图2可知,JTAG Loader通过JTAG接口直接修改程序BRAM,达到更新PicoBlaze程序的目的。整个过程简便迅速,并且Xilinx公司提供了相应的JTAG_Loader_ROM_form.vhd模板和批处理文件,用户在初次使用时设置好相关参数后,只需运行批处理文件即可实现PicoBlaze程序的一键更新。JTAG Loader的使用步骤如下:
① 将JTAG_Loader_ROM_form.vhd重命名为ROM_form.vhd,并替换原工程目录下的ROM_form.vhd。
② 用kcpsm3.exe重新编译程序。
③ 将程序ROM的reset端连接到PicoBlaze的复位端。
④ 将JTAG Loader文件夹下的hex2svf.exe、hex2svfsetup.exe、playxsvf.exe、svf2xsvf.exe和jtag_loader.bat复制到工程目录下。
⑤ 编辑jtag_loader.bat文件。
(a) 并口下载电缆方式。打开jtag_loader.bat文件,输入下列内容:
if exist .\hex2svf.cnf goto one
echo Need to set up jtag chain first
hex2svfsetup.exe
echo jtag chain set up
pause
ne
hex2svf %1.hex %1.svf
svf2xsvf d i %1.svf o %1.xsvf
playxsvf %1.xsvf
将jtag_loader.bat中的1%替换为.psm的文件名,例如led.psm,则将1%替换为led。
(b) USB下载电缆方式。打开jtag_loader.bat文件,输入下列内容:
if exist .\hex2svf.cnf goto one
echo Need to set up jtag chain first
hex2svfsetup.exe
echo jtag chain set up
pause
ne
hex2svf %1.hex %1.svf
svf2xsvf d i %1.svf o %1.xsvf
@echo setMode bscan﹥﹥impact_batch_commands.cmd
@echo setCable port usb21 baud 1﹥﹥impact_batch_commands.cmd
@echo addDevice position 1 file .\%1.xsvf﹥﹥impact_batch_commands.cmd
@echo play﹥﹥impact_batch_commands.cmd
@echo quit﹥﹥impact_batch_commands.cmd
impact batch impact_batch_commands.cmd
将jtag_loader.bat中的1%替换为.psm的文件名,例如led.psm,则将1%替换为led即可。
⑥ 运行jtag_loader.bat,按提示进行即可实现程序更新。值得注意的是,第一次运行jtag_loader.bat时,需输入IR_Length参数,该参数可以在ISE安装目录下查到,如:D:\Xilinx\10.1\ISE\acecf\data\xccace.bsd文件中的attribute INSTRUCTION_LENGTH of XCCACE : entity is 8。其他器件的查阅方法类似。
本方法已在Xilinx XUP VirtexII PRO开发板上进行了验证,取得了良好的效果,整个程序过程仅需几秒,即可实现程序的一键更新。 结语
8位嵌入式处理器PicoBlaze应用灵活方便。本文介绍的基于pBlazIDE的PicoBlaze汇编程序仿真调试方法和基于JTAG Loader的PicoBlaze程序快速更新方法简便可行,可明显提高PicoBlaze项目调试效率,具有较高的应用价值。