作者Adam P. Taylor,e2v首席系统工程师
PicoBlaze 是一个紧凑型8位软核处理器,FPGA工程师可以在他们选择的赛灵思FPGA将其例化。一旦实现,该核完全位于FPGA架构中,只使用逻辑单元和块RAM。它不需要额外的易失性或者非易失性内存。
得益于小尺寸的实现,一块FPGA能够包含多个PicoBlaze,每个用于实现通常由状态机创建的控制结构。因此可以减少开发时间,同时可以标准化地生成控制结构。多亏了底层的高性能赛灵思FPGA架构,PicoBlaze通常与许多市面上单独的8位微处理器兼容。
我们来看一下我们如何在设计利用这个便利的器件。
PICOBLAZE架构
在我们使用这个核前,首先需要了解一下它的架构。PicoBlaze是一个很简单的8位微处理器,基于RISC架构(见下面图1).该处理器有一个12位的地址端口,这意味着它可以寻址多达4096个内存位置。每个地址位置包含一个18位的指令,该指令定义了核必须执行的操作。核的输入和输出都通过8位端口(一个输入,一个输出)。微处理器还提供了一个8位识别端口,允许读写多达256个外设。还有一个可选大小的暂存器,64、128或者256字节。跟所有的微处理器一样,PicoBlaze包含了一个算术逻辑单元,支持一个中断。这些功能意味着处理器位FPGA设计工程师提供了许多好处。
PicoBlaze的最重要的一个方面就是它的高确定性本质,就是说执行所有的指令都需要2个时钟周期,中断最多在4个时钟周期内处理。
为什么要使用PICOBLAZE?
FPGA应用通常需要结合并行和时序操作,数据流以并行为主而控制结构的实现以时序结构为主,例如状态机(见Xcell Journal issue 81, “How to Implement State Machines in Your FPGA”)然而,复杂的控制结构如果用状态机实现会变得不实用,增加了验证时间,使得在今后开发周期内的修改变得很困难。复杂的状态机也需要更多的时间去开发,如果需要一些,这个时间会相当长。
你也可以使用PicoBlaze通过RS232、I2C和SPI进行串行通信控制,事实上,任何你要用一个一般的8位微处理器做的都能用PicoBlaze高性能的实现。工程师们已经使用PicoBlaze实现了控制系统的PID控制器。他们使用I2C、SPI或者并行DAC产生的参考波形有方波、锯齿波、三角波和更复杂的正弦/余弦波(使用移位和添加CORDIC算法)。
在你的FPGA中例化PicoBlaze微处理器来实现这些顺序功能,可以带来更快的开发时间,开发周期中修改更加简便。当然,作为一个软核,PicoBlaze也帮助地址过时事宜,当ASM模块开发时鼓励重新使用设计。
注意:这篇文章是 Xcell Daily, issue 89中的“Getting the Most out of Your PicoBlaze Microcontroller”简短版。关于在你的FPGA中添加PicoBlaze处理器和Zynq SoC设计的详细信息,见Xcell Daily的全篇文章。
点击这里下载Xcell Journal Issue 89的PDF。
点击这里在线阅读Xcell Journal Issue 89。
原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Getting-the-Most-out-of-You...
© Copyright 2014 Xilinx Inc
如需转载,请注明出处