本帖最后由 GoldSunMonkey 于 2013-2-24 23:45 编辑
2 PicoBlaze程序快速更新方法 PicoBlaze软核编译后的程序存储在FPGA中的BRAM单元中,在调试基于PicoBlaze的项目时,若采用传统的调试方法,那么每次改变PicoBlaze的汇编程序时都要重新综合、布局布线,生成新的比特文件,往往需要几分钟到十几分钟,耗时耗力;而采用JTAG Loader进行调试则无需重新综合、布局布线,可通过JTAG接口直接修改PicoBlaze的程序BRAM,只需几秒即可完成,大大加快了调试进度[2]。JTAG Loader程序更新接口示意图如图2所示。
图2 JTAG Loader程序更新接口示意图 由图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 :one 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 :one 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项目调试效率,具有较高的应用价值。 |