PicoBlaze是由Xilinx公司的Ken Chapman设计并维护的一款8bit的微控制器软核,可以嵌入到Cool Runner II、 Virtex-E,Virtex-II(Pro) 和 Spartan3(E)的CPLD以及FPGA中。 首先说一下PicoBlaze这个名字。我们知道:Xilinx主推的32-bit RISC嵌入式软核叫MicroBlaze,非官方有时也可写成uBlaze,用来表示该软核非常之小。Xilinx推出比它更小的软核就是PicoBlaze了。学过电路的人都知道,电容单位里有个量级叫皮法。 也就是pF。这里的p就是Pico-的意思,它表示10的负12次方这样一个数量级。而PicoBlaze这个软核呢,也的确是名符其实。将它实现在XC3S500E的FPGA中,只用到了96个SLICE,也就是只占用到了5%的逻辑资源的样子。
不过麻雀虽小,性能却挺强大的。对于整个指令集,PicoBlaze执行一条指令需要2个时钟周期。即使这样。 在Spartan3E Starter Kit板上以50MHz的时钟为例,PicoBlaze也能达到25MIPS的性能,对于要求不是太高的应用场合。PicoBlaze是一个不错的选择。而且在某索爱手机游戏些特殊的应用场合下。 还可以实现例化多个PicoBlaze软核来达到设计目的。
尽管PicoBlaze的定义是Microcontroller(ug129就是这样写的),但是根据Ken Chapman在PicoBlaze的参考设计里提到的,PicoBlaze实际上是常数码可编程的状态机(KCPSM, short for Konstant Code Programmable State Machine)。巧合的是,我们也可将其称之为Ken Chapman's Programmable State Machine, 以示纪念,呵呵!从它参考设计中附带的PSM代码中可以看到,针对PicoBlaze编写的代码大部分都是由Constant,各个函数段间的跳转以及中断服务例程(ISR, Interrupt Service Routine)构成的。这些代码的执行都是顺序的,尽管这似乎与FPGA能有效执行操作的特点不同。
但是在某些场合。 |