原创 Picoblaze 与ISE入门(引用)

2010-4-17 10:29 2155 8 8 分类: FPGA/CPLD
前几天写的博客不知道为什么编辑了一次就没有了,好郁闷阿!只好再从新写过了。这段时间看了Xilinxsparten3E,熟悉了一下利用ISE做工程,刚开始学起来感觉怎么用怎么不顺,因为以前用的是quartusII,比较熟悉了,何况还是老师在教,所以感觉还是很好用,刚刚开始使用ISE,界面感觉设计的不舒服,什么都感觉不舒服,编译一次还要比quartusII要花更跟多的时间,要一步一点下去,一个字:烦!不过当用ISE完成第一个例程的时候才慢慢感觉好点了,可以从每一部操作中看清都做了些什么,以前用quartusII只是编译自己写得vhdl文件,现在都是拿别人写好的还有自动生成的来学习,几个例程学习以后,发现在xilinx里面可以嵌三种cpu,一个是Xilinx主推的32-bit嵌入式软核叫MicroBlaze,一个就是Powerpc,最后就是picoblaze了,其他的就不说了。这个picoblaze,我想对xilinx有所了解的都知道,PicoBlaze8位微处理器,是Xilinx公司为Virtex系列FPGASpartan-Iitxi系列FPGACoolRunner-II系列CPLD器件设计嵌入式专用IP Core。它解决了常量编码可编程状态机(KCPSM)的问题(后面的都是最新版本kcpsm3的参数)。这一模块只占用Sparta-3 XC2S200E资源的5%96 slices)(Kcpsm3编译器的,这里比以前的版本kcpsmkcpsm2要多些,功能也强了)。PicoBlaze只用了如此少的资源,但其速度却可达到40MIPS以上。PicoBlaze提供59条不同的指令,16个寄存器(s0sf,学过单片机的都知道,单片机有只有一百多条指令,我们用起来都感觉吃力,猜想在这里面不知道该怎怎么用了吧,其实picoblaze就是他名字说得,实现状态机和简单的控制就行了,这些指令对他来说就差不多了,单片机里面只有一个累加器A和一个用于做乘法的寄存器B,其他的都不与这两个不一样,而在picoblaze中,这十六个都是一样的,没有区别,所以在使用中不用担心了,只是他也就没有了乘法的功能了,要在这里做乘法只能自己写程序了。他还有256个直接或间接的可设定地址的端口,1个可屏蔽的中断,这个中断的入口地址为0x3ff,所以在系统中如果有多个中断源这就要我们自己趋势线中断管理了。最后它是一个由VHDL实现的软处理器,可以在各种FPGACoolRunnerII CPLsparten3E上实现,设计灵活方便;因此,PicoBlaze将在基于可编程逻辑和MCU的应用领域中发挥积极的作用。其较高的处理性能和较少的资源占用,预示其具有更加广泛的应用前景。最有说服力的例子就是在美国纽约的时代广场的JP Morgan Chase大楼,有一块硕大的LED广告屏。这块广告屏在当时(2004)是世界上最大的高亮解析度的LED显示屏,而驱动这块显示屏的,正是PicoBlaze,整个设计中用到了10XC2V1000 Virtex-II, 323XC3S200 Spartan-3, 以及333XCF00 Platform Flash PROM3800XC9572XL72 PLD宏单元。使用到的PicoBlaze的数量更是超过了1000个。其基本应用框架如下图所示。 
点击看大图

内部结构 
点击看大图



/myspace/album/image
                             从这里看  picoblaze  


PicoblazeISE下面的使用:Picoblaze 的生成是利用kcpsm3.exe编译手工编写的psm文件生成的,这个编译器是由xilinx免费提供的,都是可以从xilinx的官网上下到的最新的,下载是要有xilinx的一个account,可以从网上免费申请的,在xilinx网上下载资料都要这个账号的。在网上搜索到picoblaze的压缩包后按照要求填写一些资料就可以下载了,Assembler目录下的就是编译器,主要是下面这么几个KCPSM3.EXE(KCPSM3的汇编程序 ),ROM_form.vhd(生成ROMvhd文件模版)ROM_form.coe(生成ROM文件的v文件模版)ROM_form.v(生成ROM所需的系数的模版), cleanup.bat(批处理文件,能自动清理KCPSM3.EXE*.psm汇编后产生的文件).使用流程如下:1.首先在文本编辑器中用特定指令实现功能模块,并以psm格式保存;2. 然后在当前工作目录下在命令提示符下面调用kcpsm3  <文件名.psm>生成符合能够存放在Block Memories中的ROM格式的vhd文件或者v文件,将vhd文件(或者v文件)作为PicoBlazeProgramISE设计中以供调用;3. ISE中建立一个工程,写一个顶层文件,将kcpsm3programtransmitterreceiver等各模块包括进来,在这里使用UART的目的是将其作为PicoBlaze的控制台,分别用transmitterreceiverPicoBlaze的输入控制和输出显示通道。在顶层文件中加入kcpsm3的例化语句。4. 编辑UCF文件,指定FPGA的输入输出管脚。5. 然后就可以在ISE下面综合,,实现,生成下载文件下载验证了。


 


http://www.eefocus.com/jame/blog/08-08/155205_63956.html


http://www.eefocus.com/simux/blog/08-02/143892_8aaf0.html

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条