新闻中心

EEPW首页>嵌入式系统>设计应用> KCPSM6 PicoBlaze的原理与应用

KCPSM6 PicoBlaze的原理与应用

作者: 时间:2013-04-23 来源:网络 收藏

(2)新增属性
新增了3个属性,分别是hwbuild(与HWBULID指令配合使用,可用于定义软件版本等功能)、interrupt_vector(定义中断矢量,默认为0x3FF)和scratch_pad_memory_size(定义内部暂存RAM大小,默认为64 B)。
(3)新增指令
指令集向下兼容KCPSM3的指令集,并新增了9条指令,分别是TESTCY、COMPARECY、REGBANK、STAR、OUTPUTK、JUMP@、CALL@、LO ADRETURN和HWBULID。新指令的扩展,极大地改善了的编程灵活性和代码效率。例如,向端口0x01输出0x5A,在KCPSM3中需执行两条指令:“LOAD s0,5A”和“OUPUT s0,01”。而在KCPSM6中,只需执行“OUTPUTK 5A 01”即可。其他新增指令的详细功能,见参考文献。

2 KCPSM6开发与调试
KCPSM6的开发流程与KCPSM3基本相同。KCPSM6的开发流程如图2所示。

本文引用地址://m.amcfsurvey.com/article/148050.htm

b.JPG


如图2所示,用户程序和ROM模块经编译器KCPSM6 Assembler编译后,生成包含程序代码的ROM模块。在顶层模块中例化ROM模块和KCPSM6模块,然后综合、实现并生成比特流下载到FPGA中。在程序调试过程中,经常需要对用户程序进行反复修改,如果采用常规的方法,则每次修改用户程序,都要重新综合、布局布线,生成新的比特文件,往往需要几分钟到十几分钟,耗时耗力,给调试带来了极大不便。为此,与KCPSM3类似,Xilinx公司也为KCPSM6提供了JTAG Loader工具,而采用JTAG Loader进行调试则无需重新综合、布局布线,通过JTAG接口直接修改的程序BRAM,只需几秒即可完成程序更新,大大加快了调试进度。
JTAG Loader的使用步骤如下:
①将代码中的C_JTAG_LOADER_ENABLE属性设为“1”。
②综合、实现生成比特流并下载到FPGA中。
③将JTAG Loader.exe复制到当前工程目录下。
④打开命令提示符,并切换到当前目录,运行JTAGLoader(如果是64位操作系统则运行JTAG Loader64),JTAG Loader自行识别目标FPGA,如果报错显示未知器件,则需要输入其IR_Length参数,该参数可以在ISE安装目录下查到,如:C:\Xilinx\13.2\ISE_DS\ISE\acecf\data\xccace.bsd文件中的attribute INSTRUCTION_LENGTH ofXCCACE:entity is 8,其他器件的查阅方法类似。
⑤修改用户程序,并用kcpsm6.exe重新编译程序。
⑥运行jtagloader—1 your_program.hex,即可实现一键更新程序。
另外,值得注意的是,使用JTAG Loader之前,必须正确设置系统的环境变量,具体方法是运行ISE安装目录下C:\Xilinx\1 3.2\ISE_DS文件夹内的settings32.bat批处理文件即可。

3实例
为了验证KCPSM6的新增功能及JTAG Loader的使用方法,本文在FPGA开发板上实现了8位LED的控制。综合结果显示,本设计共占用了35个Slice和2个RAMB 16BWERs单元,仅占XC6SLX75T-3FGG676总Slice数和BRAM单元的1%。最后,将生成的比特流下载到开发板上进行验证,LED能够按预期要求闪烁。修改用户程序,重新编译后,能够用JTAG Loader快速更新程序。

结语
本文简要阐述了Xilinx公司最新推出的KCPSM6软核的结构及,并与KCPSM3进行了对比分析。介绍了KCPSM6的开发调试流程,并进行了实例验证。本文对已有KCPSM3使用经验的设计者快速熟悉KCPSM6的开发具有积极意义。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭