博客首页 | 排行榜 |

paodiudehaizi的博客

个人档案
博文分类
PicoBlaze8位嵌入式微控制器的使用  2011-02-19 18:43

         时下,因为32位的嵌入式CPU流行导致PicoBlaze备受冷落。麻雀虽小,五脏俱全,如果好好加以利用还是能设计出很多好产品的。在美国纽约时代广场的JP Morgan Chase大楼,有一块硕大的LED显示屏,在当时是世界上最大的高亮解析度的LED显示屏。它所使用到的PicoBlaze的数量超过了1000个。不难看出,PicoBlaze的功能还是很强大的。下面我就结合Xilinx公司推出的官方例程详细讲解一下基于PicoBlaze的FPGA嵌入式设计。

    首先,我们需要登录Xilinx的官方网站获取PicoBlaze的源代码。下载到的是名为KCPSM3.zip的压缩包。下面对解压后的各个文件加以说明。

  • VHDL目录——该目录中包含了KCPSM3的VHDL文件,如果您使用的开发语言是VHDL,则可直接调用该目录下的文件;
  • Verilog目录——该目录中包含了KCPSM3的Verilog文件,如果您使用的开发语言是Verilog,则可直接调用该目录下的文件;
  • kcpsm3.ngc——该文件为经过封装了的kcpsm3的网表文件,在非HDL的设计流程中可以作为Black Box使用;
  • Assembler——该目录下包含了将psm文件转换成ROM文件所需的各种工具;
  • DATA2MEM_assistance——该目录包含了能直接修改bitstream文件中的Block Memory所在的数据段的工具;
  • JTAG_loader——该目录下包含了适用于PicoBlaze的JTAG工具;

除此之外,是一些用户手册,用户可根据这些PDF文档着手设计。众所周知,8051或其它的8/16位的单片机的开发方式就是对其进行编程并将程序烧写进FLASH中。基于PicoBlaze的开发方式也大致如此。主要的区别就是将PicoBlaze认识并执行的程序经过汇编器Assembler转换成相应的HDL文件以存放在FPGA内部的Block Memory中。PicoBlaze的结构图如图所示:

对其接口作如下说明:

下面我们就一步步介绍如何利用获得的源代码进行PicoBlaze的设计,此处我们就以Xilinx公司提供的中断例程为例。

  1. 打开ISE软件,新建一个工程,将VHDL目录中的kcpsm3.vhd和kcpsm3_int_test.vhd添加到工程中(kcpsm3.vhd是KCPSM3的核心VHDL描述,kcpsm3_int_test.vhd是压缩包自带的设计案例的VHDL文件,用户可对其修改)。
  2. 对汇编程序进行汇编,来生成指令ROM文件,并将其添加到设计中(汇编程序为包含在Assembler目录下的int_test.psm文件,使用cd命令浏览到Assembler目录)。具体过程如下图所示:

        至此,就完成了一个PicoBlaze的设计。我们还可以将VHDL目录下的test_bench.vhd文件添加到工程中,对该中断设计案例进行仿真。这只是一个最简单的案例,用户可以参考Spartan-3E Starter Kit开发板的参考设计。其实,在VHDL目录下还有很多模块的VHDL文件,用户自己可以根据自己的需要添加某些模块或删除默写模块来定制自己的处理器。

类别:技术资料 |
上一篇:建立自己的Xilinx开发环境
以下网友评论只代表其个人观点,不代表本网站的观点或立场